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
/
81 file http pipe rtp tcp udp
83 PKG_CONFIG_DEPENDS
:= \
84 $(patsubst %,CONFIG_FFMPEG_ENCODER_
%,$(FFMPEG_ENCODERS
)) \
85 $(patsubst %,CONFIG_FFMPEG_DECODER_
%,$(FFMPEG_DECODERS
)) \
86 $(patsubst %,CONFIG_FFMPEG_MUXER_
%,$(FFMPEG_DEMUXERS
)) \
87 $(patsubst %,CONFIG_FFMPEG_DEMUXER_
%,$(FFMPEG_DEMUXERS
)) \
88 $(patsubst %,CONFIG_FFMPEG_PARSER_
%,$(FFMPEG_PARSERS
)) \
89 $(patsubst %,CONFIG_FFMPEG_PROTOCOL_
%,$(FFMPEG_PROTOCOLS
))
91 include $(INCLUDE_DIR
)/package.mk
93 define Package
/ffmpeg
/Default
95 URL
:=http
://ffmpeg.mplayerhq.hu
/
98 define Package
/ffmpeg
/Default
/description
99 FFmpeg is a a software package that can record
, convert and stream digital
100 audio and video in numerous formats.
103 define Package
/ffmpeg
104 $(call Package
/ffmpeg
/Default
)
108 DEPENDS
+= +libpthread
+libffmpeg
111 define Package
/ffmpeg
/description
112 $(call Package
/ffmpeg
/Default
/description
)
114 This package contains the FFmpeg command line tool.
117 define Package
/ffserver
118 $(call Package
/ffserver
/Default
)
121 TITLE
+= streaming server
122 DEPENDS
+= +libpthread
+libffmpeg
+@FFMPEG_FFSERVER_SUPPORT
125 define Package
/ffserver
/description
126 $(call Package
/ffmpeg
/Default
/description
)
128 This package contains the FFmpeg streaming server.
131 define Package
/libffmpeg
132 $(call Package
/ffmpeg
/Default
)
136 DEPENDS
+= +libpthread
+zlib
140 define Package
/libffmpeg
/config
141 source
"$(SOURCE)/Config.in"
144 define Package
/libffmeg
/description
145 $(call Package
/ffmpeg
/Default
/description
)
147 This package contains FFmpeg shared libraries.
150 define Package
/libpostproc
154 URL
:=http
://ffmpeg.mplayerhq.hu
/
160 $(if
$(CONFIG_FFMPEG_
$(1)_
$(c
)),--enable-
$(2)="$(c)") \
163 FFMPEG_CONFIGURE_ENCODERS
:=$(call FILTER_CONFIG
,ENCODER
,encoder
,$(FFMPEG_ENCODERS
))
164 FFMPEG_CONFIGURE_DECODERS
:=$(call FILTER_CONFIG
,DECODER
,decoder
,$(FFMPEG_DECODERS
))
165 FFMPEG_CONFIGURE_MUXERS
:=$(call FILTER_CONFIG
,MUXER
,muxer
,$(FFMPEG_MUXERS
))
166 FFMPEG_CONFIGURE_DEMUXERS
:=$(call FILTER_CONFIG
,DEMUXER
,demuxer
,$(FFMPEG_DEMUXERS
))
167 FFMPEG_CONFIGURE_PARSERS
:=$(call FILTER_CONFIG
,PARSER
,parser
,$(FFMPEG_PARSERS
))
168 FFMPEG_CONFIGURE_PROTOCOLS
:=$(call FILTER_CONFIG
,PROTOCOL
,protocol
,$(FFMPEG_PROTOCOLS
))
170 # XXX: add --disable-mmx & --disable-mmx2 to fix build failure on x86
171 # libpostproc/postprocess_template.c:2195: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
172 # libpostproc/postprocess_template.c:3124: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
173 # libpostproc/postprocess_template.c:3207: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
175 define Build
/Configure
176 # this is *NOT* GNU configure
177 ( cd
$(PKG_BUILD_DIR
); \
178 CFLAGS
="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
179 LDFLAGS
="$(TARGET_LDFLAGS)" \
181 --enable-cross-compile \
182 --cross-prefix
="$(TARGET_CROSS)" \
195 --disable-optimizations \
197 --disable-stripping \
202 $(if
$(CONFIG_FFMPEG_IPV6
),,--disable-ipv6
) \
207 $(FFMPEG_CONFIGURE_ENCODERS
) \
209 $(FFMPEG_CONFIGURE_DECODERS
) \
211 $(FFMPEG_CONFIGURE_MUXERS
) \
213 $(FFMPEG_CONFIGURE_DEMUXERS
) \
215 $(FFMPEG_CONFIGURE_PARSERS
) \
216 --disable-protocols \
217 $(FFMPEG_CONFIGURE_PROTOCOLS
) \
222 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
223 DESTDIR
="$(PKG_INSTALL_DIR)" \
227 define Build
/InstallDev
228 $(INSTALL_DIR
) $(1)/usr
/include
229 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/libav
{codec
,device
,format
,util
} $(1)/usr
/include/
230 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/libpostproc
$(1)/usr
/include/
231 $(INSTALL_DIR
) $(1)/usr
/lib
232 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libav
{codec
,device
,format
,util
}.
{a
,so
*} $(1)/usr
/lib
/
233 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libpostproc.
{a
,so
*} $(1)/usr
/lib
/
234 $(INSTALL_DIR
) $(1)/usr
/lib
/pkgconfig
235 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/libav
{codec
,device
,format
,util
}.
pc $(1)/usr
/lib
/pkgconfig
/
236 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/libpostproc.
pc $(1)/usr
/lib
/pkgconfig
/
239 define Package
/ffmpeg
/install
240 $(INSTALL_DIR
) $(1)/usr
/bin
241 $(CP
) $(PKG_INSTALL_DIR
)/usr
/bin
/ffmpeg
$(1)/usr
/bin
/
244 define Package
/ffserver
/install
245 $(INSTALL_DIR
) $(1)/usr
/bin
246 $(CP
) $(PKG_INSTALL_DIR
)/usr
/bin
/ffserver
$(1)/usr
/bin
/
249 define Package
/libffmpeg
/install
250 $(INSTALL_DIR
) $(1)/usr
/lib
251 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libav
{codec
,device
,format
,util
}.so.
* $(1)/usr
/lib
/
254 define Package
/libpostproc
/install
255 $(INSTALL_DIR
) $(1)/usr
/lib
256 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libpostproc.so.
* $(1)/usr
/lib
/
259 $(eval
$(call BuildPackage
,ffmpeg
))
260 $(eval
$(call BuildPackage
,ffserver
))
261 $(eval
$(call BuildPackage
,libffmpeg
))
262 $(eval
$(call BuildPackage
,libpostproc
))