summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: dc6ea4fdb9f76c49a1b1d80a26aec7e950425fd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# Maintainer: Nikos Toutountzoglou <nikos.toutou@protonmail.com>

pkgname=ffmpeg-dektec
pkgver=2023.09.0
pkgrel=1
_ffmpegver=6.0
_sdkver=2023.08.0
pkgdesc="FFmpeg Integration for DekTec Devices"
arch=('x86_64')
url="https://www.dektec.com/products/SDK/ffmpeg/"
license=('custom: nonfree and unredistributable')
depends=('dektec-drivers-dkms')
makedepends=('yasm' 'sdl2')
source=("https://ffmpeg.org/releases/ffmpeg-${_ffmpegver}.tar.xz"{,.asc}
        "FFmpeg_v${pkgver}.tar.gz::https://www.dektec.com/products/SDK/ffmpeg/linux/downloads/FFmpeg_v${pkgver}.tar.gz"
        "LinuxSDK_v${_sdkver}.tar.gz::https://www.dektec.com/products/SDK/DTAPI/Downloads/LinuxSDK_v${_sdkver}.tar.gz"
        "dektec_changes.patch"
        "040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch"
        "060-ffmpeg-fix-segfault-with-avisynthplus.patch"
        "070-ffmpeg-binutils2.41-fix.patch::https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/effadce6c756247ea8bae32dc13bb3e6f464f0eb")
noextract=("FFmpeg_v${pkgver}.tar.gz")
sha256sums=('57be87c22d9b49c112b6d24bc67d42508660e6b718b3db89c44e47e289137082'
            'SKIP'
            '18d5f0fc4ded9ccc28978fcf345125d4a91a765eb503e7e61ddacd6ede9be003'
            '144da46bb3c2be721682820ca33d4fc08d6545f31b3adbb906a90b5eb36e3fb3'
            '326ca3465aa61469bf8a9099a8d24c52234579a03ee3b86e093483c7be174422'
            'd1ad786df86354d218a70b306a50961736c0a6e2d2716bf8de3db31d79957df9'
            'bf563193f450ece58a93db6840c0db33875df945fa81477b9b02fb209d3bf57a'
            'fec03e133521486ca258ae34ddf093eb6aab23f848c4332c367aadbfeaefda04')
validpgpkeys=(FCF986EA15E6E293A5644F10B4322F04D67658D8) # issuer "ffmpeg-devel@ffmpeg.org"

prepare() {
	# https://www.dektec.com/products/SDK/ffmpeg/
	patch -d ffmpeg-${_ffmpegver} -Np1 -i "$srcdir"/dektec_changes.patch
	# https://crbug.com/1251779
	patch -d ffmpeg-${_ffmpegver} -Np1 -i "$srcdir"/040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch
	# FS#77813: fix playing ogg files with mplayer
	patch -d ffmpeg-${_ffmpegver} -Np1 -i "$srcdir"/060-ffmpeg-fix-segfault-with-avisynthplus.patch
	# FS#79281: fix assembling with binutil as >= 2.41
	patch -d ffmpeg-${_ffmpegver} -Np1 -i "$srcdir"/070-ffmpeg-binutils2.41-fix.patch

	# Include all files from DekTec
	mkdir -p FFmpeg_v${pkgver}
	bsdtar -xf FFmpeg_v${pkgver}.tar.gz -C FFmpeg_v${pkgver}
	cp FFmpeg_v${pkgver}/fftools/unused_functions.c ffmpeg-${_ffmpegver}/fftools
	cp FFmpeg_v${pkgver}/libavcodec/unused_functions.c ffmpeg-${_ffmpegver}/libavcodec
	cp FFmpeg_v${pkgver}/libavfilter/unused_functions.c ffmpeg-${_ffmpegver}/libavfilter
	cp FFmpeg_v${pkgver}/libavutil/unused_functions.c ffmpeg-${_ffmpegver}/libavutil
	cp FFmpeg_v${pkgver}/libswresample/unused_functions.c ffmpeg-${_ffmpegver}/libswresample
	cp FFmpeg_v${pkgver}/libswscale/unused_functions.c ffmpeg-${_ffmpegver}/libswscale
	cp FFmpeg_v${pkgver}/libavdevice/{dektec_common.c,dektec_common.h,dektec_dec.c,dektec_enc.c} ffmpeg-${_ffmpegver}/libavdevice
	cp FFmpeg_v${pkgver}/libavformat/{sdicommon.c,sdicommon.h,sdidec.c,sdienc_audio.c,sdienc_audio.h,sdienc.c,sdienc_payloadid.c,sdienc_payloadid.h,unused_functions.c} ffmpeg-${_ffmpegver}/libavformat
	cp -r FFmpeg_v${pkgver}/libavresample ffmpeg-${_ffmpegver}/libavresample
	cp FFmpeg_v${pkgver}/tests/fate/sdi.mak ffmpeg-${_ffmpegver}/tests/fate
}

build() {
	cd "ffmpeg-${_ffmpegver}"

	PKG_CONFIG_PATH="${srcdir}/LinuxSDK/DTAPI/Lib/GCC7.5.0/pkgconfig" ./configure \
	--prefix='/usr' \
	--disable-shared \
	--enable-static \
	--enable-small \
	--enable-dektec \
	--enable-nonfree
	make
	# Fasttools
	#make tools/qt-faststart
	# Docs
	make doc/ff{mpeg,play}.1
	# Rename man files
	cd doc
	rename ffmpeg ffmpeg-dektec *.1
	rename ffplay ffplay-dektec *.1
}

package() {
	# Custom standalone installation
	install -Dm 755 ffmpeg-${_ffmpegver}/ffmpeg "$pkgdir"/usr/bin/ffmpeg-dektec
	install -Dm 755 ffmpeg-${_ffmpegver}/ffplay "$pkgdir"/usr/bin/ffplay-dektec

	# Install man pages
	install -Dm644 -t "$pkgdir/usr/share/man/man1" ffmpeg-${_ffmpegver}/doc/ffmpeg-dektec*.1
	install -Dm644 -t "$pkgdir/usr/share/man/man1" ffmpeg-${_ffmpegver}/doc/ffplay-dektec*.1

	# Standard installation method
	#make DESTDIR="$pkgdir" -C ffmpeg-${_ffmpegver} install install-man
	#install -Dm 755 ffmpeg-${_ffmpegver}/tools/qt-faststart "$pkgdir"/usr/bin/
}