Index: content/renderer/media/crypto/proxy_decryptor.cc |
diff --git a/content/renderer/media/crypto/proxy_decryptor.cc b/content/renderer/media/crypto/proxy_decryptor.cc |
index c24e0d2a8216c5e1bc88148c8fb33b1489b03917..98c301c573c235d3378cd7383a112f60b7a13ef2 100644 |
--- a/content/renderer/media/crypto/proxy_decryptor.cc |
+++ b/content/renderer/media/crypto/proxy_decryptor.cc |
@@ -95,7 +95,7 @@ |
std::equal(data, data + header.size(), header.begin()); |
} |
-bool ProxyDecryptor::GenerateKeyRequest(const std::string& init_data_type, |
+bool ProxyDecryptor::GenerateKeyRequest(const std::string& content_type, |
const uint8* init_data, |
int init_data_length) { |
DVLOG(1) << "GenerateKeyRequest()"; |
@@ -133,6 +133,17 @@ |
session_creation_type == PersistentSession |
? media::MediaKeys::PERSISTENT_SESSION |
: media::MediaKeys::TEMPORARY_SESSION; |
+ |
+ // Convert MIME types used in the prefixed implementation. |
+ std::string init_data_type; |
+ if (content_type == "audio/mp4" || content_type == "video/mp4") { |
+ init_data_type = "cenc"; |
+ } else if (content_type == "audio/webm" || content_type == "video/webm") { |
+ init_data_type = "webm"; |
+ } else { |
+ NOTREACHED(); |
+ init_data_type = content_type; |
+ } |
media_keys_->CreateSession(init_data_type, init_data, init_data_length, |
session_type, promise.Pass()); |