[FFmpeg-cvslog] avcodec/vp3: Don't try to decode VP4 when VP4 decoder is disabled

Andreas Rheinhardt git at videolan.org
Tue May 11 01:21:29 EEST 2021


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sat May  8 02:08:05 2021 +0200| [9afb291267db04568da0fac2ce391380c48d7047] | committer: Andreas Rheinhardt

avcodec/vp3: Don't try to decode VP4 when VP4 decoder is disabled

Otherwise decoding will crash lateron; e.g. because dct_tokens
is never set or because a VLC that has not been allocated is used.

Reviewed-by: Peter Ross <pross at xvid.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9afb291267db04568da0fac2ce391380c48d7047
---

 libavcodec/vp3.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 0cae075452..9aa84e83b7 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -2335,9 +2335,13 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
     if (ret < 0)
         return ret;
 
-    if (avctx->codec_tag == MKTAG('V', 'P', '4', '0'))
+    if (avctx->codec_tag == MKTAG('V', 'P', '4', '0')) {
         s->version = 3;
-    else if (avctx->codec_tag == MKTAG('V', 'P', '3', '0'))
+#if !CONFIG_VP4_DECODER
+        av_log(avctx, AV_LOG_ERROR, "This build does not support decoding VP4.\n");
+        return AVERROR_DECODER_NOT_FOUND;
+#endif
+    } else if (avctx->codec_tag == MKTAG('V', 'P', '3', '0'))
         s->version = 0;
     else
         s->version = 1;



More information about the ffmpeg-cvslog mailing list