[FFmpeg-devel] [PATCH] Separate video specific BufferRef properties into VideoProps

Stefano Sabatini stefano.sabatini-lala
Tue Aug 10 17:15:19 CEST 2010


On date Monday 2010-08-09 15:34:02 +0200, Michael Niedermayer encoded:
> On Sat, Aug 07, 2010 at 06:23:22PM -0700, S.N. Hemanth Meenakshisundaram wrote:
[...]
> >  /**
> > + * Video specific properties in a reference to an AVFilterBuffer. Since
> > + * AVFilterBufferRef is common to different media formats, video specific
> > + * per reference properties must be separated out.
> > + */
> > +
> > +typedef struct AVFilterBufferRefVideoProps
> > +{
> > +    AVRational pixel_aspect;    ///< pixel aspect ratio
> > +    int w;                      ///< image width
> > +    int h;                      ///< image height
> > +    int interlaced;             ///< is frame interlaced
> > +    int top_field_first;        ///< field order
> > +} AVFilterBufferRefVideoProps;
> > +
> > +/**
> >   * A reference to an AVFilterBuffer. Since filters can manipulate the origin of
> >   * a buffer to, for example, crop image without any memcpy, the buffer origin
> >   * and dimensions are per-reference properties. Linesize is also useful for
> > @@ -101,34 +117,41 @@ typedef struct AVFilterBufferRef
> >      AVFilterBuffer *buf;        ///< the buffer that this is a reference to
> >      uint8_t *data[4];           ///< picture data for each plane
> >      int linesize[4];            ///< number of bytes per line
> > -    int w;                      ///< image width
> > -    int h;                      ///< image height
> >      int format;                 ///< media format
> >  
> >      int64_t pts;                ///< presentation timestamp in units of 1/AV_TIME_BASE
> >      int64_t pos;                ///< byte position in stream, -1 if unknown
> >  
> > -    AVRational pixel_aspect;    ///< pixel aspect ratio
> > -
> >      int perms;                  ///< permissions, see the AV_PERM_* flags
> >  
> > -    int interlaced;             ///< is frame interlaced
> > -    int top_field_first;
> > +    enum AVMediaType type;      ///< media type of buffer data
> > +    void *props;                ///< media specific properties, cast to right type
> 
> AVFilterBufferRefVideoProps *vid;
> AVFilterBufferRefAudioProps *aud;

I have a slightly preference for a *props generic pointer, but two
distinct fields are fine as well, can you say Michael why do you
prefer like that?

Also in this case I'd prefer *video_props, *audio_props, really don't
like arbitrary contractions.

Regards.
-- 
FFmpeg = Forgiving & Fantastic Majestic Patchable Elected Governor



More information about the ffmpeg-devel mailing list