Chromium Code Reviews| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/strings/string_split.h" | 6 #include "base/strings/string_split.h" |
| 7 #include "media/base/mime_util.h" | 7 #include "media/base/mime_util.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 #if defined(OS_ANDROID) | |
| 11 #include "base/android/build_info.h" | |
| 12 #endif | |
| 13 | |
| 14 namespace media { | 10 namespace media { |
| 15 | 11 |
| 16 TEST(MimeUtilTest, LookupTypes) { | |
| 17 #if defined(OS_ANDROID) | |
| 18 EXPECT_TRUE(IsSupportedMediaMimeType("application/vnd.apple.mpegurl")); | |
| 19 EXPECT_TRUE(IsSupportedMediaMimeType("application/x-mpegurl")); | |
| 20 EXPECT_TRUE(IsSupportedMediaMimeType("Application/X-MPEGURL")); | |
| 21 #endif | |
| 22 } | |
| 23 | |
| 24 TEST(MimeUtilTest, StrictMediaMimeType) { | 12 TEST(MimeUtilTest, StrictMediaMimeType) { |
| 25 EXPECT_TRUE(IsStrictMediaMimeType("video/webm")); | 13 EXPECT_TRUE(IsStrictMediaMimeType("video/webm")); |
| 26 EXPECT_TRUE(IsStrictMediaMimeType("Video/WEBM")); | 14 EXPECT_TRUE(IsStrictMediaMimeType("Video/WEBM")); |
| 27 EXPECT_TRUE(IsStrictMediaMimeType("audio/webm")); | 15 EXPECT_TRUE(IsStrictMediaMimeType("audio/webm")); |
| 28 | 16 |
| 29 EXPECT_TRUE(IsStrictMediaMimeType("audio/wav")); | 17 EXPECT_TRUE(IsStrictMediaMimeType("audio/wav")); |
| 30 EXPECT_TRUE(IsStrictMediaMimeType("audio/x-wav")); | 18 EXPECT_TRUE(IsStrictMediaMimeType("audio/x-wav")); |
| 31 | 19 |
| 32 EXPECT_TRUE(IsStrictMediaMimeType("video/ogg")); | 20 EXPECT_TRUE(IsStrictMediaMimeType("video/ogg")); |
| 33 EXPECT_TRUE(IsStrictMediaMimeType("audio/ogg")); | 21 EXPECT_TRUE(IsStrictMediaMimeType("audio/ogg")); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 46 EXPECT_TRUE(IsStrictMediaMimeType("application/vnd.apple.mpegurl")); | 34 EXPECT_TRUE(IsStrictMediaMimeType("application/vnd.apple.mpegurl")); |
| 47 | 35 |
| 48 EXPECT_FALSE(IsStrictMediaMimeType("video/unknown")); | 36 EXPECT_FALSE(IsStrictMediaMimeType("video/unknown")); |
| 49 EXPECT_FALSE(IsStrictMediaMimeType("Video/UNKNOWN")); | 37 EXPECT_FALSE(IsStrictMediaMimeType("Video/UNKNOWN")); |
| 50 EXPECT_FALSE(IsStrictMediaMimeType("audio/unknown")); | 38 EXPECT_FALSE(IsStrictMediaMimeType("audio/unknown")); |
| 51 EXPECT_FALSE(IsStrictMediaMimeType("application/unknown")); | 39 EXPECT_FALSE(IsStrictMediaMimeType("application/unknown")); |
| 52 EXPECT_FALSE(IsStrictMediaMimeType("unknown/unknown")); | 40 EXPECT_FALSE(IsStrictMediaMimeType("unknown/unknown")); |
| 53 } | 41 } |
| 54 | 42 |
| 55 TEST(MimeUtilTest, CommonMediaMimeType) { | 43 TEST(MimeUtilTest, CommonMediaMimeType) { |
| 56 #if defined(OS_ANDROID) | |
| 57 bool HLSSupported; | |
| 58 if (base::android::BuildInfo::GetInstance()->sdk_int() < 14) | |
| 59 HLSSupported = false; | |
| 60 else | |
| 61 HLSSupported = true; | |
| 62 #endif | |
| 63 | |
| 64 EXPECT_TRUE(IsSupportedMediaMimeType("audio/webm")); | 44 EXPECT_TRUE(IsSupportedMediaMimeType("audio/webm")); |
| 65 EXPECT_TRUE(IsSupportedMediaMimeType("video/webm")); | 45 EXPECT_TRUE(IsSupportedMediaMimeType("video/webm")); |
| 66 | 46 |
| 67 EXPECT_TRUE(IsSupportedMediaMimeType("audio/wav")); | 47 EXPECT_TRUE(IsSupportedMediaMimeType("audio/wav")); |
| 68 EXPECT_TRUE(IsSupportedMediaMimeType("audio/x-wav")); | 48 EXPECT_TRUE(IsSupportedMediaMimeType("audio/x-wav")); |
| 69 | 49 |
| 70 EXPECT_TRUE(IsSupportedMediaMimeType("audio/ogg")); | 50 EXPECT_TRUE(IsSupportedMediaMimeType("audio/ogg")); |
| 71 EXPECT_TRUE(IsSupportedMediaMimeType("application/ogg")); | 51 EXPECT_TRUE(IsSupportedMediaMimeType("application/ogg")); |
| 72 #if defined(OS_ANDROID) | 52 #if defined(OS_ANDROID) |
| 73 EXPECT_FALSE(IsSupportedMediaMimeType("video/ogg")); | 53 EXPECT_FALSE(IsSupportedMediaMimeType("video/ogg")); |
| 74 EXPECT_EQ(HLSSupported, IsSupportedMediaMimeType("application/x-mpegurl")); | 54 |
| 75 EXPECT_EQ(HLSSupported, | 55 // HLS is supported on Android API level 14 and higher and Chrome supports |
| 76 IsSupportedMediaMimeType("application/vnd.apple.mpegurl")); | 56 // API levels 15 and higher, so these are expected to be supported. |
| 57 EXPECT_TRUE(IsSupportedMediaMimeType("application/x-mpegurl")); | |
|
ddorwin
2015/05/06 20:00:20
alternatively, you could do this:
bool kHlsSuppo
servolk
2015/05/06 20:32:22
Wait, but that would be the same code as before? I
Ryan Sleevi
2015/05/06 21:40:02
No it wouldn't
bool hls_supported = false;
#if de
| |
| 58 EXPECT_TRUE(IsSupportedMediaMimeType("Application/X-MPEGURL")); | |
| 59 EXPECT_TRUE(IsSupportedMediaMimeType("application/vnd.apple.mpegurl")); | |
| 77 #else | 60 #else |
| 78 EXPECT_TRUE(IsSupportedMediaMimeType("video/ogg")); | 61 EXPECT_TRUE(IsSupportedMediaMimeType("video/ogg")); |
| 79 EXPECT_FALSE(IsSupportedMediaMimeType("application/x-mpegurl")); | 62 EXPECT_FALSE(IsSupportedMediaMimeType("application/x-mpegurl")); |
| 80 EXPECT_FALSE(IsSupportedMediaMimeType("application/vnd.apple.mpegurl")); | 63 EXPECT_FALSE(IsSupportedMediaMimeType("application/vnd.apple.mpegurl")); |
| 81 #endif // OS_ANDROID | 64 #endif // OS_ANDROID |
| 82 | 65 |
| 83 #if defined(USE_PROPRIETARY_CODECS) | 66 #if defined(USE_PROPRIETARY_CODECS) |
| 84 EXPECT_TRUE(IsSupportedMediaMimeType("audio/mp4")); | 67 EXPECT_TRUE(IsSupportedMediaMimeType("audio/mp4")); |
| 85 EXPECT_TRUE(IsSupportedMediaMimeType("audio/x-m4a")); | 68 EXPECT_TRUE(IsSupportedMediaMimeType("audio/x-m4a")); |
| 86 EXPECT_TRUE(IsSupportedMediaMimeType("video/mp4")); | 69 EXPECT_TRUE(IsSupportedMediaMimeType("video/mp4")); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 | 127 |
| 145 // Test without stripping the codec type. | 128 // Test without stripping the codec type. |
| 146 std::vector<std::string> codecs_out; | 129 std::vector<std::string> codecs_out; |
| 147 ParseCodecString("avc1.42E01E, mp4a.40.2", &codecs_out, false); | 130 ParseCodecString("avc1.42E01E, mp4a.40.2", &codecs_out, false); |
| 148 ASSERT_EQ(2u, codecs_out.size()); | 131 ASSERT_EQ(2u, codecs_out.size()); |
| 149 EXPECT_EQ("avc1.42E01E", codecs_out[0]); | 132 EXPECT_EQ("avc1.42E01E", codecs_out[0]); |
| 150 EXPECT_EQ("mp4a.40.2", codecs_out[1]); | 133 EXPECT_EQ("mp4a.40.2", codecs_out[1]); |
| 151 } | 134 } |
| 152 | 135 |
| 153 } // namespace media | 136 } // namespace media |
| OLD | NEW |