call vp[89]_clear_system_state after longjmp
restore the environment post encode/decode failure Change-Id: I3c72e2260a616432eaf1f9545d4fb4d8e45cc7b0
This commit is contained in:
Родитель
1226d133df
Коммит
61c3338516
|
@ -386,6 +386,7 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
|
|||
|
||||
decode_exit:
|
||||
pbi->common.error.setjmp = 0;
|
||||
vp8_clear_system_state();
|
||||
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)
|
||||
|
|
|
@ -4886,6 +4886,7 @@ int vp8_get_compressed_data(VP8_COMP *cpi, unsigned int *frame_flags, unsigned l
|
|||
if (setjmp(cpi->common.error.jmp))
|
||||
{
|
||||
cpi->common.error.setjmp = 0;
|
||||
vp8_clear_system_state();
|
||||
return VPX_CODEC_CORRUPT_FRAME;
|
||||
}
|
||||
|
||||
|
|
|
@ -409,6 +409,7 @@ static vpx_codec_err_t vp8_decode(vpx_codec_alg_priv_t *ctx,
|
|||
if (setjmp(pbi->common.error.jmp))
|
||||
{
|
||||
pbi->common.error.setjmp = 0;
|
||||
vp8_clear_system_state();
|
||||
/* same return value as used in vp8dx_receive_compressed_data */
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -246,6 +246,7 @@ int vp9_receive_compressed_data(VP9Decoder *pbi,
|
|||
|
||||
if (setjmp(cm->error.jmp)) {
|
||||
cm->error.setjmp = 0;
|
||||
vp9_clear_system_state();
|
||||
|
||||
// We do not know if the missing frame(s) was supposed to update
|
||||
// any of the reference buffers, but we act conservative and
|
||||
|
|
Загрузка…
Ссылка в новой задаче