nut: Use the correct codec_tag when multiple are available

Message ID 20151102111150.F15E05DAAE@aruru.libav.org
State New
Headers show

Commit Message

Janne Grunau Nov. 2, 2015, 11:11 a.m.
Module: libav
Branch: master
Commit: 1e7ff5ac6923996f7292c82f102c68384fbc9d97

Author:    Luca Barbato <lu_zero@gentoo.org>
Committer: Luca Barbato <lu_zero@gentoo.org>
Date:      Thu Sep  3 17:31:14 2015 +0200

nut: Use the correct codec_tag when multiple are available

Some codecs use the codec_tag to signal specific information and
picking the first one would lead to a broken file.

Bug-Id: 883
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>

---

 libavformat/nutenc.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Patch

diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index b7b0c9c..be6579d 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -438,7 +438,8 @@  static int write_streamheader(AVFormatContext *avctx, AVIOContext *bc,
     }
     ff_put_v(bc, 4);
 
-    if (!codec_tag || codec->codec_id == AV_CODEC_ID_RAWVIDEO)
+    if (av_codec_get_id(ff_nut_codec_tags, codec->codec_tag) == codec->codec_id ||
+        !codec_tag || codec->codec_id == AV_CODEC_ID_RAWVIDEO)
         codec_tag = codec->codec_tag;
 
     if (codec_tag) {