[FFmpeg-devel] [PATCH] vsrc_buffer: remove dependency on AVFrame

Michael Niedermayer michaelni at gmx.at
Sat May 14 01:37:57 CEST 2011


On Fri, May 13, 2011 at 10:52:46PM +0200, Stefano Sabatini wrote:
> On date Friday 2011-05-13 21:12:59 +0200, Michael Niedermayer encoded:
> > On Fri, May 13, 2011 at 06:42:14PM +0200, Stefano Sabatini wrote:
> > > Change the interface of av_vsrc_buffer_add_frame(), make it accept in input
> > > an AVFilterBufferRef rather than an AVFrame.
> > > 
> > > This way the interface can be used without requiring the
> > > inclusion/installation of libavcodec headers.
> > 
> 
> > theres no need for headers to be installed, struct AVFrame or even
> > void * can be used.
> 
> but in case you want to use the function in a pure libavfilter app you
> can't.
> 
> > [...]
> > > -                    // add it to be filtered
> > > -                    av_vsrc_buffer_add_frame2(ost->input_video_filter, &picture, ""); //TODO user setable params
> > > +
> > > +                    picref = avfilter_get_video_buffer_ref_from_arrays(
> > > +                        picture.data, picture.linesize, AV_PERM_WRITE,
> > > +                        picture.width, picture.height, picture.format);
> > > +                    avfilter_copy_frame_props(picref, &picture);
> > > +                    av_vsrc_buffer_add_frame2(ost->input_video_filter, picref, ""); //TODO user setable params
> > >                  }
> > >              }
> > >          }
> > 
> > This is much more complex for user applications and not extendable
> > we just added these fields days ago. more will be added and this will
> > always need updating.
> 
> But we should only rely on fields contained in the video filter
> buffer, rather than in AVFrame which contains information which can't
> be propagated in the filterchain. And the AVFrame <-> A/V filter
> buffer mapping can be easily extended by extending
> avfilter_copy_frame_props().
> 
> > Iam not against this patch if you want it but i think the people
> > using libavfilter & libavcodec would prefer a simple interface
> > that allows passing an AVFrame.
> 
> What about:
> 
> av_vsrc_buffer_add_frame2(ost->input_video_filter, avfilter_get_video_buffer_ref_from_frame(frame, perm), "");
> ?

this looks much better


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Concerning the gods, I have no means of knowing whether they exist or not
or of what sort they may be, because of the obscurity of the subject, and
the brevity of human life -- Protagoras
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20110514/9744d441/attachment.asc>


More information about the ffmpeg-devel mailing list