diff options
author | hkuang <hkuang@google.com> | 2014-04-09 14:20:00 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-04-10 17:18:16 +0000 |
commit | 4fb68e5dd4e93c7599dc905d861de11ac39c5585 (patch) | |
tree | a9a16f0806a169ec4291bcd60bbfefccebb338d4 /libvpx/vp8 | |
parent | 2ec72e65689c948e92b826ae1e867bf369e72f13 (diff) | |
download | android_external_libvpx-4fb68e5dd4e93c7599dc905d861de11ac39c5585.tar.gz android_external_libvpx-4fb68e5dd4e93c7599dc905d861de11ac39c5585.tar.bz2 android_external_libvpx-4fb68e5dd4e93c7599dc905d861de11ac39c5585.zip |
Roll latest libvpx to fix hang when doing adaptive playback.
VP9 decoder will hang when switching from frames with 2 tiles to
4 tiles on a 4 core device.
libvpx hash:4fffefe189a9123d4b04482c26a1be5eb632b397
(cherry picked from commit 6ac915abcdb404a00d927fe6308a47fcf09d9519)
Bug: 13931133
Change-Id: I24a51fd572ca7e872bc440491e2c645a20e9a736
Diffstat (limited to 'libvpx/vp8')
-rw-r--r-- | libvpx/vp8/common/loopfilter.c | 1 | ||||
-rw-r--r-- | libvpx/vp8/common/postproc.c | 4 | ||||
-rw-r--r-- | libvpx/vp8/common/x86/postproc_mmx.asm | 7 | ||||
-rw-r--r-- | libvpx/vp8/common/x86/postproc_sse2.asm | 7 |
4 files changed, 12 insertions, 7 deletions
diff --git a/libvpx/vp8/common/loopfilter.c b/libvpx/vp8/common/loopfilter.c index 19857a7..7a07e76 100644 --- a/libvpx/vp8/common/loopfilter.c +++ b/libvpx/vp8/common/loopfilter.c @@ -15,7 +15,6 @@ #include "onyxc_int.h" #include "vpx_mem/vpx_mem.h" -typedef unsigned char uc; static void lf_init_lut(loop_filter_info_n *lfi) { diff --git a/libvpx/vp8/common/postproc.c b/libvpx/vp8/common/postproc.c index e3bee32..7d0fbf6 100644 --- a/libvpx/vp8/common/postproc.c +++ b/libvpx/vp8/common/postproc.c @@ -303,8 +303,8 @@ void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols, i { d[r&15] = (rv2[r&127] + sum + s[0]) >> 4; } - - s[-8*pitch] = d[(r-8)&15]; + if (r >= 8) + s[-8*pitch] = d[(r-8)&15]; s += pitch; } } diff --git a/libvpx/vp8/common/x86/postproc_mmx.asm b/libvpx/vp8/common/x86/postproc_mmx.asm index 5cf110b..8be3431 100644 --- a/libvpx/vp8/common/x86/postproc_mmx.asm +++ b/libvpx/vp8/common/x86/postproc_mmx.asm @@ -204,13 +204,16 @@ sym(vp8_mbpost_proc_down_mmx): and rcx, 15 movd DWORD PTR [rsp+rcx*4], mm1 ;d[rcx*4] + cmp edx, 8 + jl .skip_assignment + mov rcx, rdx sub rcx, 8 - and rcx, 15 movd mm1, DWORD PTR [rsp+rcx*4] ;d[rcx*4] - movd [rsi], mm1 + +.skip_assignment lea rsi, [rsi+rax] lea rdi, [rdi+rax] diff --git a/libvpx/vp8/common/x86/postproc_sse2.asm b/libvpx/vp8/common/x86/postproc_sse2.asm index 00f84a3..f53daa7 100644 --- a/libvpx/vp8/common/x86/postproc_sse2.asm +++ b/libvpx/vp8/common/x86/postproc_sse2.asm @@ -425,13 +425,16 @@ sym(vp8_mbpost_proc_down_xmm): and rcx, 15 movq QWORD PTR [rsp + rcx*8], xmm1 ;d[rcx*8] + cmp edx, 8 + jl .skip_assignment + mov rcx, rdx sub rcx, 8 - and rcx, 15 movq mm0, [rsp + rcx*8] ;d[rcx*8] - movq [rsi], mm0 + +.skip_assignment lea rsi, [rsi+rax] lea rdi, [rdi+rax] |