# FFmpeg
-FFMPEG_VERSION=0.4.8
-FFMPEG_URL=$(SF)/ffmpeg/ffmpeg-$(FFMPEG_VERSION).tar.gz
-FFMPEG_SVN=svn://svn.ffmpeg.org/ffmpeg/trunk
-FFMPEG_SVN_REV=26400
+FFMPEG_SNAPURL := http://git.videolan.org/?p=ffmpeg.git;a=snapshot;h=HEAD;sf=tgz
+#FFMPEG_SNAPURL := http://git.libav.org/?p=libav.git;a=snapshot;h=HEAD;sf=tgz
-
-FFMPEGCONF = --cc="$(CC)" \
+FFMPEGCONF = \
+ --cc="$(CC)" \
--disable-doc \
--disable-decoder=libvpx \
+ --enable-libgsm \
+ --enable-libvpx \
+ --enable-libopenjpeg \
--disable-debug \
--enable-gpl \
--enable-postproc \
--disable-ffserver \
--disable-ffmpeg \
--disable-ffplay \
+ --disable-avconv \
--disable-devices \
--disable-protocols \
--disable-avfilter \
--disable-network
+DEPS_ffmpeg = zlib gsm vpx $(DEPS_vpx) openjpeg
# Optional dependencies
ifdef BUILD_ENCODERS
-# TODO:
-#FFMPEGCONF+= --enable-libmp3lame
-#.ffmpeg: .lame
-#PKGS += lame
+FFMPEGCONF += --enable-libmp3lame
+DEPS_ffmpeg += lame $(DEPS_lame)
else
FFMPEGCONF += --disable-encoders --disable-muxers
# XXX: REVISIT --enable-small ?
endif
-#FFMPEGCONF+= --enable-libgsm
-#.ffmpeg: .gsm
-#PKGS += gsm
-
-#FFMPEGCONF += --enable-libvpx
-#.ffmpeg: .vpx
-#PKGS += vpx
-
# XXX: REVISIT
#ifndef HAVE_FPU
-#FFMPEGCONF+= --disable-mpegaudio-hp
+#FFMPEGCONF += --disable-mpegaudio-hp
#endif
ifdef HAVE_CROSS_COMPILE
# ARM stuff
ifeq ($(ARCH),arm)
FFMPEGCONF += --disable-runtime-cpudetect
-# TODO: define HAVE_ARM_NEON or something
-ifdef HAVE_ARM_NEON
-# XXX: REVISIT choice of CPU?
-FFMPEGCONF += --cpu=cortex-a8 --enable-neon
-endif
-# TODO: --enable-iwmmxt if anyone still cares
endif
# Darwin
ifeq ($(ARCH),x86_64)
FFMPEGCONF += --cpu=core2
endif
-.ffmpeg: .yasm
-PKGS += yasm
endif
# Linux
# Windows
ifdef HAVE_WIN32
+DEPS_ffmpeg += directx
FFMPEGCONF += --target-os=mingw32 --enable-memalign-hack
FFMPEGCONF += --enable-w32threads \
--disable-bzlib --disable-bsfs \
- --disable-decoder=dca --disable-encoder=vorbis
+ --disable-decoder=dca --disable-encoder=vorbis \
+ --enable-dxva2
ifdef HAVE_WIN64
-FFMPEGCONF += --disable-dxva2
-
FFMPEGCONF += --cpu=athlon64 --arch=x86_64
else # !WIN64
-FFMPEGCONF += --enable-dxva2
-.ffmpeg: .directx
-PKGS += directx
-
FFMPEGCONF+= --cpu=i686 --arch=x86
endif
else
# Build
PKGS += ffmpeg
+ifeq ($(call need_pkg,"libavcodec libavformat libswscale"),)
+PKGS_FOUND += ffmpeg
+endif
-ffmpeg-$(FFMPEG_VERSION).tar.gz:
- $(error FFmpeg snapshot is too old, VCS must be used!)
- $(call download,$(FFMPEG_URL))
-
-$(TARBALLS)/ffmpeg-svn.tar.gz:
- $(SVN) export $(FFMPEG_SVN) ffmpeg-svn
- tar cvz ffmpeg-svn > $@
+$(TARBALLS)/ffmpeg-git.tar.gz:
+ $(call download,$(FFMPEG_SNAPURL))
-FFMPEG_VERSION := svn
+FFMPEG_VERSION := git
.sum-ffmpeg: $(TARBALLS)/ffmpeg-$(FFMPEG_VERSION).tar.gz
$(warning Not implemented.)
touch $@
ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz .sum-ffmpeg
- $(UNPACK)
-ifdef HAVE_WIN64
- (cd $@-$(FFMPEG_VERSION)/libswscale && patch -p0) < $(SRC)/ffmpeg/ffmpeg-win64.patch
-endif
+ rm -Rf $@ $@-git
+ mkdir -p $@-git
+ $(ZCAT) "$<" | (cd $@-git && tar xv --strip-components=1)
ifdef HAVE_WIN32
sed -i "s/std=c99/std=gnu99/" $@-$(FFMPEG_VERSION)/configure
endif
- (cd $@-$(FFMPEG_VERSION) && patch -p1) < $(SRC)/ffmpeg/libavformat-ape.c.patch
- mv $@-$(FFMPEG_VERSION) $@
- touch $@
+ $(MOVE)
.ffmpeg: ffmpeg
- # TODO: .zlib
cd $< && $(HOSTVARS) ./configure \
--extra-cflags="$(FFMPEG_CFLAGS) -DHAVE_STDINT_H" \
--extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) \