diff options
author | Johann Koenig <johannkoenig@chromium.org> | 2016-03-29 22:36:42 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-03-29 22:36:42 +0000 |
commit | 904cb53302dfebee4a0d795ad6ccebdd5da5f542 (patch) | |
tree | 1627423c1783611e12bc63f7f8e3d3d9ca88aa90 | |
parent | aea8d97a74ae8102a864baa1439dd4f4f25555e9 (diff) | |
parent | 6f51672c4ec334e3978301ecb3c6847c2d33b19b (diff) | |
download | libvpx-904cb53302dfebee4a0d795ad6ccebdd5da5f542.tar libvpx-904cb53302dfebee4a0d795ad6ccebdd5da5f542.tar.gz libvpx-904cb53302dfebee4a0d795ad6ccebdd5da5f542.tar.bz2 libvpx-904cb53302dfebee4a0d795ad6ccebdd5da5f542.zip |
Merge "Properly propagate out of memory errors."
-rw-r--r-- | vp9/decoder/vp9_decoder.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c index f5da07ea0..6c9c0f73a 100644 --- a/vp9/decoder/vp9_decoder.c +++ b/vp9/decoder/vp9_decoder.c @@ -213,8 +213,11 @@ vpx_codec_err_t vp9_set_reference_dec(VP9_COMMON *cm, // Find an empty frame buffer. const int free_fb = get_free_fb(cm); - if (cm->new_fb_idx == INVALID_IDX) - return VPX_CODEC_MEM_ERROR; + if (cm->new_fb_idx == INVALID_IDX) { + vpx_internal_error(&cm->error, VPX_CODEC_MEM_ERROR, + "Unable to find free frame buffer"); + return cm->error.error_code; + } // Decrease ref_count since it will be increased again in // ref_cnt_fb() below. @@ -305,8 +308,11 @@ int vp9_receive_compressed_data(VP9Decoder *pbi, &frame_bufs[cm->new_fb_idx].raw_frame_buffer); // Find a free frame buffer. Return error if can not find any. cm->new_fb_idx = get_free_fb(cm); - if (cm->new_fb_idx == INVALID_IDX) - return VPX_CODEC_MEM_ERROR; + if (cm->new_fb_idx == INVALID_IDX) { + vpx_internal_error(&cm->error, VPX_CODEC_MEM_ERROR, + "Unable to find free frame buffer"); + return cm->error.error_code; + } // Assign a MV array to the frame buffer. cm->cur_frame = &pool->frame_bufs[cm->new_fb_idx]; |