| Index: media/mp4/mp4_stream_parser.cc
|
| diff --git a/media/mp4/mp4_stream_parser.cc b/media/mp4/mp4_stream_parser.cc
|
| index bb2a95c57024c65d4f96ebe1803406a26d898b77..ebaa2a2b4af6f40a3637fa6ca33d77a04265827a 100644
|
| --- a/media/mp4/mp4_stream_parser.cc
|
| +++ b/media/mp4/mp4_stream_parser.cc
|
| @@ -13,6 +13,7 @@
|
| #include "media/base/video_decoder_config.h"
|
| #include "media/mp4/box_definitions.h"
|
| #include "media/mp4/box_reader.h"
|
| +#include "media/mp4/es_descriptor.h"
|
| #include "media/mp4/rcheck.h"
|
|
|
| namespace media {
|
| @@ -162,10 +163,13 @@ bool MP4StreamParser::ParseMoov(BoxReader* reader) {
|
| // (entry.format == FOURCC_ENCA &&
|
| // entry.sinf.format.format == FOURCC_MP4A));
|
|
|
| - const ChannelLayout layout =
|
| - AVC::ConvertAACChannelCountToChannelLayout(entry.channelcount);
|
| - audio_config.Initialize(kCodecAAC, entry.samplesize, layout,
|
| - entry.samplerate, NULL, 0, false);
|
| + // Check if it is MPEG4 AAC defined in ISO 14496 Part 3.
|
| + RCHECK(entry.esds.object_type == kISO_14496_3);
|
| + aac_ = entry.esds.aac;
|
| + audio_config.Initialize(kCodecAAC, entry.samplesize,
|
| + aac_.channel_layout(), aac_.frequency(),
|
| + NULL, 0, false);
|
| +
|
| has_audio_ = true;
|
| audio_track_id_ = track->header.track_id;
|
| }
|
| @@ -291,6 +295,10 @@ bool MP4StreamParser::EnqueueSample(BufferQueue* audio_buffers,
|
| }
|
| }
|
|
|
| + if (audio) {
|
| + aac_.ConvertEsdsToADTS(&frame_buf);
|
| + }
|
| +
|
| scoped_refptr<StreamParserBuffer> stream_buf =
|
| StreamParserBuffer::CopyFrom(&frame_buf[0], frame_buf.size(),
|
| runs_.is_keyframe());
|
|
|