Sophie

Sophie

distrib > Mageia > 8 > i586 > by-pkgid > 9a0c97e157628032f0afa0960d1f3cb2 > files > 7

chromium-browser-stable-106.0.5249.119-1.mga8.src.rpm

--- patch103/media/base/mime_util_internal.h	2022-06-16 04:31:15.000000000 +0200
+++ patch103/media/base/mime_util_internal.h-extra-media	2022-06-19 14:38:12.148935467 +0200
@@ -53,7 +53,23 @@ class MEDIA_EXPORT MimeUtil {
     MPEG_H_AUDIO,
     DTS,
     DTSXP2,
-    LAST_CODEC = DTSXP2
+    MP2,
+    MPEG4_SP,
+    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
--- patch103/net/base/mime_util.cc	2022-06-16 04:31:16.000000000 +0200
+++ patch103/net/base/mime_util.cc.extra-media	2022-06-20 17:57:06.883495528 +0200
@@ -168,6 +168,10 @@ static const MimeInfo kPrimaryMappings[]
     {"image/apng", "png"},
     {"image/svg+xml", "svg,svgz"},
     {"image/webp", "webp"},
+    {"video/x-matroska", "mkv"},
+    {"audio/x-matroska", "mkv"},
+    {"video/x-msvideo", "avi"},
+    {"video/quicktime", "mov"},
     {"multipart/related", "mht,mhtml"},
     {"text/css", "css"},
     {"text/html", "html,htm,shtml,shtm"},
@@ -693,6 +697,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",
@@ -715,8 +720,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"
 };
 
--- patch103/media/base/audio_codecs.cc	2022-06-08 18:03:14.000000000 +0200
+++ patch103/media/base/audio_codecs.cc-add-extra-media	2022-06-14 18:42:34.578554464 +0200
@@ -51,7 +51,14 @@ std::string GetCodecName(AudioCodec code
       return "dts";
     case AudioCodec::kDTSXP2:
       return "dtsx-p2";
+    case AudioCodec::kMP2:
+      return "mp2";
+    case AudioCodec::kWMA1:
+      return "wma1";
+    case AudioCodec::kWMA2:
+      return "wma2";
   }
+  return "";
 }
 
 std::string GetProfileName(AudioCodecProfile profile) {
@@ -61,6 +68,7 @@ std::string GetProfileName(AudioCodecPro
     case AudioCodecProfile::kXHE_AAC:
       return "xhe-aac";
   }
+  return "";
 }
 
 AudioCodec StringToAudioCodec(const std::string& codec_id) {
@@ -94,6 +102,14 @@ AudioCodec StringToAudioCodec(const std:
     return AudioCodec::kDTSXP2;
   if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
     return AudioCodec::kAAC;
+  if (codec_id == "mp2")
+    return AudioCodec::kMP2;
+  if (codec_id == "dts")
+    return AudioCodec::kDTS;
+  if (codec_id == "wma1")
+    return AudioCodec::kWMA1;
+  if (codec_id == "wma2")
+    return AudioCodec::kWMA2;
   return AudioCodec::kUnknown;
 }
 
--- patch98/media/base/audio_codecs.h	2022-01-21 02:05:09.000000000 +0100
+++ patch98/media/base/audio_codecs.h.extra-media	2022-01-26 18:35:38.832001547 +0100
@@ -35,13 +35,16 @@ enum class AudioCodec {
   kMpegHAudio = 17,
   kDTS = 18,
   kDTSXP2 = 19,
+  kMP2 = 20,
+  kWMA1 = 21,
+  kWMA2 = 22,
   // 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.
-  kMaxValue = kDTSXP2,
+  kMaxValue = kWMA2,
 };
 
 enum class AudioCodecProfile {
--- patch103/media/base/mime_util_internal.cc	2022-06-08 18:03:14.000000000 +0200
+++ patch103/media/base/mime_util_internal.cc-add-extra-media	2022-06-20 15:17:48.833094295 +0200
@@ -97,6 +97,22 @@ const StringToCodecMap& GetStringToCodec
       {"dtsx", MimeUtil::DTSXP2},
       {"mp4a.b2", MimeUtil::DTSXP2},
       {"mp4a.B2", MimeUtil::DTSXP2},
+      {"dts", MimeUtil::DTS},
+      {"mp2", MimeUtil::MP2},
+      {"mp4v.20.8", MimeUtil::MPEG4_SP},
+      {"mp4v.20.240", MimeUtil::MPEG4_ASP},
+      {"msmpeg4v1", MimeUtil::MSMPEG4v1},
+      {"msmpeg4v2", MimeUtil::MSMPEG4v2},
+      {"msmpeg4v3", MimeUtil::MSMPEG4v3},
+      {"wmv7", MimeUtil::WMV7},
+      {"wmv8", MimeUtil::WMV8},
+      {"wmv9", MimeUtil::WMV9},
+      {"vc-1", MimeUtil::VC1},
+      {"vp6", MimeUtil::VP6},
+      {"mpeg1", MimeUtil::MPEG1},
+      {"mpeg2", MimeUtil::MPEG2},
+      {"wma1", MimeUtil::WMA1},
+      {"wma2", MimeUtil::WMA2},
   });
 
   return *kStringToCodecMap;
@@ -193,6 +209,12 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil
       return AudioCodec::kDTS;
     case MimeUtil::DTSXP2:
       return AudioCodec::kDTSXP2;
+    case MimeUtil::MP2:
+      return AudioCodec::kMP2;
+    case MimeUtil::WMA1:
+      return AudioCodec::kWMA1;
+    case MimeUtil::WMA2:
+      return AudioCodec::kWMA2;
     default:
       break;
   }
@@ -215,6 +237,29 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
       return VideoCodec::kTheora;
     case MimeUtil::DOLBY_VISION:
       return VideoCodec::kDolbyVision;
+    case MimeUtil::MPEG4_SP:
+    case MimeUtil::MPEG4_ASP:
+      return VideoCodec::kMPEG4;
+    case MimeUtil::MSMPEG4v1:
+      return VideoCodec::kMSMPEG4V1;
+    case MimeUtil::MSMPEG4v2:
+      return VideoCodec::kMSMPEG4V2;
+    case MimeUtil::MSMPEG4v3:
+      return VideoCodec::kMSMPEG4V3;
+    case MimeUtil::WMV7:
+      return VideoCodec::kWMV7;
+    case MimeUtil::WMV8:
+      return VideoCodec::kWMV8;
+    case MimeUtil::WMV9:
+      return VideoCodec::kWMV9;
+    case MimeUtil::VC1:
+      return VideoCodec::kVC1;
+    case MimeUtil::VP6:
+      return VideoCodec::kVP6;
+    case MimeUtil::MPEG1:
+      return VideoCodec::kMPEG1;
+    case MimeUtil::MPEG2:
+      return VideoCodec::kMPEG2;
     default:
       break;
   }
@@ -304,6 +349,37 @@ 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.emplace(OPUS);
+  matroska_audio_codecs.emplace(VORBIS);
+  matroska_audio_codecs.emplace(AC3);
+  matroska_audio_codecs.emplace(EAC3);
+  matroska_audio_codecs.emplace(DTS);
+  matroska_audio_codecs.emplace(MP3);
+  matroska_audio_codecs.emplace(MP2);
+  matroska_audio_codecs.emplace(MPEG2_AAC);
+  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);
+  matroska_video_codecs.emplace(VP8);
+  matroska_video_codecs.emplace(VP9);
+  matroska_video_codecs.emplace(H264);
+  matroska_video_codecs.emplace(MPEG4_SP);
+  matroska_video_codecs.emplace(MPEG4_ASP);
+#if BUILDFLAG(ENABLE_AV1_DECODER)
+  matroska_video_codecs.emplace(AV1);
+#endif
+#if BUILDFLAG(ENABLE_PLATFORM_HEVC)
+  matroska_video_codecs.emplace(HEVC);
+#endif  // BUILDFLAG(ENABLE_PLATFORM_HEVC)
+  CodecSet matroska_codecs(matroska_audio_codecs);
+  matroska_codecs.insert(matroska_video_codecs.begin(), matroska_video_codecs.end());
+
   const CodecSet webm_audio_codecs{OPUS, VORBIS};
   CodecSet webm_video_codecs{VP8, VP9};
 #if BUILDFLAG(ENABLE_AV1_DECODER)
@@ -313,9 +389,10 @@ void MimeUtil::AddSupportedMediaFormats(
   CodecSet webm_codecs(webm_audio_codecs);
   webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
 
-  const CodecSet mp3_codecs{MP3};
+  const CodecSet mp1_codecs{MPEG1, MPEG2};
+  const CodecSet mp3_codecs{MP3, MP2};
 
-  CodecSet mp4_audio_codecs{FLAC, MP3, OPUS};
+  CodecSet mp4_audio_codecs{FLAC, MP3, OPUS, MP2, DTS, AC3, EAC3};
 
   // Only VP9 with valid codec string vp09.xx.xx.xx.xx.xx.xx.xx is supported.
   // See ParseVp9CodecID for details.
@@ -339,6 +416,8 @@ void MimeUtil::AddSupportedMediaFormats(
 #endif  // BUILDFLAG(ENABLE_PLATFORM_MPEG_H_AUDIO)
 
   mp4_video_codecs.emplace(H264);
+  mp4_video_codecs.emplace(MPEG4_SP);
+  mp4_video_codecs.emplace(MPEG4_ASP);
 #if BUILDFLAG(ENABLE_PLATFORM_HEVC)
   mp4_video_codecs.emplace(HEVC);
 #endif  // BUILDFLAG(ENABLE_PLATFORM_HEVC)
@@ -359,6 +438,28 @@ void MimeUtil::AddSupportedMediaFormats(
   CodecSet mp4_codecs(mp4_audio_codecs);
   mp4_codecs.insert(mp4_video_codecs.begin(), mp4_video_codecs.end());
 
+  const CodecSet wma_codecs{WMA1, WMA2};
+
+  CodecSet wmv_codecs(wma_codecs);
+  wmv_codecs.emplace(MSMPEG4v1);
+  wmv_codecs.emplace(MSMPEG4v2);
+  wmv_codecs.emplace(MSMPEG4v3);
+  wmv_codecs.emplace(MPEG4_SP);
+  wmv_codecs.emplace(MPEG4_ASP);
+  wmv_codecs.emplace(WMV7);
+  wmv_codecs.emplace(WMV8);
+  wmv_codecs.emplace(WMV9);
+  wmv_codecs.emplace(VC1);
+
+  matroska_codecs.emplace(MSMPEG4v1);
+  matroska_codecs.emplace(MSMPEG4v2);
+  matroska_codecs.emplace(MSMPEG4v3);
+
+  CodecSet flv_codecs(mp4_codecs);
+  flv_codecs.emplace(VP6);
+  flv_codecs.emplace(MP3);
+  flv_codecs.emplace(FLV1);
+
   const CodecSet implicit_codec;
   AddContainerWithCodecs("audio/wav", wav_codecs);
   AddContainerWithCodecs("audio/x-wav", wav_codecs);
@@ -380,6 +481,15 @@ void MimeUtil::AddSupportedMediaFormats(
   DCHECK(!mp4_video_codecs.empty());
   AddContainerWithCodecs("video/mp4", mp4_codecs);
 
+  AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs);
+  AddContainerWithCodecs("video/x-matroska", matroska_codecs);
+  AddContainerWithCodecs("video/x-msvideo", matroska_codecs);
+  AddContainerWithCodecs("video/x-ms-wmv", wmv_codecs);
+  AddContainerWithCodecs("audio/x-ms-wma", wma_codecs);
+  AddContainerWithCodecs("video/x-ms-asf", wmv_codecs);
+  AddContainerWithCodecs("video/x-flv", flv_codecs);
+  AddContainerWithCodecs("video/mpeg", mp1_codecs);
+
 #if BUILDFLAG(USE_PROPRIETARY_CODECS)
   AddContainerWithCodecs("audio/aac", implicit_codec);  // AAC / ADTS.
   // These strings are supported for backwards compatibility only and thus only
@@ -886,6 +996,7 @@ SupportsType MimeUtil::IsCodecSupported(
   if (video_codec != VideoCodec::kUnknown &&
       // Theora and VP8 do not have profiles/levels.
       video_codec != VideoCodec::kTheora && video_codec != VideoCodec::kVP8 &&
+      video_codec != VideoCodec::kMSMPEG4V1 && video_codec != VideoCodec::kMSMPEG4V2 && video_codec != VideoCodec::kMSMPEG4V3 && video_codec != VideoCodec::kWMV7 && video_codec != VideoCodec::kWMV8 && video_codec != VideoCodec::kWMV9 && video_codec != VideoCodec::kVP6 && video_codec != VideoCodec::kMPEG1 && video_codec != VideoCodec::kMPEG2 && video_codec != VideoCodec::kSorensonSpark && 
       // TODO(dalecurtis): AV1 has levels, but they aren't supported yet;
       // http://crbug.com/784993
       video_codec != VideoCodec::kAV1) {
--- patch103/media/ffmpeg/ffmpeg_common.cc	2022-06-08 18:03:14.000000000 +0200
+++ patch103/media/ffmpeg/ffmpeg_common.cc-add-extra-media	2022-06-19 15:28:01.395412531 +0200
@@ -128,6 +128,14 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
     case AV_CODEC_ID_MPEGH_3D_AUDIO:
       return AudioCodec::kMpegHAudio;
 #endif
+    case AV_CODEC_ID_MP2:
+      return AudioCodec::kMP2;
+    case AV_CODEC_ID_DTS:
+      return AudioCodec::kDTS;
+    case AV_CODEC_ID_WMAV1:
+      return AudioCodec::kWMA1;
+    case AV_CODEC_ID_WMAV2:
+      return AudioCodec::kWMA2;
     default:
       DVLOG(1) << "Unknown audio CodecID: " << codec_id;
   }
@@ -183,6 +191,18 @@ AVCodecID AudioCodecToCodecID(AudioCodec
     case AudioCodec::kMpegHAudio:
       return AV_CODEC_ID_MPEGH_3D_AUDIO;
 #endif
+    case AudioCodec::kAC3:
+      return AV_CODEC_ID_AC3;
+    case AudioCodec::kEAC3:
+      return AV_CODEC_ID_EAC3;
+    case AudioCodec::kMP2:
+      return AV_CODEC_ID_MP2;
+    case AudioCodec::kDTS:
+      return AV_CODEC_ID_DTS;
+    case AudioCodec::kWMA1:
+      return AV_CODEC_ID_WMAV1;
+    case AudioCodec::kWMA2:
+      return AV_CODEC_ID_WMAV2;
     default:
       DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
   }
@@ -208,6 +228,28 @@ static VideoCodec CodecIDToVideoCodec(AV
       return VideoCodec::kVP9;
     case AV_CODEC_ID_AV1:
       return VideoCodec::kAV1;
+    case AV_CODEC_ID_MSMPEG4V1:
+      return VideoCodec::kMSMPEG4V1;
+    case AV_CODEC_ID_MSMPEG4V2:
+      return VideoCodec::kMSMPEG4V2;
+    case AV_CODEC_ID_MSMPEG4V3:
+      return VideoCodec::kMSMPEG4V3;
+    case AV_CODEC_ID_WMV1:
+      return VideoCodec::kWMV7;
+    case AV_CODEC_ID_WMV2:
+      return VideoCodec::kWMV8;
+    case AV_CODEC_ID_WMV3:
+      return VideoCodec::kWMV9;
+    case AV_CODEC_ID_VC1:
+      return VideoCodec::kVC1;
+    case AV_CODEC_ID_VP6:
+      return VideoCodec::kVP6;
+    case AV_CODEC_ID_MPEG1VIDEO:
+      return VideoCodec::kMPEG1;
+    case AV_CODEC_ID_MPEG2VIDEO:
+      return VideoCodec::kMPEG2;
+    case AV_CODEC_ID_FLV1:
+      return VideoCodec::kSorensonSpark;
     default:
       DVLOG(1) << "Unknown video CodecID: " << codec_id;
   }
@@ -232,6 +274,28 @@ AVCodecID VideoCodecToCodecID(VideoCodec
       return AV_CODEC_ID_VP9;
     case VideoCodec::kAV1:
       return AV_CODEC_ID_AV1;
+    case VideoCodec::kMSMPEG4V1:
+      return AV_CODEC_ID_MSMPEG4V1;
+    case VideoCodec::kMSMPEG4V2:
+      return AV_CODEC_ID_MSMPEG4V2;
+    case VideoCodec::kMSMPEG4V3:
+      return AV_CODEC_ID_MSMPEG4V3;
+    case VideoCodec::kWMV7:
+      return AV_CODEC_ID_WMV1;
+    case VideoCodec::kWMV8:
+      return AV_CODEC_ID_WMV2;
+    case VideoCodec::kWMV9:
+      return AV_CODEC_ID_WMV3;
+    case VideoCodec::kVC1:
+      return AV_CODEC_ID_VC1;
+    case VideoCodec::kVP6:
+      return AV_CODEC_ID_VP6;
+    case VideoCodec::kMPEG1:
+      return AV_CODEC_ID_MPEG1VIDEO;
+    case VideoCodec::kMPEG2:
+      return AV_CODEC_ID_MPEG2VIDEO;
+    case VideoCodec::kSorensonSpark:
+      return AV_CODEC_ID_FLV1;
     default:
       DVLOG(1) << "Unknown VideoCodec: " << video_codec;
   }
@@ -351,30 +415,6 @@ bool AVCodecContextToAudioDecoderConfig(
                 codec_context->ch_layout.u.mask,
                 codec_context->ch_layout.nb_channels);
 
-  switch (codec) {
-    // For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
-    // not fill |sample_fmt|.
-    case AudioCodec::kAC3:
-    case AudioCodec::kEAC3:
-#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
-      // The spec for AC3/EAC3 audio is ETSI TS 102 366. According to sections
-      // F.3.1 and F.5.1 in that spec the sample_format for AC3/EAC3 must be 16.
-      sample_format = kSampleFormatS16;
-#else
-      NOTREACHED();
-#endif
-      break;
-#if BUILDFLAG(ENABLE_PLATFORM_MPEG_H_AUDIO)
-    case AudioCodec::kMpegHAudio:
-      channel_layout = CHANNEL_LAYOUT_BITSTREAM;
-      sample_format = kSampleFormatMpegHAudio;
-      break;
-#endif
-
-    default:
-      break;
-  }
-
   base::TimeDelta seek_preroll;
   if (codec_context->seek_preroll > 0) {
     seek_preroll = base::Microseconds(codec_context->seek_preroll * 1000000.0 /
@@ -403,17 +443,6 @@ bool AVCodecContextToAudioDecoderConfig(
   if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
     config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
 
-#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
-  // These are bitstream formats unknown to ffmpeg, so they don't have
-  // a known sample format size.
-  if (codec == AudioCodec::kAC3 || codec == AudioCodec::kEAC3)
-    return true;
-#endif
-#if BUILDFLAG(ENABLE_PLATFORM_MPEG_H_AUDIO)
-  if (codec == AudioCodec::kMpegHAudio)
-    return true;
-#endif
-
 #if BUILDFLAG(USE_PROPRIETARY_CODECS)
   if (codec == AudioCodec::kAAC) {
     config->set_aac_extra_data(extra_data);
--- patch103/media/filters/ffmpeg_video_decoder.cc	2022-06-16 04:31:15.000000000 +0200
+++ patch103/media/filters/ffmpeg_video_decoder.cc-extra-media	2022-06-19 15:33:32.562955361 +0200
@@ -39,8 +39,6 @@ static int GetFFmpegVideoDecoderThreadCo
   switch (config.codec()) {
     case VideoCodec::kUnknown:
     case VideoCodec::kVC1:
-    case VideoCodec::kMPEG2:
-    case VideoCodec::kHEVC:
     case VideoCodec::kVP9:
     case VideoCodec::kAV1:
     case VideoCodec::kDolbyVision:
@@ -49,11 +47,22 @@ static int GetFFmpegVideoDecoderThreadCo
 
     case VideoCodec::kTheora:
     case VideoCodec::kMPEG4:
+    case VideoCodec::kMSMPEG4V1:
+    case VideoCodec::kMSMPEG4V2:
+    case VideoCodec::kMSMPEG4V3:
+    case VideoCodec::kWMV7:
+    case VideoCodec::kWMV8:
+    case VideoCodec::kWMV9:
+    case VideoCodec::kVP6:
+    case VideoCodec::kMPEG1:
+    case VideoCodec::kMPEG2:
+    case VideoCodec::kSorensonSpark:
       // No extra threads for these codecs.
       break;
 
     case VideoCodec::kH264:
     case VideoCodec::kVP8:
+    case VideoCodec::kHEVC:
       // Normalize to three threads for 1080p content, then scale linearly
       // with number of pixels.
       // Examples:
--- patch101/media/base/supported_types.cc	2022-04-07 05:21:05.000000000 +0200
+++ patch101/media/base/supported_types.cc.patch	2022-04-11 10:03:43.507906013 +0200
@@ -139,6 +139,15 @@ bool IsVideoCodecProprietary(VideoCodec
     case VideoCodec::kMPEG4:
     case VideoCodec::kHEVC:
     case VideoCodec::kDolbyVision:
+    case VideoCodec::kMSMPEG4V1:
+    case VideoCodec::kMSMPEG4V2:
+    case VideoCodec::kMSMPEG4V3:
+    case VideoCodec::kWMV7:
+    case VideoCodec::kWMV8:
+    case VideoCodec::kWMV9:
+    case VideoCodec::kVP6:
+    case VideoCodec::kMPEG1:
+    case VideoCodec::kSorensonSpark:
       return true;
     case VideoCodec::kUnknown:
     case VideoCodec::kTheora:
@@ -161,9 +170,12 @@ bool IsAudioCodecProprietary(AudioCodec
     case AudioCodec::kMpegHAudio:
     case AudioCodec::kDTS:
     case AudioCodec::kDTSXP2:
+    case AudioCodec::kWMA1:
+    case AudioCodec::kWMA2:
       return true;
 
     case AudioCodec::kFLAC:
+    case AudioCodec::kMP2:
     case AudioCodec::kMP3:
     case AudioCodec::kOpus:
     case AudioCodec::kVorbis:
@@ -312,6 +322,17 @@ bool IsDefaultSupportedVideoType(const V
     case VideoCodec::kH264:
     case VideoCodec::kVP8:
     case VideoCodec::kTheora:
+    case VideoCodec::kVC1:
+    case VideoCodec::kMPEG2:
+    case VideoCodec::kMSMPEG4V1:
+    case VideoCodec::kMSMPEG4V2:
+    case VideoCodec::kMSMPEG4V3:
+    case VideoCodec::kWMV7:
+    case VideoCodec::kWMV8:
+    case VideoCodec::kWMV9:
+    case VideoCodec::kVP6:
+    case VideoCodec::kMPEG1:
+    case VideoCodec::kSorensonSpark:
       return true;
     case VideoCodec::kAV1:
       return IsAV1Supported(type);
@@ -322,8 +343,6 @@ bool IsDefaultSupportedVideoType(const V
     case VideoCodec::kMPEG4:
       return IsMPEG4Supported();
     case VideoCodec::kUnknown:
-    case VideoCodec::kVC1:
-    case VideoCodec::kMPEG2:
     case VideoCodec::kDolbyVision:
       return false;
   }
@@ -346,6 +365,7 @@ bool IsDefaultSupportedAudioType(const A
     case AudioCodec::kGSM_MS:
       return HasOldVoiceCodecSupport();
     case AudioCodec::kFLAC:
+    case AudioCodec::kMP2:
     case AudioCodec::kMP3:
     case AudioCodec::kOpus:
     case AudioCodec::kPCM:
@@ -354,10 +374,12 @@ bool IsDefaultSupportedAudioType(const A
     case AudioCodec::kPCM_S24BE:
     case AudioCodec::kPCM_ALAW:
     case AudioCodec::kVorbis:
-      return true;
     case AudioCodec::kEAC3:
     case AudioCodec::kALAC:
     case AudioCodec::kAC3:
+    case AudioCodec::kWMA1:
+    case AudioCodec::kWMA2:
+      return true;
     case AudioCodec::kMpegHAudio:
     case AudioCodec::kUnknown:
       return false;
--- chromium-95.0.4638.54/media/base/video_codecs.h	2021-10-18 21:23:32.000000000 +0200
+++ chromium-95.0.4638.54/media/base/video_codecs.h.extra-media	2021-10-23 21:20:42.205850855 +0200
@@ -31,12 +31,21 @@ enum class VideoCodec {
   kHEVC,
   kDolbyVision,
   kAV1,
+  kMSMPEG4V1,
+  kMSMPEG4V2,
+  kMSMPEG4V3,
+  kWMV7,
+  kWMV8,
+  kWMV9,
+  kVP6,
+  kMPEG1,
+  kSorensonSpark,
   // 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.
 
-  kMaxValue = kAV1,  // Must equal the last "real" codec above.
+  kMaxValue = kSorensonSpark,  // Must equal the last "real" codec above.
 };
 
 // Video codec profiles. Keep in sync with mojo::VideoCodecProfile (see
--- chromium-95.0.4638.54/media/base/media_types.cc	2021-10-18 21:23:32.000000000 +0200
+++ chromium-95.0.4638.54/media/base/media_types.cc.extra-media	2021-10-23 22:15:33.461000275 +0200
@@ -36,6 +36,15 @@ VideoType VideoType::FromDecoderConfig(c
     case VideoCodec::kVC1:
     case VideoCodec::kMPEG2:
     case VideoCodec::kMPEG4:
+    case VideoCodec::kMSMPEG4V1:
+    case VideoCodec::kMSMPEG4V2:
+    case VideoCodec::kMSMPEG4V3:
+    case VideoCodec::kWMV7:
+    case VideoCodec::kWMV8:
+    case VideoCodec::kWMV9:
+    case VideoCodec::kVP6:
+    case VideoCodec::kMPEG1:
+    case VideoCodec::kSorensonSpark:
       break;
     case VideoCodec::kH264:
     case VideoCodec::kVP9:
@@ -74,4 +83,4 @@ bool operator!=(const VideoType& x, cons
   return !(x == y);
 }
 
-}  // namespace media
\ Pas de fin de ligne à la fin du fichier
+}  // namespace media
--- patch98/third_party/openscreen/src/cast/streaming/remoting.proto	2022-01-21 02:07:49.000000000 +0100
+++ patch98/third_party/openscreen/src/cast/streaming/remoting.proto.2patch	2022-01-26 20:05:07.845280777 +0100
@@ -62,6 +62,9 @@ message AudioDecoderConfig {
     kCodecMpegHAudio = 17;
     kCodecDTS = 18;
     kCodecDTSXP2 = 19;
+    kCodecMP2 = 20;
+    kCodecWMA1 = 21;
+    kCodecWMA2 = 22;
   }
 
   // Proto version of Chrome's media::SampleFormat.
@@ -153,6 +156,15 @@ message VideoDecoderConfig {
     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 Chrome's media::VideoCodecProfile.
--- patch103/media/base/video_codecs.cc	2022-06-08 18:03:14.000000000 +0200
+++ patch103/media/base/video_codecs.cc-add-extra-media	2022-06-19 15:55:21.350079599 +0200
@@ -40,6 +40,24 @@ std::string GetCodecName(VideoCodec code
       return "vp9";
     case VideoCodec::kAV1:
       return "av1";
+    case VideoCodec::kMSMPEG4V1:
+      return "msmpeg4v1";
+    case VideoCodec::kMSMPEG4V2:
+      return "msmpeg4v2";
+    case VideoCodec::kMSMPEG4V3:
+      return "msmpeg4v3";
+    case VideoCodec::kWMV7:
+      return "wmv1";
+    case VideoCodec::kWMV8:
+      return "wmv2";
+    case VideoCodec::kWMV9:
+      return "wmv3";
+    case VideoCodec::kVP6:
+      return "vp6";
+    case VideoCodec::kMPEG1:
+      return "mpeg1video";
+    case VideoCodec::kSorensonSpark:
+      return "flv1";
   }
   NOTREACHED();
   return "";
@@ -988,6 +1006,50 @@ void ParseCodec(const std::string& codec
     return;
   }
 #endif
+  if (codec_id == "msmpeg4v1") {
+    codec = VideoCodec::kMSMPEG4V1;
+    return;
+  }
+  if (codec_id == "msmpeg4v2") {
+    codec = VideoCodec::kMSMPEG4V2;
+    return;
+  }
+  if (codec_id == "msmpeg4v3") {
+    codec = VideoCodec::kMSMPEG4V3;
+    return;
+  }
+  if (codec_id == "wmv7") {
+    codec = VideoCodec::kWMV7;
+    return;
+  }
+  if (codec_id == "wmv8") {
+    codec = VideoCodec::kWMV8;
+    return;
+  }
+  if (codec_id == "wmv9") {
+    codec = VideoCodec::kWMV9;
+    return;
+  }
+  if (codec_id == "vc1") {
+    codec = VideoCodec::kVC1;
+    return;
+  }
+  if (codec_id == "vp6") {
+    codec = VideoCodec::kVP6;
+    return;
+  }
+  if (codec_id == "mpeg1video") {
+    codec = VideoCodec::kMPEG1;
+    return;
+  }
+  if (codec_id == "mpeg2video") {
+    codec = VideoCodec::kMPEG2;
+    return;
+  }
+  if (codec_id == "flv1") {
+    codec = VideoCodec::kSorensonSpark;
+    return;
+  }
   codec = VideoCodec::kUnknown;
 }
 
--- patch103/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h	2022-06-08 18:03:14.000000000 +0200
+++ patch103/media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h-extra-media-video	2022-06-19 18:48:13.178021661 +0200
@@ -726,6 +726,24 @@ struct EnumTraits<media::stable::mojom::
         return media::stable::mojom::VideoCodec::kDolbyVision;
       case ::media::VideoCodec::kAV1:
         return media::stable::mojom::VideoCodec::kAV1;
+      case ::media::VideoCodec::kMSMPEG4V1:
+        return media::stable::mojom::VideoCodec::kMSMPEG4V1;
+      case ::media::VideoCodec::kMSMPEG4V2:
+        return media::stable::mojom::VideoCodec::kMSMPEG4V2;
+      case ::media::VideoCodec::kMSMPEG4V3:
+        return media::stable::mojom::VideoCodec::kMSMPEG4V3;
+      case ::media::VideoCodec::kWMV7:
+        return media::stable::mojom::VideoCodec::kWMV7;
+      case ::media::VideoCodec::kWMV8:
+        return media::stable::mojom::VideoCodec::kWMV8;
+      case ::media::VideoCodec::kWMV9:
+        return media::stable::mojom::VideoCodec::kWMV9;
+      case ::media::VideoCodec::kVP6:
+        return media::stable::mojom::VideoCodec::kVP6;
+      case ::media::VideoCodec::kMPEG1:
+        return media::stable::mojom::VideoCodec::kMPEG1;
+      case ::media::VideoCodec::kSorensonSpark:
+        return media::stable::mojom::VideoCodec::kSorensonSpark;
     }
 
     NOTREACHED();
@@ -770,6 +788,33 @@ struct EnumTraits<media::stable::mojom::
       case media::stable::mojom::VideoCodec::kAV1:
         *output = ::media::VideoCodec::kAV1;
         return true;
+      case media::stable::mojom::VideoCodec::kMSMPEG4V1:
+        *output = ::media::VideoCodec::kMSMPEG4V1;
+        return true;
+      case media::stable::mojom::VideoCodec::kMSMPEG4V2:
+        *output = ::media::VideoCodec::kMSMPEG4V2;
+        return true;
+      case media::stable::mojom::VideoCodec::kMSMPEG4V3:
+        *output = ::media::VideoCodec::kMSMPEG4V3;
+        return true;
+      case media::stable::mojom::VideoCodec::kWMV7:
+        *output = ::media::VideoCodec::kWMV7;
+        return true;
+      case media::stable::mojom::VideoCodec::kWMV8:
+        *output = ::media::VideoCodec::kWMV8;
+        return true;
+      case media::stable::mojom::VideoCodec::kWMV9:
+        *output = ::media::VideoCodec::kWMV9;
+        return true;        
+      case media::stable::mojom::VideoCodec::kVP6:
+        *output = ::media::VideoCodec::kVP6;
+        return true;
+      case media::stable::mojom::VideoCodec::kMPEG1:
+        *output = ::media::VideoCodec::kMPEG1;
+        return true;
+      case media::stable::mojom::VideoCodec::kSorensonSpark:
+        *output = ::media::VideoCodec::kSorensonSpark;
+        return true;
     }
 
     NOTREACHED();
--- patch103/media/mojo/mojom/stable/stable_video_decoder_types.mojom	2022-06-08 18:03:14.000000000 +0200
+++ patch103/media/mojo/mojom/stable/stable_video_decoder_types.mojom-extra-media-video	2022-06-15 20:04:47.058444198 +0200
@@ -25,6 +25,15 @@ enum VideoCodec {
   kHEVC,
   kDolbyVision,
   kAV1,
+  kMSMPEG4V1,
+  kMSMPEG4V2,
+  kMSMPEG4V3,
+  kWMV7,
+  kWMV8,
+  kWMV9,
+  kVP6,
+  kMPEG1,
+  kSorensonSpark,
   // DO NOT ADD RANDOM VIDEO CODECS!
   //
   // The only acceptable time to add a new codec is if there is production code
--- patch103/media/filters/ffmpeg_glue.cc	2022-06-16 04:31:15.000000000 +0200
+++ patch103/media/filters/ffmpeg_glue.cc-wmvflvmpg	2022-06-20 18:34:10.627824923 +0200
@@ -151,6 +151,14 @@ bool FFmpegGlue::OpenContext(bool is_loc
     container_ = container_names::CONTAINER_AMR;
   else if (strcmp(format_context_->iformat->name, "avi") == 0)
     container_ = container_names::CONTAINER_AVI;
+  else if (strcmp(format_context_->iformat->name, "flv") == 0)
+    container_ = container_names::CONTAINER_FLV;
+  else if (strcmp(format_context_->iformat->name, "asf") == 0)
+    container_ = container_names::CONTAINER_ASF;
+  else if (strcmp(format_context_->iformat->name, "mpegvideo,mpgv") == 0)
+    container_ = container_names::CONTAINER_ASF; //squidf- better than CONTAINER_MP3
+  else if (strcmp(format_context_->iformat->name, "vp6,vp60") == 0)
+    container_ = container_names::CONTAINER_FLV; //squidf
 
   DCHECK_NE(container_, container_names::CONTAINER_UNKNOWN);
   LogContainer(is_local_file, container_);