3 #FFMPEG_SNAPURL := http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=HEAD;sf=tgz
4 FFMPEG_SNAPURL := http://git.libav.org/?p=libav.git;a=snapshot;h=HEAD;sf=tgz
9 --disable-decoder=libvpx \
10 --disable-decoder=bink \
12 --enable-libopenjpeg \
19 # Those tools are named differently in FFmpeg and Libav
20 # --disable-ffserver \
23 DEPS_ffmpeg = zlib gsm openjpeg
25 # Optional dependencies
27 FFMPEGCONF += --enable-libmp3lame --enable-libvpx
28 DEPS_ffmpeg += lame $(DEPS_lame) vpx $(DEPS_vpx)
30 FFMPEGCONF += --disable-encoders --disable-muxers
34 FFMPEGCONF += --enable-small --optflags=-O2
37 # XXX: assumes CPU >= cortex-a8, and thus thumb2 able
38 FFMPEGCONF += --enable-thumb
45 #FFMPEGCONF += --disable-mpegaudio-hp
48 ifdef HAVE_CROSS_COMPILE
49 FFMPEGCONF += --enable-cross-compile
51 FFMPEGCONF += --cross-prefix=$(HOST)-
57 FFMPEGCONF += --disable-runtime-cpudetect --arch=arm
59 FFMPEGCONF += --cpu=cortex-a8 --enable-neon
60 FFMPEG_CFLAGS +=-mfloat-abi=softfp -mfpu=neon
66 FFMPEGCONF += --arch=x86
71 FFMPEGCONF += --arch=$(ARCH) --target-os=darwin
72 FFMPEG_CFLAGS += -DHAVE_LRINTF
73 ifneq ($(findstring $(ARCH),i386 x86_64),)
74 FFMPEGCONF += --enable-memalign-hack
77 FFMPEGCONF += --cpu=core2
81 FFMPEGCONF += --enable-pic --as="$(AS)" --disable-decoder=snow
86 FFMPEGCONF += --target-os=linux --enable-pic
88 ifeq ($(ANDROID_ABI), x86)
90 # Android-x86 gcc doesn't guarantee an aligned stack, but this is
91 # handled by __attribute__((force_align_arg_pointer)) in libavcodec
92 # already, so we tell gcc to assume this alignment, so we don't need
93 # to waste a precious register in assembly functions to realign it.
94 FFMPEG_CFLAGS += -mincoming-stack-boundary=4
102 ifndef HAVE_MINGW_W64
103 DEPS_ffmpeg += directx
105 FFMPEGCONF += --target-os=mingw32 --enable-memalign-hack
106 FFMPEGCONF += --enable-w32threads \
107 --disable-bzlib --disable-bsfs \
108 --disable-decoder=dca --disable-encoder=vorbis \
112 FFMPEGCONF += --cpu=athlon64 --arch=x86_64
114 FFMPEGCONF+= --cpu=i686 --arch=x86
117 FFMPEGCONF += --enable-pthreads
121 FFMPEGCONF += --target-os=mingw32ce --arch=armv4l --cpu=armv4t \
122 --disable-decoder=snow --disable-decoder=vc9 \
123 --disable-decoder=wmv3 --disable-decoder=vorbis \
124 --disable-decoder=dvdsub --disable-decoder=dvbsub
127 FFMPEG_CFLAGS += --std=gnu99
132 ifeq ($(call need_pkg,"libavcodec >= 52.25.0 libavformat >= 52.30.0 libswscale"),)
136 $(TARBALLS)/ffmpeg-git.tar.gz:
137 $(call download,$(FFMPEG_SNAPURL))
139 FFMPEG_VERSION := git
141 .sum-ffmpeg: $(TARBALLS)/ffmpeg-$(FFMPEG_VERSION).tar.gz
142 $(warning Not implemented.)
145 ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz .sum-ffmpeg
148 $(ZCAT) "$<" | (cd $@-git && tar xv --strip-components=1)
150 sed -i "s/std=c99/std=gnu99/" $@-$(FFMPEG_VERSION)/configure
155 cd $< && $(HOSTVARS) ./configure \
156 --extra-cflags="$(FFMPEG_CFLAGS) -DHAVE_STDINT_H" \
157 --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) \
158 --prefix="$(PREFIX)" --enable-static --disable-shared
159 cd $< && $(MAKE) install-libs install-headers