From fc567ac49e17151f00f31b59030cd10f952612ef Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <michaelni@gmx.at> Date: Tue, 18 Mar 2014 00:08:54 +0100 Subject: [PATCH] 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> --- libavcodec/h264.h | 1 + libavcodec/mpegvideo.h | 1 + libavcodec/utils.c | 1 + 3 files changed, 3 insertions(+) diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 7f738d58ca3..72622397476 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -289,6 +289,7 @@ typedef struct MMCO { typedef struct H264Picture { struct AVFrame f; + uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame ThreadFrame tf; AVBufferRef *qscale_table_buf; diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index ec1ec7d31e7..cfbbb0653c6 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -93,6 +93,7 @@ struct MpegEncContext; */ typedef struct Picture{ struct AVFrame f; + uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame ThreadFrame tf; AVBufferRef *qscale_table_buf; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index cd04ca2aaf1..19df3cc7481 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -807,6 +807,7 @@ int avcodec_default_get_buffer(AVCodecContext *avctx, AVFrame *frame) typedef struct CompatReleaseBufPriv { AVCodecContext avctx; AVFrame frame; + uint8_t avframe_padding[1024]; // hack to allow linking to a avutil with larger AVFrame } CompatReleaseBufPriv; static void compat_free_buffer(void *opaque, uint8_t *data) -- GitLab