throughout vp3_decode_frame the error code was being captured (ret) but never
returned.
---
libavcodec/vp3.c | 22 +++---
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index d53dd87029..2ae54255c6 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -2741,7 +2741,7 @@ static int vp3_decode_frame(AVCodecContext *avctx,
s->current_frame.f->pict_type = s->keyframe ? AV_PICTURE_TYPE_I
: AV_PICTURE_TYPE_P;
s->current_frame.f->key_frame = s->keyframe;
-if (ff_thread_get_buffer(avctx, >current_frame, AV_GET_BUFFER_FLAG_REF)
< 0)
+if ((ret = ff_thread_get_buffer(avctx, >current_frame,
AV_GET_BUFFER_FLAG_REF)) < 0)
goto error;
if (!s->edge_emu_buffer)
@@ -2793,8 +2793,8 @@ static int vp3_decode_frame(AVCodecContext *avctx,
"vp3: first frame not a keyframe\n");
s->golden_frame.f->pict_type = AV_PICTURE_TYPE_I;
-if (ff_thread_get_buffer(avctx, >golden_frame,
- AV_GET_BUFFER_FLAG_REF) < 0)
+if ((ret = ff_thread_get_buffer(avctx, >golden_frame,
+ AV_GET_BUFFER_FLAG_REF)) < 0)
goto error;
ff_thread_release_buffer(avctx, >last_frame);
if ((ret = ff_thread_ref_frame(>last_frame,
@@ -2808,39 +2808,39 @@ static int vp3_decode_frame(AVCodecContext *avctx,
ff_thread_finish_setup(avctx);
if (s->version < 2) {
-if (unpack_superblocks(s, )) {
+if ((ret = unpack_superblocks(s, )) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "error in unpack_superblocks\n");
goto error;
}
#if CONFIG_VP4_DECODER
} else {
-if (vp4_unpack_macroblocks(s, )) {
+if ((ret = vp4_unpack_macroblocks(s, )) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "error in
vp4_unpack_macroblocks\n");
goto error;
}
#endif
}
-if (unpack_modes(s, )) {
+if ((ret = unpack_modes(s, )) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "error in unpack_modes\n");
goto error;
}
-if (unpack_vectors(s, )) {
+if (ret = unpack_vectors(s, )) {
av_log(s->avctx, AV_LOG_ERROR, "error in unpack_vectors\n");
goto error;
}
-if (unpack_block_qpis(s, )) {
+if ((ret = unpack_block_qpis(s, )) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "error in unpack_block_qpis\n");
goto error;
}
if (s->version < 2) {
-if (unpack_dct_coeffs(s, )) {
+if ((ret = unpack_dct_coeffs(s, )) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "error in unpack_dct_coeffs\n");
goto error;
}
#if CONFIG_VP4_DECODER
} else {
-if (vp4_unpack_dct_coeffs(s, )) {
+if ((ret = vp4_unpack_dct_coeffs(s, )) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "error in vp4_unpack_dct_coeffs\n");
goto error;
}
@@ -2892,7 +2892,7 @@ error:
if (!HAVE_THREADS || !(s->avctx->active_thread_type & FF_THREAD_FRAME))
av_frame_unref(s->current_frame.f);
-return -1;
+return ret;
}
static int read_huffman_tree(AVCodecContext *avctx, GetBitContext *gb)
--
2.20.1
-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".