summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorAlexander Voronov <avoronov@graphics.cs.msu.ru>2014-07-14 16:36:21 +0400
committerAdrian Grange <agrange@google.com>2014-07-15 11:06:15 -0700
commit0aa2af55b5646ffc37d00714226997df13253534 (patch)
tree6bfe213a3be0128ca37c77bf921878b462cdca71 /vp9
parent6ce515b9ff9000740bc47bb2dfa1b80df6ec2fc9 (diff)
downloadlibvpx-0aa2af55b5646ffc37d00714226997df13253534.tar
libvpx-0aa2af55b5646ffc37d00714226997df13253534.tar.gz
libvpx-0aa2af55b5646ffc37d00714226997df13253534.tar.bz2
libvpx-0aa2af55b5646ffc37d00714226997df13253534.zip
Fix show_existing_frame not decreasing frame buffer ref counter.
The issue was introduced by commit g7c43fb6. If current frame is repeated from existing-ref pool, frame buffer ref counter is not decreased, so buffer isn't released. Decoder fails being unable to allocate new frame buffer at some point. Added a test vector to verify that the condition will not recur later. Test vector was generated by the code in this patch: https://gerrit.chromium.org/gerrit/#/c/70862/ Change-Id: I8af96eb5b9670176e01a281d2e18bd458712cf78
Diffstat (limited to 'vp9')
-rw-r--r--vp9/decoder/vp9_decoder.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c
index e32637b06..0343c214c 100644
--- a/vp9/decoder/vp9_decoder.c
+++ b/vp9/decoder/vp9_decoder.c
@@ -268,10 +268,7 @@ int vp9_receive_compressed_data(VP9Decoder *pbi,
vp9_decode_frame(pbi, source, source + size, psource);
- if (!cm->show_existing_frame)
- swap_frame_buffers(pbi);
- else
- cm->frame_to_show = get_frame_new_buffer(cm);
+ swap_frame_buffers(pbi);
vp9_clear_system_state();