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
:= 59eb98c1b5896ac29abc0385f7c875d1b4942d695818818d418ee71eea1e0cfb
10 PKG_DESCR
:= record
, convert and stream audio
& video
11 PKG_SECTION
:= libs
/video
12 PKG_FDEPENDS
:= libpthread
13 PKG_URL
:= http
://www.ffmpeg.org
/
14 PKG_SITES
:= http
://www.ffmpeg.org
/releases
/
15 PKG_LIBNAME
:= libffmpeg
18 PKG_SUBPKGS
:= LIBFFMPEG FFSERVER FFPROBE FFMPEG
19 #PKGSD_FFPLAY:= video player
20 #PKGSC_FFPLAY:= mm/video
21 #PKGSS_FFPLAY:= libsdl libpthread libffmpeg
23 PKGSD_FFMPEG
:= video converter
24 PKGSC_FFMPEG
:= mm
/video
25 PKGSS_FFMPEG
:= libffmpeg
26 PKGSD_FFSERVER
:= streaming server
27 PKGSC_FFSERVER
:= mm
/video
28 PKGSS_FFSERVER
:= libffmpeg
29 PKGSD_FFPROBE
:= simple multimedia stream analyzer
30 PKGSC_FFPROBE
:= mm
/video
31 PKGSS_FFPROBE
:= libffmpeg
32 PKGSD_LIBFFMPEG
:= video library
33 PKGSC_LIBFFMPEG
:= libs
/video
35 PKG_FLAVOURS_LIBFFMPEG
:= WITH_AAC WITH_MP3 WITH_VP8 WITH_THEORA
36 PKG_FLAVOURS_LIBFFMPEG
+= WITH_XVID WITH_VORBIS WITH_X264
38 PKGFD_WITH_X264
:= with X264 decoding support
39 PKGFS_WITH_X264
:= libx264
40 PKGFB_WITH_X264
:= libx264
41 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264
),y
)
42 PKG_FDEPENDS
+= libx264
45 PKGFD_WITH_AAC
:= with AAC encoding support
46 PKGFS_WITH_AAC
:= libfaac
48 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_AAC
),y
)
49 PKG_FDEPENDS
+= libfaac
52 PKGFD_WITH_MP3
:= with MP3 encoding support
53 PKGFS_WITH_MP3
:= libmp3lame
55 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3
),y
)
56 PKG_FDEPENDS
+= libmp3lame
59 PKGFD_WITH_VP8
:= with VP8 encoding support
60 PKGFS_WITH_VP8
:= libvpx
61 PKGFB_WITH_VP8
:= libvpx
62 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8
),y
)
66 PKGFD_WITH_THEORA
:= with Theora encoding support
67 PKGFS_WITH_THEORA
:= libtheora
68 PKGFB_WITH_THEORA
:= libtheora
69 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA
),y
)
70 PKG_FDEPENDS
+= libtheora
73 PKGFD_WITH_XVID
:= with Xvid encoding support
74 PKGFS_WITH_XVID
:= libxvid
75 PKGFB_WITH_XVID
:= xvidcore
76 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID
),y
)
77 PKG_FDEPENDS
+= libxvid
80 PKGFD_WITH_VORBIS
:= with Vorbis encoding support
81 PKGFS_WITH_VORBIS
:= libvorbisenc
82 PKGFB_WITH_VORBIS
:= libvorbis
83 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS
),y
)
84 PKG_FDEPENDS
+= libvorbisenc
87 DISTFILES
:= ${PKG_NAME}-${PKG_VERSION}.
tar.bz2
89 include ${ADK_TOPDIR}/mk
/package.mk
91 $(eval
$(call PKG_template
,LIBFFMPEG
,libffmpeg
,${PKG_VERSION}-${PKG_RELEASE},${PKG_FDEPENDS},${PKGSD_LIBFFMPEG},${PKGSC_LIBFFMPEG},${PKG_OPTS}))
92 $(eval
$(call PKG_template
,FFMPEG
,ffmpeg
,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFMPEG},${PKGSC_FFMPEG}))
93 $(eval
$(call PKG_template
,FFSERVER
,ffserver
,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFSERVER},${PKGSC_FFSERVER}))
94 $(eval
$(call PKG_template
,FFPROBE
,ffprobe
,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFPROBE},${PKGSC_FFPROBE}))
95 #$(eval $(call PKG_template,FFPLAY,ffplay,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_FFPLAY},${PKGSD_FFPLAY},${PKGSC_FFPLAY}))
98 TARGET_CFLAGS
:= $(subst O0
,O2
,$(TARGET_CFLAGS
))
100 TARGET_CFLAGS
:= $(subst Os
,O2
,$(TARGET_CFLAGS
))
102 TARGET_CPPFLAGS
+= -D_POSIX_SOURCE
-D_GNU_SOURCE
104 ifeq ($(ADK_TARGET_CPU_WITH_MMX
),y
)
105 CONFIGURE_CPU_OPTS
:= --enable-mmx
107 CONFIGURE_CPU_OPTS
:= --disable-mmx
109 ifeq ($(ADK_TARGET_CPU_WITH_MMXEXT
),y
)
110 CONFIGURE_CPU_OPTS
:= --enable-mmx2
112 CONFIGURE_CPU_OPTS
:= --disable-mmx2
114 ifeq ($(ADK_TARGET_CPU_WITH_SSE
),y
)
115 CONFIGURE_CPU_OPTS
:= --enable-sse
117 CONFIGURE_CPU_OPTS
:= --disable-sse
119 ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI
),y
)
120 CONFIGURE_CPU_OPTS
:= --enable-armv6
123 CONFIG_STYLE
:= minimal
124 CONFIGURE_ARGS
:= --prefix=/usr \
126 --arch
=${ADK_TARGET_CPU_ARCH} \
127 --enable-cross-compile \
128 --sysroot
=${STAGING_TARGET_DIR} \
129 --cross-prefix
=${TARGET_CROSS} \
130 --cc='$(TARGET_CC)' \
131 --host-cc
=$(HOST_CC
) \
137 --disable-optimizations \
138 --disable-stripping \
145 ${CONFIGURE_CPU_OPTS}
147 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_X264
),y
)
148 CONFIGURE_ARGS
+= --enable-libx264
150 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_AAC
),y
)
151 CONFIGURE_ARGS
+= --enable-libfaac
153 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3
),y
)
154 CONFIGURE_ARGS
+= --enable-libmp3lame
156 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8
),y
)
157 CONFIGURE_ARGS
+= --enable-libvpx
159 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_THEORA
),y
)
160 CONFIGURE_ARGS
+= --enable-libtheora
162 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_XVID
),y
)
163 CONFIGURE_ARGS
+= --enable-libxvid
165 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VORBIS
),y
)
166 CONFIGURE_ARGS
+= --enable-libvorbis
170 ${INSTALL_DIR} ${IDIR_LIBFFMPEG}/usr
/lib
171 ${CP} ${WRKINST}/usr
/lib
/libavdevice.so
* ${IDIR_LIBFFMPEG}/usr
/lib
172 ${CP} ${WRKINST}/usr
/lib
/libavformat.so
* ${IDIR_LIBFFMPEG}/usr
/lib
173 ${CP} ${WRKINST}/usr
/lib
/libavfilter.so
* ${IDIR_LIBFFMPEG}/usr
/lib
174 ${CP} ${WRKINST}/usr
/lib
/libavcodec.so
* ${IDIR_LIBFFMPEG}/usr
/lib
175 ${CP} ${WRKINST}/usr
/lib
/libavutil.so
* ${IDIR_LIBFFMPEG}/usr
/lib
176 ${CP} ${WRKINST}/usr
/lib
/libpostproc.so
* ${IDIR_LIBFFMPEG}/usr
/lib
177 ${CP} ${WRKINST}/usr
/lib
/libswscale.so
* ${IDIR_LIBFFMPEG}/usr
/lib
178 ${CP} ${WRKINST}/usr
/lib
/libswresample.so
* ${IDIR_LIBFFMPEG}/usr
/lib
181 # ${INSTALL_DIR} ${IDIR_FFPLAY}/usr/bin
182 # ${INSTALL_BIN} ${WRKINST}/usr/bin/ffplay ${IDIR_FFPLAY}/usr/bin
185 ${INSTALL_DIR} ${IDIR_FFMPEG}/usr
/bin
186 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/ffmpeg
${IDIR_FFMPEG}/usr
/bin
189 ${INSTALL_DIR} ${IDIR_FFSERVER}/etc
190 $(INSTALL_DATA
) $(WRKBUILD
)/doc
/ffserver.conf
${IDIR_FFSERVER}/etc
191 ${INSTALL_DIR} ${IDIR_FFSERVER}/usr
/bin
192 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/ffserver
${IDIR_FFSERVER}/usr
/bin
195 ${INSTALL_DIR} ${IDIR_FFPROBE}/usr
/bin
196 ${INSTALL_BIN} ${WRKINST}/usr
/bin
/ffprobe
${IDIR_FFPROBE}/usr
/bin
198 include ${ADK_TOPDIR}/mk
/pkg-bottom.mk