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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/strings/string_split.h" | 8 #include "base/strings/string_split.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/test/scoped_command_line.h" | 10 #include "base/test/scoped_command_line.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 | 57 |
| 58 // Stuff states to test into vectors for easy for_each() iteration. | 58 // Stuff states to test into vectors for easy for_each() iteration. |
| 59 MAKE_TEST_VECTOR(has_platform_decoders); | 59 MAKE_TEST_VECTOR(has_platform_decoders); |
| 60 MAKE_TEST_VECTOR(has_platform_vp8_decoder); | 60 MAKE_TEST_VECTOR(has_platform_vp8_decoder); |
| 61 MAKE_TEST_VECTOR(has_platform_vp9_decoder); | 61 MAKE_TEST_VECTOR(has_platform_vp9_decoder); |
| 62 MAKE_TEST_VECTOR(supports_opus); | 62 MAKE_TEST_VECTOR(supports_opus); |
| 63 #undef MAKE_TEST_VECTOR | 63 #undef MAKE_TEST_VECTOR |
| 64 | 64 |
| 65 MimeUtil::PlatformInfo info; | 65 MimeUtil::PlatformInfo info; |
| 66 | 66 |
| 67 #define RUN_TEST_VECTOR(name) \ | 67 #define RUN_TEST_VECTOR_BEGIN(name) \ |
| 68 size_t name##_index = 0; \ | 68 for (size_t name##_index = 0; \ |
| 69 for (info.name = name##_states[name##_index]; \ | 69 name##_index < name##_states.size(); \ |
| 70 name##_index < name##_states.size(); ++name##_index) | 70 ++name##_index) { \ |
| 71 info.name = name##_states[name##_index]; | |
| 72 #define RUN_TEST_VECTOR_END() } | |
| 71 | 73 |
| 72 RUN_TEST_VECTOR(has_platform_decoders) { | 74 RUN_TEST_VECTOR_BEGIN(has_platform_decoders) |
| 73 RUN_TEST_VECTOR(has_platform_vp8_decoder) { | 75 RUN_TEST_VECTOR_BEGIN(has_platform_vp8_decoder) |
| 74 RUN_TEST_VECTOR(has_platform_vp9_decoder) { | 76 RUN_TEST_VECTOR_BEGIN(has_platform_vp9_decoder) |
| 75 RUN_TEST_VECTOR(supports_opus) { | 77 RUN_TEST_VECTOR_BEGIN(supports_opus) |
| 76 for (int codec = MimeUtil::INVALID_CODEC; | 78 for (int codec = MimeUtil::INVALID_CODEC; |
| 77 codec <= MimeUtil::LAST_CODEC; ++codec) { | 79 codec <= MimeUtil::LAST_CODEC; ++codec) { |
| 78 SCOPED_TRACE(base::StringPrintf( | 80 SCOPED_TRACE(base::StringPrintf( |
| 79 "has_platform_decoders=%d, has_platform_vp8_decoder=%d, " | 81 "has_platform_decoders=%d, has_platform_vp8_decoder=%d, " |
| 80 "supports_opus=%d, " | 82 "supports_opus=%d, " |
| 81 "has_platform_vp9_decoder=%d, " | 83 "has_platform_vp9_decoder=%d, " |
| 82 "codec=%d", | 84 "codec=%d", |
| 83 info.has_platform_decoders, info.has_platform_vp8_decoder, | 85 info.has_platform_decoders, info.has_platform_vp8_decoder, |
| 84 info.supports_opus, info.has_platform_vp9_decoder, codec)); | 86 info.supports_opus, info.has_platform_vp9_decoder, codec)); |
| 85 test_func(info, static_cast<MimeUtil::Codec>(codec)); | 87 test_func(info, static_cast<MimeUtil::Codec>(codec)); |
| 86 } | 88 } |
| 87 } | 89 RUN_TEST_VECTOR_END() |
| 88 } | 90 RUN_TEST_VECTOR_END() |
| 89 } | 91 RUN_TEST_VECTOR_END() |
| 90 } | 92 RUN_TEST_VECTOR_END() |
| 91 #undef RUN_TEST_VECTOR | 93 #undef RUN_TEST_VECTOR_BEGIN |
|
DaleCurtis
2017/04/11 19:04:45
Blank line above.
pavor
2017/04/12 07:03:50
Done
| |
| 94 #undef RUN_TEST_VECTOR_END | |
| 92 } | 95 } |
| 93 | 96 |
| 94 // Helper method for generating the |states_to_vary| value used by | 97 // Helper method for generating the |states_to_vary| value used by |
| 95 // RunPlatformCodecTest(). Marks all fields to be varied. | 98 // RunPlatformCodecTest(). Marks all fields to be varied. |
| 96 static MimeUtil::PlatformInfo VaryAllFields() { | 99 static MimeUtil::PlatformInfo VaryAllFields() { |
| 97 MimeUtil::PlatformInfo states_to_vary; | 100 MimeUtil::PlatformInfo states_to_vary; |
| 98 states_to_vary.has_platform_vp8_decoder = true; | 101 states_to_vary.has_platform_vp8_decoder = true; |
| 99 states_to_vary.has_platform_vp9_decoder = true; | 102 states_to_vary.has_platform_vp9_decoder = true; |
| 100 states_to_vary.supports_opus = true; | 103 states_to_vary.supports_opus = true; |
| 101 states_to_vary.has_platform_decoders = true; | 104 states_to_vary.has_platform_decoders = true; |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 326 // These codecs are never supported by the Android platform. | 329 // These codecs are never supported by the Android platform. |
| 327 case MimeUtil::INVALID_CODEC: | 330 case MimeUtil::INVALID_CODEC: |
| 328 case MimeUtil::AC3: | 331 case MimeUtil::AC3: |
| 329 case MimeUtil::EAC3: | 332 case MimeUtil::EAC3: |
| 330 case MimeUtil::THEORA: | 333 case MimeUtil::THEORA: |
| 331 EXPECT_FALSE(result); | 334 EXPECT_FALSE(result); |
| 332 break; | 335 break; |
| 333 | 336 |
| 334 // These codecs are always supported with the unified pipeline. | 337 // These codecs are always supported with the unified pipeline. |
| 335 case MimeUtil::FLAC: | 338 case MimeUtil::FLAC: |
| 339 case MimeUtil::H264: | |
| 336 case MimeUtil::PCM: | 340 case MimeUtil::PCM: |
| 337 case MimeUtil::MPEG2_AAC: | 341 case MimeUtil::MPEG2_AAC: |
| 338 case MimeUtil::MP3: | 342 case MimeUtil::MP3: |
| 339 case MimeUtil::MPEG4_AAC: | 343 case MimeUtil::MPEG4_AAC: |
| 340 case MimeUtil::OPUS: | 344 case MimeUtil::OPUS: |
| 341 case MimeUtil::VORBIS: | 345 case MimeUtil::VORBIS: |
| 342 case MimeUtil::VP8: | 346 case MimeUtil::VP8: |
| 343 case MimeUtil::VP9: | 347 case MimeUtil::VP9: |
| 344 EXPECT_TRUE(result); | 348 EXPECT_TRUE(result); |
| 345 break; | 349 break; |
| 346 | 350 |
| 347 // These codecs are only supported if platform decoders are supported. | 351 // These codecs are only supported if platform decoders are supported. |
| 348 case MimeUtil::H264: | |
| 349 EXPECT_EQ(info.has_platform_decoders, result); | |
| 350 break; | |
| 351 | |
| 352 case MimeUtil::HEVC: | 352 case MimeUtil::HEVC: |
| 353 EXPECT_EQ(HasHevcSupport() && info.has_platform_decoders, result); | 353 EXPECT_EQ(HasHevcSupport() && info.has_platform_decoders, result); |
| 354 break; | 354 break; |
| 355 | 355 |
| 356 case MimeUtil::DOLBY_VISION: | 356 case MimeUtil::DOLBY_VISION: |
| 357 EXPECT_EQ(HasDolbyVisionSupport(), result); | 357 EXPECT_EQ(HasDolbyVisionSupport(), result); |
| 358 break; | 358 break; |
| 359 } | 359 } |
| 360 }); | 360 }); |
| 361 } | 361 } |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 387 MimeUtil::MPEG2_AAC, "application/vnd.apple.mpegurl", false, info)); | 387 MimeUtil::MPEG2_AAC, "application/vnd.apple.mpegurl", false, info)); |
| 388 EXPECT_FALSE(MimeUtil::IsCodecSupportedOnAndroid( | 388 EXPECT_FALSE(MimeUtil::IsCodecSupportedOnAndroid( |
| 389 MimeUtil::MPEG2_AAC, "audio/mpegurl", false, info)); | 389 MimeUtil::MPEG2_AAC, "audio/mpegurl", false, info)); |
| 390 EXPECT_FALSE(MimeUtil::IsCodecSupportedOnAndroid( | 390 EXPECT_FALSE(MimeUtil::IsCodecSupportedOnAndroid( |
| 391 MimeUtil::MPEG2_AAC, "audio/x-mpegurl", false, info)); | 391 MimeUtil::MPEG2_AAC, "audio/x-mpegurl", false, info)); |
| 392 }); | 392 }); |
| 393 } | 393 } |
| 394 | 394 |
| 395 } // namespace internal | 395 } // namespace internal |
| 396 } // namespace media | 396 } // namespace media |
| OLD | NEW |