Commit 9e46dcd2 authored by Dmitry Kovalev's avatar Dmitry Kovalev Committed by Gerrit Code Review
Browse files

Merge "Moving dqcoeff array to MACROBLOCKD in decoder."

Showing with 12 additions and 29 deletions
......@@ -235,7 +235,8 @@ typedef struct macroblockd {
int corrupted;
/* Y,U,V,(A) */
DECLARE_ALIGNED(16, int16_t, dqcoeff[MAX_MB_PLANE][64 * 64]);
ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
ENTROPY_CONTEXT left_context[MAX_MB_PLANE][16];
......@@ -243,7 +244,12 @@ typedef struct macroblockd {
PARTITION_CONTEXT left_seg_context[8];
} MACROBLOCKD;
static INLINE void init_macroblockd(MACROBLOCKD *xd) {
int i;
for (i = 0; i < MAX_MB_PLANE; ++i)
xd->plane[i].dqcoeff = xd->dqcoeff[i];
}
static INLINE BLOCK_SIZE get_subsize(BLOCK_SIZE bsize,
PARTITION_TYPE partition) {
......
......@@ -853,17 +853,6 @@ static const uint8_t *decode_tiles(VP9D_COMP *pbi,
return end;
}
static void setup_tile_macroblockd(TileWorkerData *const tile_data) {
MACROBLOCKD *xd = &tile_data->xd;
struct macroblockd_plane *const pd = xd->plane;
int i;
for (i = 0; i < MAX_MB_PLANE; ++i) {
pd[i].dqcoeff = tile_data->dqcoeff[i];
vpx_memset(xd->plane[i].dqcoeff, 0, 64 * 64 * sizeof(int16_t));
}
}
static int tile_worker_hook(void *arg1, void *arg2) {
TileWorkerData *const tile_data = (TileWorkerData*)arg1;
const TileInfo *const tile = (TileInfo*)arg2;
......@@ -990,8 +979,10 @@ static const uint8_t *decode_tiles_mt(VP9D_COMP *pbi,
setup_token_decoder(buf->data, data_end, buf->size, &cm->error,
&tile_data->bit_reader);
setup_tile_context(cm, &tile_data->xd, 0, buf->col);
setup_tile_macroblockd(tile_data);
init_macroblockd(&tile_data->xd);
vp9_zero(tile_data->xd.dqcoeff);
worker->had_error = 0;
if (i == num_workers - 1 || n == tile_cols - 1) {
......@@ -1281,7 +1272,6 @@ static void debug_check_frame_counts(const VP9_COMMON *const cm) {
int vp9_decode_frame(VP9D_COMP *pbi,
const uint8_t *data, const uint8_t *data_end,
const uint8_t **p_data_end) {
int i;
VP9_COMMON *const cm = &pbi->common;
MACROBLOCKD *const xd = &pbi->mb;
......@@ -1330,8 +1320,7 @@ int vp9_decode_frame(VP9D_COMP *pbi,
cm->fc = cm->frame_contexts[cm->frame_context_idx];
vp9_zero(cm->counts);
for (i = 0; i < MAX_MB_PLANE; ++i)
vpx_memset(xd->plane[i].dqcoeff, 0, 64 * 64 * sizeof(int16_t));
vp9_zero(xd->dqcoeff);
xd->corrupted = 0;
new_fb->corrupted = read_compressed_header(pbi, data, first_partition_size);
......
......@@ -110,15 +110,6 @@ void vp9_initialize_dec() {
}
}
static void init_macroblockd(VP9D_COMP *const pbi) {
MACROBLOCKD *xd = &pbi->mb;
struct macroblockd_plane *const pd = xd->plane;
int i;
for (i = 0; i < MAX_MB_PLANE; ++i)
pd[i].dqcoeff = pbi->dqcoeff[i];
}
VP9D_COMP *vp9_create_decompressor(const VP9D_CONFIG *oxcf) {
VP9D_COMP *const pbi = vpx_memalign(32, sizeof(VP9D_COMP));
VP9_COMMON *const cm = pbi ? &pbi->common : NULL;
......@@ -156,7 +147,7 @@ VP9D_COMP *vp9_create_decompressor(const VP9D_CONFIG *oxcf) {
cm->error.setjmp = 0;
pbi->decoded_key_frame = 0;
init_macroblockd(pbi);
init_macroblockd(&pbi->mb);
vp9_worker_init(&pbi->lf_worker);
......
......@@ -40,8 +40,6 @@ typedef struct VP9Decompressor {
DECLARE_ALIGNED(16, VP9_COMMON, common);
DECLARE_ALIGNED(16, int16_t, dqcoeff[MAX_MB_PLANE][64 * 64]);
VP9D_CONFIG oxcf;
int64_t last_time_stamp;
......
......@@ -24,7 +24,6 @@ typedef struct TileWorkerData {
struct VP9Common *cm;
vp9_reader bit_reader;
DECLARE_ALIGNED(16, struct macroblockd, xd);
DECLARE_ALIGNED(16, int16_t, dqcoeff[MAX_MB_PLANE][64 * 64]);
// Row-based parallel loopfilter data
LFWorkerData lfdata;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment