--- chromium-56.0.2924.76/media/base/mime_util_internal.cc.orig 2017-01-26 03:49:15.000000000 +0300 +++ chromium-56.0.2924.76/media/base/mime_util_internal.cc 2017-01-30 22:39:02.827838684 +0300 @@ -78,7 +78,11 @@ static const CodecIDMappings kUnambiguou {"opus", MimeUtil::OPUS}, {"vp8", MimeUtil::VP8}, {"vp8.0", MimeUtil::VP8}, - {"theora", MimeUtil::THEORA}}; + {"theora", MimeUtil::THEORA}, + {"dts", MimeUtil::DTS}, + {"mp2", MimeUtil::MP2}, + {"mp4v.20.8", 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. @@ -275,6 +279,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil return kCodecVP9; case MimeUtil::THEORA: return kCodecTheora; + case MimeUtil::MPEG4_SP: + case MimeUtil::MPEG4_ASP: + return kCodecMPEG4; default: break; } @@ -357,6 +364,31 @@ void MimeUtil::AddSupportedMediaFormats( CodecSet ogg_codecs(ogg_audio_codecs); ogg_codecs.insert(ogg_video_codecs.begin(), ogg_video_codecs.end()); + CodecSet matroska_audio_codecs; + matroska_audio_codecs.insert(OPUS); + matroska_audio_codecs.insert(VORBIS); + matroska_audio_codecs.insert(AC3); + matroska_audio_codecs.insert(EAC3); + matroska_audio_codecs.insert(DTS); + matroska_audio_codecs.insert(MP3); + matroska_audio_codecs.insert(MP2); + matroska_audio_codecs.insert(MPEG2_AAC); + matroska_audio_codecs.insert(MPEG4_AAC); + matroska_audio_codecs.insert(PCM); + + CodecSet matroska_video_codecs; + matroska_video_codecs.insert(THEORA); + matroska_video_codecs.insert(VP8); + matroska_video_codecs.insert(VP9); + matroska_video_codecs.insert(H264); + matroska_video_codecs.insert(MPEG4_SP); + matroska_video_codecs.insert(MPEG4_ASP); +#if BUILDFLAG(ENABLE_HEVC_DEMUXING) + matroska_video_codecs.insert(HEVC); +#endif // BUILDFLAG(ENABLE_HEVC_DEMUXING) + CodecSet matroska_codecs(matroska_audio_codecs); + matroska_codecs.insert(matroska_video_codecs.begin(), matroska_video_codecs.end()); + CodecSet webm_audio_codecs; webm_audio_codecs.insert(OPUS); webm_audio_codecs.insert(VORBIS); @@ -386,6 +418,8 @@ void MimeUtil::AddSupportedMediaFormats( CodecSet mp4_video_codecs; mp4_video_codecs.insert(H264); + mp4_video_codecs.insert(MPEG4_SP); + mp4_video_codecs.insert(MPEG4_ASP); #if BUILDFLAG(ENABLE_HEVC_DEMUXING) mp4_video_codecs.insert(HEVC); #endif // BUILDFLAG(ENABLE_HEVC_DEMUXING) @@ -410,6 +444,9 @@ void MimeUtil::AddSupportedMediaFormats( AddContainerWithCodecs("application/ogg", ogg_codecs, false); AddContainerWithCodecs("audio/flac", implicit_codec, false); + AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs, false); + AddContainerWithCodecs("video/x-matroska", matroska_codecs, false); + #if defined(USE_PROPRIETARY_CODECS) AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3". AddContainerWithCodecs("audio/mp3", implicit_codec, true); @@ -422,6 +459,7 @@ void MimeUtil::AddSupportedMediaFormats( // support the codecs needed for compatibility. AddContainerWithCodecs("audio/x-m4a", aac, true); AddContainerWithCodecs("video/x-m4v", avc_and_aac, true); + AddContainerWithCodecs("video/x-msvideo", matroska_codecs, true); #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) // TODO(ddorwin): Exactly which codecs should be supported? @@ -766,9 +804,13 @@ bool MimeUtil::IsCodecProprietary(Codec case MPEG4_AAC: case H264: case HEVC: + case DTS: + case MPEG4_SP: + case MPEG4_ASP: return true; case PCM: + case MP2: case VORBIS: case OPUS: case FLAC: --- chromium-52.0.2716.0/media/base/mime_util_internal.h.matroska-avi 2016-04-27 00:02:52.000000000 +0200 +++ chromium-52.0.2716.0/media/base/mime_util_internal.h 2016-04-27 08:14:04.560330601 +0200 @@ -39,7 +39,11 @@ class MEDIA_EXPORT MimeUtil { VP8, VP9, THEORA, - LAST_CODEC = THEORA + DTS, + MP2, + MPEG4_SP, + MPEG4_ASP, + LAST_CODEC = MPEG4_ASP }; // Platform configuration structure. Controls which codecs are supported at --- chromium-52.0.2716.0/net/base/mime_util.cc.matroska-avi 2016-04-27 00:02:52.000000000 +0200 +++ chromium-52.0.2716.0/net/base/mime_util.cc 2016-04-27 08:14:04.561330581 +0200 @@ -78,6 +78,9 @@ static const MimeInfo kPrimaryMappings[] {"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"}}; @@ -425,6 +428,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", @@ -442,8 +446,10 @@ 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-msvideo", "video/x-ms-wmv" }; --- chromium-51.0.2687.0/media/base/audio_codecs.cc.ac3-dts 2016-03-22 23:01:01.000000000 +0100 +++ chromium-51.0.2687.0/media/base/audio_codecs.cc 2016-03-23 18:19:14.903959089 +0100 @@ -43,6 +43,8 @@ std::string GetCodecName(AudioCodec code return "alac"; case kCodecAC3: return "ac3"; + case kCodecDTS: + return "dts"; } NOTREACHED(); return ""; --- chromium-51.0.2687.0/media/base/audio_codecs.h.ac3-dts 2016-03-22 23:01:01.000000000 +0100 +++ chromium-51.0.2687.0/media/base/audio_codecs.h 2016-03-23 18:18:33.765701074 +0100 @@ -32,13 +32,14 @@ enum AudioCodec { kCodecPCM_ALAW = 14, kCodecALAC = 15, kCodecAC3 = 16, + kCodecDTS = 17, // DO NOT ADD RANDOM AUDIO CODECS! // // The only acceptable time to add a new codec is if there is production code // that uses said codec in the same CL. // Must always be equal to the largest entry ever logged. - kAudioCodecMax = kCodecAC3, + kAudioCodecMax = kCodecDTS, }; std::string MEDIA_EXPORT GetCodecName(AudioCodec codec); --- chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc.ac3-dts 2016-03-22 23:01:01.000000000 +0100 +++ chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc 2016-03-23 18:13:42.226118362 +0100 @@ -117,6 +117,8 @@ static AudioCodec CodecIDToAudioCodec(AV return kCodecOpus; case AV_CODEC_ID_ALAC: return kCodecALAC; + case AV_CODEC_ID_DTS: + return kCodecDTS; default: DVLOG(1) << "Unknown audio CodecID: " << codec_id; } @@ -168,6 +170,10 @@ AVCodecID AudioCodecToCodecID(AudioCodec return AV_CODEC_ID_PCM_MULAW; case kCodecOpus: return AV_CODEC_ID_OPUS; + case kCodecAC3: + return AV_CODEC_ID_AC3; + case kCodecDTS: + return AV_CODEC_ID_DTS; default: DVLOG(1) << "Unknown AudioCodec: " << audio_codec; } --- chromium-55.0.2883.52/content/renderer/media/render_media_client.cc.bak 2016-11-17 00:02:26.000000000 +0100 +++ chromium-55.0.2883.52/content/renderer/media/render_media_client.cc 2016-11-27 21:55:59.360854652 +0100 @@ -101,13 +101,13 @@ case media::kCodecVP8: case media::kCodecVP9: case media::kCodecTheora: + case media::kCodecMPEG4: + case media::kCodecHEVC: return true; case media::kUnknownVideoCodec: case media::kCodecVC1: case media::kCodecMPEG2: - case media::kCodecMPEG4: - case media::kCodecHEVC: return false; }