From eb3fdfba0932bc4f563c71106f7645c1b43d7d39 Mon Sep 17 00:00:00 2001 From: James Zern Date: Sun, 31 Aug 2014 12:21:42 -0700 Subject: [PATCH] vp9_loop_filter_frame_mt: pass VP9LfSync directly a step towards removing the pbi dependency Change-Id: I10747b325e81c172f5e67031ea5159159fc26e91 --- vp9/decoder/vp9_decodeframe.c | 3 ++- vp9/decoder/vp9_dthread.c | 4 ++-- vp9/decoder/vp9_dthread.h | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c index 08f5182..1b22572 100644 --- a/vp9/decoder/vp9_decodeframe.c +++ b/vp9/decoder/vp9_decodeframe.c @@ -1563,7 +1563,8 @@ void vp9_decode_frame(VP9Decoder *pbi, if (!xd->corrupted) { // If multiple threads are used to decode tiles, then we use those threads // to do parallel loopfiltering. - vp9_loop_filter_frame_mt(new_fb, pbi, cm, cm->lf.filter_level, 0); + vp9_loop_filter_frame_mt(&pbi->lf_row_sync, new_fb, pbi, cm, + cm->lf.filter_level, 0); } } else { *p_data_end = decode_tiles(pbi, data + first_partition_size, data_end); diff --git a/vp9/decoder/vp9_dthread.c b/vp9/decoder/vp9_dthread.c index 69e4fde..982d58a 100644 --- a/vp9/decoder/vp9_dthread.c +++ b/vp9/decoder/vp9_dthread.c @@ -133,11 +133,11 @@ static int loop_filter_row_worker(TileWorkerData *const tile_data, // VP9 decoder: Implement multi-threaded loopfilter that uses the tile // threads. -void vp9_loop_filter_frame_mt(YV12_BUFFER_CONFIG *frame, +void vp9_loop_filter_frame_mt(VP9LfSync *lf_sync, + YV12_BUFFER_CONFIG *frame, VP9Decoder *pbi, VP9_COMMON *cm, int frame_filter_level, int y_only) { - VP9LfSync *const lf_sync = &pbi->lf_row_sync; const VP9WorkerInterface *const winterface = vp9_get_worker_interface(); // Number of superblock rows and cols const int sb_rows = mi_cols_aligned_to_sb(cm->mi_rows) >> MI_BLOCK_SIZE_LOG2; diff --git a/vp9/decoder/vp9_dthread.h b/vp9/decoder/vp9_dthread.h index b1fbdeb..bd72234 100644 --- a/vp9/decoder/vp9_dthread.h +++ b/vp9/decoder/vp9_dthread.h @@ -49,7 +49,8 @@ void vp9_loop_filter_alloc(VP9LfSync *lf_sync, VP9_COMMON *cm, int rows, void vp9_loop_filter_dealloc(VP9LfSync *lf_sync); // Multi-threaded loopfilter that uses the tile threads. -void vp9_loop_filter_frame_mt(YV12_BUFFER_CONFIG *frame, +void vp9_loop_filter_frame_mt(VP9LfSync *lf_sync, + YV12_BUFFER_CONFIG *frame, struct VP9Decoder *pbi, struct VP9Common *cm, int frame_filter_level, -- 2.7.4