qtwebengine: 5.15.8 -> 5.15.9

This commit is contained in:
Tim Biermann 2022-05-14 10:30:16 +02:00
parent 03493e94c0
commit 3fed4d64e0
10 changed files with 2340 additions and 13 deletions

View File

@ -1,6 +1,14 @@
untrusted comment: verify with /etc/ports/opt.pub
RWSE3ohX2g5d/R8gKK+2LSPc07GbUqh8EkA4SRAwVbrDoPxR2/eNmE8pQG9uNiSDvzIsEzRZhIS2kwTD7iof0Z8woV2gcJe+twk=
SHA256 (Pkgfile) = 2b2f80d437eae5fa139a47b042aa7cc789f83ad114f02f92fba80497b22ba1d6
RWSE3ohX2g5d/bmNIesm3/ClFcapNZOj4LcRYCRVUJqffKiiV12upemyQjb4LK1ydOkRHBtNp0G9Qz/9mFWXJlDNXbB2ICbTnA8=
SHA256 (Pkgfile) = 4819832c6a1817475fae0ca0c55fca37e4c67ec0d09a8f1186e069fdea0e48bd
SHA256 (.footprint) = 44b1db82a792e29d0e7a4bf1a4ea7d0ed7b440ab9f0df493452d03ff3c164554
SHA256 (qtwebengine-5.15.8.tar.xz) = 9315c78db8e077d6dab6bd67e4b47c89c0109c87a557fb5095e9da280cbdafec
SHA256 (qtwebengine-5.15.8-build_fixes-1.patch) = 78aa2fb51bf3b4916f23e4bf81dcaff838da7b38c3261d8cfd18178b52e50445
SHA256 (qtwebengine-5.15.9.tar.xz) = 4b61afcd5b5452d9b3178f28335fb455da543170220f72dba85fe6aa8e76fa39
SHA256 (qtwebengine-5.15.9-build_fixes-1.patch) = 78aa2fb51bf3b4916f23e4bf81dcaff838da7b38c3261d8cfd18178b52e50445
SHA256 (qtwebengine-5.15.2-disable-fatal-warnings.patch) = 19dac26d6753f4cbe1fe2bcb911d8124ea082f55ff86b45cdcba294d3c199249
SHA256 (qtwebengine-5.15.2-extra_gn.patch) = 3b691d9fb242688e1521a26bf1c47ce5aaa9cd6f7e7fdc458c332470a563d6be
SHA256 (qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch) = 4bd5364a5f45c68e0bd452dad7a6f638142503da8c43aaeb15d577aa09369c7c
SHA256 (qtwebengine-5.15.2_p20210521-clang-libc++.patch) = 64f786a919c7c145033139e6effe236459dad7b7bb5b52428e00fc70592ce05d
SHA256 (qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch) = 391f899137cabf4c90ff3bc3a1cf9687d6a273e7bd42618760e7f09c7e0d3e32
SHA256 (qtwebengine-5.15.3_p20220406-ffmpeg5.patch) = 63b0a709c7d1e84193dada20109740d6b9a768f6d83809247dd9691ff50bfc7c
SHA256 (qt5-webengine-pipewire-0.3.patch) = 5e3a3c4711d964d5152a04059a2b5c1d14bb13dd29bce370120f60e85b476b6f
SHA256 (gcc12.patch) = 2a59acf4574bdd9a0c1a2314aef11d44a2de033392b72ae21f97370e4bbaba99

View File

@ -1,19 +1,35 @@
# Description: Provides support for web applications using the Chromium browser project.
# URL: https://www.qt.io/
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: ffmpeg4 libvpx libwebp nodejs nss python qt5 xorg-libxscrnsaver xorg-libxtst
# Depends on: ffmpeg libvpx libwebp nodejs nss opus python qt5 xorg-libxscrnsaver xorg-libxtst
name=qtwebengine
version=5.15.8
version=5.15.9
release=1
source=(https://anduin.linuxfromscratch.org/BLFS/qtwebengine/$name-$version.tar.xz
https://www.linuxfromscratch.org/patches/blfs/svn/qtwebengine-5.15.8-build_fixes-1.patch)
https://www.linuxfromscratch.org/patches/blfs/svn/qtwebengine-$version-build_fixes-1.patch
qtwebengine-5.15.2-disable-fatal-warnings.patch
qtwebengine-5.15.2-extra_gn.patch
qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch
qtwebengine-5.15.2_p20210521-clang-libc++.patch
qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch
qtwebengine-5.15.3_p20220406-ffmpeg5.patch
qt5-webengine-pipewire-0.3.patch
gcc12.patch)
build() {
cd qtwebengine-$version
# https://www.linuxfromscratch.org/blfs/view/svn/x/qtwebengine.html
patch -p1 -i $SRC/qtwebengine-5.15.8-build_fixes-1.patch
patch -p1 -i $SRC/qtwebengine-$version-build_fixes-1.patch
patch -p1 -i $SRC/qtwebengine-5.15.2-disable-fatal-warnings.patch
patch -p1 -i $SRC/qtwebengine-5.15.2-extra_gn.patch
patch -p1 -i $SRC/qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch
patch -p1 -i $SRC/qtwebengine-5.15.2_p20210521-clang-libc++.patch
patch -p1 -i $SRC/qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch
patch -p1 -i $SRC/qtwebengine-5.15.3_p20220406-ffmpeg5.patch
patch -p1 -d src/3rdparty -i $SRC/qt5-webengine-pipewire-0.3.patch
patch -p0 -d src/3rdparty/chromium/third_party/skia/src/utils/ -i $SRC/gcc12.patch
mkdir -pv .git src/3rdparty/chromium/.git
sed -e '/^MODULE_VERSION/s/5.*/5.15.2/' -i .qmake.conf
@ -24,8 +40,7 @@ build() {
-i src/3rdparty/chromium/media/media_options.gni
# Ninja, by default, sets the number of jobs to the number of availalble threads
test -n "$JOBS" && export NINJAFLAGS+=" -j $JOBS"
sed -i 's/NINJAJOBS/NINJA_JOBS/' src/core/gn_run.pro
test -n "$JOBS" && export NINJAFLAGS+=" -j ${JOBS-1}"
prt-get isinst ccache && export \
QMAKE_CC='ccache gcc' \
@ -40,14 +55,15 @@ build() {
cd build
prt-get isinst pulseaudio && PKGMK_QTWEBENGINE+=' -pulseaudio' || PKGMK_QTWEBENGINE+=' -no-pulseaudio'
prt-get isinst pipewire && PKGMK_QTWEBENGINE+=' -webengine-webrtc-pipewire'
prt-get isinst icu && PKGMK_QTWEBENGINE+=' -webengine-icu' || PKGMK_QTWEBENGINE+=' -no-webengine-icu'
export PKG_CONFIG_PATH+="/usr/lib/ffmpeg4/pkgconfig"
qmake-qt5 .. -- \
$PKGMK_QTWEBENGINE \
-proprietary-codecs \
-system-ffmpeg
-system-ffmpeg \
-system-opus \
-system-webp
make
make INSTALL_ROOT=$PKG install

10
qtwebengine/gcc12.patch Normal file
View File

@ -0,0 +1,10 @@
--- SkParseColor.cpp.orig 2022-05-10 21:02:09.968689017 +0200
+++ SkParseColor.cpp 2022-05-10 21:02:17.812647846 +0200
@@ -6,6 +6,7 @@
*/
+#include <iterator>
#include "include/utils/SkParse.h"
static constexpr const char* gColorNames[] = {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
diff --git a/src/buildtools/config/common.pri b/src/buildtools/config/common.pri
index cf990c79..910a88ca 100644
--- a/src/buildtools/config/common.pri
+++ b/src/buildtools/config/common.pri
@@ -26,6 +26,7 @@ gn_args += \
skia_use_dawn=false \
toolkit_views=false \
treat_warnings_as_errors=false \
+ fatal_linker_warnings=false \
use_allocator_shim=false \
use_allocator=\"none\" \
use_custom_libcxx=false \

View File

@ -0,0 +1,12 @@
diff --git a/src/core/gn_run.pro b/src/core/gn_run.pro
index 3d6fda80e..3d0bc86fe 100644
--- a/src/core/gn_run.pro
+++ b/src/core/gn_run.pro
@@ -38,5 +38,6 @@ build_pass|!debug_and_release {
}
+ gn_args += $$(EXTRA_GN)
gn_args = $$system_quote($$gn_args)
gn_src_root = $$system_quote($$system_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
gn_python = "--script-executable=$$pythonPathForSystem()"

View File

@ -0,0 +1,192 @@
From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001
From: Frank Tang <ftang@chromium.org>
Date: Tue, 03 Nov 2020 23:20:37 -0800
Subject: [PATCH] Update to ICU68-1
ICU68-1 change the output skeleton format. So we need to change
resolvedOptions code for 68 migration.
Chromium roll
https://chromium-review.googlesource.com/c/chromium/src/+/2474093
Bug: v8:10945
Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70972}
(ported to work with <ICU-68.1 and rebased chromium)
---
diff --git a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
index 45b0eab..d18b133 100644
--- a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
+++ b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
@@ -389,17 +389,20 @@ Handle<String> CurrencySignString(Isolate* isolate,
Handle<String> UnitDisplayString(Isolate* isolate,
const icu::UnicodeString& skeleton) {
// Ex: skeleton as
- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name"
+ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name".
+ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name"
if (skeleton.indexOf("unit-width-full-name") >= 0) {
return ReadOnlyRoots(isolate).long_string_handle();
}
// Ex: skeleton as
- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
+ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
+ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow".
if (skeleton.indexOf("unit-width-narrow") >= 0) {
return ReadOnlyRoots(isolate).narrow_string_handle();
}
// Ex: skeleton as
- // "measure-unit/length-foot .### rounding-mode-half-up"
+ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up"
+ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
return ReadOnlyRoots(isolate).short_string_handle();
}
@@ -422,7 +425,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) {
return Notation::COMPACT;
}
// Ex: skeleton as
- // "measure-unit/length-foot .### rounding-mode-half-up"
+ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up"
+ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
return Notation::STANDARD;
}
@@ -562,14 +566,23 @@ namespace {
// Ex: percent .### rounding-mode-half-up
// Special case for "percent"
-// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
-// rounding-mode-half-up" should return "kilometer-per-unit".
-// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
-// "year".
+// <ICU-68.1:
+// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
+// rounding-mode-half-up" should return "kilometer-per-unit".
+// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
+// >=ICU-68.1:
+// Ex: "unit/milliliter-per-acre .### rounding-mode-half-up"
+// should return "milliliter-per-acre".
+// Ex: "unit/year .### rounding-mode-half-up" should return
+// "year".
std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
std::string str;
str = skeleton.toUTF8String<std::string>(str);
+#if U_ICU_VERSION_MAJOR_NUM < 68
std::string search("measure-unit/");
+#else
+ std::string search("unit/");
+#endif
size_t begin = str.find(search);
if (begin == str.npos) {
// Special case for "percent".
@@ -578,20 +591,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
}
return "";
}
+#if U_ICU_VERSION_MAJOR_NUM < 68
// Skip the type (ex: "length").
// "measure-unit/length-kilometer per-measure-unit/duration-hour"
// b
begin = str.find("-", begin + search.size());
+#else
+ // Ex:
+ // "unit/acre .### rounding-mode-half-up"
+ // b
+ // Ex:
+ // "unit/milliliter-per-acre .### rounding-mode-half-up"
+ // b
+ begin += search.size();
+#endif
if (begin == str.npos) {
return "";
}
+#if U_ICU_VERSION_MAJOR_NUM < 68
begin++; // Skip the '-'.
+#endif
// Find the end of the subtype.
size_t end = str.find(" ", begin);
- // "measure-unit/length-kilometer per-measure-unit/duration-hour"
- // b e
+ // <ICU-68.1:
+ // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+ // b e
+ // >=ICU-68.1:
+ // Ex:
+ // "unit/acre .### rounding-mode-half-up"
+ // b e
+ // Ex:
+ // "unit/milliliter-per-acre .### rounding-mode-half-up"
+ // b e
if (end == str.npos) {
end = str.size();
+#if U_ICU_VERSION_MAJOR_NUM < 68
return str.substr(begin, end - begin);
}
// "measure-unit/length-kilometer per-measure-unit/duration-hour"
@@ -625,17 +659,36 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
// "measure-unit/length-kilometer per-measure-unit/duration-hour"
// [result ] b e
return result + "-per-" + str.substr(begin, end - begin);
+#else
+ }
+ return str.substr(begin, end - begin);
+#endif
}
Style StyleFromSkeleton(const icu::UnicodeString& skeleton) {
if (skeleton.indexOf("currency/") >= 0) {
return Style::CURRENCY;
}
+#if U_ICU_VERSION_MAJOR_NUM < 68
if (skeleton.indexOf("measure-unit/") >= 0) {
if (skeleton.indexOf("scale/100") >= 0 &&
skeleton.indexOf("measure-unit/concentr-percent") >= 0) {
+#else
+ if (skeleton.indexOf("percent") >= 0) {
+ // percent precision-integer rounding-mode-half-up scale/100
+ if (skeleton.indexOf("scale/100") >= 0) {
+#endif
return Style::PERCENT;
+#if U_ICU_VERSION_MAJOR_NUM >= 68
+ } else {
+ return Style::UNIT;
+#endif
}
+#if U_ICU_VERSION_MAJOR_NUM >= 68
+ }
+ // Before ICU68: "measure-unit/", since ICU68 "unit/"
+ if (skeleton.indexOf("unit/") >= 0) {
+#endif
return Style::UNIT;
}
return Style::DECIMAL;
diff --git a/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc b/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc
index 267343aaae..64d56a1c12 100644
--- a/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc
+++ b/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc
@@ -195,9 +195,18 @@ MaybeHandle<JSRelativeTimeFormat> JSRelativeTimeFormat::New(
}
}
+#if U_ICU_VERSION_MAJOR_NUM < 68
icu::DecimalFormat* decimal_format =
static_cast<icu::DecimalFormat*>(number_format);
decimal_format->setMinimumGroupingDigits(-2);
+#else
+ if (number_format->getDynamicClassID() ==
+ icu::DecimalFormat::getStaticClassID()) {
+ icu::DecimalFormat* decimal_format =
+ static_cast<icu::DecimalFormat*>(number_format);
+ decimal_format->setMinimumGroupingDigits(-2);
+ }
+#endif
// Change UDISPCTX_CAPITALIZATION_NONE to other values if
// ECMA402 later include option to change capitalization.

View File

@ -0,0 +1,10 @@
--- a/src/buildtools/gn.pro
+++ b/src/buildtools/gn.pro
@@ -25,6 +25,7 @@
msvc:!clang_cl: gn_gen_args += --use-lto
gn_configure = $$system_quote($$gn_bootstrap) $$gn_gen_args
+ gn_configure += --no-static-libstdc++
macos {
gn_configure += --isysroot \"$$QMAKE_MAC_SDK_PATH\"
}

View File

@ -0,0 +1,79 @@
Description: Use system lcms2
Author: Sandro Knauß <hefee@debian.org>
Origin: Debian
Forwarded: https://bugreports.qt.io/browse/QTBUG-61746
Reviewed-by: Sandro Knauß <hefee@debian.org>
Last-Update: 2021-03-08
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
@@ -239,58 +239,19 @@ if (!pdf_use_skia && !pdf_use_skia_paths
}
}
-config("fx_lcms2_warnings") {
- visibility = [ ":*" ]
- if (is_clang) {
- cflags = [
- # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
- # library doesn't appear to have this problem.
- "-Wno-missing-braces",
- ]
- }
+import("//build/shim_headers.gni")
+
+shim_headers("lcms2_shim") {
+ root_path = "lcms/include"
+ headers = [
+ "lcms2.h",
+ "lcms2_plugin.h",
+ ]
}
source_set("fx_lcms2") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- "//build/config/sanitizers:cfi_icall_generalize_pointers",
- ":pdfium_third_party_config",
-
- # Must be after no_chromium_code for warning flags to be ordered correctly.
- ":fx_lcms2_warnings",
- ]
- sources = [
- "lcms/include/lcms2.h",
- "lcms/include/lcms2_plugin.h",
- "lcms/src/cmsalpha.c",
- "lcms/src/cmscam02.c",
- "lcms/src/cmscgats.c",
- "lcms/src/cmscnvrt.c",
- "lcms/src/cmserr.c",
- "lcms/src/cmsgamma.c",
- "lcms/src/cmsgmt.c",
- "lcms/src/cmshalf.c",
- "lcms/src/cmsintrp.c",
- "lcms/src/cmsio0.c",
- "lcms/src/cmsio1.c",
- "lcms/src/cmslut.c",
- "lcms/src/cmsmd5.c",
- "lcms/src/cmsmtrx.c",
- "lcms/src/cmsnamed.c",
- "lcms/src/cmsopt.c",
- "lcms/src/cmspack.c",
- "lcms/src/cmspcs.c",
- "lcms/src/cmsplugin.c",
- "lcms/src/cmsps2.c",
- "lcms/src/cmssamp.c",
- "lcms/src/cmssm.c",
- "lcms/src/cmstypes.c",
- "lcms/src/cmsvirt.c",
- "lcms/src/cmswtpnt.c",
- "lcms/src/cmsxform.c",
- ]
- deps = [ "../core/fxcrt" ]
+ deps = [ ":lcms2_shim" ]
+ libs = ["lcms2"]
}
if (!build_with_chromium) {

View File

@ -0,0 +1,169 @@
From 05f6ffbbce0a2aad01dc05d682cbe4a1ec44fad5 Mon Sep 17 00:00:00 2001
From: Antonio Rojas <arojas@archlinux.org>
Date: Tue, 25 Jan 2022 10:51:58 +0000
Subject: [PATCH] Fix build with ffmpeg 5
---
chromium/media/ffmpeg/ffmpeg_common.h | 1 +
chromium/media/filters/audio_file_reader.cc | 2 +-
chromium/media/filters/ffmpeg_audio_decoder.cc | 2 +-
chromium/media/filters/ffmpeg_demuxer.cc | 12 ++++++------
chromium/media/filters/ffmpeg_glue.cc | 4 ----
chromium/media/filters/ffmpeg_video_decoder.cc | 2 +-
chromium/media/filters/media_file_checker.cc | 2 +-
.../video_coding/codecs/h264/h264_decoder_impl.cc | 2 +-
8 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/chromium/media/ffmpeg/ffmpeg_common.h b/chromium/media/ffmpeg/ffmpeg_common.h
index 2734a485cbd..70b1877a43c 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
@@ -29,6 +29,7 @@ extern "C" {
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
#include <libavutil/avutil.h>
+#include <libavutil/channel_layout.h>
#include <libavutil/imgutils.h>
#include <libavutil/log.h>
#include <libavutil/mastering_display_metadata.h>
diff --git a/chromium/media/filters/audio_file_reader.cc b/chromium/media/filters/audio_file_reader.cc
index cb81d920def..bd73908d0ca 100644
--- a/src/3rdparty/chromium/media/filters/audio_file_reader.cc
+++ b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
@@ -85,7 +85,7 @@ bool AudioFileReader::OpenDemuxer() {
}
bool AudioFileReader::OpenDecoder() {
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (codec) {
// MP3 decodes to S16P which we don't support, tell it to use S16 instead.
if (codec_context_->sample_fmt == AV_SAMPLE_FMT_S16P)
diff --git a/chromium/media/filters/ffmpeg_audio_decoder.cc b/chromium/media/filters/ffmpeg_audio_decoder.cc
index 0d825ed791b..72fac6167ef 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
@@ -329,7 +329,7 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
}
}
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (!codec ||
avcodec_open2(codec_context_.get(), codec, &codec_options) < 0) {
DLOG(ERROR) << "Could not initialize audio decoder: "
diff --git a/chromium/media/filters/ffmpeg_demuxer.cc b/chromium/media/filters/ffmpeg_demuxer.cc
index d34db63f3ef..427565b00c1 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
@@ -98,12 +98,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
// Next try to use the first DTS value, for codecs where we know PTS == DTS
// (excludes all H26x codecs). The start time must be returned in PTS.
- if (stream->first_dts != kNoFFmpegTimestamp &&
+ if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
const base::TimeDelta first_pts =
- ConvertFromTimeBase(stream->time_base, stream->first_dts);
+ ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
if (first_pts < start_time)
start_time = first_pts;
}
@@ -408,11 +408,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
scoped_refptr<DecoderBuffer> buffer;
if (type() == DemuxerStream::TEXT) {
- int id_size = 0;
+ size_t id_size = 0;
uint8_t* id_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- int settings_size = 0;
+ size_t settings_size = 0;
uint8_t* settings_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
@@ -424,7 +424,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
side_data.data(), side_data.size());
} else {
- int side_data_size = 0;
+ size_t side_data_size = 0;
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
@@ -485,7 +485,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
packet->size - data_offset);
}
- int skip_samples_size = 0;
+ size_t skip_samples_size = 0;
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/chromium/media/filters/ffmpeg_glue.cc b/chromium/media/filters/ffmpeg_glue.cc
index 0ef3521473d..8483ecc348f 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
@@ -59,7 +59,6 @@ static int64_t AVIOSeekOperation(void* opaque, int64_t offset, int whence) {
}
void FFmpegGlue::InitializeFFmpeg() {
- av_register_all();
}
static void LogContainer(bool is_local_file,
@@ -95,9 +94,6 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol* protocol) {
// Enable fast, but inaccurate seeks for MP3.
format_context_->flags |= AVFMT_FLAG_FAST_SEEK;
- // Ensures we can read out various metadata bits like vp8 alpha.
- format_context_->flags |= AVFMT_FLAG_KEEP_SIDE_DATA;
-
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
// instances were real failures. Solves bugs like http://crbug.com/710791.
format_context_->error_recognition |= AV_EF_EXPLODE;
diff --git a/chromium/media/filters/ffmpeg_video_decoder.cc b/chromium/media/filters/ffmpeg_video_decoder.cc
index ef12477ee89..7996606f5f9 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
@@ -391,7 +391,7 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
if (decode_nalus_)
codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (!codec || avcodec_open2(codec_context_.get(), codec, NULL) < 0) {
ReleaseFFmpegResources();
return false;
diff --git a/chromium/media/filters/media_file_checker.cc b/chromium/media/filters/media_file_checker.cc
index 59c2a2fc618..1a9872c7acb 100644
--- a/src/3rdparty/chromium/media/filters/media_file_checker.cc
+++ b/src/3rdparty/chromium/media/filters/media_file_checker.cc
@@ -68,7 +68,7 @@ bool MediaFileChecker::Start(base::TimeDelta check_time) {
auto context = AVStreamToAVCodecContext(format_context->streams[i]);
if (!context)
continue;
- AVCodec* codec = avcodec_find_decoder(cp->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(cp->codec_id);
if (codec && avcodec_open2(context.get(), codec, nullptr) >= 0) {
auto loop = std::make_unique<FFmpegDecodingLoop>(context.get());
stream_contexts[i] = {std::move(context), std::move(loop)};
diff --git a/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
index 9002b874611..d12fade8b63 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
@@ -203,7 +203,7 @@ int32_t H264DecoderImpl::InitDecode(const VideoCodec* codec_settings,
// a pointer |this|.
av_context_->opaque = this;
- AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
if (!codec) {
// This is an indication that FFmpeg has not been initialized or it has not
// been compiled/initialized with the correct set of codecs.
--
2.35.1