OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/base/mime_util_internal.h" | 5 #include "media/base/mime_util_internal.h" |
6 | 6 |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/string_split.h" | 8 #include "base/strings/string_split.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 | 77 |
78 // A list of media types (https://en.wikipedia.org/wiki/Media_type) and | 78 // A list of media types (https://en.wikipedia.org/wiki/Media_type) and |
79 // corresponding media codecs supported by these types/containers. | 79 // corresponding media codecs supported by these types/containers. |
80 // Media formats marked as PROPRIETARY are not supported by Chromium, only | 80 // Media formats marked as PROPRIETARY are not supported by Chromium, only |
81 // Google Chrome browser supports them. | 81 // Google Chrome browser supports them. |
82 static const MediaFormat kFormatCodecMappings[] = { | 82 static const MediaFormat kFormatCodecMappings[] = { |
83 {"video/webm", COMMON, "opus,vorbis,vp8,vp8.0,vp9,vp9.0"}, | 83 {"video/webm", COMMON, "opus,vorbis,vp8,vp8.0,vp9,vp9.0"}, |
84 {"audio/webm", COMMON, "opus,vorbis"}, | 84 {"audio/webm", COMMON, "opus,vorbis"}, |
85 {"audio/wav", COMMON, "1"}, | 85 {"audio/wav", COMMON, "1"}, |
86 {"audio/x-wav", COMMON, "1"}, | 86 {"audio/x-wav", COMMON, "1"}, |
87 #if defined(OS_ANDROID) | 87 #if !defined(OS_ANDROID) |
88 // Android does not support Opus in Ogg container. | 88 // Note: Android does not support Theora and thus video/ogg. |
89 // Android does not support Theora and thus video/ogg. | |
90 {"audio/ogg", COMMON, "vorbis"}, | |
91 {"application/ogg", COMMON, "vorbis"}, | |
92 #else | |
93 {"video/ogg", COMMON, "opus,theora,vorbis"}, | 89 {"video/ogg", COMMON, "opus,theora,vorbis"}, |
| 90 #endif |
94 {"audio/ogg", COMMON, "opus,vorbis"}, | 91 {"audio/ogg", COMMON, "opus,vorbis"}, |
| 92 // Note: Theora is not supported on Android and will be rejected during the |
| 93 // call to IsCodecSupportedOnPlatform(). |
95 {"application/ogg", COMMON, "opus,theora,vorbis"}, | 94 {"application/ogg", COMMON, "opus,theora,vorbis"}, |
96 #endif | |
97 #if defined(USE_PROPRIETARY_CODECS) | 95 #if defined(USE_PROPRIETARY_CODECS) |
98 {"audio/mpeg", PROPRIETARY, "mp3"}, | 96 {"audio/mpeg", PROPRIETARY, "mp3"}, |
99 {"audio/mp3", PROPRIETARY, ""}, | 97 {"audio/mp3", PROPRIETARY, ""}, |
100 {"audio/x-mp3", PROPRIETARY, ""}, | 98 {"audio/x-mp3", PROPRIETARY, ""}, |
101 {"audio/aac", PROPRIETARY, ""}, // AAC / ADTS | 99 {"audio/aac", PROPRIETARY, ""}, // AAC / ADTS |
102 {"audio/mp4", PROPRIETARY, kMP4AudioCodecsExpression}, | 100 {"audio/mp4", PROPRIETARY, kMP4AudioCodecsExpression}, |
103 {"audio/x-m4a", PROPRIETARY, kMP4AudioCodecsExpression}, | 101 {"audio/x-m4a", PROPRIETARY, kMP4AudioCodecsExpression}, |
104 {"video/mp4", PROPRIETARY, kMP4VideoCodecsExpression}, | 102 {"video/mp4", PROPRIETARY, kMP4VideoCodecsExpression}, |
105 {"video/x-m4v", PROPRIETARY, kMP4VideoCodecsExpression}, | 103 {"video/x-m4v", PROPRIETARY, kMP4VideoCodecsExpression}, |
106 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) | 104 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) |
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 const std::string& mime_type_lower_case, | 650 const std::string& mime_type_lower_case, |
653 bool is_encrypted) const { | 651 bool is_encrypted) const { |
654 Codec default_codec = Codec::INVALID_CODEC; | 652 Codec default_codec = Codec::INVALID_CODEC; |
655 if (!GetDefaultCodecLowerCase(mime_type_lower_case, &default_codec)) | 653 if (!GetDefaultCodecLowerCase(mime_type_lower_case, &default_codec)) |
656 return false; | 654 return false; |
657 return IsCodecSupported(default_codec, mime_type_lower_case, is_encrypted); | 655 return IsCodecSupported(default_codec, mime_type_lower_case, is_encrypted); |
658 } | 656 } |
659 | 657 |
660 } // namespace internal | 658 } // namespace internal |
661 } // namespace media | 659 } // namespace media |
OLD | NEW |