diff options
author | hkuang <hkuang@google.com> | 2015-05-28 17:40:58 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-05-28 17:41:01 +0000 |
commit | 5317185eb09255af3e52618e08df0ec331897ff5 (patch) | |
tree | 6739c80b679cd240734d8a79ba53dc5d95443028 /vp9/encoder | |
parent | ed93470a69818c6fd7994fecbcf7fb1a7e8d2ccd (diff) | |
parent | 131cab7c27cfc64976d91ec40033894ca21ca918 (diff) | |
download | libvpx-5317185eb09255af3e52618e08df0ec331897ff5.tar libvpx-5317185eb09255af3e52618e08df0ec331897ff5.tar.gz libvpx-5317185eb09255af3e52618e08df0ec331897ff5.tar.bz2 libvpx-5317185eb09255af3e52618e08df0ec331897ff5.zip |
Merge "Add error handling when running out of free frame buffers."
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_encoder.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 1f4288387..4a7561342 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -2714,7 +2714,10 @@ void vp9_scale_references(VP9_COMP *cpi) { #if CONFIG_VP9_HIGHBITDEPTH if (ref->y_crop_width != cm->width || ref->y_crop_height != cm->height) { const int new_fb = get_free_fb(cm); - RefCntBuffer *const new_fb_ptr = &pool->frame_bufs[new_fb]; + RefCntBuffer *new_fb_ptr = NULL; + if (cm->new_fb_idx == INVALID_IDX) + return; + new_fb_ptr = &pool->frame_bufs[new_fb]; cm->cur_frame = &pool->frame_bufs[new_fb]; vp9_realloc_frame_buffer(&pool->frame_bufs[new_fb].buf, cm->width, cm->height, @@ -2726,7 +2729,10 @@ void vp9_scale_references(VP9_COMP *cpi) { #else if (ref->y_crop_width != cm->width || ref->y_crop_height != cm->height) { const int new_fb = get_free_fb(cm); - RefCntBuffer *const new_fb_ptr = &pool->frame_bufs[new_fb]; + RefCntBuffer *new_fb_ptr = NULL; + if (cm->new_fb_idx == INVALID_IDX) + return; + new_fb_ptr = &pool->frame_bufs[new_fb]; vp9_realloc_frame_buffer(&new_fb_ptr->buf, cm->width, cm->height, cm->subsampling_x, cm->subsampling_y, |