summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Gassner <justin.gassner@mailbox.org>2023-12-31 03:30:31 +0100
committerJustin Gassner <justin.gassner@mailbox.org>2023-12-31 03:30:31 +0100
commit88f2763b4a271fe508012d22c55978f9166cb9fe (patch)
tree6d25b8842e79867b9456cb18b6b50465dd80b940
parent487b7e675ff42f513f826731b19b2679d0a38cc8 (diff)
downloadpackages-88f2763b4a271fe508012d22c55978f9166cb9fe.tar.zst
Update ffmpeg
-rw-r--r--ffmpeg/PKGBUILD47
-rw-r--r--ffmpeg/add-av_stream_get_first_dts-for-chromium.patch31
2 files changed, 63 insertions, 15 deletions
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)
+ {