Browse Source

avcodec: Add padding after the remaining AVFrames

This limits ABI issues in case libavcodec is linked to a libavutil with larger AVFrame
Which can happen if they are shiped in seperate binary packages and libavutil is upgraded

A cleaner alternative would be to replace them by pointers but this would likely cause
a small speedloss

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.3
Michael Niedermayer 11 years ago
parent
commit
fc567ac49e
3 changed files with 3 additions and 0 deletions
  1. +1
    -0
      libavcodec/h264.h
  2. +1
    -0
      libavcodec/mpegvideo.h
  3. +1
    -0
      libavcodec/utils.c

+ 1
- 0
libavcodec/h264.h View File

@@ -289,6 +289,7 @@ typedef struct MMCO {


typedef struct H264Picture { typedef struct H264Picture {
struct AVFrame f; struct AVFrame f;
uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame
ThreadFrame tf; ThreadFrame tf;


AVBufferRef *qscale_table_buf; AVBufferRef *qscale_table_buf;


+ 1
- 0
libavcodec/mpegvideo.h View File

@@ -93,6 +93,7 @@ struct MpegEncContext;
*/ */
typedef struct Picture{ typedef struct Picture{
struct AVFrame f; struct AVFrame f;
uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame
ThreadFrame tf; ThreadFrame tf;


AVBufferRef *qscale_table_buf; AVBufferRef *qscale_table_buf;


+ 1
- 0
libavcodec/utils.c View File

@@ -807,6 +807,7 @@ int avcodec_default_get_buffer(AVCodecContext *avctx, AVFrame *frame)
typedef struct CompatReleaseBufPriv { typedef struct CompatReleaseBufPriv {
AVCodecContext avctx; AVCodecContext avctx;
AVFrame frame; AVFrame frame;
uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame
} CompatReleaseBufPriv; } CompatReleaseBufPriv;


static void compat_free_buffer(void *opaque, uint8_t *data) static void compat_free_buffer(void *opaque, uint8_t *data)


Loading…
Cancel
Save