1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR
)/rules.mk
9 PKG_HASH
:= eb0370bf223809b9ebb359fed5318f826ac038ce77933b3afd55ab1a0a21785a
10 PKG_DESCR
:= record
, convert and stream audio
& video
11 PKG_SECTION
:= libs
/video
13 PKG_DEPENDS
:= libncurses libressl
14 PKG_BUILDDEP
:= ncurses libressl
15 PKG_URL
:= http
://www.ffmpeg.org
/
16 PKG_SITES
:= http
://www.ffmpeg.org
/releases
/
17 PKG_LIBNAME
:= libffmpeg
20 PKG_SUBPKGS
:= LIBFFMPEG FFSERVER FFPROBE FFMPEG
21 PKGSD_FFMPEG
:= video converter
22 PKGSC_FFMPEG
:= mm
/video
23 PKGSS_FFMPEG
:= libffmpeg
24 PKGSD_FFSERVER
:= streaming server
25 PKGSC_FFSERVER
:= mm
/video
26 PKGSS_FFSERVER
:= libffmpeg
27 PKGSD_FFPROBE
:= simple multimedia stream analyzer
28 PKGSC_FFPROBE
:= mm
/video
29 PKGSS_FFPROBE
:= libffmpeg
30 PKGSD_LIBFFMPEG
:= video library
31 PKGSC_LIBFFMPEG
:= libs
/video
33 PKG_FLAVOURS_LIBFFMPEG
:= WITH_MP3 WITH_VP8 WITH_THEORA
34 PKG_FLAVOURS_LIBFFMPEG
+= WITH_XVID WITH_VORBIS WITH_X264 WITH_X265
35 PKG_FLAVOURS_LIBFFMPEG
+= WITH_ZLIB WITH_BZIP2
37 PKGFD_WITH_BZIP2
:= with bzip2 compression support
38 PKGFS_WITH_BZIP2
:= bzip2
39 PKGFB_WITH_BZIP2
:= bzip2
41 PKGFD_WITH_ZLIB
:= with zlib compression support
42 PKGFS_WITH_ZLIB
:= zlib
43 PKGFB_WITH_ZLIB
:= zlib
45 PKGFD_WITH_X264
:= with x264 decoding support
46 PKGFS_WITH_X264
:= libx264
47 PKGFB_WITH_X264
:= libx264
48 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264
),y
)
49 PKG_FDEPENDS
+= libx264
52 PKGFD_WITH_X265
:= with x265 decoding support
53 PKGFS_WITH_X265
:= libx265
54 PKGFB_WITH_X265
:= libx265
55 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X265
),y
)
56 PKG_FDEPENDS
+= libx265
59 PKGFD_WITH_MP3
:= with mp3 encoding support
60 PKGFS_WITH_MP3
:= libmp3lame
62 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3
),y
)
63 PKG_FDEPENDS
+= libmp3lame
66 PKGFD_WITH_VP8
:= with vp8 encoding support
67 PKGFS_WITH_VP8
:= libvpx
68 PKGFB_WITH_VP8
:= libvpx
69 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8
),y
)
73 PKGFD_WITH_THEORA
:= with theora encoding support
74 PKGFS_WITH_THEORA
:= libtheora
75 PKGFB_WITH_THEORA
:= libtheora
76 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA
),y
)
77 PKG_FDEPENDS
+= libtheora
80 PKGFD_WITH_XVID
:= with xvid encoding support
81 PKGFS_WITH_XVID
:= libxvid
82 PKGFB_WITH_XVID
:= xvidcore
83 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID
),y
)
84 PKG_FDEPENDS
+= libxvid
87 PKGFD_WITH_VORBIS
:= with vorbis encoding support
88 PKGFS_WITH_VORBIS
:= libvorbisenc
89 PKGFB_WITH_VORBIS
:= libvorbis
90 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS
),y
)
91 PKG_FDEPENDS
+= libvorbisenc
94 DISTFILES
:= $(PKG_NAME
)-$(PKG_VERSION
).
tar.bz2
96 include $(ADK_TOPDIR
)/mk
/package.mk
98 $(eval
$(call PKG_template
,LIBFFMPEG
,libffmpeg
,$(PKG_VERSION
)-$(PKG_RELEASE
),$(PKG_FDEPENDS
),$(PKGSD_LIBFFMPEG
),$(PKGSC_LIBFFMPEG
),$(PKG_OPTS
)))
99 $(eval
$(call PKG_template
,FFMPEG
,ffmpeg
,$(PKG_VERSION
)-$(PKG_RELEASE
),$(PKG_DEPENDS
),$(PKGSD_FFMPEG
),$(PKGSC_FFMPEG
)))
100 $(eval
$(call PKG_template
,FFSERVER
,ffserver
,$(PKG_VERSION
)-$(PKG_RELEASE
),$(PKG_DEPENDS
),$(PKGSD_FFSERVER
),$(PKGSC_FFSERVER
)))
101 $(eval
$(call PKG_template
,FFPROBE
,ffprobe
,$(PKG_VERSION
)-$(PKG_RELEASE
),$(PKG_DEPENDS
),$(PKGSD_FFPROBE
),$(PKGSC_FFPROBE
)))
103 ifeq ($(ADK_DEBUG
),y
)
104 TARGET_CFLAGS
:= $(subst O0
,O2
,$(TARGET_CFLAGS
))
106 TARGET_CFLAGS
:= $(subst Os
,O2
,$(TARGET_CFLAGS
))
108 TARGET_CPPFLAGS
+= -D_POSIX_SOURCE
-D_GNU_SOURCE
110 ifeq ($(ADK_TARGET_CPU_WITH_MMX
),y
)
111 CONFIGURE_CPU_OPTS
+= --enable-mmx
113 CONFIGURE_CPU_OPTS
+= --disable-mmx
115 ifeq ($(ADK_TARGET_CPU_WITH_MMXEXT
),y
)
116 CONFIGURE_CPU_OPTS
+= --enable-mmxext
118 CONFIGURE_CPU_OPTS
+= --disable-mmxext
120 ifeq ($(ADK_TARGET_CPU_WITH_SSE4_2
),y
)
121 CONFIGURE_CPU_OPTS
+= --enable-sse42 \
128 CONFIGURE_CPU_OPTS
+= --disable-sse42
129 ifeq ($(ADK_TARGET_CPU_WITH_SSE4_1
),y
)
130 CONFIGURE_CPU_OPTS
+= --enable-sse4 \
136 CONFIGURE_CPU_OPTS
+= --disable-sse4
137 ifeq ($(ADK_TARGET_CPU_WITH_SSSE3
),y
)
138 CONFIGURE_CPU_OPTS
+= --enable-ssse3 \
143 CONFIGURE_CPU_OPTS
+= --disable-ssse3
144 ifeq ($(ADK_TARGET_CPU_WITH_SSE3
),y
)
145 CONFIGURE_CPU_OPTS
+= --enable-sse3 \
149 CONFIGURE_CPU_OPTS
+= --disable-sse3
150 ifeq ($(ADK_TARGET_CPU_WITH_SSE2
),y
)
151 CONFIGURE_CPU_OPTS
+= --enable-sse2 \
154 CONFIGURE_CPU_OPTS
+= --disable-sse2
155 ifeq ($(ADK_TARGET_CPU_WITH_SSE
),y
)
156 CONFIGURE_CPU_OPTS
+= --enable-sse
158 CONFIGURE_CPU_OPTS
+= --disable-sse
165 ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI
),y
)
166 CONFIGURE_CPU_OPTS
:= --enable-armv6
168 ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32
),y
)
169 CONFIGURE_CPU_OPTS
+= --disable-mipsdsp
--disable-mipsdspr2
172 ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON
),y
)
173 CONFIGURE_CPU_OPTS
+= --enable-neon
175 CONFIGURE_CPU_OPTS
+= --disable-neon
178 CONFIG_STYLE
:= minimal
179 CONFIGURE_ARGS
:= --prefix=/usr \
181 --arch
=$(ADK_TARGET_CPU_ARCH
) \
182 --enable-cross-compile \
183 --sysroot
=$(STAGING_TARGET_DIR
) \
184 --cross-prefix
=$(TARGET_CROSS
) \
185 --cc='$(TARGET_CC)' \
186 --host-cc
='$(HOST_CC)' \
187 --pkg-config
='$(STAGING_HOST_DIR)/usr/bin/pkg-config' \
192 --disable-optimizations \
193 --disable-stripping \
201 $(CONFIGURE_CPU_OPTS
)
203 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_BZIP2
),y
)
204 CONFIGURE_ARGS
+= --enable-bzlib
206 CONFIGURE_ARGS
+= --disable-bzlib
209 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_ZLIB
),y
)
210 CONFIGURE_ARGS
+= --enable-zlib
212 CONFIGURE_ARGS
+= --disable-zlib
215 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264
),y
)
216 CONFIGURE_ARGS
+= --enable-libx264
218 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X265
),y
)
219 CONFIGURE_ARGS
+= --enable-libx265
221 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3
),y
)
222 CONFIGURE_ARGS
+= --enable-libmp3lame
224 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8
),y
)
225 CONFIGURE_ARGS
+= --enable-libvpx
227 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA
),y
)
228 CONFIGURE_ARGS
+= --enable-libtheora
230 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID
),y
)
231 CONFIGURE_ARGS
+= --enable-libxvid
233 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS
),y
)
234 CONFIGURE_ARGS
+= --enable-libvorbis \
236 --enable-encoder
=libvorbis
240 $(INSTALL_DIR
) $(IDIR_LIBFFMPEG
)/usr
/lib
241 $(CP
) $(WRKINST
)/usr
/lib
/libavdevice.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
242 $(CP
) $(WRKINST
)/usr
/lib
/libavformat.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
243 $(CP
) $(WRKINST
)/usr
/lib
/libavfilter.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
244 $(CP
) $(WRKINST
)/usr
/lib
/libavcodec.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
245 $(CP
) $(WRKINST
)/usr
/lib
/libavutil.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
246 $(CP
) $(WRKINST
)/usr
/lib
/libpostproc.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
247 $(CP
) $(WRKINST
)/usr
/lib
/libswscale.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
248 $(CP
) $(WRKINST
)/usr
/lib
/libswresample.so
* $(IDIR_LIBFFMPEG
)/usr
/lib
251 $(INSTALL_DIR
) $(IDIR_FFMPEG
)/usr
/bin
252 $(INSTALL_BIN
) $(WRKINST
)/usr
/bin
/ffmpeg \
253 $(IDIR_FFMPEG
)/usr
/bin
256 $(INSTALL_DIR
) $(IDIR_FFSERVER
)/etc
257 $(INSTALL_DATA
) $(WRKBUILD
)/doc
/ffserver.conf \
259 $(INSTALL_DIR
) $(IDIR_FFSERVER
)/usr
/bin
260 $(INSTALL_BIN
) $(WRKINST
)/usr
/bin
/ffserver \
261 $(IDIR_FFSERVER
)/usr
/bin
264 $(INSTALL_DIR
) $(IDIR_FFPROBE
)/usr
/bin
265 $(INSTALL_BIN
) $(WRKINST
)/usr
/bin
/ffprobe \
266 $(IDIR_FFPROBE
)/usr
/bin
268 include $(ADK_TOPDIR
)/mk
/pkg-bottom.mk