diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-02-28 11:31:56 +0100 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-03-16 23:01:00 +0100 |
commit | d66e305bd1b4f3e91ae4e7e549148509d0811672 (patch) | |
tree | 0c2d149ae94922d03c098d08e938d3f64ee01bb9 /libavcodec/error_resilience.h | |
parent | 1c79b1625d4d257bfd01eccb84cc0ab355fb9a9e (diff) | |
download | ffmpeg-d66e305bd1b4f3e91ae4e7e549148509d0811672.tar.gz |
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().
Diffstat (limited to 'libavcodec/error_resilience.h')
-rw-r--r-- | libavcodec/error_resilience.h | 19 |
1 files changed, 16 insertions, 3 deletions
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; |