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

Michael Niedermayer michaelni
Tue Aug 10 20:35:23 CEST 2010


On Tue, Aug 10, 2010 at 08:44:31AM -0700, S.N. Hemanth Meenakshisundaram wrote:
> > 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.
> 
> 
> If I make separate fields for video and audio props, we may have to add
> more  for other types of filters later on. Is that ok?

yes

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Observe your enemies, for they first find out your faults. -- Antisthenes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100810/bd758601/attachment.pgp>



More information about the ffmpeg-devel mailing list