| Index: media/formats/mp4/box_definitions.cc
|
| diff --git a/media/formats/mp4/box_definitions.cc b/media/formats/mp4/box_definitions.cc
|
| index 5b67633252c58565a15da78626f328e7237351cd..5527eca7f47a99d8fc8d33425eebfbc705e1f05a 100644
|
| --- a/media/formats/mp4/box_definitions.cc
|
| +++ b/media/formats/mp4/box_definitions.cc
|
| @@ -349,15 +349,16 @@ AVCDecoderConfigurationRecord::~AVCDecoderConfigurationRecord() {}
|
| FourCC AVCDecoderConfigurationRecord::BoxType() const { return FOURCC_AVCC; }
|
|
|
| bool AVCDecoderConfigurationRecord::Parse(BoxReader* reader) {
|
| - return ParseInternal(reader);
|
| + return ParseInternal(reader, reader->log_cb());
|
| }
|
|
|
| bool AVCDecoderConfigurationRecord::Parse(const uint8* data, int data_size) {
|
| BufferReader reader(data, data_size);
|
| - return ParseInternal(&reader);
|
| + return ParseInternal(&reader, LogCB());
|
| }
|
|
|
| -bool AVCDecoderConfigurationRecord::ParseInternal(BufferReader* reader) {
|
| +bool AVCDecoderConfigurationRecord::ParseInternal(BufferReader* reader,
|
| + const LogCB& log_cb) {
|
| RCHECK(reader->Read1(&version) && version == 1 &&
|
| reader->Read1(&profile_indication) &&
|
| reader->Read1(&profile_compatibility) &&
|
| @@ -379,6 +380,14 @@ bool AVCDecoderConfigurationRecord::ParseInternal(BufferReader* reader) {
|
| uint16 sps_length;
|
| RCHECK(reader->Read2(&sps_length) &&
|
| reader->ReadVec(&sps_list[i], sps_length));
|
| + RCHECK(sps_list[i].size() > 4);
|
| +
|
| + if (!log_cb.is_null()) {
|
| + MEDIA_LOG(log_cb) << "Video codec: avc1." << std::hex
|
| + << static_cast<int>(sps_list[i][1])
|
| + << static_cast<int>(sps_list[i][2])
|
| + << static_cast<int>(sps_list[i][3]);
|
| + }
|
| }
|
|
|
| uint8 num_pps;
|
| @@ -469,7 +478,13 @@ bool ElementaryStreamDescriptor::Parse(BoxReader* reader) {
|
|
|
| object_type = es_desc.object_type();
|
|
|
| - RCHECK(aac.Parse(es_desc.decoder_specific_info()));
|
| + if (object_type != 0x40) {
|
| + MEDIA_LOG(reader->log_cb()) << "Audio codec: mp4a."
|
| + << std::hex << static_cast<int>(object_type);
|
| + }
|
| +
|
| + if (es_desc.IsAAC(object_type))
|
| + RCHECK(aac.Parse(es_desc.decoder_specific_info(), reader->log_cb()));
|
|
|
| return true;
|
| }
|
|
|