rawdec: g722 is always 1 channel/16kHz
authorAnton Khirnov <anton@khirnov.net>
Wed, 14 Sep 2011 06:55:27 +0000 (08:55 +0200)
committerAnton Khirnov <anton@khirnov.net>
Sat, 17 Sep 2011 04:42:17 +0000 (06:42 +0200)
libavformat/rawdec.c
tests/fate2.mak

index 76ab09c..f0d487b 100644 (file)
@@ -51,9 +51,12 @@ int ff_raw_read_header(AVFormatContext *s, AVFormatParameters *ap)
 
             st->codec->channels = 1;
 
-            if (s1->sample_rate)
+            if (id == CODEC_ID_ADPCM_G722)
+                st->codec->sample_rate = 16000;
+
+            if (s1 && s1->sample_rate)
                 st->codec->sample_rate = s1->sample_rate;
-            if (s1->channels)
+            if (s1 && s1->channels)
                 st->codec->channels    = s1->channels;
 
             st->codec->bits_per_coded_sample = av_get_bits_per_sample(st->codec->codec_id);
@@ -199,13 +202,11 @@ const AVClass ff_rawvideo_demuxer_class = {
 AVInputFormat ff_g722_demuxer = {
     .name           = "g722",
     .long_name      = NULL_IF_CONFIG_SMALL("raw G.722"),
-    .priv_data_size = sizeof(RawAudioDemuxerContext),
     .read_header    = ff_raw_read_header,
     .read_packet    = ff_raw_read_partial_packet,
     .flags= AVFMT_GENERIC_INDEX,
     .extensions = "g722,722",
     .value = CODEC_ID_ADPCM_G722,
-    .priv_class = &ff_rawaudio_demuxer_class,
 };
 #endif
 
index 6a01412..0bb6654 100644 (file)
@@ -131,7 +131,7 @@ FATE_TESTS += fate-gsm-ms
 fate-gsm-ms: CMD = framecrc -i $(SAMPLES)/gsm/ciao.wav
 
 FATE_TESTS += fate-g722dec-1
-fate-g722dec-1: CMD = framecrc -ar 16000 -i $(SAMPLES)/g722/conf-adminmenu-162.g722
+fate-g722dec-1: CMD = framecrc -i $(SAMPLES)/g722/conf-adminmenu-162.g722
 
 FATE_TESTS += fate-msmpeg4v1
 fate-msmpeg4v1: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/msmpeg4v1/mpg4.avi -an