From 4584f05fad9dd91f77454e19650fa65f60d3ee1e Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 25 Jan 2022 18:19:45 +0100 Subject: [PATCH] Update ffmpeg to 5.0 --- ffmpeg/custom/PKGBUILD | 13 ++++-- ...av_stream_get_first_dts-for-chromium.patch | 44 +++++++++++++++++++ 2 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 ffmpeg/custom/add-av_stream_get_first_dts-for-chromium.patch diff --git a/ffmpeg/custom/PKGBUILD b/ffmpeg/custom/PKGBUILD index 2fa981be..5a21c3ec 100644 --- a/ffmpeg/custom/PKGBUILD +++ b/ffmpeg/custom/PKGBUILD @@ -9,7 +9,7 @@ _name=ffmpeg pkgname=ffmpeg-custom -pkgver=4.4.1 +pkgver=5.0 pkgrel=1 epoch=1 pkgdesc='Complete solution to record, convert and stream audio and video (with more features enabled than regular ffmpeg)' @@ -111,14 +111,16 @@ provides=( ) conflicts=("$_name") -_tag=7e0d640edf6c3eee1816b105c2f7498c4f948e74 +_tag=390d6853d0ef408007feb39c0040682c81c02751 source=( git+https://git.ffmpeg.org/ffmpeg.git#tag=${_tag} - 'vmaf-model-path.patch' + vmaf-model-path.patch + add-av_stream_get_first_dts-for-chromium.patch ) sha256sums=( 'SKIP' - '8dff51f84a5f7460f8893f0514812f5d2bd668c3276ef7ab7713c99b71d7bd8d' + 8dff51f84a5f7460f8893f0514812f5d2bd668c3276ef7ab7713c99b71d7bd8d + 91973c465f01446a999f278f0c2a3763304994dba1ac35de0e4c72f12f39409e ) #pkgver() { @@ -132,6 +134,9 @@ prepare() { git cherry-pick -n 988f2e9eb063db7c1a678729f58aab6eba59a55b # fix nvenc on older gpus patch -Np1 -i "${srcdir}"/vmaf-model-path.patch + + # https://crbug.com/1251779 + patch -Np1 -i "${srcdir}"/add-av_stream_get_first_dts-for-chromium.patch } build() { diff --git a/ffmpeg/custom/add-av_stream_get_first_dts-for-chromium.patch b/ffmpeg/custom/add-av_stream_get_first_dts-for-chromium.patch new file mode 100644 index 00000000..fb558980 --- /dev/null +++ b/ffmpeg/custom/add-av_stream_get_first_dts-for-chromium.patch @@ -0,0 +1,44 @@ +From 95aab0fd83619408995720ce53d7a74790580220 Mon Sep 17 00:00:00 2001 +From: "liberato@chromium.org" +Date: Wed, 7 Jul 2021 19:01:22 -0700 +Subject: [PATCH] Add av_stream_get_first_dts for Chromium + +[foutrelis: adjust for new FFStream struct replacing AVStreamInternal] +--- + libavformat/avformat.h | 4 ++++ + libavformat/utils.c | 7 +++++++ + 2 files changed, 11 insertions(+) + +diff --git a/libavformat/avformat.h b/libavformat/avformat.h +index cd7b0d941c..b4a6dce885 100644 +--- a/libavformat/avformat.h ++++ b/libavformat/avformat.h +@@ -1010,6 +1010,10 @@ struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); + */ + int64_t av_stream_get_end_pts(const AVStream *st); + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st); ++// Chromium: We use the internal field first_dts ^^^ ++ + #define AV_PROGRAM_RUNNING 1 + + /** +diff --git a/libavformat/utils.c b/libavformat/utils.c +index de7580c32d..0ef0fe530e 100644 +--- a/libavformat/utils.c ++++ b/libavformat/utils.c +@@ -121,6 +121,13 @@ int64_t av_stream_get_end_pts(const AVStream *st) + return AV_NOPTS_VALUE; + } + ++// Chromium: We use the internal field first_dts vvv ++int64_t av_stream_get_first_dts(const AVStream *st) ++{ ++ return cffstream(st)->first_dts; ++} ++// Chromium: We use the internal field first_dts ^^^ ++ + struct AVCodecParserContext *av_stream_get_parser(const AVStream *st) + { + return st->internal->parser;