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

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: CR feedback Created 5 years, 6 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 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 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.42E033\"'")); 914 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.42E033\"'"));
819 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E034\"'")); 915 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E034\"'"));
820 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E035\"'")); 916 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E035\"'"));
821 // Verify that decimal representations of levels are not supported. 917 // Verify that decimal representations of levels are not supported.
822 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E005\"'")); 918 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E005\"'"));
823 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'")); 919 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'"));
824 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'")); 920 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'"));
825 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'")); 921 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'"));
826 } 922 }
827 923
924 // TODO(servolk): Add extensive tests for various HEVC profiles, levels and
925 // tiers, similar to avc1/avc3 tests above, after proper HEVC codec id parsing
926 // is implemented (crbug.com/482761)
927
828 // All values that return positive results are tested. There are also 928 // All values that return positive results are tested. There are also
829 // negative tests for values around or that could potentially be confused with 929 // negative tests for values around or that could potentially be confused with
830 // (e.g. case, truncation, hex <-> deciemal conversion) those values that return 930 // (e.g. case, truncation, hex <-> deciemal conversion) those values that return
831 // positive results. 931 // positive results.
832 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) { 932 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) {
833 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a\"'")); 933 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a\"'"));
834 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.\"'")); 934 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.\"'"));
835 935
836 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6\"'")); 936 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6\"'"));
837 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.60\"'")); 937 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.60\"'"));
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); 1059 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'"));
960 EXPECT_EQ(probablyCanPlayHLS, 1060 EXPECT_EQ(probablyCanPlayHLS,
961 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); 1061 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'"));
962 EXPECT_EQ(probablyCanPlayHLS, 1062 EXPECT_EQ(probablyCanPlayHLS,
963 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.5\"'")); 1063 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.5\"'"));
964 EXPECT_EQ(probablyCanPlayHLS, 1064 EXPECT_EQ(probablyCanPlayHLS,
965 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.05\"'")); 1065 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.05\"'"));
966 EXPECT_EQ(probablyCanPlayHLS, 1066 EXPECT_EQ(probablyCanPlayHLS,
967 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.29\"'")); 1067 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.29\"'"));
968 1068
1069 EXPECT_EQ(kNot,
1070 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0\"'"));
1071 EXPECT_EQ(kNot,
1072 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0\"'"));
1073 EXPECT_EQ(kNot,
1074 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
1075 EXPECT_EQ(kNot,
1076 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
1077
969 EXPECT_EQ(maybeCanPlayHLS, 1078 EXPECT_EQ(maybeCanPlayHLS,
970 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'")); 1079 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'"));
971 EXPECT_EQ(maybeCanPlayHLS, 1080 EXPECT_EQ(maybeCanPlayHLS,
972 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'")); 1081 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'"));
973 EXPECT_EQ(maybeCanPlayHLS, 1082 EXPECT_EQ(maybeCanPlayHLS,
974 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'")); 1083 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'"));
975 EXPECT_EQ(maybeCanPlayHLS, 1084 EXPECT_EQ(maybeCanPlayHLS,
976 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'")); 1085 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'"));
977 EXPECT_EQ(maybeCanPlayHLS, 1086 EXPECT_EQ(maybeCanPlayHLS,
978 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'")); 1087 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'"));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.2\"'")); 1140 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.2\"'"));
1032 EXPECT_EQ(maybeCanPlayHLS, 1141 EXPECT_EQ(maybeCanPlayHLS,
1033 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.02\"'")); 1142 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.02\"'"));
1034 EXPECT_EQ(maybeCanPlayHLS, 1143 EXPECT_EQ(maybeCanPlayHLS,
1035 CanPlay("'application/vnd.apple.mpegurl; " 1144 CanPlay("'application/vnd.apple.mpegurl; "
1036 "codecs=\"avc1.42E01E, mp4a.40\"'")); 1145 "codecs=\"avc1.42E01E, mp4a.40\"'"));
1037 EXPECT_EQ(maybeCanPlayHLS, 1146 EXPECT_EQ(maybeCanPlayHLS,
1038 CanPlay("'application/vnd.apple.mpegurl; " 1147 CanPlay("'application/vnd.apple.mpegurl; "
1039 "codecs=\"avc3.42E01E, mp4a.40\"'")); 1148 "codecs=\"avc3.42E01E, mp4a.40\"'"));
1040 1149
1150 EXPECT_EQ(kNot,
1151 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'"));
1152 EXPECT_EQ(kNot,
1153 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'"));
1154 EXPECT_EQ(kNot,
1155 CanPlay("'application/vnd.apple.mpegurl; "
1156 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
1157 EXPECT_EQ(kNot,
1158 CanPlay("'application/vnd.apple.mpegurl; "
1159 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
1160
1041 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); 1161 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl");
1042 } 1162 }
1043 1163
1044 } // namespace content 1164 } // 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