shithub: libvpx

Download patch

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);