On Mon, 18 Apr 2011, Ronald S. Bultje wrote:

> Hi,
> 
> On Mon, Apr 18, 2011 at 1:04 AM, Reinhard Tartler <siret...@tauware.de> wrote:
> > On Fri, Apr 15, 2011 at 18:05:48 (CEST), Luca Barbato wrote:
> >
> >> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> >> index 109d2a4..df4e617 100644
> >> --- a/libavcodec/avcodec.h
> >> +++ b/libavcodec/avcodec.h
> >> @@ -1035,6 +1035,10 @@ typedef struct AVPanScan{
> >>  #define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer 
> >> content.
> >>  #define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer 
> >> (update).
> >>
> >> +enum AVPacketSideDataType {
> >> +    AV_PKT_DATA_PALETTE,
> >> +};
> >> +
> >>  typedef struct AVPacket {
> >>      /**
> >>       * Presentation timestamp in AVStream->time_base units; the time at 
> >> which
> >> @@ -1057,6 +1061,17 @@ typedef struct AVPacket {
> >>      int   stream_index;
> >>      int   flags;
> >>      /**
> >> +     * Additional packet data that can be provided by the container.
> >> +     * Packet can contain several types of side information.
> >> +     */
> >> +    struct {
> >> +        uint8_t *data;
> >> +        int      size;
> >> +        enum AVPacketSideDataType type;
> >> +    } *side_data;
> >> +    int side_data_elems;
> >> +
> >> +    /**
> >>       * Duration of this packet in AVStream->time_base units, 0 if unknown.
> >>       * Equals next_pts - this_pts in presentation order.
> >>       */
> >
> > To my reading AVPacket is a public struct and therefore cannot be
> > extended without bumping major. Did we break ABI with this change?
> 
> We can add stuff, but only at the end. We probably broke ABI and this
> should have been moved to the end. We can still do that now.

Not in this struct. AVPackets are allocated statically (e.g. on the stack) 
within calling user applications, and thus adding members even at the end 
requires a major bump.

// Martin
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to