Commit 61c33385 authored by James Zern's avatar James Zern
Browse files

call vp[89]_clear_system_state after longjmp

restore the environment post encode/decode failure

Change-Id: I3c72e2260a616432eaf1f9545d4fb4d8e45cc7b0
parent 1226d133
...@@ -386,6 +386,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size, ...@@ -386,6 +386,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
decode_exit: decode_exit:
pbi->common.error.setjmp = 0; pbi->common.error.setjmp = 0;
vp8_clear_system_state();
return retcode; return retcode;
} }
int vp8dx_get_raw_frame(VP8D_COMP *pbi, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags) int vp8dx_get_raw_frame(VP8D_COMP *pbi, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags)
......
...@@ -4886,6 +4886,7 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l ...@@ -4886,6 +4886,7 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l
if (setjmp(cpi->common.error.jmp)) if (setjmp(cpi->common.error.jmp))
{ {
cpi->common.error.setjmp = 0; cpi->common.error.setjmp = 0;
vp8_clear_system_state();
return VPX_CODEC_CORRUPT_FRAME; return VPX_CODEC_CORRUPT_FRAME;
} }
......
...@@ -409,6 +409,7 @@ static vpx_codec_err_t vp8_decode(vpx_codec_alg_priv_t *ctx, ...@@ -409,6 +409,7 @@ static vpx_codec_err_t vp8_decode(vpx_codec_alg_priv_t *ctx,
if (setjmp(pbi->common.error.jmp)) if (setjmp(pbi->common.error.jmp))
{ {
pbi->common.error.setjmp = 0; pbi->common.error.setjmp = 0;
vp8_clear_system_state();
/* same return value as used in vp8dx_receive_compressed_data */ /* same return value as used in vp8dx_receive_compressed_data */
return -1; return -1;
} }
......
...@@ -246,6 +246,7 @@ int vp9_receive_compressed_data(VP9Decoder *pbi, ...@@ -246,6 +246,7 @@ int vp9_receive_compressed_data(VP9Decoder *pbi,
if (setjmp(cm->error.jmp)) { if (setjmp(cm->error.jmp)) {
cm->error.setjmp = 0; cm->error.setjmp = 0;
vp9_clear_system_state();
// We do not know if the missing frame(s) was supposed to update // We do not know if the missing frame(s) was supposed to update
// any of the reference buffers, but we act conservative and // any of the reference buffers, but we act conservative and
......
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