Chromium Code Reviews| Index: media/filters/stream_parser_factory.cc |
| diff --git a/media/filters/stream_parser_factory.cc b/media/filters/stream_parser_factory.cc |
| index 93b0e8b3d53da4e02feb345497dbbe4aea075216..1cf928592730ed9b5ba24c3f84937469381b5802 100644 |
| --- a/media/filters/stream_parser_factory.cc |
| +++ b/media/filters/stream_parser_factory.cc |
| @@ -108,6 +108,12 @@ static const CodecInfo kMPEG2AACLCCodecInfo = { |
| "mp4a.67", CodecInfo::AUDIO, NULL |
| }; |
| +#if defined(ENABLE_EAC3_PLAYBACK) |
| +static const CodecInfo kEAC3CodecInfo = { |
| + "mp4a.a6", CodecInfo::AUDIO, NULL |
| +}; |
| +#endif |
| + |
| static const CodecInfo* kVideoMP4Codecs[] = { |
| &kH264CodecInfo, |
| &kMPEG4AACCodecInfo, |
| @@ -118,6 +124,9 @@ static const CodecInfo* kVideoMP4Codecs[] = { |
| static const CodecInfo* kAudioMP4Codecs[] = { |
| &kMPEG4AACCodecInfo, |
| &kMPEG2AACLCCodecInfo, |
| +#if defined(ENABLE_EAC3_PLAYBACK) |
| + &kEAC3CodecInfo, |
| +#endif |
| NULL |
| }; |
| @@ -125,6 +134,10 @@ static media::StreamParser* BuildMP4Parser( |
| const std::vector<std::string>& codecs, const media::LogCB& log_cb) { |
| std::set<int> audio_object_types; |
| bool has_sbr = false; |
| +#if defined(ENABLE_EAC3_PLAYBACK) |
| + static bool enable_eac3 = CommandLine::ForCurrentProcess()->HasSwitch( |
|
acolwell GONE FROM CHROMIUM
2013/04/30 18:19:02
nit: drop static.
ycheo (away)
2013/05/01 00:05:46
Done.
|
| + switches::kEnableEac3Playback); |
| +#endif |
| for (size_t i = 0; i < codecs.size(); ++i) { |
| std::string codec_id = codecs[i]; |
| if (MatchPattern(codec_id, kMPEG2AACLCCodecInfo.pattern)) { |
| @@ -139,6 +152,10 @@ static media::StreamParser* BuildMP4Parser( |
| has_sbr = true; |
| break; |
| } |
| +#if defined(ENABLE_EAC3_PLAYBACK) |
| + } else if (enable_eac3 && MatchPattern(codec_id, kEAC3CodecInfo.pattern)) { |
| + audio_object_types.insert(media::mp4::kEAC3); |
| +#endif |
| } |
| } |
| @@ -204,6 +221,12 @@ static bool IsSupported(const std::string& type, |
| const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
| switch (codec_type) { |
| case CodecInfo::AUDIO: |
| +#if defined(ENABLE_EAC3_PLAYBACK) |
| + if (MatchPattern(codec_id, kEAC3CodecInfo.pattern) && |
| + !cmd_line->HasSwitch(switches::kEnableEac3Playback)) { |
| + return false; |
| + } |
| +#endif |
| *has_audio = true; |
| break; |
| case CodecInfo::VIDEO: |