Don't overwrite codec_id with 0 in ff_mp4_read_dec_config_descr().
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 21 May 2014 20:48:11 +0000 (22:48 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Wed, 21 May 2014 20:48:11 +0000 (22:48 +0200)
Fixes ticket #3660.

libavformat/isom.c

index b34398b..d768c32 100644 (file)
@@ -441,6 +441,7 @@ static const AVCodecTag mp4_audio_types[] = {
 
 int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
 {
+    enum AVCodecID codec_id;
     int len, tag;
     int ret;
     int object_type_id = avio_r8(pb);
@@ -454,7 +455,9 @@ int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext
         return -1;
     }
 
-    st->codec->codec_id= ff_codec_get_id(ff_mp4_obj_type, object_type_id);
+    codec_id= ff_codec_get_id(ff_mp4_obj_type, object_type_id);
+    if (codec_id)
+        st->codec->codec_id= codec_id;
     av_dlog(fc, "esds object type id 0x%02x\n", object_type_id);
     len = ff_mp4_read_descr(fc, pb, &tag);
     if (tag == MP4DecSpecificDescrTag) {