summaryrefslogtreecommitdiffstats
path: root/libavcodec/error_resilience.h
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2014-02-28 11:31:56 +0100
committerVittorio Giovara <vittorio.giovara@gmail.com>2014-03-16 23:01:00 +0100
commitd66e305bd1b4f3e91ae4e7e549148509d0811672 (patch)
tree0c2d149ae94922d03c098d08e938d3f64ee01bb9 /libavcodec/error_resilience.h
parent1c79b1625d4d257bfd01eccb84cc0ab355fb9a9e (diff)
downloadffmpeg-streaming-d66e305bd1b4f3e91ae4e7e549148509d0811672.zip
ffmpeg-streaming-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.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/libavcodec/error_resilience.h b/libavcodec/error_resilience.h
index f979656..5171094 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;
OpenPOWER on IntegriCloud