chromium-browser-stable-test/chromium-55-extra-media.patch
2021-01-20 18:26:24 +03:00

398 lines
14 KiB
Diff

diff -up chromium-62.0.3192.0/media/base/audio_codecs.cc.extra-media chromium-62.0.3192.0/media/base/audio_codecs.cc
--- chromium-62.0.3192.0/media/base/audio_codecs.cc.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/base/audio_codecs.cc 2017-08-30 15:39:09.735186077 +0200
@@ -46,6 +46,10 @@ std::string GetCodecName(AudioCodec code
return "ac3";
case kCodecMpegHAudio:
return "mpeg-h-audio";
+ case kCodecMP2:
+ return "mp2";
+ case kCodecDTS:
+ return "dts";
}
}
@@ -81,6 +85,10 @@ AudioCodec StringToAudioCodec(const std:
return kCodecVorbis;
if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
return kCodecAAC;
+ if (codec_id == "mp2")
+ return kCodecMP2;
+ if (codec_id == "dts")
+ return kCodecDTS;
return kUnknownAudioCodec;
}
diff -up chromium-62.0.3192.0/media/base/audio_codecs.h.extra-media chromium-62.0.3192.0/media/base/audio_codecs.h
--- chromium-62.0.3192.0/media/base/audio_codecs.h.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/base/audio_codecs.h 2017-08-30 15:39:09.735186077 +0200
@@ -33,13 +33,15 @@ enum AudioCodec {
kCodecALAC = 15,
kCodecAC3 = 16,
kCodecMpegHAudio = 17,
+ kCodecMP2 = 18,
+ kCodecDTS = 19,
// 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 = kCodecMpegHAudio,
+ kAudioCodecMax = kCodecDTS,
};
enum class AudioCodecProfile {
diff -up chromium-62.0.3192.0/media/base/mime_util_internal.cc.extra-media chromium-62.0.3192.0/media/base/mime_util_internal.cc
--- chromium-62.0.3192.0/media/base/mime_util_internal.cc.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/base/mime_util_internal.cc 2017-08-30 15:44:46.519076991 +0200
@@ -88,6 +88,10 @@ const StringToCodecMap& GetStringToCodec
{"vp8", MimeUtil::VP8},
{"vp8.0", MimeUtil::VP8},
{"theora", MimeUtil::THEORA},
+ {"dts", MimeUtil::DTS},
+ {"mp2", MimeUtil::MP2},
+ {"mp4v.20.8", MimeUtil::MPEG4_SP},
+ {"mp4v.20.240", MimeUtil::MPEG4_ASP},
});
return *kStringToCodecMap;
@@ -183,6 +187,10 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil
return kCodecOpus;
case MimeUtil::FLAC:
return kCodecFLAC;
+ case MimeUtil::DTS:
+ return kCodecDTS;
+ case MimeUtil::MP2:
+ return kCodecMP2;
default:
break;
}
@@ -205,6 +213,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
return kCodecTheora;
case MimeUtil::DOLBY_VISION:
return kCodecDolbyVision;
+ case MimeUtil::MPEG4_SP:
+ case MimeUtil::MPEG4_ASP:
+ return kCodecMPEG4;
default:
break;
}
@@ -295,6 +306,35 @@ 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);
+
+ 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)
@@ -304,9 +344,9 @@ 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 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.
@@ -330,6 +370,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)
@@ -366,6 +408,10 @@ 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);
+
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
AddContainerWithCodecs("audio/aac", implicit_codec); // AAC / ADTS.
// These strings are supported for backwards compatibility only and thus only
diff -up chromium-62.0.3192.0/media/base/mime_util_internal.h.extra-media chromium-62.0.3192.0/media/base/mime_util_internal.h
--- chromium-62.0.3192.0/media/base/mime_util_internal.h.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/base/mime_util_internal.h 2017-08-30 15:39:09.734186095 +0200
@@ -46,7 +46,11 @@ class MEDIA_EXPORT MimeUtil {
DOLBY_VISION,
AV1,
MPEG_H_AUDIO,
- LAST_CODEC = MPEG_H_AUDIO
+ DTS,
+ MP2,
+ MPEG4_SP,
+ MPEG4_ASP,
+ LAST_CODEC = MPEG4_ASP
};
// Platform configuration structure. Controls which codecs are supported at
diff -up chromium-62.0.3192.0/media/ffmpeg/ffmpeg_common.cc.extra-media chromium-62.0.3192.0/media/ffmpeg/ffmpeg_common.cc
--- chromium-62.0.3192.0/media/ffmpeg/ffmpeg_common.cc.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/ffmpeg/ffmpeg_common.cc 2017-08-30 15:39:09.735186077 +0200
@@ -124,6 +124,10 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
case AV_CODEC_ID_MPEGH_3D_AUDIO:
return kCodecMpegHAudio;
#endif
+ case AV_CODEC_ID_MP2:
+ return kCodecMP2;
+ case AV_CODEC_ID_DTS:
+ return kCodecDTS;
default:
DVLOG(1) << "Unknown audio CodecID: " << codec_id;
}
@@ -179,6 +183,14 @@ AVCodecID AudioCodecToCodecID(AudioCodec
case kCodecMpegHAudio:
return AV_CODEC_ID_MPEGH_3D_AUDIO;
#endif
+ case kCodecAC3:
+ return AV_CODEC_ID_AC3;
+ case kCodecEAC3:
+ return AV_CODEC_ID_EAC3;
+ case kCodecMP2:
+ return AV_CODEC_ID_MP2;
+ case kCodecDTS:
+ return AV_CODEC_ID_DTS;
default:
DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
}
@@ -347,30 +359,6 @@ bool AVCodecContextToAudioDecoderConfig(
codec_context->channels);
int sample_rate = codec_context->sample_rate;
- switch (codec) {
- // For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
- // not fill |sample_fmt|.
- case kCodecAC3:
- case kCodecEAC3:
-#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 kCodecMpegHAudio:
- 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::TimeDelta::FromMicroseconds(
@@ -399,17 +387,6 @@ bool AVCodecContextToAudioDecoderConfig(
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
config->SetChannelsForDiscrete(codec_context->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 == kCodecAC3 || codec == kCodecEAC3)
- return true;
-#endif
-#if BUILDFLAG(ENABLE_PLATFORM_MPEG_H_AUDIO)
- if (codec == kCodecMpegHAudio)
- return true;
-#endif
-
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
// TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
// ever starts supporting xHE-AAC.
diff -up chromium-62.0.3192.0/media/filters/ffmpeg_video_decoder.cc.extra-media chromium-62.0.3192.0/media/filters/ffmpeg_video_decoder.cc
--- chromium-62.0.3192.0/media/filters/ffmpeg_video_decoder.cc.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/filters/ffmpeg_video_decoder.cc 2017-08-30 15:39:09.736186059 +0200
@@ -38,7 +38,6 @@
case kUnknownVideoCodec:
case kCodecVC1:
case kCodecMPEG2:
- case kCodecHEVC:
case kCodecVP9:
case kCodecAV1:
case kCodecDolbyVision:
@@ -52,6 +51,7 @@
case kCodecH264:
case kCodecVP8:
+ case kCodecHEVC:
// Normalize to three threads for 1080p content, then scale linearly
// with number of pixels.
// Examples:
diff -up chromium-62.0.3192.0/media/remoting/proto_enum_utils.cc.extra-media chromium-62.0.3192.0/media/remoting/proto_enum_utils.cc
--- chromium-62.0.3192.0/media/remoting/proto_enum_utils.cc.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/remoting/proto_enum_utils.cc 2017-08-30 15:39:09.736186059 +0200
@@ -34,6 +34,8 @@
CASE_RETURN_OTHER(kCodecALAC);
CASE_RETURN_OTHER(kCodecAC3);
CASE_RETURN_OTHER(kCodecMpegHAudio);
+ CASE_RETURN_OTHER(kCodecMP2);
+ CASE_RETURN_OTHER(kCodecDTS);
}
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
@@ -61,6 +63,8 @@
CASE_RETURN_OTHER(kCodecALAC);
CASE_RETURN_OTHER(kCodecAC3);
CASE_RETURN_OTHER(kCodecMpegHAudio);
+ CASE_RETURN_OTHER(kCodecMP2);
+ CASE_RETURN_OTHER(kCodecDTS);
}
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
diff -up chromium-62.0.3192.0/media/remoting/media_remoting_rpc.proto.extra-media chromium-62.0.3192.0/media/remoting/media_remoting_rpc.proto
--- chromium-62.0.3192.0/media/remoting/media_remoting_rpc.proto.extra-media 2017-08-22 21:04:45.000000000 +0200
+++ chromium-62.0.3192.0/media/remoting/media_remoting_rpc.proto 2017-08-30 15:39:09.736186059 +0200
@@ -67,6 +67,8 @@ message AudioDecoderConfig {
kCodecALAC = 15;
kCodecAC3 = 16;
kCodecMpegHAudio = 17;
+ kCodecMP2 = 18;
+ kCodecDTS = 19;
}
// Proto version of media::SampleFormat.
diff -up chromium-62.0.3192.0/net/base/mime_util.cc.extra-media chromium-62.0.3192.0/net/base/mime_util.cc
--- chromium-62.0.3192.0/net/base/mime_util.cc.extra-media 2017-08-22 21:04:46.000000000 +0200
+++ chromium-62.0.3192.0/net/base/mime_util.cc 2017-08-30 15:47:23.952221630 +0200
@@ -94,6 +94,9 @@
{"image/png", "png"},
{"image/apng", "png"},
{"image/webp", "webp"},
+ {"video/x-matroska", "mkv"},
+ {"audio/x-matroska", "mkv"},
+ {"video/x-msvideo", "avi"},
{"multipart/related", "mht,mhtml"},
{"text/css", "css"},
{"text/html", "html,htm,shtml,shtm"},
@@ -495,6 +498,7 @@
"audio/vorbis",
"audio/wav",
"audio/webm",
+ "audio/x-matroska",
"audio/x-m4a",
"audio/x-ms-wma",
"audio/vnd.rn-realaudio",
@@ -512,8 +516,10 @@
"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-73.0.3683.75/media/base/supported_types.cc.extra-media 2019-03-11 23:00:59.000000000 +0100
+++ chromium-73.0.3683.75/media/base/supported_types.cc 2019-03-17 18:40:07.610556592 +0100
@@ -163,6 +163,7 @@ bool IsAudioCodecProprietary(AudioCodec
case kCodecAAC:
case kCodecAC3:
case kCodecEAC3:
+ case kCodecDTS:
case kCodecAMR_NB:
case kCodecAMR_WB:
case kCodecGSM_MS:
@@ -171,6 +172,7 @@ bool IsAudioCodecProprietary(AudioCodec
return true;
case kCodecFLAC:
+ case kCodecMP2:
case kCodecMP3:
case kCodecOpus:
case kCodecVorbis:
@@ -205,6 +207,7 @@ bool IsDefaultSupportedAudioType(const A
#endif
case kCodecFLAC:
+ case kCodecMP2:
case kCodecMP3:
case kCodecOpus:
case kCodecPCM:
@@ -213,6 +216,10 @@ bool IsDefaultSupportedAudioType(const A
case kCodecPCM_S24BE:
case kCodecPCM_ALAW:
case kCodecVorbis:
+ case kCodecEAC3:
+ case kCodecALAC:
+ case kCodecAC3:
+ case kCodecDTS:
return true;
case kCodecAMR_NB:
@@ -224,9 +231,6 @@ bool IsDefaultSupportedAudioType(const A
return false;
#endif
- case kCodecEAC3:
- case kCodecALAC:
- case kCodecAC3:
case kCodecMpegHAudio:
case kUnknownAudioCodec:
return false;
@@ -282,21 +286,15 @@ bool IsDefaultSupportedVideoType(const V
case kCodecH264:
case kCodecVP8:
case kCodecTheora:
- return true;
-
- case kUnknownVideoCodec:
case kCodecVC1:
case kCodecMPEG2:
case kCodecHEVC:
- case kCodecDolbyVision:
- return false;
-
case kCodecMPEG4:
-#if BUILDFLAG(IS_ASH)
return true;
-#else
+
+ case kUnknownVideoCodec:
+ case kCodecDolbyVision:
return false;
-#endif
}
NOTREACHED();