summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorhkuang <hkuang@google.com>2015-05-28 17:40:58 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-05-28 17:41:01 +0000
commit5317185eb09255af3e52618e08df0ec331897ff5 (patch)
tree6739c80b679cd240734d8a79ba53dc5d95443028 /vp9/encoder
parented93470a69818c6fd7994fecbcf7fb1a7e8d2ccd (diff)
parent131cab7c27cfc64976d91ec40033894ca21ca918 (diff)
downloadlibvpx-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.c10
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,