OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 // "hev0" is invalid, should be "hev1" | |
ddorwin
2015/06/19 21:40:14
nit: These four comments can probably be collapsed
servolk
2015/06/20 00:05:07
Done + added "hevc.xxx" and upper-case variants.
| |
194 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev0.1.6.L93.B0\"'")); | |
195 // "hvc0" is invalid, should be "hvc1" | |
196 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc0.1.6.L93.B0\"'")); | |
197 // "hev2" is invalid, should be "hev1" | |
198 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev2.1.6.L93.B0\"'")); | |
199 // "hvc2" is invalid, should be "hvc1" | |
200 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc2.1.6.L93.B0\"'")); | |
201 | |
202 // TODO(servolk): Uncomment these after crbug.com/482761 is fixed. | |
203 // Trailing dot is not allowed. | |
204 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0.\"'")); | |
205 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0.\"'")); | |
206 // Invalid general_profile_space/general_profile_idc | |
207 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.x.6.L93.B0\"'")); | |
208 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.x.6.L93.B0\"'")); | |
209 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.d1.6.L93.B0\"'")); | |
210 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.d1.6.L93.B0\"'")); | |
211 // Invalid general_profile_compatibility_flags | |
212 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.x.L93.B0\"'")); | |
213 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.x.L93.B0\"'")); | |
214 // Invalid general_tier_flag | |
215 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.x.B0\"'")); | |
216 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.x.B0\"'")); | |
217 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.Lx.B0\"'")); | |
218 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.Lx.B0\"'")); | |
219 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.Hx.B0\"'")); | |
220 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.Hx.B0\"'")); | |
221 // Invalid constraint flags | |
222 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.x\"'")); | |
223 //EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.x\"'")); | |
176 } | 224 } |
177 | 225 |
178 void TestOGGUnacceptableCombinations(const std::string& mime) { | 226 void TestOGGUnacceptableCombinations(const std::string& mime) { |
179 // Codecs not belonging to OGG container. | 227 // Codecs not belonging to OGG container. |
180 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); | 228 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); |
181 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'")); | 229 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'")); |
182 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'")); | 230 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'")); |
183 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'")); | 231 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'")); |
184 | 232 |
185 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'")); | 233 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'")); |
186 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'")); | 234 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'")); |
187 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'")); | 235 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'")); |
188 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'")); | 236 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'")); |
189 | 237 |
190 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); | 238 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); |
191 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); | 239 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); |
192 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); | 240 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); |
193 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); | 241 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); |
194 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); | 242 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); |
195 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); | 243 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); |
196 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); | 244 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); |
197 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); | 245 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); |
198 | 246 |
247 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); | |
248 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); | |
249 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); | |
250 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); | |
251 | |
199 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 252 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
200 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 253 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
201 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 254 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
202 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); | 255 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); |
203 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); | 256 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); |
204 | 257 |
205 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); | 258 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); |
206 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); | 259 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); |
207 | 260 |
208 // Codecs are case sensitive. | 261 // Codecs are case sensitive. |
(...skipping 21 matching lines...) Expand all Loading... | |
230 | 283 |
231 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); | 284 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); |
232 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); | 285 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); |
233 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); | 286 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); |
234 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); | 287 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); |
235 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); | 288 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); |
236 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); | 289 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); |
237 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); | 290 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); |
238 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); | 291 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); |
239 | 292 |
293 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); | |
294 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); | |
295 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); | |
296 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); | |
297 | |
240 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 298 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
241 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 299 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
242 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 300 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
243 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); | 301 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); |
244 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); | 302 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); |
245 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); | 303 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); |
246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); | 304 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); |
247 | 305 |
248 // Codecs are case sensitive. | 306 // Codecs are case sensitive. |
249 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'")); | 307 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'")); |
(...skipping 17 matching lines...) Expand all Loading... | |
267 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'")); | 325 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'")); |
268 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); | 326 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); |
269 | 327 |
270 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); | 328 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); |
271 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); | 329 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); |
272 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); | 330 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); |
273 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); | 331 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); |
274 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, 1\"'")); | 332 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, 1\"'")); |
275 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, 1\"'")); | 333 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, 1\"'")); |
276 | 334 |
335 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); | |
336 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); | |
337 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); | |
338 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); | |
339 | |
277 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 340 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
278 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 341 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
279 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 342 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
280 | 343 |
281 // Unknown codec. | 344 // Unknown codec. |
282 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); | 345 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); |
283 } | 346 } |
284 | 347 |
285 private: | 348 private: |
286 GURL url_; | 349 GURL url_; |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
481 | 544 |
482 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); | 545 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); |
483 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); | 546 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); |
484 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); | 547 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); |
485 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); | 548 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); |
486 EXPECT_EQ(kPropMaybe, | 549 EXPECT_EQ(kPropMaybe, |
487 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); | 550 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); |
488 EXPECT_EQ(kPropMaybe, | 551 EXPECT_EQ(kPropMaybe, |
489 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); | 552 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); |
490 | 553 |
554 // TODO(servolk): Add more unit test coverage once we have more info about | |
555 // various HEVC levels/profiles (crbug.com/482761). | |
556 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0\"'")); | |
557 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); | |
558 EXPECT_EQ(kHevcSupported, | |
559 CanPlay("'video/mp4; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); | |
560 EXPECT_EQ(kHevcSupported, | |
561 CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); | |
562 | |
491 TestMPEGUnacceptableCombinations("video/mp4"); | 563 TestMPEGUnacceptableCombinations("video/mp4"); |
492 | 564 |
493 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); | 565 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); |
494 | 566 |
495 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); | 567 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); |
496 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); | 568 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); |
497 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'")); | 569 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'")); |
498 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'")); | 570 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'")); |
499 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'")); | 571 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'")); |
500 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); | 572 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); |
(...skipping 23 matching lines...) Expand all Loading... | |
524 | 596 |
525 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.2\"'")); | 597 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\"'")); | 598 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\"'")); | 599 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\"'")); | 600 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.02\"'")); |
529 EXPECT_EQ(kPropMaybe, | 601 EXPECT_EQ(kPropMaybe, |
530 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'")); | 602 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'")); |
531 EXPECT_EQ(kPropMaybe, | 603 EXPECT_EQ(kPropMaybe, |
532 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); | 604 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); |
533 | 605 |
606 EXPECT_EQ(kHevcSupported, | |
607 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'")); | |
608 EXPECT_EQ(kHevcSupported, | |
609 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'")); | |
610 EXPECT_EQ(kHevcSupported, | |
611 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); | |
612 EXPECT_EQ(kHevcSupported, | |
613 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); | |
614 | |
534 TestMPEGUnacceptableCombinations("video/x-m4v"); | 615 TestMPEGUnacceptableCombinations("video/x-m4v"); |
535 | 616 |
536 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); | 617 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); |
537 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); | 618 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); |
538 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); | 619 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); |
539 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); | 620 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); |
540 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); | 621 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); |
541 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); | 622 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); |
542 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); | 623 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); |
543 | 624 |
544 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); | 625 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); |
545 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); | 626 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); |
546 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); | 627 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); |
547 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); | 628 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); |
548 | 629 |
549 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); | 630 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); |
550 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); | 631 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); |
551 | 632 |
633 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'")); | |
634 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); | |
635 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); | |
636 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); | |
637 | |
552 TestMPEGUnacceptableCombinations("audio/mp4"); | 638 TestMPEGUnacceptableCombinations("audio/mp4"); |
553 | 639 |
554 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); | 640 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); |
555 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); | 641 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); |
556 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); | 642 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); |
557 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); | 643 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); |
558 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); | 644 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); |
559 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); | 645 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); |
560 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); | 646 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); |
561 | 647 |
562 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); | 648 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); |
563 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); | 649 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); |
564 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); | 650 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); |
565 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); | 651 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); |
566 | 652 |
567 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); | 653 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); |
568 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); | 654 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); |
569 | 655 |
656 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0\"'")); | |
657 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0\"'")); | |
658 EXPECT_EQ(kNot, | |
659 CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); | |
660 EXPECT_EQ(kNot, | |
661 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); | |
662 | |
570 TestMPEGUnacceptableCombinations("audio/x-m4a"); | 663 TestMPEGUnacceptableCombinations("audio/x-m4a"); |
571 } | 664 } |
572 | 665 |
573 // When modifying this test, also change CodecSupportTest_Avc3Variants. | 666 // When modifying this test, also change CodecSupportTest_Avc3Variants. |
574 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { | 667 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { |
575 // avc1 without extensions results in "maybe" for compatibility. | 668 // avc1 without extensions results in "maybe" for compatibility. |
576 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); | 669 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); |
577 | 670 |
578 // Any 6-digit hexadecimal number will result in at least "maybe". | 671 // Any 6-digit hexadecimal number will result in at least "maybe". |
579 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); | 672 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
818 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.42E033\"'")); | 911 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.42E033\"'")); |
819 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E034\"'")); | 912 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E034\"'")); |
820 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E035\"'")); | 913 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E035\"'")); |
821 // Verify that decimal representations of levels are not supported. | 914 // Verify that decimal representations of levels are not supported. |
822 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E005\"'")); | 915 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E005\"'")); |
823 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'")); | 916 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'")); |
824 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'")); | 917 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'")); |
825 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'")); | 918 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'")); |
826 } | 919 } |
827 | 920 |
921 // TODO(servolk): Add extensive tests for various HEVC profiles, levels and | |
922 // tiers, similar to avc1/avc3 tests above, after proper HEVC codec id parsing | |
923 // is implemented (crbug.com/482761) | |
924 | |
828 // All values that return positive results are tested. There are also | 925 // All values that return positive results are tested. There are also |
829 // negative tests for values around or that could potentially be confused with | 926 // negative tests for values around or that could potentially be confused with |
830 // (e.g. case, truncation, hex <-> deciemal conversion) those values that return | 927 // (e.g. case, truncation, hex <-> deciemal conversion) those values that return |
831 // positive results. | 928 // positive results. |
832 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) { | 929 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) { |
833 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a\"'")); | 930 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a\"'")); |
834 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.\"'")); | 931 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.\"'")); |
835 | 932 |
836 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6\"'")); | 933 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6\"'")); |
837 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.60\"'")); | 934 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.60\"'")); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
959 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); | 1056 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); |
960 EXPECT_EQ(probablyCanPlayHLS, | 1057 EXPECT_EQ(probablyCanPlayHLS, |
961 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); | 1058 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); |
962 EXPECT_EQ(probablyCanPlayHLS, | 1059 EXPECT_EQ(probablyCanPlayHLS, |
963 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.5\"'")); | 1060 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.5\"'")); |
964 EXPECT_EQ(probablyCanPlayHLS, | 1061 EXPECT_EQ(probablyCanPlayHLS, |
965 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.05\"'")); | 1062 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.05\"'")); |
966 EXPECT_EQ(probablyCanPlayHLS, | 1063 EXPECT_EQ(probablyCanPlayHLS, |
967 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.29\"'")); | 1064 CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40.29\"'")); |
968 | 1065 |
1066 EXPECT_EQ(kNot, | |
1067 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); | |
1068 EXPECT_EQ(kNot, | |
1069 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); | |
1070 EXPECT_EQ(kNot, | |
1071 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); | |
1072 EXPECT_EQ(kNot, | |
1073 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); | |
1074 | |
969 EXPECT_EQ(maybeCanPlayHLS, | 1075 EXPECT_EQ(maybeCanPlayHLS, |
970 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'")); | 1076 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'")); |
971 EXPECT_EQ(maybeCanPlayHLS, | 1077 EXPECT_EQ(maybeCanPlayHLS, |
972 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'")); | 1078 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'")); |
973 EXPECT_EQ(maybeCanPlayHLS, | 1079 EXPECT_EQ(maybeCanPlayHLS, |
974 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'")); | 1080 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'")); |
975 EXPECT_EQ(maybeCanPlayHLS, | 1081 EXPECT_EQ(maybeCanPlayHLS, |
976 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'")); | 1082 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'")); |
977 EXPECT_EQ(maybeCanPlayHLS, | 1083 EXPECT_EQ(maybeCanPlayHLS, |
978 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'")); | 1084 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'")); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1031 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.2\"'")); | 1137 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.2\"'")); |
1032 EXPECT_EQ(maybeCanPlayHLS, | 1138 EXPECT_EQ(maybeCanPlayHLS, |
1033 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.02\"'")); | 1139 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a.40.02\"'")); |
1034 EXPECT_EQ(maybeCanPlayHLS, | 1140 EXPECT_EQ(maybeCanPlayHLS, |
1035 CanPlay("'application/vnd.apple.mpegurl; " | 1141 CanPlay("'application/vnd.apple.mpegurl; " |
1036 "codecs=\"avc1.42E01E, mp4a.40\"'")); | 1142 "codecs=\"avc1.42E01E, mp4a.40\"'")); |
1037 EXPECT_EQ(maybeCanPlayHLS, | 1143 EXPECT_EQ(maybeCanPlayHLS, |
1038 CanPlay("'application/vnd.apple.mpegurl; " | 1144 CanPlay("'application/vnd.apple.mpegurl; " |
1039 "codecs=\"avc3.42E01E, mp4a.40\"'")); | 1145 "codecs=\"avc3.42E01E, mp4a.40\"'")); |
1040 | 1146 |
1147 EXPECT_EQ(kNot, | |
1148 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); | |
1149 EXPECT_EQ(kNot, | |
1150 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); | |
1151 EXPECT_EQ(kNot, | |
1152 CanPlay("'application/vnd.apple.mpegurl; " | |
1153 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); | |
1154 EXPECT_EQ(kNot, | |
1155 CanPlay("'application/vnd.apple.mpegurl; " | |
1156 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); | |
1157 | |
1041 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); | 1158 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); |
1042 } | 1159 } |
1043 | 1160 |
1044 } // namespace content | 1161 } // namespace content |
OLD | NEW |