summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/ffmpeg/libavcodec/error_resilience.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/ffmpeg/libavcodec/error_resilience.h')
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/error_resilience.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/chromium/third_party/ffmpeg/libavcodec/error_resilience.h b/chromium/third_party/ffmpeg/libavcodec/error_resilience.h
index 970fdc20665..9d227e87a15 100644
--- a/chromium/third_party/ffmpeg/libavcodec/error_resilience.h
+++ b/chromium/third_party/ffmpeg/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's responsibility 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,12 @@ 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;
+
+ AVBufferRef *ref_index_buf[2];
+ AVBufferRef *motion_val_buf[2];
uint16_t pp_time;
uint16_t pb_time;