[FFmpeg-soc] [soc]: r5665 - libavfilter/vf_rotate.c

Stefano Sabatini stefano.sabatini-lala at poste.it
Wed Mar 17 01:14:55 CET 2010


On date Monday 2010-03-15 08:27:01 -0500, Bobby Bingham encoded:
> On Mon, 15 Mar 2010 12:44:32 +0100
> Stefano Sabatini <stefano.sabatini-lala at poste.it> wrote:
> 
> > On date Sunday 2010-03-14 20:24:34 -0500, Bobby Bingham encoded:
> > > On Sat, 13 Mar 2010 14:55:11 +0100 (CET)
> > > stefano <subversion at mplayerhq.hu> wrote:
> > > 
> > > > Author: stefano
> > > > Date: Sat Mar 13 14:55:11 2010
> > > > New Revision: 5665
> > > > 
> > > > Log:
> > > > Prevent rotate from calling avfilter_default_draw_slice(), which
> > > > was causing randomic behaviour.
> > > > 
> > > > Only one slice has to be passed to the next filter, in the
> > > > end_frame() callback.
> > > 
> > > Perhaps a better solution is actually to change
> > > av_filter_draw_slice() to not call avfilter_default_draw_slice().
> > > I see three cases:
> > > 
> > > 1. filters like vf_rotate, vf_transpose, etc which only send one
> > > slice at the very end.  These should not call
> > > avfilter_default_draw_slice().
> > > 
> > > 2. filters which do some filtering in their own draw_slice.  These
> > > always override avfilter_default_draw_slice().
> > > 
> > > 3. filters which do not touch the video data: vf_null, vf_setpts,
> > > etc. These can use avfilter_default_draw_slice(), but I think they
> > > are the minority of filters.  They can simply specify
> > > avfilter_default_draw_slice as their draw_slice callback.
> > 
> > I think the semantics for the default callbacks is this:
> > "call the default callback if the callback is not explicitely defined
> > in the filter".
> > 
> > and should be respected for all the types of default_* callbacks.
> 
> That is the way it's has been, but I originally did that with the goal
> of making things easier for filter writers, rather than for
> consistency.  The default callbacks should be what filters are most
> likely to use, and it looks like for draw_slice, a default
> implementation which does nothing is more useful than
> avfilter_default_draw_slice().
> 
> Another idea would be do provide an avfilter_null_draw_slice() so that
> each filter doesn't have to provide its own.

I have no strong opinion but I like the avfilter_null_draw_slice()
idea, as for changing the way avfilter_default_draw_slice() works, I'd
say to wait to have more filters included, then we'll see how that
will be convenient.

[...]

Regards.


More information about the FFmpeg-soc mailing list