[FFmpeg-cvslog] r12510 - trunk/libavformat/flvdec.c

skal subversion
Thu Mar 20 12:02:40 CET 2008


Author: skal
Date: Thu Mar 20 12:02:40 2008
New Revision: 12510

Log:
        Additional checks for strange num_val in FLV metadata
        Avoids some "Unsupported audio codec (6)" message in FLVs, e.g.



Modified:
   trunk/libavformat/flvdec.c

Modified: trunk/libavformat/flvdec.c
==============================================================================
--- trunk/libavformat/flvdec.c	(original)
+++ trunk/libavformat/flvdec.c	Thu Mar 20 12:02:40 2008
@@ -175,9 +175,11 @@ static int amf_parse_object(AVFormatCont
             if(!strcmp(key, "duration")) s->duration = num_val * AV_TIME_BASE;
 //            else if(!strcmp(key, "width")  && vcodec && num_val > 0) vcodec->width  = num_val;
 //            else if(!strcmp(key, "height") && vcodec && num_val > 0) vcodec->height = num_val;
-            else if(!strcmp(key, "audiocodecid") && acodec) flv_set_audio_codec(s, astream, (int)num_val << FLV_AUDIO_CODECID_OFFSET);
-            else if(!strcmp(key, "videocodecid") && vcodec) flv_set_video_codec(s, vstream, (int)num_val);
-            else if(!strcmp(key, "audiosamplesize") && acodec && num_val >= 0) {
+            else if(!strcmp(key, "audiocodecid") && acodec && 0 <= (int)num_val)
+                flv_set_audio_codec(s, astream, (int)num_val << FLV_AUDIO_CODECID_OFFSET);
+            else if(!strcmp(key, "videocodecid") && vcodec && 0 <= (int)num_val)
+                flv_set_video_codec(s, vstream, (int)num_val);
+            else if(!strcmp(key, "audiosamplesize") && acodec && 0 < (int)num_val) {
                 acodec->bits_per_sample = num_val;
                 //we may have to rewrite a previously read codecid because FLV only marks PCM endianness.
                 if(num_val == 8 && (acodec->codec_id == CODEC_ID_PCM_S16BE || acodec->codec_id == CODEC_ID_PCM_S16LE))




More information about the ffmpeg-cvslog mailing list