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

Reply via email to