diff --git a/media/libvpx/libvpx/vp8/common/alloccommon.c b/media/libvpx/libvpx/vp8/common/alloccommon.c index 722b158c3a..c93647fb7f 100644 --- a/media/libvpx/libvpx/vp8/common/alloccommon.c +++ b/media/libvpx/libvpx/vp8/common/alloccommon.c @@ -34,7 +34,7 @@ void vp8_de_alloc_frame_buffers(VP8_COMMON *oci) { oci->pp_limits_buffer = NULL; vpx_free(oci->postproc_state.generated_noise); - oci->postproc_state.generated_noise = NULL; + memset(&oci->postproc_state, 0, sizeof(oci->postproc_state)); #endif vpx_free(oci->above_context); @@ -42,10 +42,14 @@ void vp8_de_alloc_frame_buffers(VP8_COMMON *oci) { #if CONFIG_ERROR_CONCEALMENT vpx_free(oci->prev_mip); oci->prev_mip = NULL; + oci->prev_mi = NULL; #endif oci->above_context = NULL; oci->mip = NULL; + oci->mi = NULL; + oci->show_frame_mi = NULL; + oci->frame_to_show = NULL; } int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) { diff --git a/media/libvpx/reset_post_proc_state.patch b/media/libvpx/reset_post_proc_state.patch new file mode 100644 index 0000000000..ea76e90d46 --- /dev/null +++ b/media/libvpx/reset_post_proc_state.patch @@ -0,0 +1,32 @@ +# HG changeset patch +# User Jan-Ivar Bruaroey + +Bug 2029423 - Reset post_proc state. + +diff --git a/vp8/common/alloccommon.c b/vp8/common/alloccommon.c +--- a/vp8/common/alloccommon.c ++++ b/vp8/common/alloccommon.c +@@ -34,7 +34,7 @@ void vp8_de_alloc_frame_buffers(VP8_COMM + oci->pp_limits_buffer = NULL; + + vpx_free(oci->postproc_state.generated_noise); +- oci->postproc_state.generated_noise = NULL; ++ memset(&oci->postproc_state, 0, sizeof(oci->postproc_state)); + #endif + + vpx_free(oci->above_context); +@@ -42,10 +42,14 @@ void vp8_de_alloc_frame_buffers(VP8_COMM + #if CONFIG_ERROR_CONCEALMENT + vpx_free(oci->prev_mip); + oci->prev_mip = NULL; ++ oci->prev_mi = NULL; + #endif + + oci->above_context = NULL; + oci->mip = NULL; ++ oci->mi = NULL; ++ oci->show_frame_mi = NULL; ++ oci->frame_to_show = NULL; + } + + int vp8_alloc_frame_buffers(VP8_COMMON *oci, int width, int height) { \ No newline at end of file diff --git a/media/libvpx/update.py b/media/libvpx/update.py index 18d7166382..a673ce923d 100644 --- a/media/libvpx/update.py +++ b/media/libvpx/update.py @@ -46,6 +46,8 @@ def apply_patches(): os.system("patch -p1 < vp9_svc.patch") # Cherrypick fix from upstream os.system("patch -p3 < bug1480092.patch") + # Bug 2029423 Resetr post_proc state + os.system("patch -p3 < reset_post_proc_state.patch") def update_readme(commit): with open('README_MOZILLA') as f: