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
|
__deps__ := YASM BZIP2 ZLIB FDKAAC LIBVPX LAME LIBOPUS LIBSPEEX XZ
ifeq (1,$(FEATURE.qsv))
__deps__ += LIBMFX
endif
# workaround for potential race condition
# where x264 may fail to find nasm later
__deps__ += X264
$(eval $(call import.MODULE.defs,FFMPEG,ffmpeg,$(__deps__)))
$(eval $(call import.CONTRIB.defs,FFMPEG))
FFMPEG.FETCH.url = https://download.handbrake.fr/handbrake/contrib/ffmpeg-4.0.tar.bz2
FFMPEG.FETCH.url += https://www.ffmpeg.org/releases/ffmpeg-4.0.tar.bz2
FFMPEG.FETCH.sha256 = 318a39d906c9107d49766c63787798dd078d2a36e6670a9dfeda3c55be4573b8
FFMPEG.CONFIGURE.deps =
FFMPEG.CONFIGURE.host =
FFMPEG.CONFIGURE.build =
FFMPEG.CONFIGURE.env.LOCAL_PATH = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)"
FFMPEG.BUILD.env = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)"
FFMPEG.CONFIGURE.extra = \
--enable-gpl \
--disable-doc \
--disable-bsfs \
--enable-bsf=aac_adtstoasc \
--disable-programs \
--disable-avdevice \
--disable-muxers \
--disable-network \
--disable-hwaccels \
--disable-vaapi \
--disable-vdpau \
--disable-encoders \
--enable-avresample \
--enable-libmp3lame \
--enable-encoder=aac \
--enable-encoder=ac3 \
--enable-encoder=eac3 \
--enable-encoder=flac \
--enable-encoder=mpeg2video \
--enable-encoder=mpeg4 \
--enable-encoder=libmp3lame \
--enable-libopus \
--enable-encoder=libopus \
--enable-libspeex \
--disable-encoder=libspeex \
--enable-decoder=libspeex \
--enable-libvpx \
--disable-decoder=libvpx_* \
--enable-encoder=libvpx_vp8 \
--enable-encoder=libvpx_vp9 \
--disable-decoder=*_crystalhd \
--enable-lzma \
--cc="$(FFMPEG.GCC.gcc)" \
--extra-ldflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib)"
ifeq (1,$(FEATURE.fdk_aac))
FFMPEG.CONFIGURE.extra += \
--enable-nonfree \
--enable-libfdk-aac \
--enable-encoder=libfdk_aac
endif
FFMPEG.CONFIGURE.extra += \
--enable-muxer=matroska \
--enable-muxer=webm \
--enable-muxer=mov \
--enable-muxer=mp4 \
--enable-muxer=psp \
--enable-muxer=ipod
ifeq (darwin,$(BUILD.system))
FFMPEG.CONFIGURE.extra += --disable-audiotoolbox --disable-coreimage --disable-videotoolbox
ifeq (x86_64,$(BUILD.arch))
FFMPEG.CONFIGURE.extra += --arch=x86_64
endif
endif
## check against tuple: B-SYSTEM where B is { 0 | 1 } for cross-compiling flag
ifeq (0-cygwin,$(BUILD.cross)-$(BUILD.system))
FFMPEG.GCC.args.extra += -fno-common
else ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))
FFMPEG.CONFIGURE.extra += \
--target-os=mingw32 \
--arch=$(BUILD.machine) \
--cross-prefix=$(BUILD.cross.prefix)
FFMPEG.GCC.args.extra += -fno-common
ifeq (1,$(FEATURE.local_pkgconfig))
FFMPEG.CONFIGURE.extra += --pkg-config="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin/$(PKGCONFIG.exe))"
else
FFMPEG.CONFIGURE.extra += --pkg-config=$(PKGCONFIG.exe)
endif
endif
ifneq (none,$(FFMPEG.GCC.g))
FFMPEG.CONFIGURE.extra += --enable-debug
ifeq (max,$(FFMPEG.GCC.g))
FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DDEBUG"
else
FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DNDEBUG"
endif
else
FFMPEG.CONFIGURE.extra += --disable-debug
FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DNDEBUG"
endif
ifeq (none,$(FFMPEG.GCC.O))
FFMPEG.CONFIGURE.extra += --disable-optimizations
endif
ifeq (1,$(FEATURE.qsv))
FFMPEG.CONFIGURE.extra += --enable-libmfx
endif
## enable compile verbosity
FFMPEG.BUILD.extra = V=1
## For POSIX.1-2001
ifeq (solaris,$(BUILD.system))
FFMPEG.CONFIGURE.extra += --extra-libs=/usr/lib/values-xpg6.o
endif
## MPC8 Doesn't compile on SPARC
ifeq (solaris-sparc,$(BUILD.system)-$(BUILD.machine))
FFMPEG.CONFIGURE.extra += --disable-demuxer=mpc8
endif
|