diff amr.c @ 1369:bf2c4889a9bf libavformat

more factoriztaion and a FIXME note
author michael
date Tue, 10 Oct 2006 23:56:49 +0000
parents f9d59429f182
children 49421e5b5335
line wrap: on
line diff
--- a/amr.c	Tue Oct 10 23:53:14 2006 +0000
+++ b/amr.c	Tue Oct 10 23:56:49 2006 +0000
@@ -91,6 +91,11 @@
 
     get_buffer(pb, header, 6);
 
+    st = av_new_stream(s, 0);
+    if (!st)
+    {
+        return AVERROR_NOMEM;
+    }
     if(memcmp(header,AMR_header,6)!=0)
     {
         get_buffer(pb, header+6, 3);
@@ -98,11 +103,6 @@
         {
             return -1;
         }
-        st = av_new_stream(s, 0);
-        if (!st)
-        {
-            return AVERROR_NOMEM;
-        }
 
         st->codec->codec_tag = MKTAG('s', 'a', 'w', 'b');
         st->codec->codec_id = CODEC_ID_AMR_WB;
@@ -110,12 +110,6 @@
     }
     else
     {
-        st = av_new_stream(s, 0);
-        if (!st)
-        {
-            return AVERROR_NOMEM;
-        }
-
         st->codec->codec_tag = MKTAG('s', 'a', 'm', 'r');
         st->codec->codec_id = CODEC_ID_AMR_NB;
         st->codec->sample_rate = 8000;
@@ -140,6 +134,7 @@
         return AVERROR_IO;
     }
 
+//FIXME this is wrong, this should rather be in a AVParset
     toc=get_byte(&s->pb);
     mode = (toc >> 3) & 0x0F;