summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO33
-rw-r--r--PKGBUILD71
-rw-r--r--add-av_stream_get_first_dts-for-chromium.patch31
3 files changed, 115 insertions, 20 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ea47d25a2d97..7dbeb33a431c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,18 +1,21 @@
-# Generated by mksrcinfo v8
-# Tue Aug 20 00:17:04 UTC 2019
pkgbase = ffmpeg-mmal
pkgdesc = ffmpeg built with MMAL hardware acceleration support for Raspberry Pi
- pkgver = 4.2
- pkgrel = 1
- epoch = 1
+ pkgver = 6.0
+ pkgrel = 8
+ epoch = 2
url = https://ffmpeg.org/
arch = armv6h
arch = armv7h
arch = aarch64
license = GPL3
+ makedepends = avisynthplus
+ makedepends = clang
makedepends = git
makedepends = ladspa
+ makedepends = mesa
makedepends = nasm
+ makedepends = opencl-headers
+ makedepends = vulkan-headers
depends = alsa-lib
depends = bzip2
depends = fontconfig
@@ -25,14 +28,18 @@ pkgbase = ffmpeg-mmal
depends = libass.so
depends = libavc1394
depends = libbluray.so
+ depends = libbs2b.so
depends = libdav1d.so
depends = libdrm
depends = libfreetype.so
+ depends = libgl
depends = libiec61883
+ depends = libjxl.so
depends = libmodplug
- depends = libomxil-bellagio
+ depends = libopenmpt.so
depends = libpulse
depends = libraw1394
+ depends = librsvg-2.so
depends = libsoxr
depends = libssh
depends = libtheora
@@ -53,15 +60,20 @@ pkgbase = ffmpeg-mmal
depends = libxml2
depends = libxv
depends = libxvidcore.so
+ depends = libzimg.so
+ depends = ocl-icd
depends = opencore-amr
depends = openjpeg2
depends = opus
depends = raspberrypi-firmware
depends = sdl2
depends = speex
+ depends = srt
depends = v4l-utils
+ depends = vulkan-icd-loader
depends = xz
depends = zlib
+ optdepends = avisynthplus: AviSynthPlus support
optdepends = ladspa: LADSPA filters
provides = ffmpeg
provides = libavcodec.so
@@ -73,8 +85,11 @@ pkgbase = ffmpeg-mmal
provides = libswresample.so
provides = libswscale.so
conflicts = ffmpeg
- source = git+https://git.ffmpeg.org/ffmpeg.git#tag=n4.2
- sha256sums = SKIP
+ options = debug
+ source = git+https://git.ffmpeg.org/ffmpeg.git?signed#tag=3949db4d261748a9f34358a388ee255ad1a7f0c0
+ source = add-av_stream_get_first_dts-for-chromium.patch
+ validpgpkeys = DD1EC9E8DE085C629B3E1846B18E8928B3948D64
+ b2sums = SKIP
+ b2sums = 555274228e09a233d92beb365d413ff5c718a782008075552cafb2130a3783cf976b51dfe4513c15777fb6e8397a34122d475080f2c4483e8feea5c0d878e6de
pkgname = ffmpeg-mmal
-
diff --git a/PKGBUILD b/PKGBUILD
index b85adc4c73b1..ac8976e6ed81 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,12 +9,17 @@
# - use -fPIC in host cflags for v7/v8 to fix print_options.c compile
# - remove makedepends on ffnvcodec-headers, remove --enable-nvenc, --enable-nvdec
# - remove depends on aom, remove --enable-libaom
+# - remove depends on intel-media-sdk, remove --enable-libmfx
+# - remove depends on vmaf, remove --enable-vmaf
+# - remove depends on rav1e, remove --enable-librav1e
+# - remove depends on svt-av1, remove --enable-libsvtav1
+# - remove --enable-lto
# Upstream: https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/ffmpeg/PKGBUILD
pkgname=ffmpeg-mmal
-pkgver=4.2
-pkgrel=1
-epoch=1
+pkgver=6.0
+pkgrel=8
+epoch=2
pkgdesc='ffmpeg built with MMAL hardware acceleration support for Raspberry Pi'
arch=('armv6h' 'armv7h' 'aarch64')
url=https://ffmpeg.org/
@@ -32,14 +37,18 @@ depends=(
libass.so
libavc1394
libbluray.so
+ libbs2b.so
libdav1d.so
libdrm
libfreetype.so
+ libgl
libiec61883
+ libjxl.so
libmodplug
- libomxil-bellagio
+ libopenmpt.so
libpulse
libraw1394
+ librsvg-2.so
libsoxr
libssh
libtheora
@@ -60,22 +69,34 @@ depends=(
libxml2
libxv
libxvidcore.so
+ libzimg.so
+ ocl-icd
opencore-amr
openjpeg2
opus
raspberrypi-firmware
sdl2
speex
+ srt
v4l-utils
+ vulkan-icd-loader
xz
zlib
)
makedepends=(
+ avisynthplus
+ clang
git
ladspa
+ mesa
nasm
+ opencl-headers
+ vulkan-headers
+)
+optdepends=(
+ 'avisynthplus: AviSynthPlus support'
+ 'ladspa: LADSPA filters'
)
-optdepends=('ladspa: LADSPA filters')
provides=(
ffmpeg
libavcodec.so
@@ -87,20 +108,41 @@ provides=(
libswresample.so
libswscale.so
)
-source=(git+https://git.ffmpeg.org/ffmpeg.git#tag=n${pkgver})
conflicts=('ffmpeg')
-sha256sums=('SKIP')
+options=(
+ debug
+)
+_tag=3949db4d261748a9f34358a388ee255ad1a7f0c0
+source=(
+ git+https://git.ffmpeg.org/ffmpeg.git?signed#tag=${_tag}
+ add-av_stream_get_first_dts-for-chromium.patch
+)
+b2sums=('SKIP'
+ '555274228e09a233d92beb365d413ff5c718a782008075552cafb2130a3783cf976b51dfe4513c15777fb6e8397a34122d475080f2c4483e8feea5c0d878e6de')
+validpgpkeys=(DD1EC9E8DE085C629B3E1846B18E8928B3948D64) # Michael Niedermayer <michael@niedermayer.cc>
-build() {
+prepare() {
cd ffmpeg
+ patch -Np1 -i ../add-av_stream_get_first_dts-for-chromium.patch # https://crbug.com/1251779
+}
+pkgver() {
+ cd ffmpeg
+ git describe --tags | sed 's/^n//'
+}
+
+build() {
+ cd ffmpeg
[[ $CARCH == "armv7h" || $CARCH == "aarch64" ]] && CONFIG='--host-cflags="-fPIC"'
./configure \
- --prefix='/usr' \
+ --prefix=/usr \
--disable-debug \
--disable-static \
--disable-stripping \
+ --disable-amf \
+ --enable-avisynth \
+ --enable-cuda-llvm \
--enable-fontconfig \
--enable-gmp \
--enable-gnutls \
@@ -108,6 +150,7 @@ build() {
--enable-ladspa \
--enable-libass \
--enable-libbluray \
+ --enable-libbs2b \
--enable-libdav1d \
--enable-libdrm \
--enable-libfreetype \
@@ -115,15 +158,19 @@ build() {
--enable-libgsm \
--enable-libiec61883 \
--enable-libjack \
+ --enable-libjxl \
--enable-libmodplug \
--enable-libmp3lame \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--enable-libopenjpeg \
+ --enable-libopenmpt \
--enable-libopus \
--enable-libpulse \
+ --enable-librsvg \
--enable-libsoxr \
--enable-libspeex \
+ --enable-libsrt \
--enable-libssh \
--enable-libtheora \
--enable-libv4l2 \
@@ -136,13 +183,15 @@ build() {
--enable-libxcb \
--enable-libxml2 \
--enable-libxvid \
+ --enable-libzimg \
+ --enable-opencl \
+ --enable-opengl \
--enable-mmal \
--enable-omx \
--enable-omx-rpi \
--enable-shared \
--enable-version3 \
- $CONFIG
-
+ --enable-vulkan $CONFIG
make
make tools/qt-faststart
make doc/ff{mpeg,play}.1
diff --git a/add-av_stream_get_first_dts-for-chromium.patch b/add-av_stream_get_first_dts-for-chromium.patch
new file mode 100644
index 000000000000..20ea725dabf4
--- /dev/null
+++ b/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)
+ {