diff -up chromium-62.0.3192.0/media/base/mime_util_internal.h.wmvflvmpg chromium-62.0.3192.0/media/base/mime_util_internal.h --- chromium-62.0.3192.0/media/base/mime_util_internal.h.wmvflvmpg 2017-08-30 15:52:00.602204610 +0200 +++ chromium-62.0.3192.0/media/base/mime_util_internal.h 2017-08-30 15:52:00.616204356 +0200 @@ -48,7 +48,20 @@ class MEDIA_EXPORT MimeUtil { MP2, MPEG4_SP, MPEG4_ASP, - LAST_CODEC = MPEG4_ASP + MSMPEG4v1, + MSMPEG4v2, + MSMPEG4v3, + WMV7, + WMV8, + WMV9, + VC1, + WMA1, + WMA2, + VP6, + MPEG1, + MPEG2, + FLV1, + LAST_CODEC = FLV1 }; // Platform configuration structure. Controls which codecs are supported at diff -up chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc.flv1 chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc --- chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc.flv1 2016-03-23 18:22:20.227596097 +0100 +++ chromium-51.0.2687.0/media/ffmpeg/ffmpeg_common.cc 2016-03-23 18:22:20.245595771 +0100 @@ -120,6 +120,10 @@ AudioCodec CodecIDToAudioCodec(AVCodecID return kCodecMP2; case AV_CODEC_ID_DTS: return kCodecDTS; + case AV_CODEC_ID_WMAV1: + return kCodecWMA1; + case AV_CODEC_ID_WMAV2: + return kCodecWMA2; default: DVLOG(1) << "Unknown audio CodecID: " << codec_id; } @@ -179,6 +183,10 @@ AVCodecID AudioCodecToCodecID(AudioCodec return AV_CODEC_ID_MP2; case kCodecDTS: return AV_CODEC_ID_DTS; + case kCodecWMA1: + return AV_CODEC_ID_WMAV1; + case kCodecWMA2: + return AV_CODEC_ID_WMAV2; default: DVLOG(1) << "Unknown AudioCodec: " << audio_codec; } @@ -197,6 +197,28 @@ return kCodecVP9; case AV_CODEC_ID_AV1: return kCodecAV1; + case AV_CODEC_ID_MSMPEG4V1: + return kCodecMSMPEG4V1; + case AV_CODEC_ID_MSMPEG4V2: + return kCodecMSMPEG4V2; + case AV_CODEC_ID_MSMPEG4V3: + return kCodecMSMPEG4V3; + case AV_CODEC_ID_WMV1: + return kCodecWMV7; + case AV_CODEC_ID_WMV2: + return kCodecWMV8; + case AV_CODEC_ID_WMV3: + return kCodecWMV9; + case AV_CODEC_ID_VC1: + return kCodecVC1; + case AV_CODEC_ID_VP6: + return kCodecVP6; + case AV_CODEC_ID_MPEG1VIDEO: + return kCodecMPEG1; + case AV_CODEC_ID_MPEG2VIDEO: + return kCodecMPEG2; + case AV_CODEC_ID_FLV1: + return kCodecSorensonSpark; default: DVLOG(1) << "Unknown video CodecID: " << codec_id; } @@ -221,6 +223,28 @@ return AV_CODEC_ID_VP9; case kCodecAV1: return AV_CODEC_ID_AV1; + case kCodecMSMPEG4V1: + return AV_CODEC_ID_MSMPEG4V1; + case kCodecMSMPEG4V2: + return AV_CODEC_ID_MSMPEG4V2; + case kCodecMSMPEG4V3: + return AV_CODEC_ID_MSMPEG4V3; + case kCodecWMV7: + return AV_CODEC_ID_WMV1; + case kCodecWMV8: + return AV_CODEC_ID_WMV2; + case kCodecWMV9: + return AV_CODEC_ID_WMV3; + case kCodecVC1: + return AV_CODEC_ID_VC1; + case kCodecVP6: + return AV_CODEC_ID_VP6; + case kCodecMPEG1: + return AV_CODEC_ID_MPEG1VIDEO; + case kCodecMPEG2: + return AV_CODEC_ID_MPEG2VIDEO; + case kCodecSorensonSpark: + return AV_CODEC_ID_FLV1; default: DVLOG(1) << "Unknown VideoCodec: " << video_codec; } --- chromium-56.0.2924.10/media/remoting/proto_enum_utils.cc.bak.2 2016-12-01 23:42:15.717317808 +0100 +++ chromium-56.0.2924.10/media/remoting/proto_enum_utils.cc 2016-12-01 23:44:59.695754038 +0100 @@ -36,6 +36,8 @@ CASE_RETURN_OTHER(kCodecMpegHAudio); CASE_RETURN_OTHER(kCodecMP2); CASE_RETURN_OTHER(kCodecDTS); + CASE_RETURN_OTHER(kCodecWMA1); + CASE_RETURN_OTHER(kCodecWMA2); } return base::nullopt; // Not a 'default' to ensure compile-time checks. } @@ -65,6 +67,8 @@ CASE_RETURN_OTHER(kCodecMpegHAudio); CASE_RETURN_OTHER(kCodecMP2); CASE_RETURN_OTHER(kCodecDTS); + CASE_RETURN_OTHER(kCodecWMA1); + CASE_RETURN_OTHER(kCodecWMA2); } return base::nullopt; // Not a 'default' to ensure compile-time checks. } @@ -211,6 +215,15 @@ CASE_RETURN_OTHER(kCodecHEVC); CASE_RETURN_OTHER(kCodecDolbyVision); CASE_RETURN_OTHER(kCodecAV1); + CASE_RETURN_OTHER(kCodecMSMPEG4V1); + CASE_RETURN_OTHER(kCodecMSMPEG4V2); + CASE_RETURN_OTHER(kCodecMSMPEG4V3); + CASE_RETURN_OTHER(kCodecWMV7); + CASE_RETURN_OTHER(kCodecWMV8); + CASE_RETURN_OTHER(kCodecWMV9); + CASE_RETURN_OTHER(kCodecVP6); + CASE_RETURN_OTHER(kCodecMPEG1); + CASE_RETURN_OTHER(kCodecSorensonSpark); } return base::nullopt; // Not a 'default' to ensure compile-time checks. } @@ -231,6 +244,15 @@ CASE_RETURN_OTHER(kCodecHEVC); CASE_RETURN_OTHER(kCodecDolbyVision); CASE_RETURN_OTHER(kCodecAV1); + CASE_RETURN_OTHER(kCodecMSMPEG4V1); + CASE_RETURN_OTHER(kCodecMSMPEG4V2); + CASE_RETURN_OTHER(kCodecMSMPEG4V3); + CASE_RETURN_OTHER(kCodecWMV7); + CASE_RETURN_OTHER(kCodecWMV8); + CASE_RETURN_OTHER(kCodecWMV9); + CASE_RETURN_OTHER(kCodecVP6); + CASE_RETURN_OTHER(kCodecMPEG1); + CASE_RETURN_OTHER(kCodecSorensonSpark); } return base::nullopt; // Not a 'default' to ensure compile-time checks. } --- chromium-56.0.2924.10/media/remoting/media_remoting_rpc.proto.bak.2 2016-12-02 02:15:05.660562641 +0100 +++ chromium-56.0.2924.10/media/remoting/media_remoting_rpc.proto 2016-12-02 02:15:48.885796867 +0100 @@ -69,6 +69,8 @@ message AudioDecoderConfig { kCodecMpegHAudio = 17; kCodecMP2 = 18; kCodecDTS = 19; + kCodecWMA1 = 20; + kCodecWMA2 = 21; } // Proto version of media::SampleFormat. @@ -154,6 +154,15 @@ kCodecHEVC = 8; kCodecDolbyVision = 9; kCodecAV1 = 10; + kCodecMSMPEG4V1 = 11; + kCodecMSMPEG4V2 = 12; + kCodecMSMPEG4V3 = 13; + kCodecWMV7 = 14; + kCodecWMV8 = 15; + kCodecWMV9 = 16; + kCodecVP6 = 17; + kCodecMPEG1 = 18; + kCodecSorensonSpark = 19; } // Proto version of media::VideoCodecProfile. --- chromium-56.0.2924.10/media/base/video_codecs.h.bak 2016-12-05 00:29:39.341097040 +0100 +++ chromium-56.0.2924.10/media/base/video_codecs.h 2016-12-05 00:30:04.352645151 +0100 @@ -31,12 +31,21 @@ kCodecHEVC, kCodecDolbyVision, kCodecAV1, + kCodecMSMPEG4V1, + kCodecMSMPEG4V2, + kCodecMSMPEG4V3, + kCodecWMV7, + kCodecWMV8, + kCodecWMV9, + kCodecVP6, + kCodecMPEG1, + kCodecSorensonSpark, // DO NOT ADD RANDOM VIDEO CODECS! // // The only acceptable time to add a new codec is if there is production code // that uses said codec in the same CL. - kVideoCodecMax = kCodecAV1, // Must equal the last "real" codec above. + kVideoCodecMax = kCodecSorensonSpark, // Must equal the last "real" codec above. }; // Video codec profiles. Keep in sync with mojo::VideoCodecProfile (see --- chromium-56.0.2924.10/media/base/video_codecs.cc.bak 2016-11-29 21:04:19.000000000 +0100 +++ chromium-56.0.2924.10/media/base/video_codecs.cc 2016-12-05 00:32:51.625621718 +0100 @@ -38,6 +38,24 @@ return "vp9"; case kCodecAV1: return "av1"; + case kCodecMSMPEG4V1: + return "msmpeg4v1"; + case kCodecMSMPEG4V2: + return "msmpeg4v2"; + case kCodecMSMPEG4V3: + return "msmpeg4v3"; + case kCodecWMV7: + return "wmv1"; + case kCodecWMV8: + return "wmv2"; + case kCodecWMV9: + return "wmv3"; + case kCodecVP6: + return "vp6"; + case kCodecMPEG1: + return "mpeg1video"; + case kCodecSorensonSpark: + return "flv1"; } NOTREACHED(); return ""; @@ -886,6 +904,28 @@ return; } #endif + if (codec_id == "msmpeg4v1") + return; + if (codec_id == "msmpeg4v2") + return; + if (codec_id == "msmpeg4v3") + return; + if (codec_id == "wmv1") + return; + if (codec_id == "wmv2") + return; + if (codec_id == "wmv3") + return; + if (codec_id == "vc1") + return; + if (codec_id == "vp6") + return; + if (codec_id == "mpeg1video") + return; + if (codec_id == "mpeg2video") + return; + if (codec_id == "flv1") + return; codec = kUnknownVideoCodec; } --- chromium-56.0.2924.21/media/filters/ffmpeg_video_decoder.cc.flv 2016-12-10 20:33:18.005427356 +0100 +++ chromium-56.0.2924.21/media/filters/ffmpeg_video_decoder.cc 2016-12-10 20:34:28.610202853 +0100 @@ -46,6 +46,15 @@ case kCodecTheora: case kCodecMPEG4: + case kCodecMSMPEG4V1: + case kCodecMSMPEG4V2: + case kCodecMSMPEG4V3: + case kCodecWMV7: + case kCodecWMV8: + case kCodecWMV9: + case kCodecVP6: + case kCodecMPEG1: + case kCodecSorensonSpark: // No extra threads for these codecs. break; --- chromium-73.0.3683.75/media/base/supported_types.cc.flv 2019-03-17 18:44:45.934825471 +0100 +++ chromium-73.0.3683.75/media/base/supported_types.cc 2019-03-17 18:44:50.562746764 +0100 @@ -150,6 +150,8 @@ bool IsAudioCodecProprietary(AudioCodec case kCodecGSM_MS: case kCodecALAC: case kCodecMpegHAudio: + case kCodecWMA1: + case kCodecWMA2: return true; case kCodecFLAC: @@ -189,6 +191,8 @@ bool IsDefaultSupportedAudioType(const A case kCodecALAC: case kCodecAC3: case kCodecDTS: + case kCodecWMA1: + case kCodecWMA2: return true; case kCodecAMR_NB: @@ -217,6 +217,15 @@ bool IsVideoCodecProprietary(VideoCodec case kCodecMPEG4: case kCodecHEVC: case kCodecDolbyVision: + case kCodecMSMPEG4V1: + case kCodecMSMPEG4V2: + case kCodecMSMPEG4V3: + case kCodecWMV7: + case kCodecWMV8: + case kCodecWMV9: + case kCodecVP6: + case kCodecMPEG1: + case kCodecSorensonSpark: return true; case kUnknownVideoCodec: case kCodecTheora: @@ -254,6 +263,15 @@ bool IsDefaultSupportedVideoType(const V case kCodecMPEG2: case kCodecHEVC: case kCodecMPEG4: + case kCodecMSMPEG4V1: + case kCodecMSMPEG4V2: + case kCodecMSMPEG4V3: + case kCodecWMV7: + case kCodecWMV8: + case kCodecWMV9: + case kCodecVP6: + case kCodecMPEG1: + case kCodecSorensonSpark: return true; case kUnknownVideoCodec: --- chromium-74.0.3729.40/media/base/audio_codecs.cc.wma 2019-03-29 22:57:18.887316626 +0100 +++ chromium-74.0.3729.40/media/base/audio_codecs.cc 2019-03-29 23:15:45.965274473 +0100 @@ -50,6 +50,10 @@ std::string GetCodecName(AudioCodec code return "mp2"; case kCodecDTS: return "dts"; + case kCodecWMA1: + return "wma1"; + case kCodecWMA2: + return "wma2"; } } @@ -89,6 +93,10 @@ AudioCodec StringToAudioCodec(const std: return kCodecMP2; if (codec_id == "dts") return kCodecDTS; + if (codec_id == "wma1") + return kCodecWMA1; + if (codec_id == "wma2") + return kCodecWMA2; return kUnknownAudioCodec; } --- chromium-74.0.3729.40/media/base/audio_codecs.h.wma 2019-03-29 22:57:18.889316591 +0100 +++ chromium-74.0.3729.40/media/base/audio_codecs.h 2019-03-29 23:17:16.560724846 +0100 @@ -35,13 +35,15 @@ enum AudioCodec { kCodecMpegHAudio = 17, kCodecMP2 = 18, kCodecDTS = 19, + kCodecWMA1 = 20, + kCodecWMA2 = 21, // 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 = kCodecDTS, + kAudioCodecMax = kCodecWMA2, }; enum class AudioCodecProfile { --- chromium-74.0.3729.40/media/base/mime_util_internal.cc.wma 2019-03-29 22:57:18.903316352 +0100 +++ chromium-74.0.3729.40/media/base/mime_util_internal.cc 2019-03-29 23:29:55.405768520 +0100 @@ -100,6 +100,8 @@ const StringToCodecMap& GetStringToCodec {"vc-1", MimeUtil::VC1}, {"vp6", MimeUtil::VP6}, {"mpeg1", MimeUtil::MPEG1}, + {"wma1", MimeUtil::WMA1}, + {"wma2", MimeUtil::WMA2}, }); return *kStringToCodecMap; @@ -180,6 +181,10 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil return kCodecDTS; case MimeUtil::MP2: return kCodecMP2; + case MimeUtil::WMA1: + return kCodecWMA1; + case MimeUtil::WMA2: + return kCodecWMA2; default: break; } @@ -307,6 +312,8 @@ void MimeUtil::AddSupportedMediaFormats( matroska_audio_codecs.emplace(MPEG4_AAC); matroska_audio_codecs.emplace(PCM); matroska_audio_codecs.emplace(FLAC); + matroska_audio_codecs.emplace(WMA1); + matroska_audio_codecs.emplace(WMA2); CodecSet matroska_video_codecs; matroska_video_codecs.emplace(THEORA); --- chromium-74.0.3729.40/media/base/media_types.cc.gcc8 2019-03-27 19:50:19.000000000 +0100 +++ chromium-74.0.3729.40/media/base/media_types.cc 2019-03-30 21:18:15.797174455 +0100 @@ -36,6 +36,15 @@ VideoType VideoType::FromDecoderConfig(c case kCodecVC1: case kCodecMPEG2: case kCodecMPEG4: + case kCodecMSMPEG4V1: + case kCodecMSMPEG4V2: + case kCodecMSMPEG4V3: + case kCodecWMV7: + case kCodecWMV8: + case kCodecWMV9: + case kCodecVP6: + case kCodecMPEG1: + case kCodecSorensonSpark: break; case kCodecH264: case kCodecVP9: