X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=multimedia%2Fffmpeg%2FMakefile;h=05136af11672093ef83982173bddd343567dcc66;hp=0558892d63a2b4b23fe33d9ec8c51ddf22263d54;hb=3f7f44b5e561468baf70903d30dcfa184fbc138d;hpb=31746dfb3bbcd2d9658d1f4fe234e6d09bbf4a12 diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile index 0558892d63..05136af116 100644 --- a/multimedia/ffmpeg/Makefile +++ b/multimedia/ffmpeg/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2008 OpenWrt.org +# Copyright (C) 2006-2009 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ffmpeg PKG_VERSION:=20080419 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-export-snapshot-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/ @@ -17,6 +17,73 @@ PKG_MD5SUM:=63aeb859941b96ed3ef7b0c7a643bf4d PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-export-2008-04-19 +FFMPEG_ENCODERS:= \ + ac3 \ + jpegls \ + mpeg1video \ + mpeg2video \ + mpeg4 \ + png \ + zlib \ + +FFMPEG_DECODERS:= \ + ac3 \ + atrac3 \ + gif \ + h264 \ + jpegls \ + mp3 \ + mpeg1video \ + mpeg2video \ + mpeg4 \ + mpeg4aac \ + mpegvideo \ + png \ + wmav1 \ + wmav2 \ + zlib \ + +FFMPEG_MUXERS:= \ + ac3 \ + ffm \ + h264 \ + mp3 \ + mp4 \ + mpeg1video \ + mpeg2video \ + mpegts \ + rtp \ + +FFMPEG_DEMUXERS:= \ + ac3 \ + ffm \ + h264 \ + mp3 \ + mpegps \ + mpegts \ + mpegvideo \ + rtsp \ + sdp \ + v4l2 \ + +FFMPEG_PARSERS:= \ + ac3 \ + h264 \ + mpegaudio \ + mpegvideo \ + mpeg4video \ + +FFMPEG_PROTOCOLS:= \ + file http pipe rtp tcp udp + +PKG_CONFIG_DEPENDS:= \ + $(patsubst %,CONFIG_FFMPEG_ENCODER_%,$(FFMPEG_ENCODERS)) \ + $(patsubst %,CONFIG_FFMPEG_DECODER_%,$(FFMPEG_DECODERS)) \ + $(patsubst %,CONFIG_FFMPEG_MUXER_%,$(FFMPEG_DEMUXERS)) \ + $(patsubst %,CONFIG_FFMPEG_DEMUXER_%,$(FFMPEG_DEMUXERS)) \ + $(patsubst %,CONFIG_FFMPEG_PARSER_%,$(FFMPEG_PARSERS)) \ + $(patsubst %,CONFIG_FFMPEG_PROTOCOL_%,$(FFMPEG_PROTOCOLS)) + include $(INCLUDE_DIR)/package.mk define Package/ffmpeg/Default @@ -48,7 +115,7 @@ $(call Package/ffserver/Default) SECTION:=multimedia CATEGORY:=Multimedia TITLE+= streaming server - DEPENDS+= +libpthread +libffmpeg + DEPENDS+= +libpthread +libffmpeg +@FFMPEG_FFSERVER_SUPPORT endef define Package/ffserver/description @@ -67,10 +134,7 @@ $(call Package/ffmpeg/Default) endef define Package/libffmpeg/config - menu "Configuration" - depends on PACKAGE_libffmpeg - source "$(SOURCE)/Config.in" - endmenu +source "$(SOURCE)/Config.in" endef define Package/libffmeg/description @@ -87,107 +151,28 @@ define Package/libpostproc DEPENDS:=+libffmpeg endef -FFMPEG_ENCODERS:= \ - ac3 \ - jpegls \ - mpeg1video \ - mpeg2video \ - mpeg4 \ - png \ - zlib \ - -FFMPEG_DECODERS:= \ - ac3 \ - atrac3 \ - gif \ - h264 \ - jpegls \ - mp3 \ - mpeg1video \ - mpeg2video \ - mpeg4 \ - mpeg4aac \ - mpegvideo \ - png \ - wmav1 \ - wmav2 \ - zlib \ - -FFMPEG_MUXERS:= \ - ac3 \ - ffm \ - h264 \ - mp3 \ - mp4 \ - mpeg1video \ - mpeg2video \ - mpegts \ - rtp \ - -FFMPEG_DEMUXERS:= \ - ac3 \ - ffm \ - h264 \ - mp3 \ - mpegps \ - mpegts \ - mpegvideo \ - rtsp \ - sdp \ - v4l2 \ - -FFMPEG_PARSERS:= \ - ac3 \ - h264 \ - mpegaudio \ - mpegvideo \ - mpeg4video \ - -FFMPEG_PROTOCOLS:= \ - file http pipe rtp tcp udp \ - -FFMPEG_CONFIGURE_ENCODERS:= \ - $(foreach c, $(FFMPEG_ENCODERS), \ - $(if $(CONFIG_FFMPEG_ENCODER_$(c)),--enable-encoder="$(c)") \ - ) - -FFMPEG_CONFIGURE_DECODERS:= \ - $(foreach c, $(FFMPEG_DECODERS), \ - $(if $(CONFIG_FFMPEG_DECODER_$(c)),--enable-decoder="$(c)") \ - ) - -FFMPEG_CONFIGURE_MUXERS:= \ - $(foreach c, $(FFMPEG_MUXERS), \ - $(if $(CONFIG_FFMPEG_MUXER_$(c)),--enable-muxer="$(c)") \ - ) - -FFMPEG_CONFIGURE_DEMUXERS:= \ - $(foreach c, $(FFMPEG_DEMUXERS), \ - $(if $(CONFIG_FFMPEG_DEMUXER_$(c)),--enable-demuxer="$(c)") \ - ) - -FFMPEG_CONFIGURE_PARSERS:= \ - $(foreach c, $(FFMPEG_PARSERS), \ - $(if $(CONFIG_FFMPEG_PARSER_$(c)),--enable-parser="$(c)") \ - ) - -FFMPEG_CONFIGURE_PROTOCOLS:= \ - $(foreach c, $(FFMPEG_PROTOCOLS), \ - $(if $(CONFIG_FFMPEG_PROTOCOL_$(c)),--enable-protocol="$(c)") \ +FILTER_CONFIG= \ + $(foreach c, $(3), \ + $(if $(CONFIG_FFMPEG_$(1)_$(c)),--enable-$(2)="$(c)") \ ) -ifneq ($(CONFIG_FFMPEG_PROTOCOL_IPv6),) - FFMPEG_CONFIGURE_IPv6:= --enable-ipv6 -else - FFMPEG_CONFIGURE_IPv6:= --disable-ipv6 -endif +FFMPEG_CONFIGURE_ENCODERS:=$(call FILTER_CONFIG,ENCODER,encoder,$(FFMPEG_ENCODERS)) +FFMPEG_CONFIGURE_DECODERS:=$(call FILTER_CONFIG,DECODER,decoder,$(FFMPEG_DECODERS)) +FFMPEG_CONFIGURE_MUXERS:=$(call FILTER_CONFIG,MUXER,muxer,$(FFMPEG_MUXERS)) +FFMPEG_CONFIGURE_DEMUXERS:=$(call FILTER_CONFIG,DEMUXER,demuxer,$(FFMPEG_DEMUXERS)) +FFMPEG_CONFIGURE_PARSERS:=$(call FILTER_CONFIG,PARSER,parser,$(FFMPEG_PARSERS)) +FFMPEG_CONFIGURE_PROTOCOLS:=$(call FILTER_CONFIG,PROTOCOL,protocol,$(FFMPEG_PROTOCOLS)) +# XXX: add --disable-mmx & --disable-mmx2 to fix build failure on x86 +# libpostproc/postprocess_template.c:2195: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' +# libpostproc/postprocess_template.c:3124: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' +# libpostproc/postprocess_template.c:3207: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' define Build/Configure # this is *NOT* GNU configure ( cd $(PKG_BUILD_DIR); \ - CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib" \ + CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ ./configure \ --enable-cross-compile \ --cross-prefix="$(TARGET_CROSS)" \ @@ -200,6 +185,8 @@ define Build/Configure --enable-ffserver \ --enable-gpl \ --enable-libfaad \ + --disable-mmx \ + --disable-mmx2 \ --enable-pthreads \ --disable-optimizations \ --enable-small \ @@ -221,7 +208,6 @@ define Build/Configure --disable-bsfs \ --disable-protocols \ $(FFMPEG_CONFIGURE_PROTOCOLS) \ - $(FFMPEG_CONFIGURE_IPv6) \ ) endef