X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavcodec%2Fvp56.h;h=8c6ba14ada27c0e9d2de29b3c9896b3032c90aee;hb=09031b4639667273354d6bcd1705d9f24fc9bdd4;hp=27539c7932cc9c90aa9b4cd7c88cbc7797870db2;hpb=e4cbf7529ba4bcfff47c44b0d026ecb356004c8c;p=ffmpeg diff --git a/libavcodec/vp56.h b/libavcodec/vp56.h index 27539c7932c..8c6ba14ada2 100644 --- a/libavcodec/vp56.h +++ b/libavcodec/vp56.h @@ -30,6 +30,8 @@ #include "dsputil.h" #include "get_bits.h" #include "bytestream.h" +#include "h264chroma.h" +#include "videodsp.h" #include "vp3dsp.h" #include "vp56dsp.h" @@ -40,6 +42,8 @@ typedef struct VP56mv { int16_t y; } VP56mv; +#define VP56_SIZE_CHANGE 1 + typedef void (*VP56ParseVectorAdjustment)(VP56Context *s, VP56mv *vect); typedef void (*VP56Filter)(VP56Context *s, uint8_t *dst, uint8_t *src, @@ -64,7 +68,7 @@ typedef struct VP56RangeCoder { typedef struct VP56RefDc { uint8_t not_null_dc; VP56Frame ref_frame; - DCTELEM dc_coeff; + int16_t dc_coeff; } VP56RefDc; typedef struct VP56Macroblock { @@ -92,6 +96,8 @@ typedef struct VP56Model { struct vp56_context { AVCodecContext *avctx; DSPContext dsp; + H264ChromaContext h264chroma; + VideoDSPContext vdsp; VP3DSPContext vp3dsp; VP56DSPContext vp56dsp; ScanTable scantable; @@ -120,12 +126,12 @@ struct vp56_context { VP56RefDc *above_blocks; VP56RefDc left_block[4]; int above_block_idx[6]; - DCTELEM prev_dc[3][3]; /* [plan][ref_frame] */ + int16_t prev_dc[3][3]; /* [plan][ref_frame] */ /* blocks / macroblock */ VP56mb mb_type; VP56Macroblock *macroblocks; - DECLARE_ALIGNED(16, DCTELEM, block_coeff)[6][64]; + DECLARE_ALIGNED(16, int16_t, block_coeff)[6][64]; /* motion vectors */ VP56mv mv[6]; /* vectors for each block in MB */ @@ -176,7 +182,7 @@ struct vp56_context { void ff_vp56_init(AVCodecContext *avctx, int flip, int has_alpha); int ff_vp56_free(AVCodecContext *avctx); void ff_vp56_init_dequant(VP56Context *s, int quantizer); -int ff_vp56_decode_frame(AVCodecContext *avctx, void *data, int *data_size, +int ff_vp56_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt);