diff options
author | Alexander Voronov <avoronov@graphics.cs.msu.ru> | 2014-07-14 16:36:21 +0400 |
---|---|---|
committer | Adrian Grange <agrange@google.com> | 2014-07-15 11:06:15 -0700 |
commit | 0aa2af55b5646ffc37d00714226997df13253534 (patch) | |
tree | 6bfe213a3be0128ca37c77bf921878b462cdca71 /vp9 | |
parent | 6ce515b9ff9000740bc47bb2dfa1b80df6ec2fc9 (diff) | |
download | libvpx-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.c | 5 |
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(); |