summaryrefslogtreecommitdiff
blob: 27b8a8cfff4b3425f2f8164112ac53868fa61de0 (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Copyright 2002-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7
inherit autotools

DESCRIPTION="Utilities for transcoding video and audio codecs in different containers"
HOMEPAGE="http://www.transcoding.org/ https://bitbucket.org/france/transcode-tcforge"
SRC_URI="https://www.bitbucket.org/france/${PN}-tcforge/downloads/${P}.tar.bz2
	https://dev.gentoo.org/~mgorny/dist/${P}-patchset.tar.bz2
	https://dev.gentoo.org/~whissi/dist/${PN}/${PN}-1.1.7-ffmpeg4.patch.xz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm64 ppc ppc64 ~riscv sparc x86"
IUSE="cpu_flags_x86_3dnow a52 aac alsa altivec dv dvd +iconv imagemagick jpeg lzo mjpeg cpu_flags_x86_mmx mp3 mpeg nuv ogg oss pic postproc quicktime sdl cpu_flags_x86_sse cpu_flags_x86_sse2 theora truetype v4l vorbis X x264 xml xvid"

RDEPEND="
	>=media-video/ffmpeg-0.10
	a52? ( media-libs/a52dec )
	aac? ( media-libs/faac )
	alsa? ( media-libs/alsa-lib )
	dv? ( media-libs/libdv )
	dvd? ( media-libs/libdvdread:0= )
	iconv? ( virtual/libiconv )
	imagemagick? ( media-gfx/imagemagick:= )
	jpeg? ( virtual/jpeg:0= )
	lzo? ( >=dev-libs/lzo-2 )
	mjpeg? ( media-video/mjpegtools:= )
	mp3? ( media-sound/lame )
	mpeg? ( media-libs/libmpeg2 )
	ogg? ( media-libs/libogg )
	postproc? ( >=media-video/ffmpeg-0.10 )
	quicktime? ( >=media-libs/libquicktime-1 )
	sdl? ( >=media-libs/libsdl-1.2.5[X?] )
	theora? ( media-libs/libtheora )
	truetype? ( >=media-libs/freetype-2 )
	v4l? ( media-libs/libv4l )
	vorbis? ( media-libs/libvorbis )
	X? ( x11-libs/libXpm x11-libs/libXaw x11-libs/libXv )
	x264? ( media-libs/x264:= )
	xml? ( dev-libs/libxml2 )
	xvid? ( media-libs/xvid )
	"

DEPEND="${RDEPEND}"
BDEPEND="
	virtual/pkgconfig
	v4l? ( >=sys-kernel/linux-headers-2.6.11 )
"

REQUIRED_USE="
	cpu_flags_x86_sse? ( cpu_flags_x86_mmx )
	cpu_flags_x86_sse2? ( cpu_flags_x86_mmx cpu_flags_x86_sse )
	cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx )
	nuv? ( lzo )
	"

PATCHES=(
	"${WORKDIR}"/${P}-patchset/${P}-ffmpeg.patch
	"${WORKDIR}"/${P}-patchset/${P}-ffmpeg-0.10.patch
	"${WORKDIR}"/${P}-patchset/${P}-ffmpeg-0.11.patch
	"${WORKDIR}"/${P}-patchset/${P}-preset-free.patch
	"${WORKDIR}"/${P}-patchset/${P}-libav-9.patch
	"${WORKDIR}"/${P}-patchset/${P}-libav-10.patch
	"${WORKDIR}"/${P}-patchset/${P}-preset-force.patch
	"${WORKDIR}"/${P}-patchset/${P}-ffmpeg2.patch
	"${WORKDIR}"/${P}-patchset/${P}-freetype251.patch
	"${WORKDIR}"/${P}-patchset/${P}-ffmpeg24.patch
	"${FILESDIR}"/${P}-swresample.patch #722296
	"${FILESDIR}"/${P}-gcc10-fno-common.patch
	"${FILESDIR}"/${P}-glibc-2.32.patch
)

src_prepare() {
	if has_version '>=media-video/ffmpeg-2.8'; then
		PATCHES+=( "${WORKDIR}"/${P}-patchset/${P}-ffmpeg29.patch )
	fi

	if has_version '>=media-gfx/imagemagick-7.0.1.0' ; then
		PATCHES+=( "${WORKDIR}"/${P}-patchset/${P}-imagemagick7.patch )
	fi

	if has_version '>=media-video/ffmpeg-4' ;  then
		PATCHES+=( "${WORKDIR}/transcode-1.1.7-ffmpeg4.patch" )
	fi

	default

	eautoreconf
}

src_configure() {
	local myconf
	use x86 && myconf="$(use_enable !pic x86-textrels)" #271476

	local myeconfargs=(
		$(use_enable cpu_flags_x86_mmx mmx)
		$(use_enable cpu_flags_x86_3dnow 3dnow)
		$(use_enable cpu_flags_x86_sse sse)
		$(use_enable cpu_flags_x86_sse2 sse2)
		$(use_enable altivec)
		$(use_enable v4l libv4l2)
		$(use_enable v4l libv4lconvert)
		$(use_enable mpeg libmpeg2)
		$(use_enable mpeg libmpeg2convert)
		--enable-experimental
		--enable-deprecated
		$(use_enable v4l)
		$(use_enable oss)
		$(use_enable alsa)
		$(use_enable postproc libpostproc)
		$(use_enable truetype freetype2)
		$(use_enable mp3 lame)
		$(use_enable xvid)
		$(use_enable x264)
		$(use_enable ogg)
		$(use_enable vorbis)
		$(use_enable theora)
		$(use_enable dvd libdvdread)
		$(use_enable dv libdv)
		$(use_enable quicktime libquicktime)
		$(use_enable lzo)
		$(use_enable a52)
		$(use_enable aac faac)
		$(use_enable xml libxml2)
		$(use_enable mjpeg mjpegtools)
		$(use_enable sdl)
		$(use_enable imagemagick)
		$(use_enable jpeg libjpeg)
		$(use_enable iconv)
		$(use_enable nuv)
		$(use_with X x)
		--with-mod-path=/usr/$(get_libdir)/transcode
		${myconf}
	)
	econf "${myeconfargs[@]}"
}

src_install() {
	emake DESTDIR="${D}" docsdir=/usr/share/doc/${PF} install
	dodoc AUTHORS ChangeLog README STYLE TODO
	find "${ED}" \( -name "*.a" -o -name "*.la" \) -delete || die
}