From 88f2763b4a271fe508012d22c55978f9166cb9fe Mon Sep 17 00:00:00 2001 From: Justin Gassner Date: Sun, 31 Dec 2023 03:30:31 +0100 Subject: Update ffmpeg --- ffmpeg/PKGBUILD | 47 +++++++++++++++------- .../add-av_stream_get_first_dts-for-chromium.patch | 31 ++++++++++++++ 2 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 ffmpeg/add-av_stream_get_first_dts-for-chromium.patch diff --git a/ffmpeg/PKGBUILD b/ffmpeg/PKGBUILD index d6c20e6..f59f78e 100644 --- a/ffmpeg/PKGBUILD +++ b/ffmpeg/PKGBUILD @@ -2,30 +2,46 @@ _pkgname=ffmpeg pkgname=$_pkgname-jxir -pkgver=4.3.r1387.gf7ad9a6c16 -pkgrel=1 +_tag=3cdfac27d3ea06f8719faed48b4ae2e75e94a463 # 6.1 +pkgver=6.1 +pkgrel=4 pkgdesc='Complete solution to record, convert and stream audio and video' arch=('x86_64') url='https://ffmpeg.org/' license=('GPL3') -depends=('alsa-lib' 'libass' 'libva') +depends=('libva') makedepends=('git' 'nasm') -provides=('libavcodec.so' 'libavdevice.so' 'libavfilter.so' 'libavformat.so' - 'libavutil.so' 'libpostproc.so' 'libswresample.so' 'libswscale.so' +provides=('libavcodec.so' 'libavfilter.so' 'libavformat.so' + 'libavutil.so' 'libswresample.so' 'libswscale.so' 'ffmpeg') conflicts=('ffmpeg') -source=('git+https://git.ffmpeg.org/ffmpeg.git') -sha256sums=('SKIP') +source=("git+https://git.ffmpeg.org/ffmpeg.git#tag=$_tag" + 'add-av_stream_get_first_dts-for-chromium.patch') +sha256sums=('SKIP' + '57e26caced5a1382cb639235f9555fc50e45e7bf8333f7c9ae3d49b3241d3f77') -pkgver() { +prepare() { cd "$srcdir/$_pkgname" - git describe --long | sed 's/n//;s/-dev//;s/\([^-]*-g\)/r\1/;s/-/./g' + # FS#79281: fix assembling with binutil as >= 2.41 + git cherry-pick -n effadce6c756247ea8bae32dc13bb3e6f464f0eb + # FS#77813: fix playing ogg files with mplayer + git cherry-pick -n cbcc817353a019da4332ad43deb7bbc4e695d02a + patch -Np1 -i ../add-av_stream_get_first_dts-for-chromium.patch # https://crbug.com/1251779 + # use non-deprecated nvenc GUID for conftest + git cherry-pick -n 03823ac0c6a38bd6ba972539e3203a592579792f + git cherry-pick -n d2b46c1ef768bc31ba9180f6d469d5b8be677500 + # Fix VDPAU vo + git cherry-pick -n e9c93009fc34ca9dfcf0c6f2ed90ef1df298abf7 + # Fix bug in av_fft_end + git cherry-pick -n a562cfee2e214252f8b3f516527272ae32ef9532 + git cherry-pick -n 250471ea1745fc703eb346a2a662304536a311b1 } build() { cd "$srcdir/$_pkgname" ./configure \ --prefix='/usr' \ + --disable-debug \ --enable-gpl \ --enable-version3 \ --disable-static \ @@ -34,20 +50,21 @@ build() { --disable-swscale-alpha \ --disable-ffplay \ --disable-doc \ - --disable-network \ + --disable-avdevice \ + --disable-postproc \ + --enable-network \ --disable-everything \ - --enable-rdft \ --enable-decoder=aac,h264,opus \ + --enable-encoder=aac \ --enable-hwaccel=h264_vaapi,vp9_vaapi \ - --enable-muxer=mp4,matroska,webm \ - --enable-demuxer=aac,ass,h264,matroska,mov \ + --enable-muxer=ffmetadata,mp4,matroska,webm \ + --enable-demuxer=aac,ass,ffmetadata,h264,mpegts,matroska,mov \ --enable-parser=aac,h264,opus,vp9 \ --enable-bsf=vp9_superframe \ --enable-protocol=file \ --enable-libass \ --enable-libfontconfig \ - --enable-libfreetype \ - --disable-debug + --enable-libfreetype make } diff --git a/ffmpeg/add-av_stream_get_first_dts-for-chromium.patch b/ffmpeg/add-av_stream_get_first_dts-for-chromium.patch new file mode 100644 index 0000000..20ea725 --- /dev/null +++ b/ffmpeg/add-av_stream_get_first_dts-for-chromium.patch @@ -0,0 +1,31 @@ +diff '--color=auto' -rupN ffmpeg.orig/libavformat/avformat.h ffmpeg/libavformat/avformat.h +--- ffmpeg.orig/libavformat/avformat.h 2022-08-19 17:42:47.323422603 +0200 ++++ ffmpeg/libavformat/avformat.h 2022-08-19 17:42:51.347130436 +0200 +@@ -1128,6 +1128,10 @@ struct AVCodecParserContext *av_stream_g + */ + 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 '--color=auto' -rupN ffmpeg.orig/libavformat/mux_utils.c ffmpeg/libavformat/mux_utils.c +--- ffmpeg.orig/libavformat/mux_utils.c 2022-08-19 17:42:47.346758108 +0200 ++++ ffmpeg/libavformat/mux_utils.c 2022-08-19 17:47:28.549589002 +0200 +@@ -37,6 +37,13 @@ int64_t av_stream_get_end_pts(const AVSt + 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 ^^^ ++ + int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id, + int std_compliance) + { -- cgit v1.2.3-54-g00ecf