| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/android/media_codec_util.h" | 5 #include "media/base/android/media_codec_util.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 using base::android::JavaIntArrayToIntVector; | 24 using base::android::JavaIntArrayToIntVector; |
| 25 using base::android::ScopedJavaLocalRef; | 25 using base::android::ScopedJavaLocalRef; |
| 26 | 26 |
| 27 namespace media { | 27 namespace media { |
| 28 | 28 |
| 29 namespace { | 29 namespace { |
| 30 | 30 |
| 31 const char kMp4aMimeType[] = "audio/mp4a-latm"; | 31 const char kMp4aMimeType[] = "audio/mp4a-latm"; |
| 32 const char kOpusMimeType[] = "audio/opus"; | 32 const char kOpusMimeType[] = "audio/opus"; |
| 33 const char kVorbisMimeType[] = "audio/vorbis"; | 33 const char kVorbisMimeType[] = "audio/vorbis"; |
| 34 const char kAc3MimeType[] = "audio/ac3"; |
| 35 const char kEac3MimeType[] = "audio/eac3"; |
| 34 const char kAvcMimeType[] = "video/avc"; | 36 const char kAvcMimeType[] = "video/avc"; |
| 35 const char kHevcMimeType[] = "video/hevc"; | 37 const char kHevcMimeType[] = "video/hevc"; |
| 36 const char kVp8MimeType[] = "video/x-vnd.on2.vp8"; | 38 const char kVp8MimeType[] = "video/x-vnd.on2.vp8"; |
| 37 const char kVp9MimeType[] = "video/x-vnd.on2.vp9"; | 39 const char kVp9MimeType[] = "video/x-vnd.on2.vp9"; |
| 38 | 40 |
| 39 } // namespace | 41 } // namespace |
| 40 | 42 |
| 41 static std::string CodecTypeToAndroidMimeType(const std::string& codec) { | 43 static std::string CodecTypeToAndroidMimeType(const std::string& codec) { |
| 42 // TODO(xhwang): Shall we handle more detailed strings like "mp4a.40.2"? | 44 // TODO(xhwang): Shall we handle more detailed strings like "mp4a.40.2"? |
| 43 if (codec == "avc1") | 45 if (codec == "avc1") |
| 44 return kAvcMimeType; | 46 return kAvcMimeType; |
| 45 if (codec == "hvc1") | 47 if (codec == "hvc1") |
| 46 return kHevcMimeType; | 48 return kHevcMimeType; |
| 47 if (codec == "mp4a") | 49 if (codec == "mp4a") |
| 48 return kMp4aMimeType; | 50 return kMp4aMimeType; |
| 49 if (codec == "vp8" || codec == "vp8.0") | 51 if (codec == "vp8" || codec == "vp8.0") |
| 50 return kVp8MimeType; | 52 return kVp8MimeType; |
| 51 if (codec == "vp9" || codec == "vp9.0") | 53 if (codec == "vp9" || codec == "vp9.0") |
| 52 return kVp9MimeType; | 54 return kVp9MimeType; |
| 53 if (codec == "vorbis") | 55 if (codec == "vorbis") |
| 54 return kVorbisMimeType; | 56 return kVorbisMimeType; |
| 55 if (codec == "opus") | 57 if (codec == "opus") |
| 56 return kOpusMimeType; | 58 return kOpusMimeType; |
| 59 if (codec == "ac3") |
| 60 return kAc3MimeType; |
| 61 if (codec == "eac3") |
| 62 return kEac3MimeType; |
| 63 |
| 57 DLOG(WARNING) << "Cannot convert codec to Android MIME type: " << codec; | 64 DLOG(WARNING) << "Cannot convert codec to Android MIME type: " << codec; |
| 58 return std::string(); | 65 return std::string(); |
| 59 } | 66 } |
| 60 | 67 |
| 61 static bool IsSupportedAndroidMimeType(const std::string& mime_type) { | 68 static bool IsSupportedAndroidMimeType(const std::string& mime_type) { |
| 62 std::vector<std::string> supported{ | 69 std::vector<std::string> supported{ |
| 63 kMp4aMimeType, kOpusMimeType, kVorbisMimeType, kAvcMimeType, | 70 kMp4aMimeType, kOpusMimeType, kVorbisMimeType, kAvcMimeType, |
| 64 kHevcMimeType, kVp8MimeType, kVp9MimeType}; | 71 kHevcMimeType, kVp8MimeType, kVp9MimeType}; |
| 65 return std::find(supported.begin(), supported.end(), mime_type) != | 72 return std::find(supported.begin(), supported.end(), mime_type) != |
| 66 supported.end(); | 73 supported.end(); |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 (sdk_int == 18 && ("OMX.SEC.avc.dec" == codec_name || | 265 (sdk_int == 18 && ("OMX.SEC.avc.dec" == codec_name || |
| 259 "OMX.SEC.avc.dec.secure" == codec_name)) || | 266 "OMX.SEC.avc.dec.secure" == codec_name)) || |
| 260 (sdk_int == 19 && | 267 (sdk_int == 19 && |
| 261 base::StartsWith(base::android::BuildInfo::GetInstance()->model(), | 268 base::StartsWith(base::android::BuildInfo::GetInstance()->model(), |
| 262 "SM-G800", base::CompareCase::INSENSITIVE_ASCII) && | 269 "SM-G800", base::CompareCase::INSENSITIVE_ASCII) && |
| 263 ("OMX.Exynos.avc.dec" == codec_name || | 270 ("OMX.Exynos.avc.dec" == codec_name || |
| 264 "OMX.Exynos.avc.dec.secure" == codec_name)); | 271 "OMX.Exynos.avc.dec.secure" == codec_name)); |
| 265 } | 272 } |
| 266 | 273 |
| 267 } // namespace media | 274 } // namespace media |
| OLD | NEW |