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

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, 3 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
« no previous file with comments | « no previous file | content/content_tests.gypi » ('j') | content/content_tests.gypi » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 21 matching lines...) Expand all
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
42 #if defined(ENABLE_HEVC_DEMUXING)
43 const char* kHevcSupported = kPropProbably;
44 #else
45 const char* kHevcSupported = kNot;
46 #endif
47
48
42 namespace content { 49 namespace content {
43 50
44 class MediaCanPlayTypeTest : public MediaBrowserTest { 51 class MediaCanPlayTypeTest : public MediaBrowserTest {
45 public: 52 public:
46 MediaCanPlayTypeTest() : url_("about:blank") { } 53 MediaCanPlayTypeTest() : url_("about:blank") { }
47 54
48 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } 55 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); }
49 56
50 std::string CanPlay(const std::string& type) { 57 std::string CanPlay(const std::string& type) {
51 std::string command("document.createElement('video').canPlayType("); 58 std::string command("document.createElement('video').canPlayType(");
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 173
167 // Unknown codecs. 174 // Unknown codecs.
168 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); 175 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'"));
169 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); 176 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'"));
170 177
171 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); 178 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'"));
172 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); 179 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'"));
173 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); 180 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'"));
174 181
175 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); 182 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'"));
183
184 // Don't allow incomplete/ambiguous codec ids for HEVC.
185 // Codec string must have info about codec level/profile, as described in
186 // ISO/IEC FDIS 14496-15 section E.3, for example "hev1.1.6.L93.B0"
187 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'"));
188 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'"));
189
190 // Invalid codecs that look like something similar to HEVC/H.265
191 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'"));
192 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1x\"'"));
193 // First component of codec id must be "hev1" or "hvc1" (case-sensitive)
194 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hevc.1.6.L93.B0\"'"));
195 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev0.1.6.L93.B0\"'"));
196 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc0.1.6.L93.B0\"'"));
197 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev2.1.6.L93.B0\"'"));
198 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc2.1.6.L93.B0\"'"));
199 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"HEVC.1.6.L93.B0\"'"));
200 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"HEV0.1.6.L93.B0\"'"));
201 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"HVC0.1.6.L93.B0\"'"));
202 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"HEV2.1.6.L93.B0\"'"));
203 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"HVC2.1.6.L93.B0\"'"));
204
205 // TODO(servolk): Uncomment these after crbug.com/482761 is fixed.
206 // Trailing dot is not allowed.
207 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0.\"'"));
208 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0.\"'"));
209 // Invalid general_profile_space/general_profile_idc
210 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.x.6.L93.B0\"'"));
211 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.x.6.L93.B0\"'"));
212 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.d1.6.L93.B0\"'"));
213 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.d1.6.L93.B0\"'"));
214 // Invalid general_profile_compatibility_flags
215 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.x.L93.B0\"'"));
216 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.x.L93.B0\"'"));
217 // Invalid general_tier_flag
218 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.x.B0\"'"));
219 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.x.B0\"'"));
220 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.Lx.B0\"'"));
221 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.Lx.B0\"'"));
222 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.Hx.B0\"'"));
223 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.Hx.B0\"'"));
224 // Invalid constraint flags
225 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.x\"'"));
226 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.x\"'"));
176 } 227 }
177 228
178 void TestOGGUnacceptableCombinations(const std::string& mime) { 229 void TestOGGUnacceptableCombinations(const std::string& mime) {
179 // Codecs not belonging to OGG container. 230 // Codecs not belonging to OGG container.
180 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); 231 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'"));
181 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'")); 232 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'"));
182 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'")); 233 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'"));
183 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'")); 234 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'"));
184 235
185 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'")); 236 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'"));
186 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'")); 237 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'"));
187 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'")); 238 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'"));
188 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'")); 239 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'"));
189 240
190 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); 241 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'"));
191 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); 242 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'"));
192 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); 243 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'"));
193 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); 244 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'"));
194 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); 245 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'"));
195 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); 246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'"));
196 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); 247 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'"));
197 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); 248 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'"));
198 249
250 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'"));
251 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'"));
252 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'"));
253 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'"));
254
199 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); 255 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'"));
200 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); 256 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'"));
201 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); 257 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'"));
202 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); 258 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'"));
203 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); 259 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'"));
204 260
205 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); 261 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'"));
206 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); 262 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'"));
207 263
208 // Codecs are case sensitive. 264 // Codecs are case sensitive.
(...skipping 21 matching lines...) Expand all
230 286
231 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); 287 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'"));
232 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); 288 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'"));
233 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); 289 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'"));
234 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); 290 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'"));
235 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); 291 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'"));
236 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); 292 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'"));
237 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); 293 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'"));
238 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); 294 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'"));
239 295
296 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'"));
297 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'"));
298 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'"));
299 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'"));
300
240 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); 301 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'"));
241 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); 302 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'"));
242 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); 303 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'"));
243 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); 304 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'"));
244 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); 305 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'"));
245 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); 306 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'"));
246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); 307 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'"));
247 308
248 // Codecs are case sensitive. 309 // Codecs are case sensitive.
249 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'")); 310 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'"));
(...skipping 17 matching lines...) Expand all
267 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'")); 328 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'"));
268 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); 329 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'"));
269 330
270 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); 331 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'"));
271 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); 332 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'"));
272 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); 333 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'"));
273 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); 334 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'"));
274 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, 1\"'")); 335 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, 1\"'"));
275 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, 1\"'")); 336 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, 1\"'"));
276 337
338 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'"));
339 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'"));
340 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'"));
341 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'"));
342
277 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); 343 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'"));
278 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); 344 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'"));
279 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); 345 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'"));
280 346
281 // Unknown codec. 347 // Unknown codec.
282 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); 348 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'"));
283 } 349 }
284 350
285 private: 351 private:
286 GURL url_; 352 GURL url_;
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 547
482 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); 548 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'"));
483 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); 549 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'"));
484 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); 550 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'"));
485 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); 551 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'"));
486 EXPECT_EQ(kPropMaybe, 552 EXPECT_EQ(kPropMaybe,
487 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); 553 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'"));
488 EXPECT_EQ(kPropMaybe, 554 EXPECT_EQ(kPropMaybe,
489 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); 555 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'"));
490 556
557 // TODO(servolk): Add more unit test coverage once we have more info about
558 // various HEVC levels/profiles (crbug.com/482761).
559 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0\"'"));
560 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0\"'"));
561 EXPECT_EQ(kHevcSupported,
562 CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
563 EXPECT_EQ(kHevcSupported,
564 CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
565
491 TestMPEGUnacceptableCombinations("video/mp4"); 566 TestMPEGUnacceptableCombinations("video/mp4");
492 567
493 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); 568 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'"));
494 569
495 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); 570 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'"));
496 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); 571 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'"));
497 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'")); 572 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'"));
498 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'")); 573 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'"));
499 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'")); 574 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'"));
500 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); 575 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'"));
(...skipping 23 matching lines...) Expand all
524 599
525 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.2\"'")); 600 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\"'")); 601 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\"'")); 602 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\"'")); 603 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.02\"'"));
529 EXPECT_EQ(kPropMaybe, 604 EXPECT_EQ(kPropMaybe,
530 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'")); 605 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'"));
531 EXPECT_EQ(kPropMaybe, 606 EXPECT_EQ(kPropMaybe,
532 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); 607 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'"));
533 608
609 EXPECT_EQ(kHevcSupported,
610 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'"));
611 EXPECT_EQ(kHevcSupported,
612 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'"));
613 EXPECT_EQ(kHevcSupported,
614 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
615 EXPECT_EQ(kHevcSupported,
616 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
617
534 TestMPEGUnacceptableCombinations("video/x-m4v"); 618 TestMPEGUnacceptableCombinations("video/x-m4v");
535 619
536 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); 620 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'"));
537 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); 621 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'"));
538 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); 622 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'"));
539 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); 623 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'"));
540 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); 624 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'"));
541 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); 625 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'"));
542 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); 626 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'"));
543 627
544 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); 628 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'"));
545 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); 629 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'"));
546 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); 630 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'"));
547 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); 631 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'"));
548 632
549 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); 633 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'"));
550 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); 634 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'"));
551 635
636 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'"));
637 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'"));
638 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
639 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
640
552 TestMPEGUnacceptableCombinations("audio/mp4"); 641 TestMPEGUnacceptableCombinations("audio/mp4");
553 642
554 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); 643 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'"));
555 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); 644 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'"));
556 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); 645 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'"));
557 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); 646 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'"));
558 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); 647 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'"));
559 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); 648 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'"));
560 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); 649 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'"));
561 650
562 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); 651 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'"));
563 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); 652 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'"));
564 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); 653 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'"));
565 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); 654 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'"));
566 655
567 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); 656 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'"));
568 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); 657 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'"));
569 658
659 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0\"'"));
660 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0\"'"));
661 EXPECT_EQ(kNot,
662 CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
663 EXPECT_EQ(kNot,
664 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
665
570 TestMPEGUnacceptableCombinations("audio/x-m4a"); 666 TestMPEGUnacceptableCombinations("audio/x-m4a");
571 } 667 }
572 668
573 // When modifying this test, also change CodecSupportTest_Avc3Variants. 669 // When modifying this test, also change CodecSupportTest_Avc3Variants.
574 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { 670 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) {
575 // avc1 without extensions results in "maybe" for compatibility. 671 // avc1 without extensions results in "maybe" for compatibility.
576 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); 672 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'"));
577 673
578 // Any 6-digit hexadecimal number will result in at least "maybe". 674 // Any 6-digit hexadecimal number will result in at least "maybe".
579 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); 675 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'"));
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.42E033\"'")); 888 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.42E033\"'"));
793 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E034\"'")); 889 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E034\"'"));
794 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E035\"'")); 890 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E035\"'"));
795 // Verify that decimal representations of levels are not supported. 891 // Verify that decimal representations of levels are not supported.
796 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E005\"'")); 892 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E005\"'"));
797 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'")); 893 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'"));
798 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'")); 894 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'"));
799 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'")); 895 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'"));
800 } 896 }
801 897
898 // TODO(servolk): Add extensive tests for various HEVC profiles, levels and
899 // tiers, similar to avc1/avc3 tests above, after proper HEVC codec id parsing
900 // is implemented (crbug.com/482761)
901
802 // All values that return positive results are tested. There are also 902 // All values that return positive results are tested. There are also
803 // negative tests for values around or that could potentially be confused with 903 // negative tests for values around or that could potentially be confused with
804 // (e.g. case, truncation, hex <-> deciemal conversion) those values that return 904 // (e.g. case, truncation, hex <-> deciemal conversion) those values that return
805 // positive results. 905 // positive results.
806 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) { 906 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) {
807 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a\"'")); 907 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a\"'"));
808 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.\"'")); 908 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.\"'"));
809 909
810 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6\"'")); 910 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6\"'"));
811 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.60\"'")); 911 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.60\"'"));
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); 1033 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'"));
934 EXPECT_EQ(probablyCanPlayHLS, 1034 EXPECT_EQ(probablyCanPlayHLS,
935 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); 1035 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'"));
936 EXPECT_EQ(probablyCanPlayHLS, 1036 EXPECT_EQ(probablyCanPlayHLS,
937 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.5\"'")); 1037 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.5\"'"));
938 EXPECT_EQ(probablyCanPlayHLS, 1038 EXPECT_EQ(probablyCanPlayHLS,
939 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.05\"'")); 1039 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.05\"'"));
940 EXPECT_EQ(probablyCanPlayHLS, 1040 EXPECT_EQ(probablyCanPlayHLS,
941 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.29\"'")); 1041 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.29\"'"));
942 1042
1043 EXPECT_EQ(kNot,
1044 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0\"'"));
1045 EXPECT_EQ(kNot,
1046 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0\"'"));
1047 EXPECT_EQ(kNot,
1048 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
1049 EXPECT_EQ(kNot,
1050 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
1051
943 EXPECT_EQ(maybeCanPlayHLS, 1052 EXPECT_EQ(maybeCanPlayHLS,
944 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'")); 1053 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'"));
945 EXPECT_EQ(maybeCanPlayHLS, 1054 EXPECT_EQ(maybeCanPlayHLS,
946 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'")); 1055 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'"));
947 EXPECT_EQ(maybeCanPlayHLS, 1056 EXPECT_EQ(maybeCanPlayHLS,
948 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'")); 1057 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'"));
949 EXPECT_EQ(maybeCanPlayHLS, 1058 EXPECT_EQ(maybeCanPlayHLS,
950 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'")); 1059 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'"));
951 EXPECT_EQ(maybeCanPlayHLS, 1060 EXPECT_EQ(maybeCanPlayHLS,
952 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'")); 1061 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'"));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.2\"'")); 1114 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.2\"'"));
1006 EXPECT_EQ(maybeCanPlayHLS, 1115 EXPECT_EQ(maybeCanPlayHLS,
1007 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.02\"'")); 1116 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.02\"'"));
1008 EXPECT_EQ(maybeCanPlayHLS, 1117 EXPECT_EQ(maybeCanPlayHLS,
1009 CanPlay("'application/vnd.apple.mpegurl; " 1118 CanPlay("'application/vnd.apple.mpegurl; "
1010 "codecs=\"avc1.42E01E, mp4a.40\"'")); 1119 "codecs=\"avc1.42E01E, mp4a.40\"'"));
1011 EXPECT_EQ(maybeCanPlayHLS, 1120 EXPECT_EQ(maybeCanPlayHLS,
1012 CanPlay("'application/vnd.apple.mpegurl; " 1121 CanPlay("'application/vnd.apple.mpegurl; "
1013 "codecs=\"avc3.42E01E, mp4a.40\"'")); 1122 "codecs=\"avc3.42E01E, mp4a.40\"'"));
1014 1123
1124 EXPECT_EQ(kNot,
1125 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'"));
1126 EXPECT_EQ(kNot,
1127 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'"));
1128 EXPECT_EQ(kNot,
1129 CanPlay("'application/vnd.apple.mpegurl; "
1130 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
1131 EXPECT_EQ(kNot,
1132 CanPlay("'application/vnd.apple.mpegurl; "
1133 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
1134
1015 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); 1135 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl");
1016 } 1136 }
1017 1137
1018 } // namespace content 1138 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/content_tests.gypi » ('j') | content/content_tests.gypi » ('J')

Powered by Google App Engine
This is Rietveld 408576698