[FFmpeg-devel] [PATCHv3] Added QSV based VPP filter

wm4 nfxjfg at gmail.com
Thu Nov 12 16:36:48 CET 2015


On Thu, 12 Nov 2015 16:25:06 +0100
"Sven Dueking" <sven at nablet.com> wrote:

> > You can't just set the data pointers on a refcounted AVFrame to a
> > completely different allocation. This breaks refcounting completely.
> > Also, a refcounted AVFrame has to remain valid even if the filter gets
> > destroyed, so I guess you can only output not-refcounted AVFrames,
> > which probably will result in a copy sooner or later.
> > 
> > I'd say this is a pretty critical issue.  
> 
> Means I need to copy the data from my surface into the AVFrame ?

That'd be the easiest fix.

> > > +static av_cold int vpp_init(AVFilterContext *ctx) {
> > > +    VPPContext *vpp= ctx->priv;
> > > +
> > > +    AVCodecContext *avctx = (AVCodecContext *)ctx;  
> > 
> > Excuse me, what???  
> 
> I assume this means that such cast is not allowed, right ?
> This means that I need to add some stuff from qsv.c to this filter 
> 
> int ff_qsv_init_internal_session(AVCodecContext *avctx, QSVSession *qs,
>                                  const char *load_plugins)
> 
> Btw, this cast works (even it´s not allowed) ... 

Also, this function is private to libavcodec and can't be used from
libavfilter. Your code doesn't even LINK as shared lib.

> 
> Again, thanks for your review. I will think about your proposal to redesign the filter.

I didn't suggest to "redesign" it.


More information about the ffmpeg-devel mailing list