On Tue, 2015-10-27 at 15:17 -0700, John Stebbins wrote: > On Tue, 2015-10-27 at 22:53 +0100, Luca Barbato wrote: > > On 27/10/15 22:20, John Stebbins wrote: > > > On Tue, 2015-10-27 at 22:12 +0100, Luca Barbato wrote: > > > > On 27/10/15 21:41, John Stebbins wrote: > > > > > From: Michael Niedermayer <[email protected]> > > > > > > > > > > Signed-off-by: Michael Niedermayer <[email protected]> > > > > > (cherry picked from commit > > > > > 353cf95f948ef7c6139c8ead79e9eeb9eb8d2e6e) > > > > > --- > > > > > libavfilter/vf_frei0r.c | 1 + > > > > > 1 file changed, 1 insertion(+) > > > > > > > > > > diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c > > > > > index 0122b8d..04f74bc 100644 > > > > > --- a/libavfilter/vf_frei0r.c > > > > > +++ b/libavfilter/vf_frei0r.c > > > > > @@ -459,6 +459,7 @@ static int > > > > > source_config_props(AVFilterLink > > > > > *outlink) > > > > > outlink->w = s->w; > > > > > outlink->h = s->h; > > > > > outlink->time_base = s->time_base; > > > > > + outlink->frame_rate = av_inv_q(s->time_base); > > > > > > > > > > if (s->destruct && s->instance) > > > > > s->destruct(s->instance); > > > > > > > > > > > > > shouldn't it forward it from the inlink ? > > > > > > > > (timebase can be 1/1000, a 1000fps kills some encoders) > > > > > > > > lu > > > > > > > > > > I don't entirely understand what frei0r does. But it appears to > > > generate > > > frames at the specified framerate (25 default). time_base is set > > > to > > > 1/framerate in source_init(). So the output framerate should not > > > come > > > from the inlink. > > > > Grrr, another upside down then. > > > > It should take the input framerate if exists then. > > > > > > I'm a bit confused about what this filter does, and what it meant to > do. > From what I can find online about fiei0r, it applies special effects > to > a video stream. Which implies to me that it should not be changing > the > frame_rate or time_base of the incoming stream. But the code (before > the frame_rate patch) is modifying the time_base, effectively forcing > constant frame_rate output at 1/time_base. Why does this filter force > the time_base like this? > > Also, in one place (filter_frame) it translates incoming frame pts > with > inlink->time_base and in another (source_request_frame) it translates > frame pts with s->time_base. It seems like this filter can only > "work" > if the framerate option is set to 1/inlink->time_base. > >
Answering my own questions. This file implements 2 things. A filter and a video source. The "framerate" option is only applied for the video source. When used as a filter, time_base and frame_rate are untouched. Regarding upside down. I turn it right side up if you would like. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
