[SCM] libav/experimental: parse aac extradata to fetch channels and sample rate, patch from Netgem
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 16:39:08 UTC 2013
The following commit has been merged in the experimental branch:
commit d2718187b9302e022666a8f3e3c21e78f09d9bae
Author: Baptiste Coudurier <baptiste.coudurier at gmail.com>
Date: Sat Feb 21 23:54:50 2009 +0000
parse aac extradata to fetch channels and sample rate, patch from Netgem
Originally committed as revision 17506 to svn://svn.ffmpeg.org/ffmpeg/trunk
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 06ae33a..c925e54 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -23,6 +23,8 @@
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+#include "libavcodec/mpeg4audio.h"
#include "avformat.h"
#include "flv.h"
@@ -421,6 +423,18 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
if (type == 0) {
if ((ret = flv_get_extradata(s, st, size)) < 0)
return ret;
+ if (st->codec->codec_id == CODEC_ID_AAC) {
+ MPEG4AudioConfig cfg;
+ ff_mpeg4audio_get_config(&cfg, st->codec->extradata,
+ st->codec->extradata_size);
+ if (cfg.chan_config > 7)
+ return -1;
+ st->codec->channels = ff_mpeg4audio_channels[cfg.chan_config];
+ st->codec->sample_rate = cfg.sample_rate;
+ dprintf(s, "mp4a config channels %d sample rate %d\n",
+ st->codec->channels, st->codec->sample_rate);
+ }
+
return AVERROR(EAGAIN);
}
}
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list