#ifndef AVCODEC_CAVS_H
#define AVCODEC_CAVS_H
-#include "dsputil.h"
-#include "mpegvideo.h"
#include "cavsdsp.h"
+#include "dsputil.h"
+#include "h264chroma.h"
+#include "get_bits.h"
+#include "videodsp.h"
#define SLICE_MAX_START_CODE 0x000001af
#define EXT_START_CODE 0x000001b5
int8_t max_run;
};
-typedef struct {
- MpegEncContext s;
- CAVSDSPContext cdsp;
- Picture picture; ///< currently decoded frame
- Picture DPB[2]; ///< reference frames
+typedef struct AVSFrame {
+ AVFrame *f;
+ int poc;
+} AVSFrame;
+
+typedef struct AVSContext {
+ AVCodecContext *avctx;
+ DSPContext dsp;
+ H264ChromaContext h264chroma;
+ VideoDSPContext vdsp;
+ CAVSDSPContext cdsp;
+ GetBitContext gb;
+ AVSFrame cur; ///< currently decoded frame
+ AVSFrame DPB[2]; ///< reference frames
int dist[2]; ///< temporal distances from current frame to ref frames
+ int low_delay;
int profile, level;
int aspect_ratio;
int mb_width, mb_height;
- int pic_type;
+ int width, height;
int stream_revision; ///<0 for samples from 2006, 1 for rm52j encoder
int progressive;
int pic_structure;
6: A3 X2 X3 */
int pred_mode_Y[3*3];
int *top_pred_Y;
- int l_stride, c_stride;
+ ptrdiff_t l_stride, c_stride;
int luma_scan[4];
int qp;
int qp_fixed;
int direct_den[2]; ///< for scaling in direct B block
int scale_den[2]; ///< for scaling neighbouring MVs
+ uint8_t *edge_emu_buffer;
+
int got_keyframe;
- DCTELEM *block;
+ int16_t *block;
} AVSContext;
extern const uint8_t ff_cavs_partition_flags[30];