> -----Original Message----- > From: Li, Zhong > Sent: Tuesday, April 10, 2018 11:39 AM > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Cc: Song, Ruiling <ruiling.s...@intel.com> > Subject: RE: [FFmpeg-devel] [PATCH v2 1/2] lavf: make overlay_qsv work based > on framesync > > > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > > Of Ruiling Song > > Sent: Tuesday, April 3, 2018 9:50 AM > > To: ffmpeg-devel@ffmpeg.org > > Cc: Song, Ruiling <ruiling.s...@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. > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel