| 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 | 50 |
| 51 // A list of media types (https://en.wikipedia.org/wiki/Media_type) and | 51 // A list of media types (https://en.wikipedia.org/wiki/Media_type) and |
| 52 // corresponding media codecs supported by these types/containers. | 52 // corresponding media codecs supported by these types/containers. |
| 53 // Media formats marked as PROPRIETARY are not supported by Chromium, only | 53 // Media formats marked as PROPRIETARY are not supported by Chromium, only |
| 54 // Google Chrome browser supports them. | 54 // Google Chrome browser supports them. |
| 55 static const MediaFormat kFormatCodecMappings[] = { | 55 static const MediaFormat kFormatCodecMappings[] = { |
| 56 {"video/webm", COMMON, "opus,vorbis,vp8,vp9"}, | 56 {"video/webm", COMMON, "opus,vorbis,vp8,vp9"}, |
| 57 {"audio/webm", COMMON, "opus,vorbis"}, | 57 {"audio/webm", COMMON, "opus,vorbis"}, |
| 58 {"audio/wav", COMMON, "1"}, | 58 {"audio/wav", COMMON, "1"}, |
| 59 {"audio/x-wav", COMMON, "1"}, | 59 {"audio/x-wav", COMMON, "1"}, |
| 60 #if defined(OS_ANDROID) | 60 #if !defined(OS_ANDROID) |
| 61 // Android does not support Opus in Ogg container. | 61 // Note: Android does not support Theora and thus video/ogg. |
| 62 // Android does not support Theora and thus video/ogg. | |
| 63 {"audio/ogg", COMMON, "vorbis"}, | |
| 64 {"application/ogg", COMMON, "vorbis"}, | |
| 65 #else | |
| 66 {"video/ogg", COMMON, "opus,theora,vorbis"}, | 62 {"video/ogg", COMMON, "opus,theora,vorbis"}, |
| 63 #endif |
| 67 {"audio/ogg", COMMON, "opus,vorbis"}, | 64 {"audio/ogg", COMMON, "opus,vorbis"}, |
| 65 // Note: Theora is not supported on Android and will be rejected during the |
| 66 // call to IsCodecSupportedOnPlatform(). |
| 68 {"application/ogg", COMMON, "opus,theora,vorbis"}, | 67 {"application/ogg", COMMON, "opus,theora,vorbis"}, |
| 69 #endif | |
| 70 #if defined(USE_PROPRIETARY_CODECS) | 68 #if defined(USE_PROPRIETARY_CODECS) |
| 71 {"audio/mpeg", PROPRIETARY, "mp3"}, | 69 {"audio/mpeg", PROPRIETARY, "mp3"}, |
| 72 {"audio/mp3", PROPRIETARY, ""}, | 70 {"audio/mp3", PROPRIETARY, ""}, |
| 73 {"audio/x-mp3", PROPRIETARY, ""}, | 71 {"audio/x-mp3", PROPRIETARY, ""}, |
| 74 {"audio/aac", PROPRIETARY, ""}, // AAC / ADTS | 72 {"audio/aac", PROPRIETARY, ""}, // AAC / ADTS |
| 75 {"audio/mp4", PROPRIETARY, kMP4AudioCodecsExpression}, | 73 {"audio/mp4", PROPRIETARY, kMP4AudioCodecsExpression}, |
| 76 {"audio/x-m4a", PROPRIETARY, kMP4AudioCodecsExpression}, | 74 {"audio/x-m4a", PROPRIETARY, kMP4AudioCodecsExpression}, |
| 77 {"video/mp4", PROPRIETARY, kMP4VideoCodecsExpression}, | 75 {"video/mp4", PROPRIETARY, kMP4VideoCodecsExpression}, |
| 78 {"video/x-m4v", PROPRIETARY, kMP4VideoCodecsExpression}, | 76 {"video/x-m4v", PROPRIETARY, kMP4VideoCodecsExpression}, |
| 79 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) | 77 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 const std::string& mime_type_lower_case, | 625 const std::string& mime_type_lower_case, |
| 628 bool is_encrypted) const { | 626 bool is_encrypted) const { |
| 629 Codec default_codec = Codec::INVALID_CODEC; | 627 Codec default_codec = Codec::INVALID_CODEC; |
| 630 if (!GetDefaultCodecLowerCase(mime_type_lower_case, &default_codec)) | 628 if (!GetDefaultCodecLowerCase(mime_type_lower_case, &default_codec)) |
| 631 return false; | 629 return false; |
| 632 return IsCodecSupported(default_codec, mime_type_lower_case, is_encrypted); | 630 return IsCodecSupported(default_codec, mime_type_lower_case, is_encrypted); |
| 633 } | 631 } |
| 634 | 632 |
| 635 } // namespace internal | 633 } // namespace internal |
| 636 } // namespace media | 634 } // namespace media |
| OLD | NEW |