--- chromium-52.0.2716.0/media/base/mime_util_internal.cc 2016-04-27 08:42:25.933047659 +0200 +++ chromium-52.0.2716.0/media/base/mime_util_internal.cc 2016-12-03 22:43:46.182795570 +0100 @@ -76,7 +76,11 @@ {"flac", MimeUtil::FLAC}, {"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} }; return kStringToCodecMap; @@ -142,6 +146,9 @@ return kCodecTheora; case MimeUtil::DOLBY_VISION: return kCodecDolbyVision; + case MimeUtil::MPEG4_SP: + case MimeUtil::MPEG4_ASP: + return kCodecMPEG4; default: break; } @@ -234,6 +241,31 @@ #endif // !defined(OS_ANDROID) 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); @@ -264,6 +296,8 @@ 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) @@ -291,6 +325,9 @@ 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 BUILDFLAG(USE_PROPRIETARY_CODECS) AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3". AddContainerWithCodecs("audio/mp3", implicit_codec, true); @@ -303,6 +340,7 @@ // 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? @@ -721,9 +759,13 @@ case H264: case HEVC: case DOLBY_VISION: + 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 @@ -42,7 +42,11 @@ VP9, THEORA, DOLBY_VISION, - LAST_CODEC = DOLBY_VISION + 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 ""; @@ -72,6 +72,8 @@ return kCodecVorbis; if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE)) return kCodecAAC; + if (codec_id == "dts") + return kCodecDTS; return kUnknownAudioCodec; } --- 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-56.0.2924.10/media/remoting/proto_enum_utils.cc.bak 2016-11-29 21:04:19.000000000 +0100 +++ chromium-56.0.2924.10/media/remoting/proto_enum_utils.cc 2016-12-01 23:42:15.717317808 +0100 @@ -57,6 +57,7 @@ CASE_RETURN_OTHER(kCodecPCM_ALAW); CASE_RETURN_OTHER(kCodecALAC); CASE_RETURN_OTHER(kCodecAC3); + CASE_RETURN_OTHER(kCodecDTS); } return base::nullopt; // Not a 'default' to ensure compile-time checks. } @@ -83,6 +83,7 @@ CASE_RETURN_OTHER(kCodecPCM_ALAW); CASE_RETURN_OTHER(kCodecALAC); CASE_RETURN_OTHER(kCodecAC3); + CASE_RETURN_OTHER(kCodecDTS); } return base::nullopt; // Not a 'default' to ensure compile-time checks. } --- chromium-56.0.2924.10/media/remoting/rpc.proto.bak 2016-11-29 21:04:19.000000000 +0100 +++ chromium-56.0.2924.10/media/remoting/rpc.proto 2016-12-02 02:15:05.660562641 +0100 @@ -64,6 +64,7 @@ kCodecPCM_ALAW = 14; kCodecALAC = 15; kCodecAC3 = 16; + kCodecDTS = 17; } // Proto version of media::SampleFormat. --- chromium-56.0.2924.21/media/filters/ffmpeg_video_decoder.cc.extra_media 2016-12-09 00:02:25.000000000 +0100 +++ chromium-56.0.2924.21/media/filters/ffmpeg_video_decoder.cc 2016-12-10 20:33:18.005427356 +0100 @@ -57,7 +57,6 @@ case kUnknownVideoCodec: case kCodecVC1: case kCodecMPEG2: - case kCodecHEVC: case kCodecVP9: case kCodecDolbyVision: // We do not compile ffmpeg with support for any of these codecs. @@ -70,6 +69,7 @@ case kCodecH264: case kCodecMPEG4: case kCodecVP8: + case kCodecHEVC: // Normalize to three threads for 1080p content, then scale linearly // with number of pixels. // Examples: --- chromium-59.0.3071.86/media/base/decode_capabilities.cc.extra-media 2017-06-05 21:03:08.000000000 +0200 +++ chromium-59.0.3071.86/media/base/decode_capabilities.cc 2017-06-06 06:40:15.679758574 +0200 @@ -114,6 +114,9 @@ case media::kCodecPCM_S24BE: case media::kCodecPCM_ALAW: case media::kCodecVorbis: + case media::kCodecEAC3: + case media::kCodecAC3: + case media::kCodecDTS: return true; case media::kCodecAMR_NB: @@ -125,9 +127,7 @@ return false; #endif - case media::kCodecEAC3: case media::kCodecALAC: - case media::kCodecAC3: case media::kUnknownAudioCodec: return false; } @@ -147,13 +147,13 @@ case media::kCodecH264: case media::kCodecVP8: 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: case media::kCodecDolbyVision: return false; }