Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(397)

Side by Side Diff: content/browser/media/media_canplaytype_browsertest.cc

Issue 2723833002: WebM support for new multipart VP9 string. (Closed)
Patch Set: Rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <string> 5 #include <string>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.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"
11 #include "content/browser/media/media_browsertest.h" 11 #include "content/browser/media/media_browsertest.h"
12 #include "content/public/test/browser_test_utils.h" 12 #include "content/public/test/browser_test_utils.h"
13 #include "content/public/test/content_browser_test_utils.h" 13 #include "content/public/test/content_browser_test_utils.h"
14 #include "content/shell/browser/shell.h" 14 #include "content/shell/browser/shell.h"
15 #include "media/base/media_switches.h" 15 #include "media/base/media_switches.h"
16 #include "media/media_features.h" 16 #include "media/media_features.h"
17 #include "ui/base/ui_base_switches.h"
17 18
18 #if defined(OS_ANDROID) 19 #if defined(OS_ANDROID)
19 #include "base/android/build_info.h" 20 #include "base/android/build_info.h"
20 #endif 21 #endif
21 22
22 const char kProbably[] = "probably"; 23 const char kProbably[] = "probably";
23 const char kMaybe[] = "maybe"; 24 const char kMaybe[] = "maybe";
24 const char kNot[] = ""; 25 const char kNot[] = "";
25 26
26 #if BUILDFLAG(USE_PROPRIETARY_CODECS) 27 #if BUILDFLAG(USE_PROPRIETARY_CODECS)
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, vorbis\"'")); 345 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, vorbis\"'"));
345 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'")); 346 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'"));
346 EXPECT_EQ(kNot, 347 EXPECT_EQ(kNot,
347 CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'")); 348 CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
348 349
349 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9\"'")); 350 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9\"'"));
350 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0\"'")); 351 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0\"'"));
351 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, opus\"'")); 352 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, opus\"'"));
352 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, vorbis\"'")); 353 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, vorbis\"'"));
353 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'")); 354 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
354 EXPECT_EQ(kNot, 355 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09.00.01.08\"'"));
355 CanPlay("'" + mime + "; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
356 356
357 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'")); 357 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'"));
358 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'")); 358 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'"));
359 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'")); 359 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'"));
360 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'")); 360 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'"));
361 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'")); 361 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'"));
362 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, vorbis\"'")); 362 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, vorbis\"'"));
363 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, vorbis\"'")); 363 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, vorbis\"'"));
364 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, opus\"'")); 364 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, opus\"'"));
365 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, opus\"'")); 365 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, opus\"'"));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 403
404 void TestWEBMUnacceptableCombinations(const std::string& mime) { 404 void TestWEBMUnacceptableCombinations(const std::string& mime) {
405 // Codecs not belonging to WEBM container. 405 // Codecs not belonging to WEBM container.
406 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"1\"'")); 406 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"1\"'"));
407 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, 1\"'")); 407 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, 1\"'"));
408 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, 1\"'")); 408 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, 1\"'"));
409 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8.0, 1\"'")); 409 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8.0, 1\"'"));
410 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0, 1\"'")); 410 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0, 1\"'"));
411 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'")); 411 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'"));
412 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'")); 412 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
413 EXPECT_EQ(kNot, 413 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09.00.01.08\"'"));
414 CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
415 EXPECT_EQ(kNot,
416 CanPlay("'" + mime + "; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
417 414
418 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'")); 415 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'"));
419 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, vorbis\"'")); 416 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, vorbis\"'"));
420 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, opus\"'")); 417 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, opus\"'"));
421 418
422 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'")); 419 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'"));
423 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'")); 420 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'"));
424 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'")); 421 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'"));
425 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'")); 422 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'"));
426 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'")); 423 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'"));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 } 466 }
470 467
471 void TestWAVUnacceptableCombinations(const std::string& mime) { 468 void TestWAVUnacceptableCombinations(const std::string& mime) {
472 // Codecs not belonging to WAV container. 469 // Codecs not belonging to WAV container.
473 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8\"'")); 470 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8\"'"));
474 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9\"'")); 471 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9\"'"));
475 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8.0, 1\"'")); 472 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8.0, 1\"'"));
476 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0, 1\"'")); 473 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0, 1\"'"));
477 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'")); 474 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'"));
478 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'")); 475 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
479 EXPECT_EQ(kNot, 476 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09.00.01.08\"'"));
480 CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
481 EXPECT_EQ(kNot,
482 CanPlay("'" + mime + "; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
483 477
484 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vorbis\"'")); 478 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vorbis\"'"));
485 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"opus\"'")); 479 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"opus\"'"));
486 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'")); 480 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'"));
487 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, 1\"'")); 481 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, 1\"'"));
488 482
489 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'")); 483 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'"));
490 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'")); 484 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'"));
491 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'")); 485 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'"));
492 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'")); 486 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'"));
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 EXPECT_EQ(kHlsProbably, 558 EXPECT_EQ(kHlsProbably,
565 CanPlay("'" + mime + "; codecs=\"avc3.42E01E, mp4a.40.29\"'")); 559 CanPlay("'" + mime + "; codecs=\"avc3.42E01E, mp4a.40.29\"'"));
566 560
567 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); 561 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'"));
568 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); 562 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'"));
569 EXPECT_EQ(kNot, 563 EXPECT_EQ(kNot,
570 CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); 564 CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
571 EXPECT_EQ(kNot, 565 EXPECT_EQ(kNot,
572 CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); 566 CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
573 567
574 EXPECT_EQ(kNot, 568 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09.00.01.08\"'"));
575 CanPlay("'" + mime + "; codecs=\"vp09.01.01.08.04.03.00.00\"'"));
576 569
577 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); 570 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'"));
578 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); 571 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'"));
579 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A5\"'")); 572 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A5\"'"));
580 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A6\"'")); 573 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A6\"'"));
581 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5\"'")); 574 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5\"'"));
582 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); 575 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'"));
583 576
584 EXPECT_EQ(kHlsMaybe, CanPlay("'" + mime + "; codecs=\"avc1, mp4a.40.2\"'")); 577 EXPECT_EQ(kHlsMaybe, CanPlay("'" + mime + "; codecs=\"avc1, mp4a.40.2\"'"));
585 EXPECT_EQ(kHlsMaybe, 578 EXPECT_EQ(kHlsMaybe,
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); 863 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'"));
871 864
872 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0\"'")); 865 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0\"'"));
873 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); 866 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0\"'"));
874 EXPECT_EQ(kHevcSupported, 867 EXPECT_EQ(kHevcSupported,
875 CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); 868 CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
876 EXPECT_EQ(kHevcSupported, 869 EXPECT_EQ(kHevcSupported,
877 CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); 870 CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
878 871
879 // switches::kEnableVp9InMp4 is enabled in MediaBrowserTest. 872 // switches::kEnableVp9InMp4 is enabled in MediaBrowserTest.
880 EXPECT_EQ(kPropProbably, 873 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"vp09.00.01.08\"'"));
881 CanPlay("'video/mp4; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
882 874
883 TestMPEGUnacceptableCombinations("video/mp4"); 875 TestMPEGUnacceptableCombinations("video/mp4");
884 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"flac\"'")); 876 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"flac\"'"));
885 // This result is incorrect. See https://crbug.com/592889. 877 // This result is incorrect. See https://crbug.com/592889.
886 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp3\"'")); 878 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp3\"'"));
887 879
888 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); 880 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'"));
889 881
890 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); 882 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'"));
891 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); 883 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'"));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 EXPECT_EQ(kPropMaybe, 923 EXPECT_EQ(kPropMaybe,
932 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); 924 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'"));
933 925
934 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'")); 926 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'"));
935 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'")); 927 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'"));
936 EXPECT_EQ(kNot, 928 EXPECT_EQ(kNot,
937 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); 929 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
938 EXPECT_EQ(kNot, 930 EXPECT_EQ(kNot,
939 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); 931 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
940 932
941 EXPECT_EQ(kNot, 933 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"vp09.00.01.08\"'"));
942 CanPlay("'video/x-m4v; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
943 934
944 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"ac-3\"'")); 935 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"ac-3\"'"));
945 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.a5\"'")); 936 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.a5\"'"));
946 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.A5\"'")); 937 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.A5\"'"));
947 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"ec-3\"'")); 938 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"ec-3\"'"));
948 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.a6\"'")); 939 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.a6\"'"));
949 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.A6\"'")); 940 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.A6\"'"));
950 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"avc1.640028,ac-3\"'")); 941 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"avc1.640028,ac-3\"'"));
951 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.a5\"'")); 942 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.a5\"'"));
952 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.A5\"'")); 943 EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.A5\"'"));
(...skipping 23 matching lines...) Expand all
976 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); 967 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'"));
977 968
978 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); 969 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'"));
979 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); 970 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'"));
980 971
981 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'")); 972 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'"));
982 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); 973 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'"));
983 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); 974 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
984 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); 975 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
985 976
986 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"vp09.00.01.08.02.01.01.00\"'")); 977 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"vp09.00.01.08\"'"));
987 978
988 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ac-3\"'")); 979 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ac-3\"'"));
989 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'")); 980 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'"));
990 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'")); 981 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'"));
991 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ec-3\"'")); 982 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ec-3\"'"));
992 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a6\"'")); 983 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a6\"'"));
993 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'")); 984 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'"));
994 985
995 TestMPEGUnacceptableCombinations("audio/mp4"); 986 TestMPEGUnacceptableCombinations("audio/mp4");
996 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"flac\"'")); 987 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"flac\"'"));
(...skipping 23 matching lines...) Expand all
1020 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); 1011 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'"));
1021 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); 1012 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'"));
1022 1013
1023 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0\"'")); 1014 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0\"'"));
1024 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0\"'")); 1015 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0\"'"));
1025 EXPECT_EQ(kNot, 1016 EXPECT_EQ(kNot,
1026 CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); 1017 CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
1027 EXPECT_EQ(kNot, 1018 EXPECT_EQ(kNot,
1028 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); 1019 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
1029 1020
1030 EXPECT_EQ(kNot, 1021 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"vp09.00.01.08\"'"));
1031 CanPlay("'audio/x-m4a; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
1032 1022
1033 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"ac-3\"'")); 1023 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"ac-3\"'"));
1034 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.a5\"'")); 1024 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.a5\"'"));
1035 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.A5\"'")); 1025 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.A5\"'"));
1036 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"ec-3\"'")); 1026 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"ec-3\"'"));
1037 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.a6\"'")); 1027 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.a6\"'"));
1038 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.A6\"'")); 1028 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.A6\"'"));
1039 1029
1040 TestMPEGUnacceptableCombinations("audio/x-m4a"); 1030 TestMPEGUnacceptableCombinations("audio/x-m4a");
1041 } 1031 }
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 CanPlay("'video/mp2t; codecs=\"avc1.77.30,mp4a.40.2\"'")); 1506 CanPlay("'video/mp2t; codecs=\"avc1.77.30,mp4a.40.2\"'"));
1517 EXPECT_EQ(kMp2tsProbably, 1507 EXPECT_EQ(kMp2tsProbably,
1518 CanPlay("'video/mp2t; codecs=\"avc1.100.40,mp4a.40.2\"'")); 1508 CanPlay("'video/mp2t; codecs=\"avc1.100.40,mp4a.40.2\"'"));
1519 } 1509 }
1520 1510
1521 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2TsAudio) { 1511 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2TsAudio) {
1522 // audio/mp2t is currently not supported (see also crbug.com/556837). 1512 // audio/mp2t is currently not supported (see also crbug.com/556837).
1523 EXPECT_EQ(kNot, CanPlay("'audio/mp2t; codecs=\"mp4a.40.2\"'")); 1513 EXPECT_EQ(kNot, CanPlay("'audio/mp2t; codecs=\"mp4a.40.2\"'"));
1524 } 1514 }
1525 1515
1526 class MediaCanPlayTypeTestMp4Vp9Demuxing 1516 // New VP9 string is behind a variety of flags depending on container and
1517 // whether HDR is enabled.
1518 struct CanPlayTypeNewVp9Params {
1519 const std::string command_line_flag;
1520 const std::string container;
1521 const char* prop_probably;
1522 const char* prop_maybe;
1523 };
1524
1525 class MediaCanPlayNewVp9TypeTest
1527 : public MediaCanPlayTypeTest, 1526 : public MediaCanPlayTypeTest,
1528 public ::testing::WithParamInterface<bool> { 1527 public ::testing::WithParamInterface<CanPlayTypeNewVp9Params> {
1529 public: 1528 public:
1530 void SetUpCommandLine(base::CommandLine* command_line) override { 1529 void SetUpCommandLine(base::CommandLine* command_line) override {
1531 const bool enable_mp4_vp9_demuxing = GetParam(); 1530 const CanPlayTypeNewVp9Params& params = GetParam();
1532 if (enable_mp4_vp9_demuxing) 1531 if (!params.command_line_flag.empty())
1533 command_line->AppendSwitch(switches::kEnableVp9InMp4); 1532 command_line->AppendSwitch(params.command_line_flag);
1534 } 1533 }
1535 }; 1534 };
1536 1535
1537 IN_PROC_BROWSER_TEST_P(MediaCanPlayTypeTestMp4Vp9Demuxing, 1536 // See more complete codec string testing in media/base/video_codecs_unittest.cc
1538 CodecSupportTest_Mp4Vp9Variants) { 1537 IN_PROC_BROWSER_TEST_P(MediaCanPlayNewVp9TypeTest,
1539 // Malformed codecs string. 1538 CodecSupportTest_NewVp9Variants) {
1540 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.00.-1.08\"'")); 1539 const CanPlayTypeNewVp9Params& params = GetParam();
1541 1540
1542 // Codecs strings with missing fields. 1541 // E.g. "'video/webm; "
1543 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09\"'")); 1542 std::string mime_prefix = "'" + params.container + "; ";
1544 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.00.01.08\"'"));
1545 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01..02.01.01.00\"'"));
1546 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.08.05.01.01\"'"));
1547 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.04\"'"));
1548 1543
1549 // Unexpected bit depth. 1544 // Malformed codecs string never allowed.
1550 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.09.02.01.01.00\"'")); 1545 EXPECT_EQ(kNot, CanPlay(mime_prefix + "codecs=\"vp09.00.-1.08\"'"));
1551 // Unexpected chroma subsampling.
1552 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.08.04.04.00.00\"'"));
1553 // Unexpected transfer function.
1554 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.08.04.03.02.00\"'"));
1555 // Unexpected profile.
1556 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.04.01.08.02.01.01.00\"'"));
1557 1546
1558 const bool enable_mp4_vp9_demuxing = GetParam(); 1547 const char* new_vp9_probably = params.prop_probably;
1559 const char* mp4_vp9_probably = enable_mp4_vp9_demuxing ? kPropProbably : kNot; 1548 const char* new_vp9_maybe = params.prop_maybe;
1560 const char* mp4_vp9_maybe = enable_mp4_vp9_demuxing ? kPropMaybe : kNot;
1561 1549
1562 EXPECT_EQ(mp4_vp9_probably, 1550 // Test a few valid strings.
1563 CanPlay("'video/mp4; codecs=\"vp09.00.01.08.02.01.01.00\"'")); 1551 EXPECT_EQ(new_vp9_probably,
1564 EXPECT_EQ(mp4_vp9_probably, 1552 CanPlay(mime_prefix + "codecs=\"vp09.00.01.08\"'"));
1565 CanPlay("'video/mp4; codecs=\"vp09.00.01.08.04.03.00.00\"'")); 1553 EXPECT_EQ(new_vp9_probably,
1566 EXPECT_EQ(mp4_vp9_maybe, 1554 CanPlay(mime_prefix + "codecs=\"vp09.00.01.08.01.01.01.00.00\"'"));
1567 CanPlay("'video/mp4; codecs=\"vp09.01.01.08.02.01.01.00\"'")); 1555
1568 EXPECT_EQ(mp4_vp9_maybe, 1556 // Platform support is sadly ambiguous for profiles > 0.
1569 CanPlay("'video/mp4; codecs=\"vp09.02.01.08.02.01.01.00\"'")); 1557 // TODO(chcunningham): Plumb proper querying of platform support - give a firm
1570 EXPECT_EQ(mp4_vp9_maybe, 1558 // answer.
1571 CanPlay("'video/mp4; codecs=\"vp09.03.01.08.02.01.01.00\"'")); 1559 EXPECT_EQ(new_vp9_maybe, CanPlay(mime_prefix + "codecs=\"vp09.01.01.08\"'"));
1560 EXPECT_EQ(new_vp9_maybe, CanPlay(mime_prefix + "codecs=\"vp09.02.01.08\"'"));
1561 EXPECT_EQ(new_vp9_maybe, CanPlay(mime_prefix + "codecs=\"vp09.03.01.08\"'"));
1572 } 1562 }
1573 1563
1574 INSTANTIATE_TEST_CASE_P(EnableDisableMp4Vp9Demuxing, 1564 const CanPlayTypeNewVp9Params kNewVp9ParamVariants[] = {
1575 MediaCanPlayTypeTestMp4Vp9Demuxing, 1565 // Expect CanPlay(...) = kNotEmpty when command line flag empty.
1576 ::testing::Bool()); 1566 {"", "video/mp4", kNot, kNot},
1567 {"", "video/webm", kNot, kNot},
1568 // Expect CanPlay(...) = kProbably/kMaybe for MP4, but not for WebM for
1569 // these command line flags.
1570 {switches::kEnableVp9InMp4, "video/mp4", kPropProbably, kPropMaybe},
1571 {switches::kEnableVp9InMp4, "video/webm", kNot, kNot},
1572 // Expect CanPlay(...) = kProbably/kMaybe for WebM, but not for MP4 for
1573 // these command line flags.
1574 {switches::kEnableHDROutput, "video/mp4", kNot, kNot},
1575 {switches::kEnableNewVp9CodecString, "video/mp4", kNot, kNot},
1576 {switches::kEnableHDROutput, "video/webm", kProbably, kMaybe},
1577 {switches::kEnableNewVp9CodecString, "video/webm", kProbably, kMaybe},
1578 };
1579
1580 INSTANTIATE_TEST_CASE_P(CodecSupportTest_NewVp9String,
1581 MediaCanPlayNewVp9TypeTest,
1582 ::testing::ValuesIn(kNewVp9ParamVariants));
1577 1583
1578 } // namespace content 1584 } // namespace content
OLDNEW
« no previous file with comments | « chromecast/common/media/cast_media_client.cc ('k') | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698