[FFmpeg-devel] [PATCH v2 1/2] lavf: make overlay_qsv work based on framesync

Song, Ruiling ruiling.song at intel.com
Thu Apr 12 04:51:04 EEST 2018



> -----Original Message-----
> From: Li, Zhong
> Sent: Tuesday, April 10, 2018 11:39 AM
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Cc: Song, Ruiling <ruiling.song at intel.com>
> Subject: RE: [FFmpeg-devel] [PATCH v2 1/2] lavf: make overlay_qsv work based
> on framesync
> 
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> > Of Ruiling Song
> > Sent: Tuesday, April 3, 2018 9:50 AM
> > To: ffmpeg-devel at ffmpeg.org
> > Cc: Song, Ruiling <ruiling.song at intel.com>
> > Subject: [FFmpeg-devel] [PATCH v2 1/2] lavf: make overlay_qsv work based
> > on framesync
> >
> > The existing version which was cherry-picked from Libav does not work with
> > FFmpeg framework, because ff_request_frame() was totally different
> > between Libav (recursive) and FFmpeg (non-recursive).
> > The existing overlay_qsv implementation depends on the recursive version of
> > ff_request_frame to trigger immediate call to request_frame() on input pad.
> > But this has been removed in FFmpeg since "lavfi: make request_frame()
> > non-recursive."
> > Now that we have handy framesync support in FFmpeg, so I make it work
> > based on framesync. Some other fixing which is also needed to make
> > overlay_qsv work are put in a separate patch.
> >
> > v2:
> > add .preinit field to initilize framesync options.
> > export more options like vf_overlay.c
> 
> How about taking these options as a separated patch?
> It doesn't take obvious effect to make qsv overlay work.

Below are the options which I mainly mean here. Given that this is a new implementation,
I thought this minor change does not bring too much extra burden to the patch.
It just gives users more freedom to control the behavior of this filter.
But I am open to follow your comment if we think this is necessary to merge the patch.
I would like to wait if anybody else will give some comment on the overall patch.
Thanks for your review!

> > +    { "shortest", "force termination when the shortest input terminates",
> > OFFSET(fs.opt_shortest), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
> > +    { "repeatlast", "repeat overlay of the last overlay frame",
> > + OFFSET(fs.opt_repeatlast), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, FLAGS },
> >      { NULL }


> >
> > -static const AVClass overlay_qsv_class = {
> > -    .class_name = "overlay_qsv",
> > -    .item_name  = av_default_item_name,
> > -    .option     = options,
> > -    .version    = LIBAVUTIL_VERSION_INT,
> > -};
> 
> Why remove it but keep ".priv_class"?
You can take a look at FRAMESYNC_DEFINE_CLASS macro definition. It already include this overlay_qsv_class definition.

> The reset LGTM.
> 



More information about the ffmpeg-devel mailing list