Commit 5aea268d authored by Alex Converse's avatar Alex Converse

Add a channels field to MPEG4AudioConfig.

Originally committed as revision 20512 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent f2b7ce8a
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
#include "libavutil/avutil.h" #include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52 #define LIBAVCODEC_VERSION_MAJOR 52
#define LIBAVCODEC_VERSION_MINOR 38 #define LIBAVCODEC_VERSION_MINOR 39
#define LIBAVCODEC_VERSION_MICRO 1 #define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
......
...@@ -57,6 +57,8 @@ int ff_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int buf_si ...@@ -57,6 +57,8 @@ int ff_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int buf_si
c->object_type = get_object_type(&gb); c->object_type = get_object_type(&gb);
c->sample_rate = get_sample_rate(&gb, &c->sampling_index); c->sample_rate = get_sample_rate(&gb, &c->sampling_index);
c->chan_config = get_bits(&gb, 4); c->chan_config = get_bits(&gb, 4);
if (c->chan_config < FF_ARRAY_ELEMS(ff_mpeg4audio_channels))
c->channels = ff_mpeg4audio_channels[c->chan_config];
c->sbr = -1; c->sbr = -1;
if (c->object_type == AOT_SBR) { if (c->object_type == AOT_SBR) {
c->ext_object_type = c->object_type; c->ext_object_type = c->object_type;
......
...@@ -36,6 +36,7 @@ typedef struct { ...@@ -36,6 +36,7 @@ typedef struct {
int ext_sampling_index; int ext_sampling_index;
int ext_sample_rate; int ext_sample_rate;
int ext_chan_config; int ext_chan_config;
int channels;
} MPEG4AudioConfig; } MPEG4AudioConfig;
extern const int ff_mpeg4audio_sample_rates[16]; extern const int ff_mpeg4audio_sample_rates[16];
......
...@@ -410,9 +410,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -410,9 +410,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
MPEG4AudioConfig cfg; MPEG4AudioConfig cfg;
ff_mpeg4audio_get_config(&cfg, st->codec->extradata, ff_mpeg4audio_get_config(&cfg, st->codec->extradata,
st->codec->extradata_size); st->codec->extradata_size);
if (cfg.chan_config > 7) st->codec->channels = cfg.channels;
return -1;
st->codec->channels = ff_mpeg4audio_channels[cfg.chan_config];
st->codec->sample_rate = cfg.sample_rate; st->codec->sample_rate = cfg.sample_rate;
dprintf(s, "mp4a config channels %d sample rate %d\n", dprintf(s, "mp4a config channels %d sample rate %d\n",
st->codec->channels, st->codec->sample_rate); st->codec->channels, st->codec->sample_rate);
......
...@@ -434,9 +434,7 @@ int ff_mov_read_esds(AVFormatContext *fc, ByteIOContext *pb, MOVAtom atom) ...@@ -434,9 +434,7 @@ int ff_mov_read_esds(AVFormatContext *fc, ByteIOContext *pb, MOVAtom atom)
MPEG4AudioConfig cfg; MPEG4AudioConfig cfg;
ff_mpeg4audio_get_config(&cfg, st->codec->extradata, ff_mpeg4audio_get_config(&cfg, st->codec->extradata,
st->codec->extradata_size); st->codec->extradata_size);
if (cfg.chan_config > 7) st->codec->channels = cfg.channels;
return -1;
st->codec->channels = ff_mpeg4audio_channels[cfg.chan_config];
if (cfg.object_type == 29 && cfg.sampling_index < 3) // old mp3on4 if (cfg.object_type == 29 && cfg.sampling_index < 3) // old mp3on4
st->codec->sample_rate = ff_mpa_freq_tab[cfg.sampling_index]; st->codec->sample_rate = ff_mpa_freq_tab[cfg.sampling_index];
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment