diff -up chromium-47.0.2526.6/media/base/mime_util.cc.matroska-avi chromium-47.0.2526.6/media/base/mime_util.cc --- chromium-47.0.2526.6/media/base/mime_util.cc.matroska-avi 2015-10-07 04:42:12.000000000 +0200 +++ chromium-47.0.2526.6/media/base/mime_util.cc 2015-10-08 22:49:09.484970571 +0200 @@ -39,7 +39,12 @@ class MimeUtil { HEVC_MAIN, VP8, VP9, - THEORA + THEORA, + AC3, + DTS, + MP2, + MPEG4_SP, + MPEG4_ASP }; bool IsSupportedMediaMimeType(const std::string& mime_type) const; @@ -178,6 +183,13 @@ static const char* const proprietary_med // AAC / ADTS "audio/aac", + // Matroska + "video/x-matroska", + "audio/x-matroska", + + // AVI. + "video/x-msvideo", + #if defined(ENABLE_MPEG2TS_STREAM_PARSER) // MPEG-2 TS. "video/mp2t", @@ -299,7 +311,10 @@ static const MediaFormatStrict format_co {"video/mp4", kMP4VideoCodecsExpression}, {"video/x-m4v", kMP4VideoCodecsExpression}, {"application/x-mpegurl", kMP4VideoCodecsExpression}, - {"application/vnd.apple.mpegurl", kMP4VideoCodecsExpression}}; + {"application/vnd.apple.mpegurl", kMP4VideoCodecsExpression}, + { "video/x-matroska", "avc1.42E00A,avc1.4D400A,avc1.64000A," "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5" ",opus,vorbis,vp8,vp8.0,vp9,vp9.0,ac3,dts,mp3,mp2" }, + { "audio/x-matroska", "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5" ",opus,vorbis,ac3,dts,mp3,mp2" }, + { "video/x-msvideo", "avc1.42E00A,avc1.4D400A,avc1.64000A," "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5" ",mp4v.20.9,mp4v.20.240,ac3,dts,mp3,mp2"}}; struct CodecIDMappings { const char* const codec_id; @@ -330,7 +345,12 @@ static const CodecIDMappings kUnambiguou {"vp8.0", MimeUtil::VP8}, {"vp9", MimeUtil::VP9}, {"vp9.0", MimeUtil::VP9}, - {"theora", MimeUtil::THEORA}}; + {"theora", MimeUtil::THEORA}, + {"ac3", MimeUtil::AC3}, + {"dts", MimeUtil::DTS}, + {"mp2", MimeUtil::MP2}, + {"mp4v.20.9", MimeUtil::MPEG4_SP}, + {"mp4v.20.240", MimeUtil::MPEG4_ASP}}; // List of codec IDs that are ambiguous and don't provide // enough information to determine the codec and profile. @@ -635,6 +655,7 @@ bool MimeUtil::IsCodecSupported(Codec co bool MimeUtil::IsCodecProprietary(Codec codec) const { switch (codec) { case INVALID_CODEC: + case MP2: case MP3: case MPEG2_AAC_LC: case MPEG2_AAC_MAIN: @@ -646,6 +667,10 @@ bool MimeUtil::IsCodecProprietary(Codec case H264_MAIN: case H264_HIGH: case HEVC_MAIN: + case AC3: + case DTS: + case MPEG4_SP: + case MPEG4_ASP: return true; case PCM: diff -up chromium-47.0.2526.6/net/base/mime_util.cc.matroska-avi chromium-47.0.2526.6/net/base/mime_util.cc --- chromium-47.0.2526.6/net/base/mime_util.cc.matroska-avi 2015-10-07 04:42:13.000000000 +0200 +++ chromium-47.0.2526.6/net/base/mime_util.cc 2015-10-08 22:40:47.151057131 +0200 @@ -76,6 +76,9 @@ static const MimeInfo primary_mappings[] { "audio/webm", "webm" }, { "audio/wav", "wav" }, { "audio/flac", "flac" }, + { "video/x-matroska", "mkv" }, + { "audio/x-matroska", "mkv" }, + { "video/x-msvideo", "avi" }, { "application/xhtml+xml", "xhtml,xht,xhtm" }, { "application/x-chrome-extension", "crx" }, { "multipart/related", "mhtml,mht" } @@ -423,6 +426,7 @@ static const char* const kStandardAudioT "audio/vorbis", "audio/wav", "audio/webm", + "audio/x-matroska", "audio/x-m4a", "audio/x-ms-wma", "audio/vnd.rn-realaudio", @@ -440,6 +444,7 @@ static const char* const kStandardVideoT "video/webm", "video/x-dv", "video/x-m4v", + "video/x-matroska", "video/x-mpeg", "video/x-ms-asf", "video/x-ms-wmv"