Fix segmentation fault caused by denoiser working with spatial SVC.
authorJerome Jiang <jianj@google.com>
Sat, 18 Feb 2017 01:56:08 +0000 (17:56 -0800)
committerJerome Jiang <jianj@google.com>
Tue, 21 Feb 2017 17:38:28 +0000 (09:38 -0800)
Re-enable the affected test.
BUG=webm:1374

Change-Id: I98cd49403927123546d1d0056660b98c9cb8babb

test/datarate_test.cc
vp9/encoder/vp9_encoder.c
vpx_dsp/x86/deblock_sse2.asm

index c58adb6..e66761f 100644 (file)
@@ -1228,7 +1228,7 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc2SpatialLayers) {
 
 // Check basic rate targeting for 1 pass CBR SVC with denoising.
 // 2 spatial layers and 3 temporal layer. Run CIF clip with 1 thread.
-TEST_P(DatarateOnePassCbrSvc, DISABLED_OnePassCbrSvc2SpatialLayersDenoiserOn) {
+TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc2SpatialLayersDenoiserOn) {
   cfg_.rc_buf_initial_sz = 500;
   cfg_.rc_buf_optimal_sz = 500;
   cfg_.rc_buf_sz = 1000;
index c33da10..8f9c8d0 100644 (file)
@@ -3000,8 +3000,9 @@ static void set_size_dependent_vars(VP9_COMP *cpi, int *q, int *bottom_index,
       case 6: l = 150; break;
     }
     if (!cpi->common.postproc_state.limits) {
-      cpi->common.postproc_state.limits = vpx_calloc(
-          cpi->common.width, sizeof(*cpi->common.postproc_state.limits));
+      cpi->common.postproc_state.limits =
+          vpx_calloc(cpi->un_scaled_source->y_width,
+                     sizeof(*cpi->common.postproc_state.limits));
     }
     vp9_denoise(cpi->Source, cpi->Source, l, cpi->common.postproc_state.limits);
   }
index ebca509..bd8fd12 100644 (file)
@@ -78,8 +78,8 @@
 %endmacro
 
 %macro UPDATE_FLIMIT 0
-        movdqa      xmm2,       XMMWORD PTR [rbx]
-        movdqa      [rsp],      xmm2
+        movdqu      xmm2,       XMMWORD PTR [rbx]
+        movdqu      [rsp],      xmm2
         add         rbx,        16
 %endmacro