From d66e305bd1b4f3e91ae4e7e549148509d0811672 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Fri, 28 Feb 2014 11:31:56 +0100 Subject: er: move relevant fields from Picture to ERPicture This is done to disentangle ER from mpegvideo. In order to use a classic Picture, callers can use ff_mpeg_set_erpic() or use a custom function to set the fields. Please note that buffers need to be allocated before calling ff_er_frame_end(). --- libavcodec/error_resilience.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'libavcodec/error_resilience.h') diff --git a/libavcodec/error_resilience.h b/libavcodec/error_resilience.h index f979656ab7..5171094a54 100644 --- a/libavcodec/error_resilience.h +++ b/libavcodec/error_resilience.h @@ -24,6 +24,7 @@ #include "avcodec.h" #include "dsputil.h" +#include "thread.h" ///< current MB is the first after a resync marker #define VP_START 1 @@ -37,6 +38,18 @@ #define ER_MB_ERROR (ER_AC_ERROR|ER_DC_ERROR|ER_MV_ERROR) #define ER_MB_END (ER_AC_END|ER_DC_END|ER_MV_END) +typedef struct ERPicture { + AVFrame *f; + ThreadFrame *tf; + + // it's the caller responsability to allocate these buffers + int16_t (*motion_val[2])[2]; + int8_t *ref_index[2]; + + uint32_t *mb_type; + int field_picture; +} ERPicture; + typedef struct ERContext { AVCodecContext *avctx; DSPContext *dsp; @@ -55,9 +68,9 @@ typedef struct ERContext { uint8_t *mbintra_table; int mv[2][4][2]; - struct Picture *cur_pic; - struct Picture *last_pic; - struct Picture *next_pic; + ERPicture cur_pic; + ERPicture last_pic; + ERPicture next_pic; uint16_t pp_time; uint16_t pb_time; -- cgit v1.2.3