| Index: source/libvpx/vp9/decoder/vp9_decoder.c
|
| diff --git a/source/libvpx/vp9/decoder/vp9_decoder.c b/source/libvpx/vp9/decoder/vp9_decoder.c
|
| index 288d8690ca244fb2c9ded53f629e83af974d66ae..7991a39e61019529a505966886d5251fb7f95524 100644
|
| --- a/source/libvpx/vp9/decoder/vp9_decoder.c
|
| +++ b/source/libvpx/vp9/decoder/vp9_decoder.c
|
| @@ -50,7 +50,6 @@ static void initialize_dec(void) {
|
|
|
| static void vp9_dec_setup_mi(VP9_COMMON *cm) {
|
| cm->mi = cm->mip + cm->mi_stride + 1;
|
| - memset(cm->mip, 0, cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->mip));
|
| cm->mi_grid_visible = cm->mi_grid_base + cm->mi_stride + 1;
|
| memset(cm->mi_grid_base, 0,
|
| cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->mi_grid_base));
|
| @@ -212,6 +211,9 @@ 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;
|
| +
|
| // Decrease ref_count since it will be increased again in
|
| // ref_cnt_fb() below.
|
| --frame_bufs[free_fb].ref_count;
|
| @@ -299,7 +301,10 @@ int vp9_receive_compressed_data(VP9Decoder *pbi,
|
| && frame_bufs[cm->new_fb_idx].ref_count == 0)
|
| pool->release_fb_cb(pool->cb_priv,
|
| &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;
|
|
|
| // Assign a MV array to the frame buffer.
|
| cm->cur_frame = &pool->frame_bufs[cm->new_fb_idx];
|
|
|