2 # Copyright (C) 2006-2010 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
14 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.bz2
15 PKG_SOURCE_URL
:=http
://ffmpeg.org
/releases
/
16 PKG_MD5SUM
:=451eb428ca97a72c00555d50944cdb24
88 file http pipe rtp tcp udp
90 PKG_CONFIG_DEPENDS
:= \
91 $(patsubst %,CONFIG_FFMPEG_ENCODER_
%,$(FFMPEG_ENCODERS
)) \
92 $(patsubst %,CONFIG_FFMPEG_DECODER_
%,$(FFMPEG_DECODERS
)) \
93 $(patsubst %,CONFIG_FFMPEG_MUXER_
%,$(FFMPEG_DEMUXERS
)) \
94 $(patsubst %,CONFIG_FFMPEG_DEMUXER_
%,$(FFMPEG_DEMUXERS
)) \
95 $(patsubst %,CONFIG_FFMPEG_PARSER_
%,$(FFMPEG_PARSERS
)) \
96 $(patsubst %,CONFIG_FFMPEG_PROTOCOL_
%,$(FFMPEG_PROTOCOLS
))
98 include $(INCLUDE_DIR
)/package.mk
100 define Package
/ffmpeg
/Default
102 URL
:=http
://ffmpeg.mplayerhq.hu
/
105 define Package
/ffmpeg
/Default
/description
106 FFmpeg is a a software package that can record
, convert and stream digital
107 audio and video in numerous formats.
110 define Package
/ffmpeg
111 $(call Package
/ffmpeg
/Default
)
115 DEPENDS
+= +libpthread
+libffmpeg
+libpostproc
118 define Package
/ffmpeg
/description
119 $(call Package
/ffmpeg
/Default
/description
)
121 This package contains the FFmpeg command line tool.
124 define Package
/ffserver
125 $(call Package
/ffserver
/Default
)
128 TITLE
+= streaming server
129 DEPENDS
+= +libpthread
+libffmpeg
+@FFMPEG_FFSERVER_SUPPORT
132 define Package
/ffserver
/description
133 $(call Package
/ffmpeg
/Default
/description
)
135 This package contains the FFmpeg streaming server.
138 define Package
/libffmpeg
139 $(call Package
/ffmpeg
/Default
)
143 DEPENDS
+= +libpthread
+zlib
147 define Package
/libffmpeg
/config
148 source
"$(SOURCE)/Config.in"
151 define Package
/libffmeg
/description
152 $(call Package
/ffmpeg
/Default
/description
)
154 This package contains FFmpeg shared libraries.
157 define Package
/libpostproc
161 URL
:=http
://ffmpeg.mplayerhq.hu
/
167 $(if
$(CONFIG_FFMPEG_
$(1)_
$(c
)),--enable-
$(2)="$(c)") \
170 FFMPEG_CONFIGURE_ENCODERS
:=$(call FILTER_CONFIG
,ENCODER
,encoder
,$(FFMPEG_ENCODERS
))
171 FFMPEG_CONFIGURE_DECODERS
:=$(call FILTER_CONFIG
,DECODER
,decoder
,$(FFMPEG_DECODERS
))
172 FFMPEG_CONFIGURE_MUXERS
:=$(call FILTER_CONFIG
,MUXER
,muxer
,$(FFMPEG_MUXERS
))
173 FFMPEG_CONFIGURE_DEMUXERS
:=$(call FILTER_CONFIG
,DEMUXER
,demuxer
,$(FFMPEG_DEMUXERS
))
174 FFMPEG_CONFIGURE_PARSERS
:=$(call FILTER_CONFIG
,PARSER
,parser
,$(FFMPEG_PARSERS
))
175 FFMPEG_CONFIGURE_PROTOCOLS
:=$(call FILTER_CONFIG
,PROTOCOL
,protocol
,$(FFMPEG_PROTOCOLS
))
177 # XXX: add --disable-mmx & --disable-mmx2 to fix build failure on x86
178 # libpostproc/postprocess_template.c:2195: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
179 # libpostproc/postprocess_template.c:3124: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
180 # libpostproc/postprocess_template.c:3207: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
182 define Build
/Configure
183 # this is *NOT* GNU configure
184 ( cd
$(PKG_BUILD_DIR
); \
185 CFLAGS
="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
186 LDFLAGS
="$(TARGET_LDFLAGS)" \
188 --enable-cross-compile \
189 --cross-prefix
="$(TARGET_CROSS)" \
200 --disable-optimizations \
202 --disable-stripping \
207 $(if
$(CONFIG_PACKAGE_ffmpeg
),,--disable-ffmpeg
) \
208 $(if
$(CONFIG_PACKAGE_ffserver
),,--disable-ffserver
) \
209 $(if
$(CONFIG_FFMPEG_IPV6
),,--disable-ipv6
) \
214 $(FFMPEG_CONFIGURE_ENCODERS
) \
216 $(FFMPEG_CONFIGURE_DECODERS
) \
218 $(FFMPEG_CONFIGURE_MUXERS
) \
220 $(FFMPEG_CONFIGURE_DEMUXERS
) \
222 $(FFMPEG_CONFIGURE_PARSERS
) \
223 --disable-protocols \
224 $(FFMPEG_CONFIGURE_PROTOCOLS
) \
229 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
230 DESTDIR
="$(PKG_INSTALL_DIR)" \
234 define Build
/InstallDev
235 $(INSTALL_DIR
) $(1)/usr
/include
236 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/libav
{codec
,device
,format
,util
} $(1)/usr
/include/
237 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/libpostproc
$(1)/usr
/include/
238 $(INSTALL_DIR
) $(1)/usr
/lib
239 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libav
{codec
,device
,format
,util
}.
{a
,so
*} $(1)/usr
/lib
/
240 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libpostproc.
{a
,so
*} $(1)/usr
/lib
/
241 $(INSTALL_DIR
) $(1)/usr
/lib
/pkgconfig
242 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/libav
{codec
,device
,format
,util
}.
pc $(1)/usr
/lib
/pkgconfig
/
243 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/libpostproc.
pc $(1)/usr
/lib
/pkgconfig
/
246 define Package
/ffmpeg
/install
247 $(INSTALL_DIR
) $(1)/usr
/bin
248 $(CP
) $(PKG_INSTALL_DIR
)/usr
/bin
/ffmpeg
$(1)/usr
/bin
/
251 define Package
/ffserver
/install
252 $(INSTALL_DIR
) $(1)/usr
/bin
253 $(CP
) $(PKG_INSTALL_DIR
)/usr
/bin
/ffserver
$(1)/usr
/bin
/
256 define Package
/libffmpeg
/install
257 $(INSTALL_DIR
) $(1)/usr
/lib
258 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libav
{codec
,device
,format
,util
}.so.
* $(1)/usr
/lib
/
261 define Package
/libpostproc
/install
262 $(INSTALL_DIR
) $(1)/usr
/lib
263 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libpostproc.so.
* $(1)/usr
/lib
/
266 $(eval
$(call BuildPackage
,ffmpeg
))
267 $(eval
$(call BuildPackage
,ffserver
))
268 $(eval
$(call BuildPackage
,libffmpeg
))
269 $(eval
$(call BuildPackage
,libpostproc
))