assert(0) -> retunrn -1
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 2 Jul 2004 19:26:51 +0000 (19:26 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 2 Jul 2004 19:26:51 +0000 (19:26 +0000)
Originally committed as revision 3285 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/flvenc.c

index 3bef887..7f86036 100644 (file)
@@ -34,6 +34,45 @@ static void put_be24(ByteIOContext *pb, int value)
     put_byte(pb, (value>> 0) & 0xFF );
 }
 
+static int get_audio_flags(AVCodecContext *enc){
+    int flags = 0x02;
+
+    switch (enc->sample_rate) {
+        case    44100:
+            flags |= 0x0C;
+            break;
+        case    22050:
+            flags |= 0x08;
+            break;
+        case    11025:
+            flags |= 0x04;
+            break;
+        case     8000: //nellymoser only
+        case     5512: //not mp3
+            flags |= 0x00;
+            break;
+        default:
+            return -1;
+    }
+
+    if (enc->channels > 1) {
+        flags |= 0x01;
+    }
+    
+    switch(enc->codec_id){
+    case CODEC_ID_MP3:
+        flags |= 0x20;
+        break;
+    case 0:
+        flags |= enc->codec_tag<<4;
+        break;
+    default:
+        return -1;
+    }
+    
+    return flags;
+}
+
 static int flv_write_header(AVFormatContext *s)
 {
     ByteIOContext *pb = &s->pb;
@@ -60,6 +99,8 @@ static int flv_write_header(AVFormatContext *s)
             put_be32(pb,11); // size
             flv->reserved=5;
         }
+        if(enc->codec_type == CODEC_TYPE_AUDIO && get_audio_flags(enc)<0)
+            return -1;
     }
 
     return 0;
@@ -99,41 +140,8 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt)
         flv->hasVideo = 1;
     } else {
         assert(enc->codec_type == CODEC_TYPE_AUDIO);
-        flags = 0x02;
-
-        switch (enc->sample_rate) {
-            case    44100:
-                flags |= 0x0C;
-                break;
-            case    22050:
-                flags |= 0x08;
-                break;
-            case    11025:
-                flags |= 0x04;
-                break;
-            case     8000: //nellymoser only
-            case     5512: //not mp3
-                flags |= 0x00;
-                break;
-            default:
-                assert(0);
-        }
-
-        if (enc->channels > 1) {
-            flags |= 0x01;
-        }
+        flags = get_audio_flags(enc);
         
-        switch(enc->codec_id){
-        case CODEC_ID_MP3:
-            flags |= 0x20;
-            break;
-        case 0:
-            flags |= enc->codec_tag<<4;
-            break;
-        default:
-            assert(0);
-        }
-
         assert(size);
 
         put_byte(pb, 8);