]> granicus.if.org Git - libvpx/commitdiff
Fix for crash in highbitdepth rt mode
authorPeter de Rivaz <peter.derivaz@gmail.com>
Tue, 16 Dec 2014 10:55:49 +0000 (10:55 +0000)
committerPeter de Rivaz <peter.derivaz@gmail.com>
Tue, 16 Dec 2014 10:55:49 +0000 (10:55 +0000)
Change 72141 introduced a new use of vp9_avg_4x4.
This call needs to switch to using vp9_highbd_avg_4x4
when performing high bitdepth encodes.

Change-Id: I6a8ba4b62f8a75d0a917b365a55245e2f0438ea1

vp9/encoder/vp9_encodeframe.c

index 8f6fbf9622b33fe5c0fe5085a7cf4f5082c5d2c7..86023a5e8b80b21f2ce9a6199bc4b89e7b6bdf41 100644 (file)
@@ -593,7 +593,16 @@ static void choose_partitioning(VP9_COMP *cpi,
             unsigned int sse = 0;
             int sum = 0;
             if (x4_idx < pixels_wide && y4_idx < pixels_high) {
+#if CONFIG_VP9_HIGHBITDEPTH
+              int s_avg;
+              if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
+                s_avg = vp9_highbd_avg_4x4(s + y4_idx * sp + x4_idx, sp);
+              } else {
+                s_avg = vp9_avg_4x4(s + y4_idx * sp + x4_idx, sp);
+              }
+#else
               int s_avg = vp9_avg_4x4(s + y4_idx * sp + x4_idx, sp);
+#endif
               // For key frame, reference is set to 128.
               sum = s_avg - 128;
               sse = sum * sum;