Commit 8628898a authored by James Zern's avatar James Zern

vp10_receive_raw_frame: add missing setjmp

allocations done within this function are protected with
vpx_internal_error; adding the setjmp fixes a crash in
vp10_lookahead_push() under low memory conditions.

Change-Id: I5515017cd71b218840c506791b3a517da7ffc93e
parent 6c323e35
......@@ -3808,13 +3808,22 @@ static void setup_denoiser_buffer(VP10_COMP *cpi) {
int vp10_receive_raw_frame(VP10_COMP *cpi, unsigned int frame_flags,
YV12_BUFFER_CONFIG *sd, int64_t time_stamp,
int64_t end_time) {
VP10_COMMON *cm = &cpi->common;
VP10_COMMON *volatile const cm = &cpi->common;
struct vpx_usec_timer timer;
int res = 0;
volatile int res = 0;
const int subsampling_x = sd->subsampling_x;
const int subsampling_y = sd->subsampling_y;
#if CONFIG_VP9_HIGHBITDEPTH
const int use_highbitdepth = sd->flags & YV12_FLAG_HIGHBITDEPTH;
const int use_highbitdepth = (sd->flags & YV12_FLAG_HIGHBITDEPTH) != 0;
#endif
if (setjmp(cm->error.jmp)) {
cm->error.setjmp = 0;
return -1;
}
cm->error.setjmp = 1;
#if CONFIG_VP9_HIGHBITDEPTH
check_initial_width(cpi, use_highbitdepth, subsampling_x, subsampling_y);
#else
check_initial_width(cpi, subsampling_x, subsampling_y);
......@@ -3847,6 +3856,7 @@ int vp10_receive_raw_frame(VP10_COMP *cpi, unsigned int frame_flags,
res = -1;
}
cm->error.setjmp = 0;
return res;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment