X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvp9dec.h;h=d82b258a3d81ba2ccd91e5f9fc2e525bdbb41c0b;hb=90262f3fb4afe4b903888e45cc40e2116cb69683;hp=66573edc7911deb646143788d57af56482878592;hpb=e645d7a6d452df83cedcbb1d6708429ceea156da;p=ffmpeg diff --git a/libavcodec/vp9dec.h b/libavcodec/vp9dec.h index 66573edc791..d82b258a3d8 100644 --- a/libavcodec/vp9dec.h +++ b/libavcodec/vp9dec.h @@ -29,6 +29,7 @@ #include #include "libavutil/buffer.h" +#include "libavutil/mem_internal.h" #include "libavutil/thread.h" #include "libavutil/internal.h" @@ -36,6 +37,8 @@ #include "vp9dsp.h" #include "vp9shared.h" +#define REF_INVALID_SCALE 0xFFFF + enum MVJoint { MV_JOINT_ZERO, MV_JOINT_H, @@ -152,6 +155,10 @@ typedef struct VP9Context { int block_alloc_using_2pass; uint16_t mvscale[3][2]; uint8_t mvstep[3][2]; + + // frame specific buffer pools + AVBufferPool *frame_extradata_pool; + int frame_extradata_pool_size; } VP9Context; struct VP9TileData { @@ -217,6 +224,16 @@ struct VP9TileData { struct { int x, y; } min_mv, max_mv; int16_t *block_base, *block, *uvblock_base[2], *uvblock[2]; uint8_t *eob_base, *uveob_base[2], *eob, *uveob[2]; + + // error message + int error_info; + struct { + unsigned int row:13; + unsigned int col:13; + unsigned int block_size_idx_x:2; + unsigned int block_size_idx_y:2; + } *block_structure; + unsigned int nb_block_structure; }; void ff_vp9_fill_mv(VP9TileData *td, VP56mv *mv, int mode, int sb);