Roll //third_party/ffmpeg and disable H264 when MSVC is used.

FFmpeg hasn't been rolled since [1] in order to avoid to break MSVC
trybots (//third_party/ffmpeg dropped MSVC support, in theory it is
possible to bring the support back but some work is needed every time
//third_party/ffmpeg gets updated).

Not rolling //third_party/ffmpeg is not enough to keep the Chromium
Roll working because -Wstring-plus-int becomes more chatty with clang 350768
and it has been suppressed in //third_party/ffmpeg/BUILD.gn [2].

Since WebRTC needs to update clang, //third_party/ffmpeg needs to be
updated. The only way to do it without fixing MSVC errors in
//third_party/ffmpeg is to enforce rtc_use_h264=False when MSVC is used.

PSA: https://groups.google.com/forum/#!topic/discuss-webrtc/cfkPPq5nvNE.

[1] - https://webrtc-review.googlesource.com/78402
[2] - https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/1376376

Bug: webrtc:9213
Change-Id: I36bd7fb2db21012760e4ff7a791d81350e402ec0
Reviewed-on: https://webrtc-review.googlesource.com/c/116982
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26257}
This commit is contained in:
Mirko Bonadei
2019-01-15 10:47:18 +01:00
committed by Commit Bot
parent 45ccd8488e
commit ee0a85cee2
5 changed files with 11 additions and 7 deletions

2
DEPS
View File

@ -117,7 +117,7 @@ deps = {
'condition': 'checkout_android',
},
'src/third_party/ffmpeg':
Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + '90210b5e10d3917567a3025e4853704bfefd8384',
Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + '42bb040dde0a5e1bdb4b6d91f54297e0cc7f0977',
'src/third_party/findbugs': {
'url': Var('chromium_git') + '/chromium/deps/findbugs.git' + '@' + '4275d9ac8610db6b1bc9a5e887f97e41b33fac67',
'condition': 'checkout_android',

View File

@ -333,6 +333,7 @@ rtc_static_library("webrtc_h264") {
]
if (rtc_use_h264) {
assert(!(is_win && !is_clang), "See: bugs.webrtc.org/9213#c13.")
defines += [ "WEBRTC_USE_H264" ]
sources += [
"codecs/h264/h264_color_space.cc",

View File

@ -29,7 +29,6 @@ def FindSrcDirPath():
# Skip these dependencies (list without solution name prefix).
DONT_AUTOROLL_THESE = [
'src/examples/androidtests/third_party/gradle',
'src/third_party/ffmpeg',
]
# These dependencies are missing in chromium/src/DEPS, either unused or already

View File

@ -335,16 +335,16 @@
'gn', 'clang', 'openh264', 'release_bot', 'x64',
],
'win_msvc_debug_bot_x86': [
'gn', 'no_clang', 'openh264', 'debug_bot', 'x86', 'no_lld',
'gn', 'no_clang', 'debug_bot', 'x86', 'no_lld',
],
'win_msvc_release_bot_x86': [
'gn', 'no_clang', 'openh264', 'release_bot', 'x86', 'no_lld',
'gn', 'no_clang', 'release_bot', 'x86', 'no_lld',
],
'win_msvc_debug_bot_x64': [
'gn', 'no_clang', 'openh264', 'debug_bot', 'x64', 'no_lld'
'gn', 'no_clang', 'debug_bot', 'x64', 'no_lld'
],
'win_msvc_release_bot_x64': [
'gn', 'no_clang', 'openh264', 'release_bot', 'x64', 'no_lld',
'gn', 'no_clang', 'release_bot', 'x64', 'no_lld',
],
'win_asan_clang_release_bot_x86': [
'gn', 'asan', 'clang', 'full_symbols', 'openh264', 'release_bot', 'x86',

View File

@ -156,7 +156,11 @@ declare_args() {
# H.264, compilation succeeds but |H264DecoderImpl| fails to initialize.
# CHECK THE OPENH264, FFMPEG AND H.264 LICENSES/PATENTS BEFORE BUILDING.
# http://www.openh264.org, https://www.ffmpeg.org/
rtc_use_h264 = proprietary_codecs && !is_android && !is_ios
#
# Enabling H264 when building with MSVC is currently not supported, see
# bugs.webrtc.org/9213#c13 for more info.
rtc_use_h264 =
proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang)
# By default, use normal platform audio support or dummy audio, but don't
# use file-based audio playout and record.