changeset 490:c0849ef998e7 libavformat

assert(0) -> retunrn -1
author michael
date Fri, 02 Jul 2004 19:26:51 +0000
parents aeb69a5f3756
children 4cf46e9a1bb8
files flvenc.c
diffstat 1 files changed, 42 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/flvenc.c	Wed Jun 30 19:24:43 2004 +0000
+++ b/flvenc.c	Fri Jul 02 19:26:51 2004 +0000
@@ -34,6 +34,45 @@
     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 @@
             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 @@
         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);