diff options
author | Jerome Jiang <jianj@google.com> | 2018-08-07 11:10:26 -0700 |
---|---|---|
committer | Jerome Jiang <jianj@google.com> | 2018-10-31 11:42:28 -0700 |
commit | f3a027a46de103c97f9f413fea003dc3d97e2cfc (patch) | |
tree | a90e3eb5b7f6e1da6e04f7907fd28623a4ef7a32 /vp8/common/blockd.h | |
parent | 97e7da486242842f2636067ae6bbc7aa21405ea3 (diff) | |
download | libvpx-f3a027a46de103c97f9f413fea003dc3d97e2cfc.tar libvpx-f3a027a46de103c97f9f413fea003dc3d97e2cfc.tar.gz libvpx-f3a027a46de103c97f9f413fea003dc3d97e2cfc.tar.bz2 libvpx-f3a027a46de103c97f9f413fea003dc3d97e2cfc.zip |
vp8: fix to address overflow in decoder.
Can't call internal error from the decoder thread.
Add vpx_internal_error_info to MACROBLOCKD. When corrupted frame
detected, the decoder thread returns to its own context and signal
completion of decoding for current frame.
The main decoding thread will detect error too and return error code to
decoding API call.
Each thread will signal end of decoding of the frame. Main thread waits
for the signal of all other threads to start decoding next frame.
BUG=875626,webm:1496
Change-Id: Icd05fbc558893a4e7d8532c1e7177e7550283a64
Diffstat (limited to 'vp8/common/blockd.h')
-rw-r--r-- | vp8/common/blockd.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/vp8/common/blockd.h b/vp8/common/blockd.h index 22af8980b..cb8de0caf 100644 --- a/vp8/common/blockd.h +++ b/vp8/common/blockd.h @@ -13,6 +13,7 @@ void vpx_log(const char *format, ...); +#include "vpx/internal/vpx_codec_internal.h" #include "vpx_config.h" #include "vpx_scale/yv12config.h" #include "mv.h" @@ -288,6 +289,8 @@ typedef struct macroblockd { int corrupted; + struct vpx_internal_error_info error_info; + #if ARCH_X86 || ARCH_X86_64 /* This is an intermediate buffer currently used in sub-pixel motion search * to keep a copy of the reference area. This buffer can be used for other |