解码器支持
diff --git a/chromium/config/Chrome/win/ia32/config.asm b/chromium/config/Chrome/win/ia32/config.asm
index ee69a2b525..162c46a4b1 100644
--- a/chromium/config/Chrome/win/ia32/config.asm
+++ b/chromium/config/Chrome/win/ia32/config.asm
@@ -807,7 +807,7 @@
%define CONFIG_MOTIONPIXELS_DECODER 0
%define CONFIG_MPEG1VIDEO_DECODER 0
%define CONFIG_MPEG2VIDEO_DECODER 0
-%define CONFIG_MPEG4_DECODER 0
+%define CONFIG_MPEG4_DECODER 1
%define CONFIG_MPEG4_CRYSTALHD_DECODER 0
%define CONFIG_MPEG4_V4L2M2M_DECODER 0
%define CONFIG_MPEG4_MMAL_DECODER 0
@@ -1230,7 +1230,7 @@
%define CONFIG_MJPEG_ENCODER 0
%define CONFIG_MPEG1VIDEO_ENCODER 0
%define CONFIG_MPEG2VIDEO_ENCODER 0
-%define CONFIG_MPEG4_ENCODER 0
+%define CONFIG_MPEG4_ENCODER 1
%define CONFIG_MSMPEG4V2_ENCODER 0
%define CONFIG_MSMPEG4V3_ENCODER 0
%define CONFIG_MSVIDEO1_ENCODER 0
@@ -1485,7 +1485,7 @@
%define CONFIG_HEVC_PARSER 0
%define CONFIG_MJPEG_PARSER 0
%define CONFIG_MLP_PARSER 0
-%define CONFIG_MPEG4VIDEO_PARSER 0
+%define CONFIG_MPEG4VIDEO_PARSER 1
%define CONFIG_MPEGAUDIO_PARSER 1
%define CONFIG_MPEGVIDEO_PARSER 0
%define CONFIG_OPUS_PARSER 1
diff --git a/chromium/config/Chrome/win/ia32/config.h b/chromium/config/Chrome/win/ia32/config.h
index 1703d7e3d2..33321cb352 100644
--- a/chromium/config/Chrome/win/ia32/config.h
+++ b/chromium/config/Chrome/win/ia32/config.h
@@ -822,7 +822,7 @@
#define CONFIG_MOTIONPIXELS_DECODER 0
#define CONFIG_MPEG1VIDEO_DECODER 0
#define CONFIG_MPEG2VIDEO_DECODER 0
-#define CONFIG_MPEG4_DECODER 0
+#define CONFIG_MPEG4_DECODER 1
#define CONFIG_MPEG4_CRYSTALHD_DECODER 0
#define CONFIG_MPEG4_V4L2M2M_DECODER 0
#define CONFIG_MPEG4_MMAL_DECODER 0
@@ -1245,7 +1245,7 @@
#define CONFIG_MJPEG_ENCODER 0
#define CONFIG_MPEG1VIDEO_ENCODER 0
#define CONFIG_MPEG2VIDEO_ENCODER 0
-#define CONFIG_MPEG4_ENCODER 0
+#define CONFIG_MPEG4_ENCODER 1
#define CONFIG_MSMPEG4V2_ENCODER 0
#define CONFIG_MSMPEG4V3_ENCODER 0
#define CONFIG_MSVIDEO1_ENCODER 0
@@ -1500,7 +1500,7 @@
#define CONFIG_HEVC_PARSER 0
#define CONFIG_MJPEG_PARSER 0
#define CONFIG_MLP_PARSER 0
-#define CONFIG_MPEG4VIDEO_PARSER 0
+#define CONFIG_MPEG4VIDEO_PARSER 1
#define CONFIG_MPEGAUDIO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 0
#define CONFIG_OPUS_PARSER 1
diff --git a/chromium/config/Chrome/win/ia32/libavcodec/codec_list.c b/chromium/config/Chrome/win/ia32/libavcodec/codec_list.c
index 49f757b2d8..ea8bdc3c42 100644
--- a/chromium/config/Chrome/win/ia32/libavcodec/codec_list.c
+++ b/chromium/config/Chrome/win/ia32/libavcodec/codec_list.c
@@ -1,5 +1,7 @@
static const AVCodec * const codec_list[] = {
+ &ff_h263_decoder,
&ff_h264_decoder,
+ &ff_mpeg4_decoder,
&ff_theora_decoder,
&ff_vp3_decoder,
&ff_vp8_decoder,
diff --git a/chromium/config/Chrome/win/ia32/libavcodec/parser_list.c b/chromium/config/Chrome/win/ia32/libavcodec/parser_list.c
index 19d670aa24..f7ed32dd2d 100644
--- a/chromium/config/Chrome/win/ia32/libavcodec/parser_list.c
+++ b/chromium/config/Chrome/win/ia32/libavcodec/parser_list.c
@@ -1,10 +1,12 @@
static const AVCodecParser * const parser_list[] = {
&ff_aac_parser,
&ff_flac_parser,
+ &ff_h263_parser,
&ff_h264_parser,
&ff_mpegaudio_parser,
&ff_opus_parser,
&ff_vorbis_parser,
&ff_vp3_parser,
&ff_vp8_parser,
+ &ff_mpeg4video_parser,
NULL };
diff --git a/ffmpeg_generated.gni b/ffmpeg_generated.gni
index 0bb527e83c..eb2356c26e 100644
--- a/ffmpeg_generated.gni
+++ b/ffmpeg_generated.gni
@@ -351,7 +351,7 @@ if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_b
]
}
-if (use_linux_config && ffmpeg_branding == "ChromeOS") {
+if ((is_win && ffmpeg_branding == "Chrome") || (use_linux_config && ffmpeg_branding == "ChromeOS")) {
ffmpeg_c_sources += [
"libavcodec/acelp_filters.c",
"libavcodec/acelp_pitch_delay.c",
@@ -637,7 +637,7 @@ if ((use_linux_config && current_cpu == "mips64el" && ffmpeg_branding == "Chrome
]
}
-if ((use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
+if ((is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
ffmpeg_c_sources += [
"libavcodec/x86/blockdsp_init.c",
"libavcodec/x86/fdct.c",
diff --git a/libavcodec/parsers.c b/libavcodec/parsers.c
index cb86cceecc..ddf4a4b64d 100644
--- a/libavcodec/parsers.c
+++ b/libavcodec/parsers.c
@@ -65,10 +65,10 @@ extern AVCodecParser ff_vp8_parser;
extern AVCodecParser ff_vp9_parser;
extern AVCodecParser ff_xma_parser;
-#include "libavcodec/parser_list.c"
-
static AVOnce av_parser_next_init = AV_ONCE_INIT;
+#include "libavcodec/parser_list.c"
+
static void av_parser_init_next(void)
{
AVCodecParser *prev = NULL, *p;
编译错误解决
FAILED: obj/chrome_elf/chrome_elf_resources/chrome_elf_version.res
D:/tools/chromium_depot_tools/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py rc-wrapper environment.x64 rc.exe /nologo -DV8_DEPRECATION_WARNINGS -DUSE_AURA=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DOFFICIAL_BUILD -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED "-DCR_CLANG_REVISION=\"346388-5\"" -D_HAS_NODISCARD -D_HAS_EXCEPTIONS=0 -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=1 -DWIN32 -D_SECURE_ATL -D_USING_V110_SDK71_ -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=0x0A000002 -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen /foobj/chrome_elf/chrome_elf_resources/chrome_elf_version.res gen/chrome_elf/chrome_elf_version.rc
Traceback (most recent call last):
File "../../build/toolchain/win/tool_wrapper.py", line 29, in <module>
import win32file # pylint: disable=import-error
ImportError: No module named win32file
[12/20257] CXX obj/chrome_elf/hook_util/hook_util.obj
ninja: build stopped: subcommand failed.
win32file 模块缺失错误。
https://bugs.chromium.org/p/chromium/issues/detail?id=1033106
根据官方 issues,在旧版 Windows 上编译有该问题。需要自行安装 pypiwin32 包。
python -m pip install pypiwin32