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

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

Issue 816353010: Implemented HEVC video demuxing and parsing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to ToT Created 5 years, 7 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 "content/browser/media/media_browsertest.h" 7 #include "content/browser/media/media_browsertest.h"
8 #include "content/public/test/browser_test_utils.h" 8 #include "content/public/test/browser_test_utils.h"
9 #include "content/public/test/content_browser_test_utils.h" 9 #include "content/public/test/content_browser_test_utils.h"
10 #include "content/shell/browser/shell.h" 10 #include "content/shell/browser/shell.h"
(...skipping 20 matching lines...) Expand all
31 const char kTheoraProbably[] = "probably"; 31 const char kTheoraProbably[] = "probably";
32 const char kOggOpusProbably[] = "probably"; 32 const char kOggOpusProbably[] = "probably";
33 const char* kMpeg2AacProbably = kPropProbably; 33 const char* kMpeg2AacProbably = kPropProbably;
34 #else 34 #else
35 const char kOggVideoProbably[] = ""; 35 const char kOggVideoProbably[] = "";
36 const char kOggVideoMaybe[] = ""; 36 const char kOggVideoMaybe[] = "";
37 const char kTheoraProbably[] = ""; 37 const char kTheoraProbably[] = "";
38 const char kOggOpusProbably[] = ""; 38 const char kOggOpusProbably[] = "";
39 const char kMpeg2AacProbably[] = ""; 39 const char kMpeg2AacProbably[] = "";
40 #endif // !OS_ANDROID 40 #endif // !OS_ANDROID
41 41
ddorwin 2015/06/12 00:52:26 Move kHevcSupported up here.
servolk 2015/06/12 21:57:31 Done.
42 namespace content { 42 namespace content {
43 43
44 class MediaCanPlayTypeTest : public MediaBrowserTest { 44 class MediaCanPlayTypeTest : public MediaBrowserTest {
45 public: 45 public:
46 MediaCanPlayTypeTest() : url_("about:blank") { } 46 MediaCanPlayTypeTest() : url_("about:blank") { }
47 47
48 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } 48 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); }
49 49
50 std::string CanPlay(const std::string& type) { 50 std::string CanPlay(const std::string& type) {
51 std::string command("document.createElement('video').canPlayType("); 51 std::string command("document.createElement('video').canPlayType(");
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 166
167 // Unknown codecs. 167 // Unknown codecs.
168 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); 168 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'"));
169 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); 169 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'"));
170 170
171 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); 171 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'"));
172 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); 172 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'"));
173 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); 173 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'"));
174 174
175 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); 175 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'"));
176
177 // Don't allow incomplete/ambiguous codec ids for HEVC.
178 // Codec string must have info about codec level/profile, e.g. hvc1.1.L0.0
179 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'"));
180 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'"));
181 // Make sure trailing dots are not allowed.
182 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.\"'"));
183 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.\"'"));
184 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.L0.0.\"'"));
185 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.L0.0.\"'"));
186
187 // Invalid codecs that look like something similar to HEVC/H.265
188 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'"));
189 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1x\"'"));
190 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc0.1.L0.0\"'"));
191 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev0.1.L0.0\"'"));
192 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc2.1.L0.0\"'"));
193 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev2.1.L0.0\"'"));
176 } 194 }
177 195
178 void TestOGGUnacceptableCombinations(const std::string& mime) { 196 void TestOGGUnacceptableCombinations(const std::string& mime) {
179 // Codecs not belonging to OGG container. 197 // Codecs not belonging to OGG container.
180 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); 198 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'"));
181 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'")); 199 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'"));
182 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'")); 200 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'"));
183 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'")); 201 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'"));
184 202
185 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'")); 203 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'"));
186 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'")); 204 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'"));
187 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'")); 205 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'"));
188 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'")); 206 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'"));
189 207
190 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); 208 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'"));
191 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); 209 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'"));
192 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); 210 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'"));
193 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); 211 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'"));
194 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); 212 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'"));
195 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); 213 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'"));
196 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); 214 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'"));
197 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); 215 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'"));
ddorwin 2015/06/12 00:52:26 Add HEVC
servolk 2015/06/12 21:57:31 Done.
198 216
199 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); 217 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'"));
200 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); 218 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'"));
201 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); 219 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'"));
202 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); 220 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'"));
203 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); 221 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'"));
204 222
205 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); 223 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'"));
206 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); 224 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'"));
207 225
(...skipping 20 matching lines...) Expand all
228 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, vorbis\"'")); 246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, vorbis\"'"));
229 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, opus\"'")); 247 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, opus\"'"));
230 248
231 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); 249 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'"));
232 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); 250 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'"));
233 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); 251 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'"));
234 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); 252 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'"));
235 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); 253 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'"));
236 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); 254 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'"));
237 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); 255 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'"));
238 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); 256 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'"));
ddorwin 2015/06/12 00:52:26 Add HEVC
239 257
240 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); 258 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'"));
241 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); 259 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'"));
242 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); 260 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'"));
243 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); 261 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'"));
244 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); 262 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'"));
245 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); 263 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'"));
246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); 264 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'"));
247 265
248 // Codecs are case sensitive. 266 // Codecs are case sensitive.
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 499
482 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); 500 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'"));
483 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); 501 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'"));
484 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); 502 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'"));
485 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); 503 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'"));
486 EXPECT_EQ(kPropMaybe, 504 EXPECT_EQ(kPropMaybe,
487 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); 505 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'"));
488 EXPECT_EQ(kPropMaybe, 506 EXPECT_EQ(kPropMaybe,
489 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); 507 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'"));
490 508
509 const char* kHevcSupported = kNot;
ddorwin 2015/06/12 00:52:26 From PS33: It's odd to define a constant like this
servolk 2015/06/12 21:57:30 Done.
510 #if defined(ENABLE_HEVC_DEMUXING)
511 kHevcSupported = kPropProbably;
512 #endif
513
514 // TODO(servolk): Add more unit test coverage once we have more info about
515 // various HEVC levels/profiles.
516 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hvc1.1.L0.0\"'"));
517 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hev1.1.L0.0\"'"));
518 EXPECT_EQ(kHevcSupported,
519 CanPlay("'video/mp4; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'"));
520 EXPECT_EQ(kHevcSupported,
521 CanPlay("'video/mp4; codecs=\"hev1.1.L0.0, mp4a.40.5\"'"));
522
491 TestMPEGUnacceptableCombinations("video/mp4"); 523 TestMPEGUnacceptableCombinations("video/mp4");
492 524
493 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); 525 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'"));
494 526
495 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); 527 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'"));
496 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); 528 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'"));
497 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'")); 529 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'"));
498 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'")); 530 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'"));
499 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'")); 531 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'"));
500 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); 532 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'"));
(...skipping 23 matching lines...) Expand all
524 556
525 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.2\"'")); 557 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.2\"'"));
526 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.02\"'")); 558 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.02\"'"));
527 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.2\"'")); 559 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.2\"'"));
528 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.02\"'")); 560 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.02\"'"));
529 EXPECT_EQ(kPropMaybe, 561 EXPECT_EQ(kPropMaybe,
530 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'")); 562 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'"));
531 EXPECT_EQ(kPropMaybe, 563 EXPECT_EQ(kPropMaybe,
532 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); 564 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'"));
533 565
566 EXPECT_EQ(kHevcSupported, CanPlay("'video/x-m4v; codecs=\"hvc1.1.L0.0\"'"));
567 EXPECT_EQ(kHevcSupported, CanPlay("'video/x-m4v; codecs=\"hev1.1.L0.0\"'"));
568 EXPECT_EQ(kHevcSupported,
569 CanPlay("'video/x-m4v; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'"));
570 EXPECT_EQ(kHevcSupported,
571 CanPlay("'video/x-m4v; codecs=\"hev1.1.L0.0, mp4a.40.5\"'"));
572
534 TestMPEGUnacceptableCombinations("video/x-m4v"); 573 TestMPEGUnacceptableCombinations("video/x-m4v");
535 574
536 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); 575 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'"));
537 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); 576 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'"));
538 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); 577 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'"));
539 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); 578 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'"));
540 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); 579 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'"));
541 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); 580 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'"));
542 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); 581 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'"));
543 582
544 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); 583 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'"));
545 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); 584 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'"));
546 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); 585 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'"));
547 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); 586 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'"));
548 587
549 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); 588 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'"));
550 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); 589 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'"));
551 590
591 EXPECT_EQ(kHevcSupported, CanPlay("'audio/mp4; codecs=\"hvc1.1.L0.0\"'"));
ddorwin 2015/06/12 00:52:26 audio/* cannot contain video codecs.
servolk 2015/06/12 21:57:31 Done.
592 EXPECT_EQ(kHevcSupported, CanPlay("'audio/mp4; codecs=\"hev1.1.L0.0\"'"));
593 EXPECT_EQ(kHevcSupported,
594 CanPlay("'audio/mp4; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'"));
595 EXPECT_EQ(kHevcSupported,
596 CanPlay("'audio/mp4; codecs=\"hev1.1.L0.0, mp4a.40.5\"'"));
597
552 TestMPEGUnacceptableCombinations("audio/mp4"); 598 TestMPEGUnacceptableCombinations("audio/mp4");
553 599
554 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); 600 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'"));
555 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); 601 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'"));
556 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); 602 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'"));
557 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); 603 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'"));
558 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); 604 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'"));
559 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); 605 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'"));
560 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); 606 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'"));
561 607
562 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); 608 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'"));
563 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); 609 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'"));
564 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); 610 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'"));
565 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); 611 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'"));
566 612
567 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); 613 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'"));
568 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); 614 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'"));
569 615
616 EXPECT_EQ(kHevcSupported, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.L0.0\"'"));
ddorwin 2015/06/12 00:52:26 ditto
servolk 2015/06/12 21:57:30 Done.
617 EXPECT_EQ(kHevcSupported, CanPlay("'audio/x-m4a; codecs=\"hev1.1.L0.0\"'"));
618 EXPECT_EQ(kHevcSupported,
619 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'"));
620 EXPECT_EQ(kHevcSupported,
621 CanPlay("'audio/x-m4a; codecs=\"hev1.1.L0.0, mp4a.40.5\"'"));
622
570 TestMPEGUnacceptableCombinations("audio/x-m4a"); 623 TestMPEGUnacceptableCombinations("audio/x-m4a");
571 } 624 }
572 625
573 // When modifying this test, also change CodecSupportTest_Avc3Variants. 626 // When modifying this test, also change CodecSupportTest_Avc3Variants.
574 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { 627 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) {
575 // avc1 without extensions results in "maybe" for compatibility. 628 // avc1 without extensions results in "maybe" for compatibility.
576 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); 629 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'"));
577 630
578 // Any 6-digit hexadecimal number will result in at least "maybe". 631 // Any 6-digit hexadecimal number will result in at least "maybe".
579 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); 632 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'"));
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
942 EXPECT_EQ(probablyCanPlayHLS, 995 EXPECT_EQ(probablyCanPlayHLS,
943 CanPlay("'application/x-mpegurl; codecs=\"avc3.42C01E\"'")); 996 CanPlay("'application/x-mpegurl; codecs=\"avc3.42C01E\"'"));
944 997
945 EXPECT_EQ(maybeCanPlayHLS, 998 EXPECT_EQ(maybeCanPlayHLS,
946 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E11E\"'")); 999 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E11E\"'"));
947 EXPECT_EQ(maybeCanPlayHLS, 1000 EXPECT_EQ(maybeCanPlayHLS,
948 CanPlay("'application/x-mpegurl; codecs=\"avc1.42101E\"'")); 1001 CanPlay("'application/x-mpegurl; codecs=\"avc1.42101E\"'"));
949 EXPECT_EQ(maybeCanPlayHLS, 1002 EXPECT_EQ(maybeCanPlayHLS,
950 CanPlay("'application/x-mpegurl; codecs=\"avc1.42701E\"'")); 1003 CanPlay("'application/x-mpegurl; codecs=\"avc1.42701E\"'"));
951 EXPECT_EQ(probablyCanPlayHLS, 1004 EXPECT_EQ(probablyCanPlayHLS,
952 CanPlay("'application/x-mpegurl; codecs=\"avc1.42F01E\"'")); 1005 CanPlay("'application/x-mpegurl; codecs=\"avc1.42F01E\"'"));
ddorwin 2015/06/12 00:52:26 Add HEVC (kNot)
servolk 2015/06/12 21:57:30 Done.
953 1006
954 EXPECT_EQ(probablyCanPlayHLS, 1007 EXPECT_EQ(probablyCanPlayHLS,
955 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'")); 1008 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'"));
956 EXPECT_EQ(probablyCanPlayHLS, 1009 EXPECT_EQ(probablyCanPlayHLS,
957 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.02\"'")); 1010 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.02\"'"));
958 EXPECT_EQ(probablyCanPlayHLS, 1011 EXPECT_EQ(probablyCanPlayHLS,
959 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); 1012 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'"));
960 EXPECT_EQ(probablyCanPlayHLS, 1013 EXPECT_EQ(probablyCanPlayHLS,
961 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); 1014 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'"));
962 EXPECT_EQ(probablyCanPlayHLS, 1015 EXPECT_EQ(probablyCanPlayHLS,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 EXPECT_EQ(probablyCanPlayHLS, 1056 EXPECT_EQ(probablyCanPlayHLS,
1004 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.42C01E\"'")); 1057 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.42C01E\"'"));
1005 1058
1006 EXPECT_EQ(maybeCanPlayHLS, 1059 EXPECT_EQ(maybeCanPlayHLS,
1007 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42E11E\"'")); 1060 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42E11E\"'"));
1008 EXPECT_EQ(maybeCanPlayHLS, 1061 EXPECT_EQ(maybeCanPlayHLS,
1009 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42101E\"'")); 1062 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42101E\"'"));
1010 EXPECT_EQ(maybeCanPlayHLS, 1063 EXPECT_EQ(maybeCanPlayHLS,
1011 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42701E\"'")); 1064 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42701E\"'"));
1012 EXPECT_EQ(probablyCanPlayHLS, 1065 EXPECT_EQ(probablyCanPlayHLS,
1013 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42F01E\"'")); 1066 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42F01E\"'"));
ddorwin 2015/06/12 00:52:26 ditto
servolk 2015/06/12 21:57:30 Done.
1014 1067
1015 EXPECT_EQ(probablyCanPlayHLS, 1068 EXPECT_EQ(probablyCanPlayHLS,
1016 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'")); 1069 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'"));
1017 EXPECT_EQ(probablyCanPlayHLS, 1070 EXPECT_EQ(probablyCanPlayHLS,
1018 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.02\"'")); 1071 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.02\"'"));
1019 EXPECT_EQ(probablyCanPlayHLS, 1072 EXPECT_EQ(probablyCanPlayHLS,
1020 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.5\"'")); 1073 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.5\"'"));
1021 EXPECT_EQ(probablyCanPlayHLS, 1074 EXPECT_EQ(probablyCanPlayHLS,
1022 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.05\"'")); 1075 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.05\"'"));
1023 EXPECT_EQ(probablyCanPlayHLS, 1076 EXPECT_EQ(probablyCanPlayHLS,
(...skipping 11 matching lines...) Expand all
1035 CanPlay("'application/vnd.apple.mpegurl; " 1088 CanPlay("'application/vnd.apple.mpegurl; "
1036 "codecs=\"avc1.42E01E, mp4a.40\"'")); 1089 "codecs=\"avc1.42E01E, mp4a.40\"'"));
1037 EXPECT_EQ(maybeCanPlayHLS, 1090 EXPECT_EQ(maybeCanPlayHLS,
1038 CanPlay("'application/vnd.apple.mpegurl; " 1091 CanPlay("'application/vnd.apple.mpegurl; "
1039 "codecs=\"avc3.42E01E, mp4a.40\"'")); 1092 "codecs=\"avc3.42E01E, mp4a.40\"'"));
1040 1093
1041 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); 1094 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl");
1042 } 1095 }
1043 1096
1044 } // namespace content 1097 } // namespace content
OLDNEW
« no previous file with comments | « build/common.gypi ('k') | media/BUILD.gn » ('j') | media/base/mime_util.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698