ref: a46ca6ec00aa0a8bdb0e0fff4ddd2db4257b3cbf
parent: 958a15f0068e9fc47bd4a4ec90902e6f398b99c6
author: James Zern <[email protected]>
date: Sat Aug 30 16:33:52 EDT 2014
vp9_loop_filter_frame_mt: defer allocations the code currently checks whether the allocation has been done instead of allocating on the first frame. since: 4f27202 vp9: fix crash in mt loopfilter w/corrupt file this change defers the allocation until the loop filter is used. Change-Id: I660c1b7f34e713a8dd9884483f01d23b9847366e
--- a/vp9/decoder/vp9_dthread.c
+++ b/vp9/decoder/vp9_dthread.c
@@ -145,14 +145,12 @@
const int num_workers = MIN(pbi->max_threads & ~1, tile_cols);
int i;
- // Allocate memory used in thread synchronization.
- // This always needs to be done even if frame_filter_level is 0.
+ if (!frame_filter_level) return;
+
if (!lf_sync->sync_range || cm->last_height != cm->height) {
vp9_loop_filter_dealloc(lf_sync);
vp9_loop_filter_alloc(lf_sync, cm, sb_rows, cm->width);
}
-
- if (!frame_filter_level) return;
vp9_loop_filter_frame_init(cm, frame_filter_level);