On Thu, 2015-10-29 at 21:35 +0100, Anton Khirnov wrote: > Quoting John Stebbins (2015-10-29 21:26:11) > > On Thu, 2015-10-29 at 19:49 +0100, Anton Khirnov wrote: > > > Quoting John Stebbins (2015-10-28 17:48:18) > > > > From: Nicolas George <[email protected]> > > > > > > > > (cherry picked from ffmpeg commit > > > > 9ca440679dc535b31edd569393d8d3dda59db90e) > > > > --- > > > > libavfilter/buffersrc.c | 3 +++ > > > > 1 file changed, 3 insertions(+) > > > > > > > > diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c > > > > index a9b893c..f5b852f 100644 > > > > --- a/libavfilter/buffersrc.c > > > > +++ b/libavfilter/buffersrc.c > > > > @@ -44,6 +44,7 @@ typedef struct BufferSourceContext { > > > > const AVClass *class; > > > > AVFifoBuffer *fifo; > > > > AVRational time_base; ///< time_base to set in > > > > the > > > > output link > > > > + AVRational frame_rate; ///< frame_rate to set in > > > > the > > > > output link > > > > > > > > /* video only */ > > > > int h, w; > > > > @@ -191,6 +192,7 @@ static const AVOption video_options[] = { > > > > #endif > > > > { "sar", "sample aspect ratio", > > > > OFFSET(pixel_aspect), AV_OPT_TYPE_RATIONAL, { .dbl = 1 }, > > > > 0, > > > > DBL_MAX, V }, > > > > { "time_base", NULL, > > > > OFFSET(time_base), > > > > AV_OPT_TYPE_RATIONAL, { .dbl = 0 }, 0, DBL_MAX, V }, > > > > + { "frame_rate", NULL, > > > > OFFSET(frame_rate), AV_OPT_TYPE_RATIONAL, { .dbl = 0 }, > > > > 0, > > > > DBL_MAX, V }, > > > > > > I'm not quite sure the default value this will evalate to is the > > > same > > > as > > > the "unknown" value mandated by the AVBufferLink doxy. Please make > > > sure > > > the two are the same. > > > > > > > I'm not sure this was meant to be "unknown" at this point. I think > > the > > intention may have been for it to be "unset". But I really don't > > know > > what was in the mind of the author here. It does seem like > > "unknown" > > would be appropriate for buffersrc. > > Are those supposed to be semantically different?
If a link input framerate is unset (0/0), it is populated with the link output framerate of the previous filter during avfilter_config_links. If it is unknown (1/0) it is not overwritten. So a filter implementation needs to do nothing in order for the framerate to propagate through it. But filters such as setpts can halt the propagation of the upstream framerate simply by setting framerate to the unknown value. For a video source that has no previous filter, it may be a distinction without a difference. Whether you pass 0/0 down to unset subsequent filters or 1/0, makes no real difference. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
