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

Unified Diff: chrome/browser/media/encrypted_media_istypesupported_browsertest.cc

Issue 254983006: Fix: Adding list of supported codecs for MP4 containers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding testcases for EME Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/encrypted_media_istypesupported_browsertest.cc
diff --git a/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc b/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc
index ed0e4daa000ee341649c93e4df2b08d0849e6136..4d0613ee1247715080a8fb6f68e1ca0d1877b62e 100644
--- a/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc
+++ b/chrome/browser/media/encrypted_media_istypesupported_browsertest.cc
@@ -109,13 +109,24 @@ class EncryptedMediaIsTypeSupportedTest : public InProcessBrowserTest {
avc3_codec_.push_back("avc3");
- avc3_extended_codec_.push_back("avc3.64001f");
+ avc3_extended_codec_.push_back("avc3.64001F");
aac_codec_.push_back("mp4a");
+ aac_extended_codec_.push_back("mp4a.40.2");
+
avc1_and_aac_codecs_.push_back("avc1");
avc1_and_aac_codecs_.push_back("mp4a");
+ avc3_and_aac_codecs_.push_back("avc3");
+ avc3_and_aac_codecs_.push_back("mp4a");
+
+ avc1_and_aac_extended_codecs_.push_back("avc1.4D400C");
+ avc1_and_aac_extended_codecs_.push_back("mp4a.40.2");
+
+ avc3_and_aac_extended_codecs_.push_back("avc3.64001F");
+ avc3_and_aac_extended_codecs_.push_back("mp4a.40.2");
+
unknown_codec_.push_back("foo");
mixed_codecs_.push_back("vorbis");
@@ -142,9 +153,19 @@ class EncryptedMediaIsTypeSupportedTest : public InProcessBrowserTest {
return avc3_extended_codec_;
}
const CodecVector& aac_codec() const { return aac_codec_; }
+ const CodecVector& aac_extended_codec() const { return aac_extended_codec_; }
const CodecVector& avc1_and_aac_codecs() const {
return avc1_and_aac_codecs_;
}
+ const CodecVector& avc3_and_aac_codecs() const {
+ return avc3_and_aac_codecs_;
+ }
+ const CodecVector& avc1_and_aac_extended_codecs() const {
+ return avc1_and_aac_extended_codecs_;
+ }
+ const CodecVector& avc3_and_aac_extended_codecs() const {
+ return avc3_and_aac_extended_codecs_;
+ }
const CodecVector& unknown_codec() const { return unknown_codec_; }
const CodecVector& mixed_codecs() const { return mixed_codecs_; }
@@ -253,7 +274,11 @@ class EncryptedMediaIsTypeSupportedTest : public InProcessBrowserTest {
CodecVector avc3_codec_;
CodecVector avc3_extended_codec_;
CodecVector aac_codec_;
+ CodecVector aac_extended_codec_;
CodecVector avc1_and_aac_codecs_;
+ CodecVector avc3_and_aac_codecs_;
+ CodecVector avc1_and_aac_extended_codecs_;
+ CodecVector avc3_and_aac_extended_codecs_;
CodecVector unknown_codec_;
CodecVector mixed_codecs_;
bool is_test_page_loaded_;
@@ -429,6 +454,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest,
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", avc1_codec(), kPrefixedClearKey));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "video/webm", avc3_codec(), kPrefixedClearKey));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", unknown_codec(), kPrefixedClearKey));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", mixed_codecs(), kPrefixedClearKey));
@@ -465,6 +492,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest,
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc3_codec(), kPrefixedClearKey));
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_codecs(), kPrefixedClearKey));
+ EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", aac_codec(), kPrefixedClearKey));
// Extended codecs.
@@ -472,9 +501,15 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest,
"video/mp4", avc1_extended_codec(), kPrefixedClearKey));
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc3_extended_codec(), kPrefixedClearKey));
-
- // Invalid codec format, but canPlayType() strips away the period.
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", aac_extended_codec(), kPrefixedClearKey));
+ EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc1_and_aac_extended_codecs(), kPrefixedClearKey));
+ EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_extended_codecs(), kPrefixedClearKey));
+
+ // Invalid codec format, profile parameter must be present after the period.
ddorwin 2014/04/29 17:12:54 nit: use a : or - instead of a ,
amogh.bihani 2014/04/30 06:12:10 Done.
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc1_dot_codec(), kPrefixedClearKey));
// Non-MP4 codecs.
@@ -492,6 +527,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest,
"audio/mp4", no_codecs(), kPrefixedClearKey));
EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", aac_codec(), kPrefixedClearKey));
+ EXPECT_PROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", aac_extended_codec(), kPrefixedClearKey));
// Non-audio codecs.
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
@@ -499,7 +536,13 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedTest,
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", avc1_and_aac_codecs(), kPrefixedClearKey));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", avc1_and_aac_extended_codecs(), kPrefixedClearKey));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", avc3_codec(), kPrefixedClearKey));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", avc3_and_aac_codecs(), kPrefixedClearKey));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", avc3_and_aac_extended_codecs(), kPrefixedClearKey));
// Non-MP4 codec.
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
@@ -604,6 +647,8 @@ IN_PROC_BROWSER_TEST_F(
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", avc1_codec(), kExternalClearKey));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "video/webm", avc3_codec(), kExternalClearKey));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", unknown_codec(), kExternalClearKey));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", mixed_codecs(), kExternalClearKey));
@@ -641,6 +686,8 @@ IN_PROC_BROWSER_TEST_F(
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc3_codec(), kExternalClearKey));
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_codecs(), kExternalClearKey));
+ EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", aac_codec(), kExternalClearKey));
// Extended codecs.
@@ -648,9 +695,15 @@ IN_PROC_BROWSER_TEST_F(
"video/mp4", avc1_extended_codec(), kExternalClearKey));
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc3_extended_codec(), kExternalClearKey));
-
- // Invalid codec format, but canPlayType() strips away the period.
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", aac_extended_codec(), kExternalClearKey));
+ EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc1_and_aac_extended_codecs(), kExternalClearKey));
+ EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_extended_codecs(), kExternalClearKey));
+
+ // Invalid codec format, profile parameter must be present after the period.
ddorwin 2014/04/29 17:12:54 ditto
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc1_dot_codec(), kExternalClearKey));
// Non-MP4 codecs.
@@ -668,6 +721,8 @@ IN_PROC_BROWSER_TEST_F(
"audio/mp4", no_codecs(), kExternalClearKey));
EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", aac_codec(), kExternalClearKey));
+ EXPECT_ECKPROPRIETARY(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", aac_extended_codec(), kExternalClearKey));
// Non-audio codecs.
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
@@ -676,6 +731,8 @@ IN_PROC_BROWSER_TEST_F(
"audio/mp4", avc1_and_aac_codecs(), kExternalClearKey));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", avc3_codec(), kExternalClearKey));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", avc3_and_aac_codecs(), kExternalClearKey));
// Non-MP4 codec.
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
@@ -787,6 +844,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest,
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", avc1_codec(), kWidevineAlpha));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "video/webm", avc3_codec(), kWidevineAlpha));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", unknown_codec(), kWidevineAlpha));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/webm", mixed_codecs(), kWidevineAlpha));
@@ -826,7 +885,11 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest,
EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc3_codec(), kWidevineAlpha));
EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_codecs(), kWidevineAlpha));
+ EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", aac_codec(), kWidevineAlpha));
+ EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", aac_extended_codec(), kWidevineAlpha));
ddorwin 2014/04/29 17:12:54 This is the only place where an extended OR audio
amogh.bihani 2014/04/30 06:12:10 Done.
// Valid video types - parent key system.
EXPECT_WVMP4(IsSupportedKeySystemWithMediaMimeType(
@@ -835,17 +898,27 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest,
"video/mp4", avc1_codec(), kWidevine));
EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc1_and_aac_codecs(), kWidevine));
+ EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_codec(), kWidevine));
+ EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_codecs(), kWidevine));
EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", aac_codec(), kWidevine));
+ EXPECT_WVAVC1AAC(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", aac_extended_codec(), kWidevine));
ddorwin 2014/04/29 17:12:54 ditto. I see how this makes sense. Maybe we should
amogh.bihani 2014/04/30 06:12:10 Done.
// Extended codecs.
EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc1_extended_codec(), kWidevineAlpha));
EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc3_extended_codec(), kWidevineAlpha));
-
- // Invalid codec format, but canPlayType() strips away the period.
EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc1_and_aac_extended_codecs(), kWidevineAlpha));
+ EXPECT_WVAVC1(IsSupportedKeySystemWithMediaMimeType(
+ "video/mp4", avc3_and_aac_extended_codecs(), kWidevineAlpha));
+
+ // Invalid codec format, profile paramter must be present after the period.
ddorwin 2014/04/29 17:12:54 ditto on comma
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"video/mp4", avc1_dot_codec(), kWidevineAlpha));
// Non-MP4 codecs.
@@ -863,12 +936,16 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest,
"audio/mp4", no_codecs(), kWidevineAlpha));
EXPECT_WVAAC(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", aac_codec(), kWidevineAlpha));
+ EXPECT_WVAAC(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", aac_extended_codec(), kWidevineAlpha));
// Valid audio types - parent key system.
EXPECT_WVMP4(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", no_codecs(), kWidevine));
EXPECT_WVAAC(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", aac_codec(), kWidevine));
+ EXPECT_WVAAC(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", aac_extended_codec(), kWidevine));
// Non-audio codecs.
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
@@ -877,6 +954,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaIsTypeSupportedWidevineTest,
"audio/mp4", avc1_and_aac_codecs(), kWidevineAlpha));
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
"audio/mp4", avc3_codec(), kWidevineAlpha));
+ EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(
+ "audio/mp4", avc3_and_aac_codecs(), kWidevineAlpha));
// Non-MP4 codec.
EXPECT_FALSE(IsSupportedKeySystemWithMediaMimeType(

Powered by Google App Engine
This is Rietveld 408576698