aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwg <wg@FreeBSD.org>2013-10-01 06:03:41 +0800
committerwg <wg@FreeBSD.org>2013-10-01 06:03:41 +0800
commitbee8af0512c75e873c57eeebcea4b3a74b5cb181 (patch)
tree800917443f73b9453ed3bd6f3cfaab6db8e57435
parent5a717736a7e90e4db23e55babfc60501b3f948e3 (diff)
downloadfreebsd-ports-gnome-bee8af0512c75e873c57eeebcea4b3a74b5cb181.tar.gz
freebsd-ports-gnome-bee8af0512c75e873c57eeebcea4b3a74b5cb181.tar.zst
freebsd-ports-gnome-bee8af0512c75e873c57eeebcea4b3a74b5cb181.zip
multimedia/ffmpeg2: Realtime audio/video encoder/converter and streaming server
FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library. This version is from the 2.0 release branch. WWW: http://ffmpeg.org/
-rw-r--r--multimedia/Makefile1
-rw-r--r--multimedia/ffmpeg2/Makefile382
-rw-r--r--multimedia/ffmpeg2/distinfo2
-rw-r--r--multimedia/ffmpeg2/files/ffserver2.in26
-rw-r--r--multimedia/ffmpeg2/files/patch-Makefile11
-rw-r--r--multimedia/ffmpeg2/files/patch-configure57
-rw-r--r--multimedia/ffmpeg2/files/patch-doc-Makefile11
-rw-r--r--multimedia/ffmpeg2/files/patch-libavcodec-Makefile11
-rw-r--r--multimedia/ffmpeg2/files/patch-libavdevice-bktr.c14
-rw-r--r--multimedia/ffmpeg2/files/patch-libavdevice-oss_audio.c14
-rw-r--r--multimedia/ffmpeg2/files/patch-libavfilter-vf_libopencv.c12
-rw-r--r--multimedia/ffmpeg2/files/patch-libavformat-udp.c11
-rw-r--r--multimedia/ffmpeg2/files/patch-libavutil-common.h13
-rw-r--r--multimedia/ffmpeg2/pkg-descr7
-rw-r--r--multimedia/ffmpeg2/pkg-plist165
15 files changed, 737 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index 79394d720788..c251d9edea24 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -56,6 +56,7 @@
SUBDIR += ffmpeg
SUBDIR += ffmpeg-devel
SUBDIR += ffmpeg1
+ SUBDIR += ffmpeg2
SUBDIR += ffmpeg2theora
SUBDIR += ffmpegthumbnailer
SUBDIR += flvmeta
diff --git a/multimedia/ffmpeg2/Makefile b/multimedia/ffmpeg2/Makefile
new file mode 100644
index 000000000000..10c7d4184e9a
--- /dev/null
+++ b/multimedia/ffmpeg2/Makefile
@@ -0,0 +1,382 @@
+# Created by: Martin Matuska <mm@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ffmpeg
+PORTVERSION= 2.0.1
+CATEGORIES= multimedia audio ipv6 net
+MASTER_SITES= http://ffmpeg.org/releases/
+PKGNAMESUFFIX= 2
+
+MAINTAINER= wg@FreeBSD.org
+COMMENT= Realtime audio/video encoder/converter and streaming server
+
+LICENSE= GPLv2 LGPL21
+LICENSE_COMB= multi
+
+BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \
+ ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils \
+ texi2html:${PORTSDIR}/textproc/texi2html
+
+LATEST_LINK= ffmpeg${PKGNAMESUFFIX}
+
+HAS_CONFIGURE= yes
+CONFIGURE_LOG= config.err
+USES= gmake pkgconfig perl5
+USE_PERL5= build
+USE_BZIP2= yes
+WANT_SDL= yes
+
+OPTIONS_DEFINE= AACPLUS ALSA AMR_NB AMR_WB ASS CDIO CELT DEBUG FAAC \
+ FDK_AAC FFSERVER FONTCONFIG FREETYPE FREI0R GNUTLS GSM ICONV \
+ LAME LIBBLURAY LIBV4L MODPLUG OPENAL OPENCV OPENJPEG OPENSSL \
+ OPTIMIZED_CFLAGS OPUS PULSEAUDIO RTMP SCHROEDINGER SDL SPEEX \
+ THEORA VAAPI VDPAU VO_AACENC VO_AMRWBENC VORBIS VPX \
+ X11GRAB X264 XVID
+
+OPTIONS_DEFAULT= FFSERVER FONTCONFIG FREETYPE FREI0R GNUTLS ICONV \
+ OPENCV SCHROEDINGER THEORA VORBIS VPX X264 XVID
+
+ASS_DESC= Subtitles rendering via libass
+CDIO_DESC= Audio CD grabbing with libcdio
+FDK_AAC_DESC= AAC audio encoding via Fraunhofer FDK
+FFSERVER_DESC= Build and install ffserver
+LIBV4L_DESC= Video for Linux support
+OPUS_DESC= Opus decoding with libopus
+X11GRAB_DESC= Enable x11 grabbing
+
+FFPROGS= ffmpeg ffprobe
+INSTALL_TARGET= install-progs install-data install-libs install-headers
+FFMPEG_SUFFIX= 2
+PLIST_SUB+= SUFF="${FFMPEG_SUFFIX}"
+
+USE_LDCONFIG= ${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}
+DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
+
+.include <bsd.port.options.mk>
+
+# ssl
+.if ${PORT_OPTIONS:MOPENSSL} && empty(PORT_OPTIONS:MGNUTLS)
+USE_OPENSSL= yes
+FFMPEG_NONFREE= yes
+.endif
+
+.if ${PORT_OPTIONS:MAACPLUS} || ${PORT_OPTIONS:MFAAC} || ${PORT_OPTIONS:MFDK_AAC}
+FFMPEG_NONFREE= yes
+.endif
+
+.if ${PORT_OPTIONS:MAMR_NB} || ${PORT_OPTIONS:MAMR_WB} || \
+${PORT_OPTIONS:MVO_AACENC} || ${PORT_OPTIONS:MVO_AMRWBENC}
+FFMPEG_LICENSE_GPL3= yes
+.endif
+
+# x11grab
+.if ${PORT_OPTIONS:MX11GRAB}
+USE_XORG= x11 xext xfixes
+CONFIGURE_ARGS+= --enable-x11grab
+.endif
+
+.include <bsd.port.pre.mk>
+
+DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
+DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
+CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
+MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
+
+CONFIGURE_ARGS+=--prefix="${PREFIX}" \
+ --mandir="${PREFIX}/man" \
+ --incdir="${PREFIX}/include/ffmpeg${FFMPEG_SUFFIX}" \
+ --libdir="${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}" \
+ --shlibdir="${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}" \
+ --datadir="${DATADIR}" \
+ --build-suffix="${FFMPEG_SUFFIX}" \
+ --progs-suffix="${FFMPEG_SUFFIX}" \
+ --enable-shared \
+ --enable-gpl \
+ --enable-postproc \
+ --enable-avfilter \
+ --enable-avresample \
+ --enable-pthreads \
+ --enable-memalign-hack \
+ --disable-libstagefright-h264 \
+ --disable-libutvideo \
+ --disable-libsoxr \
+ --cc="${CC}" \
+ --extra-cflags="${FFMPEG_CFLAGS} -I${LOCALBASE}/include" \
+ --extra-ldflags="-L${LOCALBASE}/lib ${FFMPEG_LDFLAGS}" \
+ --extra-libs="${PTHREAD_LIBS}"
+
+DOC_FILES= Changelog CREDITS INSTALL LICENSE MAINTAINERS README
+# under doc subdirectory
+DOC_DOCFILES= APIchanges RELEASE_NOTES *.txt *.html
+PORTDOCS= *
+
+.if ${PORT_OPTIONS:MDEBUG}
+CONFIGURE_ARGS+= --disable-stripping
+.else
+CONFIGURE_ARGS+= --disable-debug
+.endif
+
+.if ${PORT_OPTIONS:MFFSERVER}
+USE_RC_SUBR= ffserver${FFMPEG_SUFFIX}
+.endif
+
+# sse hardware vector support
+.if defined(MACHINE_CPU) && (${MACHINE_CPU:Msse} == "sse" || ${MACHINE_CPU:Mamd64} == "amd64")
+_BUILTIN_VECTOR= yes
+.else
+CONFIGURE_ARGS+= --disable-sse
+.endif
+
+# mmx support
+.if defined(MACHINE_CPU) && ${MACHINE_CPU:Mmmx} == "" && ${MACHINE_CPU:Mamd64} == ""
+CONFIGURE_ARGS+= --disable-mmx
+_NO_BUILTIN_VECTOR= yes
+.endif
+
+# builtin vector, requires mmx and sse
+.if !defined(_NO_BUILTIN_VECTOR) && defined(_BUILTIN_VECTOR)
+FFMPEG_CFLAGS+= -msse
+.endif
+
+# optimizations
+.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
+CFLAGS+= -O3 -ffast-math -fno-finite-math-only -fomit-frame-pointer
+.endif
+
+AACPLUS_LIB_DEPENDS= libaacplus.so:${PORTSDIR}/audio/libaacplus
+AACPLUS_CONFIGURE_ENABLE= libaacplus
+
+# alsa
+ALSA_CONFIGURE_OFF= --disable-indev=alsa \
+ --disable-outdev=alsa
+ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib
+
+
+# Opencore AMR NB
+AMR_NB_LIB_DEPENDS= libopencore-amrnb.so:${PORTSDIR}/audio/opencore-amr
+AMR_NB_CONFIGURE_ENABLE= libopencore-amrnb
+
+# Opencore AMR WB
+AMR_WB_LIB_DEPENDS= libopencore-amrwb.so:${PORTSDIR}/audio/opencore-amr
+AMR_WB_CONFIGURE_EMABLE= libopencore-amrwb
+
+# ass
+ASS_LIB_DEPENDS= libass.so:${PORTSDIR}/multimedia/libass
+ASS_CONFIGURE_EMABLE= libass
+
+# cdio
+CDIO_LIB_DEPENDS= libcdio.so:${PORTSDIR}/sysutils/libcdio
+CDIO_CONFIGURE_ENABLE= libcdio
+
+# celt
+CELT_LIB_DEPENDS= libcelt0.so:${PORTSDIR}/audio/celt
+CELT_CONFIGURE_ENABLE= libcelt
+
+# faac
+FAAC_LIB_DEPENDS= libfaac.so:${PORTSDIR}/audio/faac
+FAAC_CONFIGURE_ENABLE= libfaac
+
+# fdk_aac
+FDK_AAC_LIB_DEPENDS= libfdk-aac.so:${PORTSDIR}/audio/fdk-aac
+FDK_AAC_CONFIGURE_ENABLE= libfdk-aac
+
+# ffserver
+.if ${PORT_OPTIONS:MFFSERVER}
+PLIST_SUB+= FFSERVER=""
+PLIST_FILES+= man/man1/ffserver${FFMPEG_SUFFIX}.1.gz
+FFPROGS+= ffserver
+. if ${PORT_OPTIONS:MDOCS}
+DOC_DOCFILES+= ffserver.html
+. endif
+.else
+PLIST_SUB+= FFSERVER="@comment "
+.endif
+FFSERVER_CONFIGURE_ENABLE= ffserver
+
+# fontconfig
+FONTCONFIG_LIB_DEPENDS= libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig
+FONTCONFIG_CONFIGURE_ENABLE= fontconfig
+
+# freetype
+FREETYPE_LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2
+FREETYPE_CONFIGURE_ENABLE= libfreetype
+
+# frei0r
+FREI0R_BUILD_DEPENDS= ${LOCALBASE}/include/frei0r.h:${PORTSDIR}/graphics/frei0r
+FREI0R_CONFIGURE_ENABLE= frei0r
+
+# gnutls
+GNUTLS_LIB_DEPENDS= libgnutls.so:${PORTSDIR}/security/gnutls
+GNUTLS_CONFIGURE_ENABLE= gnutls
+
+# gsm
+GSM_LIB_DEPENDS= libgsm.so:${PORTSDIR}/audio/gsm
+GSM_CONFIGURE_ENABLE= libgsm
+
+# iconv
+ICONV_USES= iconv
+ICONV_CONFIGURE_ENABLE= iconv
+
+# lame
+LAME_LIB_DEPENDS= libmp3lame.so:${PORTSDIR}/audio/lame
+LAME_CONFIGURE_ENABLE= libmp3lame
+
+# libbluray
+LIBBLURAY_LIB_DEPENDS= libbluray.so:${PORTSDIR}/multimedia/libbluray
+LIBBLURAY_CONFIGURE_ENABLE= libbluray
+
+# libv4l
+LIBV4L_LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
+LIBV4L_CONFIGURE_ENABLE= libv4l2
+
+# modplug
+MODPLUG_LIB_DEPENDS= libmodplug.so:${PORTSDIR}/audio/libmodplug
+MODPLUG_CONFIGURE_ENABLE= libmodplug
+
+# OpenAL
+OPENAL_LIB_DEPENDS= libopenal.so:${PORTSDIR}/audio/openal-soft
+OPENAL_CONFIGURE_ENABLE= openal
+
+# opencv
+OPENCV_LIB_DEPENDS= libopencv_imgproc.so:${PORTSDIR}/graphics/opencv-core
+OPENCV_CONFIGURE_ENABLE= libopencv
+
+# openjpeg
+OPENJPEG_LIB_DEPENDS= libopenjpeg.so:${PORTSDIR}/graphics/openjpeg
+OPENJPEG_CONFIGURE_ENABLE= libopenjpeg
+
+# opus
+OPUS_LIB_DEPENDS= libopus.so:${PORTSDIR}/audio/opus
+OPUS_CONFIGURE_ENABLE= --enable-libopus
+
+# pulseaudio
+PULSEAUDIO_LIB_DEPENDS= libpulse.so:${PORTSDIR}/audio/pulseaudio
+PULSEAUDIO_CONFIGURE_ENABLE= libpulse
+
+# rtmp
+RTMP_LIB_DEPENDS= librtmp.so:${PORTSDIR}/multimedia/rtmpdump
+RTMP_CONFIGURE_ENABLE= librtmp
+
+# schroedinger
+SCHROEDINGER_LIB_DEPENDS= libschroedinger-1.0.so:${PORTSDIR}/multimedia/schroedinger
+SCHROEDINGER_CONFIGURE_ENABLE= libschroedinger
+
+# sdl
+.if ${PORT_OPTIONS:MSDL}
+USE_SDL+= sdl
+PLIST_FILES+= bin/ffplay${FFMPEG_SUFFIX} man/man1/ffplay${FFMPEG_SUFFIX}.1.gz
+FFPROGS+= ffplay
+.if ${PORT_OPTIONS:MDOCS}
+DOC_DOCFILES+= ffplay.html
+.endif
+.else
+CONFIGURE_ARGS+= --disable-ffplay
+.endif
+
+# speex
+SPEEX_LIB_DEPENDS= libspeex.so:${PORTSDIR}/audio/speex
+SPEEX_CONFIGURE_ENABLE= libspeex
+
+# theora
+THEORA_LIB_DEPENDS= libtheora.so:${PORTSDIR}/multimedia/libtheora
+THEORA_CONFIGURE_ENABLE= libtheora
+
+# vaapi
+VAAPI_LIB_DEPENDS= libva.so:${PORTSDIR}/multimedia/libva
+VAAPI_CONFIGURE_ENABLE= vaapi
+
+# vdpau
+VDPAU_BUILD_DEPENDS= ${LOCALBASE}/include/vdpau/vdpau.h:${PORTSDIR}/multimedia/libvdpau
+VDPAU_CONFIGURE_ENABLE= vdpau
+
+# vo-aacenc
+VO_AACENC_LIB_DEPENDS= libvo-aacenc.so:${PORTSDIR}/audio/vo-aacenc
+VO_AACENC_CONFIGURE_ENABLE= libvo-aacenc
+
+# vo-amrwbenc
+VO_AMRWBENC_LIB_DEPENDS= libvo-amrwbenc.so:${PORTSDIR}/audio/vo-amrwbenc
+VO_AMRWBENC_CONFIGURE_ENABLE= libvo-amrwbenc
+
+# vorbis
+.if ${PORT_OPTIONS:MVORBIS}
+FFMPEG_CFLAGS+= -I${LOCALBASE}/include/vorbis
+.endif
+VORBIS_LIB_DEPENDS= libvorbisenc.so:${PORTSDIR}/audio/libvorbis
+VORBIS_CONFIGURE_ENABLE= libvorbis
+
+# vp8
+VPX_LIB_DEPENDS= libvpx.so:${PORTSDIR}/multimedia/libvpx
+VPX_CONFIGURE_ENABLE= libvpx
+
+# x264
+X264_LIB_DEPENDS= libx264.so:${PORTSDIR}/multimedia/x264
+X264_CONFIGURE_ENABLE= libx264
+
+# xvid
+XVID_LIB_DEPENDS= libxvidcore.so:${PORTSDIR}/multimedia/xvid
+XVID_CONFIGURE_ENABLE= libxvid
+
+# License knobs
+.if defined(FFMPEG_NONFREE)
+RESTRICTED= linking to libfaac or libaacplus restricts redistribution
+CONFIGURE_ARGS+= --enable-nonfree
+.endif
+
+.if defined(FFMPEG_LICENSE_GPL3)
+CONFIGURE_ARGS+= --enable-version3
+LICENSE= GPLv3 LGPL3
+LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPLv3
+LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPLv3
+.endif
+
+post-patch:
+# {C,LD}FLAGS safeness
+ @${REINPLACE_CMD} -e 's|$$(LIBDIR)/pkgconfig|$$(DESTDIR)$$(prefix)/libdata/pkgconfig|' \
+ ${WRKSRC}/library.mak
+ @${REINPLACE_CMD} -e 's|/etc/ffserver.conf|${PREFIX}/etc/ffserver${FFMPEG_SUFFIX}.conf|' \
+ ${WRKSRC}/ffserver.c
+ @${REINPLACE_CMD} -E \
+ -e "s|(EXTRALIBS[[:space:]]*=)|\1-L${LOCALBASE}/lib |g; \
+ s|%%LOCALBASE%%|${LOCALBASE}|g; \
+ s|-pthread|${PTHREAD_LIBS}|g; \
+ s|gsm/gsm.h|gsm.h|g" \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
+ @${REINPLACE_CMD} -e 's|-ldl||' \
+ -e 's|opencv opencv/cxcore.h|opencv-core opencv2/core/core_c.h|g' \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
+ @${REINPLACE_CMD} -e 's|/usr/bin/perl|${PERL5}|g' \
+ ${WRKSRC}/doc/texi2pod.pl
+.if ${PORT_OPTIONS:MSDL}
+ @${REINPLACE_CMD} -E \
+ -e 's|sdl-config|${SDL_CONFIG}|g' \
+ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
+ @${FIND} ${WRKSRC} -type f | \
+ ${XARGS} -n 10 ${REINPLACE_CMD} -E \
+ -e 's|#include <SDL|#include <SDL/SDL|'
+.endif
+
+post-configure:
+.if empty(PORT_OPTIONS:MTHEORA)
+ @${REINPLACE_CMD} -E \
+ -e 's|^(CONFIG_LIBTHEORA).*$$|\1=no|' \
+ ${WRKSRC}/config.mak
+.endif
+
+post-install:
+.for PROG in ${FFPROGS}
+ @${MKDIR} ${STAGEDIR}${MAN1PREFIX}/man/man1
+ ${INSTALL_MAN} ${WRKSRC}/doc/${PROG}.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/${PROG}${FFMPEG_SUFFIX}.1
+.endfor
+.if ${PORT_OPTIONS:MFFSERVER}
+ ${INSTALL_DATA} ${WRKSRC}/doc/ffserver.conf \
+ ${STAGEDIR}${PREFIX}/etc/ffserver${FFMPEG_SUFFIX}.conf-dist
+.endif
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+.for FILE in ${DOC_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/${FILE} ${STAGEDIR}${DOCSDIR}
+.endfor
+.for FILE in ${DOC_DOCFILES}
+ ${INSTALL_DATA} ${WRKSRC}/doc/${FILE} ${STAGEDIR}${DOCSDIR}
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/multimedia/ffmpeg2/distinfo b/multimedia/ffmpeg2/distinfo
new file mode 100644
index 000000000000..a82fa0b63503
--- /dev/null
+++ b/multimedia/ffmpeg2/distinfo
@@ -0,0 +1,2 @@
+SHA256 (ffmpeg-2.0.1.tar.bz2) = 611eae7e3485d5fd9ff03e0ac7575ea89bc8105e40e99a40de02324957482f95
+SIZE (ffmpeg-2.0.1.tar.bz2) = 6187933
diff --git a/multimedia/ffmpeg2/files/ffserver2.in b/multimedia/ffmpeg2/files/ffserver2.in
new file mode 100644
index 000000000000..d49d8f047b41
--- /dev/null
+++ b/multimedia/ffmpeg2/files/ffserver2.in
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ffserver-head
+# REQUIRE: NETWORKING
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable ffserver:
+#
+#ffserver2_enable="YES"
+#
+ffserver2_enable="${ffserver2_enable-NO}"
+
+. /etc/rc.subr
+
+name=ffserver1
+rcvar=ffserver1_enable
+
+command="%%PREFIX%%/bin/${name} &"
+required_files=%%PREFIX%%/etc/ffserver1.conf
+
+load_rc_config ${name}
+run_rc_command "$1"
diff --git a/multimedia/ffmpeg2/files/patch-Makefile b/multimedia/ffmpeg2/files/patch-Makefile
new file mode 100644
index 000000000000..ccbef27e5dd8
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-Makefile
@@ -0,0 +1,11 @@
+--- Makefile.orig 2012-05-04 12:24:34.447846798 +0200
++++ Makefile 2012-05-04 12:24:42.471850113 +0200
+@@ -79,7 +79,7 @@
+ $(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
+ SUBDIR := $(1)/
+ include $(SRC_PATH)/$(1)/Makefile
+--include $(SRC_PATH)/$(1)/$(ARCH)/Makefile
++-include $(SRC_PATH)/$(1)/$(FFMPEG_ARCH)/Makefile
+ include $(SRC_PATH)/library.mak
+ endef
+
diff --git a/multimedia/ffmpeg2/files/patch-configure b/multimedia/ffmpeg2/files/patch-configure
new file mode 100644
index 000000000000..e827011a9af8
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-configure
@@ -0,0 +1,57 @@
+--- configure.orig
++++ configure
+@@ -2147,7 +2147,7 @@ yasmexe_default="yasm"
+ nogas=":"
+
+ # machine
+-arch_default=$(uname -m)
++arch_default=$(uname -p)
+ cpu="generic"
+
+ # OS
+@@ -3991,10 +3991,10 @@ perl --version > /dev/null 2>&1 && enabl
+ pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
+ rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout
+
+-check_header linux/fb.h
+-check_header linux/videodev.h
+-check_header linux/videodev2.h
+-check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete
++#check_header linux/fb.h
++#check_header linux/videodev.h
++#check_header linux/videodev2.h
++#check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete
+
+ check_header sys/videoio.h
+
+@@ -4373,7 +4373,7 @@ ifndef MAIN_MAKEFILE
+ SRC_PATH:=\$(SRC_PATH:.%=..%)
+ endif
+ CC_IDENT=$cc_ident
+-ARCH=$arch
++FFMPEG_ARCH=$arch
+ CC=$cc
+ CXX=$cxx
+ AS=$as
+@@ -4555,7 +4555,7 @@ exec_prefix=\${prefix}
+ libdir=$libdir
+ includedir=$incdir
+
+-Name: $name
++Name: ${name}${build_suffix}
+ Description: $comment
+ Version: $version
+ Requires: $(enabled shared || echo $requires)
+@@ -4569,10 +4569,10 @@ EOF
+ mkdir -p doc/examples/pc-uninstalled
+ includedir=${source_path}
+ [ "$includedir" = . ] && includedir="\${pcfiledir}/../../.."
+- cat <<EOF > doc/examples/pc-uninstalled/$name.pc
++ cat <<EOF > doc/examples/pc-uninstalled/${name}${build_suffix}.pc
+ prefix=
+ exec_prefix=
+-libdir=\${pcfiledir}/../../../$name
++libdir=\${pcfiledir}/../../../${name}${build_suffix}
+ includedir=${includedir}
+
+ Name: $name
diff --git a/multimedia/ffmpeg2/files/patch-doc-Makefile b/multimedia/ffmpeg2/files/patch-doc-Makefile
new file mode 100644
index 000000000000..4b702775a360
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-doc-Makefile
@@ -0,0 +1,11 @@
+--- doc/Makefile.orig 2012-09-28 03:37:35.000000000 +0200
++++ doc/Makefile 2012-10-12 21:36:56.461440175 +0200
+@@ -57,7 +57,7 @@
+ install-man:
+
+ ifdef CONFIG_MANPAGES
+-install-progs-$(CONFIG_DOC): install-man
++#install-progs-$(CONFIG_DOC): install-man
+
+ install-man: $(MANPAGES)
+ $(Q)mkdir -p "$(MANDIR)/man1"
diff --git a/multimedia/ffmpeg2/files/patch-libavcodec-Makefile b/multimedia/ffmpeg2/files/patch-libavcodec-Makefile
new file mode 100644
index 000000000000..0e64d96791f5
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-libavcodec-Makefile
@@ -0,0 +1,11 @@
+--- libavcodec/Makefile.orig 2012-08-06 10:06:26.000000000 +0200
++++ libavcodec/Makefile 2012-08-06 10:36:33.478505808 +0200
+@@ -793,7 +793,7 @@
+ codec_names.h \
+ fft-internal.h \
+ tableprint.h \
+- $(ARCH)/vp56_arith.h \
++ $(FFMPEG_ARCH)/vp56_arith.h \
+
+ SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
+ SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER) += libschroedinger.h
diff --git a/multimedia/ffmpeg2/files/patch-libavdevice-bktr.c b/multimedia/ffmpeg2/files/patch-libavdevice-bktr.c
new file mode 100644
index 000000000000..c64d1826eb91
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-libavdevice-bktr.c
@@ -0,0 +1,14 @@
+--- libavdevice/bktr.c.orig 2012-01-22 14:41:15.000000000 +0100
++++ libavdevice/bktr.c 2012-01-22 16:07:07.873280412 +0100
+@@ -24,6 +24,11 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++typedef unsigned char u_char;
++typedef unsigned short u_short;
++typedef unsigned int u_int;
++typedef unsigned long u_long;
++
+ #include "libavformat/internal.h"
+ #include "libavutil/log.h"
+ #include "libavutil/opt.h"
diff --git a/multimedia/ffmpeg2/files/patch-libavdevice-oss_audio.c b/multimedia/ffmpeg2/files/patch-libavdevice-oss_audio.c
new file mode 100644
index 000000000000..d3428dd5cefc
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-libavdevice-oss_audio.c
@@ -0,0 +1,14 @@
+--- libavdevice/oss_audio.c.orig 2009-05-15 17:38:35.000000000 +0200
++++ libavdevice/oss_audio.c 2009-05-15 17:41:27.000000000 +0200
+@@ -19,6 +19,11 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++typedef unsigned char u_char;
++typedef unsigned short u_short;
++typedef unsigned int u_int;
++typedef unsigned long u_long;
++
+ #include "config.h"
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/multimedia/ffmpeg2/files/patch-libavfilter-vf_libopencv.c b/multimedia/ffmpeg2/files/patch-libavfilter-vf_libopencv.c
new file mode 100644
index 000000000000..ded99fa94ac4
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-libavfilter-vf_libopencv.c
@@ -0,0 +1,12 @@
+--- libavfilter/vf_libopencv.c.orig 2012-08-05 14:09:37.882506740 +0200
++++ libavfilter/vf_libopencv.c 2012-08-05 14:10:24.508510133 +0200
+@@ -25,8 +25,7 @@
+
+ /* #define DEBUG */
+
+-#include <opencv/cv.h>
+-#include <opencv/cxcore.h>
++#include <opencv2/imgproc/imgproc_c.h>
+ #include "libavutil/avstring.h"
+ #include "libavutil/file.h"
+ #include "avfilter.h"
diff --git a/multimedia/ffmpeg2/files/patch-libavformat-udp.c b/multimedia/ffmpeg2/files/patch-libavformat-udp.c
new file mode 100644
index 000000000000..0042372ae7b5
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-libavformat-udp.c
@@ -0,0 +1,11 @@
+--- libavformat/udp.c.orig 2009-05-15 17:24:45.000000000 +0200
++++ libavformat/udp.c 2009-05-15 17:27:17.000000000 +0200
+@@ -45,6 +45,8 @@
+ #define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)
+ #endif
+
++#define IPPROTO_IPV6 41
++
+ typedef struct {
+ int udp_fd;
+ int ttl;
diff --git a/multimedia/ffmpeg2/files/patch-libavutil-common.h b/multimedia/ffmpeg2/files/patch-libavutil-common.h
new file mode 100644
index 000000000000..e4a38622d92e
--- /dev/null
+++ b/multimedia/ffmpeg2/files/patch-libavutil-common.h
@@ -0,0 +1,13 @@
+--- libavutil/common.h.orig 2010-07-07 19:27:45.000000000 +0200
++++ libavutil/common.h 2010-08-01 22:27:42.964629491 +0200
+@@ -36,6 +36,10 @@
+ #include <string.h>
+ #include "attributes.h"
+
++#ifndef UINT64_C
++#define UINT64_C(c) (c ## UL)
++#endif
++
+ //rounded division & shift
+ #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
+ /* assume b>0 */
diff --git a/multimedia/ffmpeg2/pkg-descr b/multimedia/ffmpeg2/pkg-descr
new file mode 100644
index 000000000000..75f1916e4e02
--- /dev/null
+++ b/multimedia/ffmpeg2/pkg-descr
@@ -0,0 +1,7 @@
+FFmpeg is a complete, cross-platform solution to record, convert and stream
+audio and video. It includes libavcodec - the leading audio/video codec
+library.
+
+This version is from the 2.0 release branch.
+
+WWW: http://ffmpeg.org/
diff --git a/multimedia/ffmpeg2/pkg-plist b/multimedia/ffmpeg2/pkg-plist
new file mode 100644
index 000000000000..0f88f87e930d
--- /dev/null
+++ b/multimedia/ffmpeg2/pkg-plist
@@ -0,0 +1,165 @@
+bin/ffmpeg%%SUFF%%
+bin/ffprobe%%SUFF%%
+%%FFSERVER%%bin/ffserver%%SUFF%%
+%%FFSERVER%%@unexec if cmp -s %D/etc/ffserver%%SUFF%%.conf %D/etc/ffserver%%SUFF%%.conf-dist; then rm -f %D/etc/ffserver%%SUFF%%.conf; fi
+%%FFSERVER%%etc/ffserver%%SUFF%%.conf-dist
+%%FFSERVER%%@exec [ -f %B/ffserver%%SUFF%%.conf ] || cp %B/%f %B/ffserver%%SUFF%%.conf
+include/ffmpeg%%SUFF%%/libavcodec/avcodec.h
+include/ffmpeg%%SUFF%%/libavcodec/avfft.h
+include/ffmpeg%%SUFF%%/libavcodec/dxva2.h
+include/ffmpeg%%SUFF%%/libavcodec/old_codec_ids.h
+include/ffmpeg%%SUFF%%/libavcodec/vaapi.h
+include/ffmpeg%%SUFF%%/libavcodec/vda.h
+include/ffmpeg%%SUFF%%/libavcodec/vdpau.h
+include/ffmpeg%%SUFF%%/libavcodec/version.h
+include/ffmpeg%%SUFF%%/libavcodec/xvmc.h
+include/ffmpeg%%SUFF%%/libavdevice/avdevice.h
+include/ffmpeg%%SUFF%%/libavdevice/version.h
+include/ffmpeg%%SUFF%%/libavfilter/asrc_abuffer.h
+include/ffmpeg%%SUFF%%/libavfilter/avcodec.h
+include/ffmpeg%%SUFF%%/libavfilter/avfilter.h
+include/ffmpeg%%SUFF%%/libavfilter/avfiltergraph.h
+include/ffmpeg%%SUFF%%/libavfilter/buffersink.h
+include/ffmpeg%%SUFF%%/libavfilter/buffersrc.h
+include/ffmpeg%%SUFF%%/libavfilter/version.h
+include/ffmpeg%%SUFF%%/libavformat/avformat.h
+include/ffmpeg%%SUFF%%/libavformat/avio.h
+include/ffmpeg%%SUFF%%/libavformat/version.h
+include/ffmpeg%%SUFF%%/libavresample/avresample.h
+include/ffmpeg%%SUFF%%/libavresample/version.h
+include/ffmpeg%%SUFF%%/libavutil/adler32.h
+include/ffmpeg%%SUFF%%/libavutil/aes.h
+include/ffmpeg%%SUFF%%/libavutil/attributes.h
+include/ffmpeg%%SUFF%%/libavutil/audio_fifo.h
+include/ffmpeg%%SUFF%%/libavutil/audioconvert.h
+include/ffmpeg%%SUFF%%/libavutil/avassert.h
+include/ffmpeg%%SUFF%%/libavutil/avconfig.h
+include/ffmpeg%%SUFF%%/libavutil/avstring.h
+include/ffmpeg%%SUFF%%/libavutil/avutil.h
+include/ffmpeg%%SUFF%%/libavutil/base64.h
+include/ffmpeg%%SUFF%%/libavutil/blowfish.h
+include/ffmpeg%%SUFF%%/libavutil/bprint.h
+include/ffmpeg%%SUFF%%/libavutil/bswap.h
+include/ffmpeg%%SUFF%%/libavutil/buffer.h
+include/ffmpeg%%SUFF%%/libavutil/channel_layout.h
+include/ffmpeg%%SUFF%%/libavutil/common.h
+include/ffmpeg%%SUFF%%/libavutil/cpu.h
+include/ffmpeg%%SUFF%%/libavutil/crc.h
+include/ffmpeg%%SUFF%%/libavutil/dict.h
+include/ffmpeg%%SUFF%%/libavutil/error.h
+include/ffmpeg%%SUFF%%/libavutil/eval.h
+include/ffmpeg%%SUFF%%/libavutil/fifo.h
+include/ffmpeg%%SUFF%%/libavutil/file.h
+include/ffmpeg%%SUFF%%/libavutil/frame.h
+include/ffmpeg%%SUFF%%/libavutil/hmac.h
+include/ffmpeg%%SUFF%%/libavutil/imgutils.h
+include/ffmpeg%%SUFF%%/libavutil/intfloat.h
+include/ffmpeg%%SUFF%%/libavutil/intfloat_readwrite.h
+include/ffmpeg%%SUFF%%/libavutil/intreadwrite.h
+include/ffmpeg%%SUFF%%/libavutil/lfg.h
+include/ffmpeg%%SUFF%%/libavutil/log.h
+include/ffmpeg%%SUFF%%/libavutil/lzo.h
+include/ffmpeg%%SUFF%%/libavutil/mathematics.h
+include/ffmpeg%%SUFF%%/libavutil/md5.h
+include/ffmpeg%%SUFF%%/libavutil/mem.h
+include/ffmpeg%%SUFF%%/libavutil/murmur3.h
+include/ffmpeg%%SUFF%%/libavutil/old_pix_fmts.h
+include/ffmpeg%%SUFF%%/libavutil/opt.h
+include/ffmpeg%%SUFF%%/libavutil/parseutils.h
+include/ffmpeg%%SUFF%%/libavutil/pixdesc.h
+include/ffmpeg%%SUFF%%/libavutil/pixfmt.h
+include/ffmpeg%%SUFF%%/libavutil/random_seed.h
+include/ffmpeg%%SUFF%%/libavutil/rational.h
+include/ffmpeg%%SUFF%%/libavutil/ripemd.h
+include/ffmpeg%%SUFF%%/libavutil/samplefmt.h
+include/ffmpeg%%SUFF%%/libavutil/sha.h
+include/ffmpeg%%SUFF%%/libavutil/sha512.h
+include/ffmpeg%%SUFF%%/libavutil/time.h
+include/ffmpeg%%SUFF%%/libavutil/timecode.h
+include/ffmpeg%%SUFF%%/libavutil/timestamp.h
+include/ffmpeg%%SUFF%%/libavutil/version.h
+include/ffmpeg%%SUFF%%/libavutil/xtea.h
+include/ffmpeg%%SUFF%%/libpostproc/postprocess.h
+include/ffmpeg%%SUFF%%/libpostproc/version.h
+include/ffmpeg%%SUFF%%/libswresample/swresample.h
+include/ffmpeg%%SUFF%%/libswresample/version.h
+include/ffmpeg%%SUFF%%/libswscale/swscale.h
+include/ffmpeg%%SUFF%%/libswscale/version.h
+lib/ffmpeg%%SUFF%%/libavcodec%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libavcodec%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libavcodec%%SUFF%%.so.55
+lib/ffmpeg%%SUFF%%/libavcodec%%SUFF%%.so.55.18.102
+lib/ffmpeg%%SUFF%%/libavdevice%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libavdevice%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libavdevice%%SUFF%%.so.55
+lib/ffmpeg%%SUFF%%/libavdevice%%SUFF%%.so.55.3.100
+lib/ffmpeg%%SUFF%%/libavfilter%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libavfilter%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libavfilter%%SUFF%%.so.3
+lib/ffmpeg%%SUFF%%/libavfilter%%SUFF%%.so.3.79.101
+lib/ffmpeg%%SUFF%%/libavformat%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libavformat%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libavformat%%SUFF%%.so.55
+lib/ffmpeg%%SUFF%%/libavformat%%SUFF%%.so.55.12.100
+lib/ffmpeg%%SUFF%%/libavresample%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libavresample%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libavresample%%SUFF%%.so.1
+lib/ffmpeg%%SUFF%%/libavresample%%SUFF%%.so.1.1.0
+lib/ffmpeg%%SUFF%%/libavutil%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libavutil%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libavutil%%SUFF%%.so.52
+lib/ffmpeg%%SUFF%%/libavutil%%SUFF%%.so.52.38.100
+lib/ffmpeg%%SUFF%%/libpostproc%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libpostproc%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libpostproc%%SUFF%%.so.52
+lib/ffmpeg%%SUFF%%/libpostproc%%SUFF%%.so.52.3.100
+lib/ffmpeg%%SUFF%%/libswresample%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libswresample%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libswresample%%SUFF%%.so.0
+lib/ffmpeg%%SUFF%%/libswresample%%SUFF%%.so.0.17.102
+lib/ffmpeg%%SUFF%%/libswscale%%SUFF%%.a
+lib/ffmpeg%%SUFF%%/libswscale%%SUFF%%.so
+lib/ffmpeg%%SUFF%%/libswscale%%SUFF%%.so.2
+lib/ffmpeg%%SUFF%%/libswscale%%SUFF%%.so.2.3.100
+libdata/pkgconfig/libavcodec%%SUFF%%.pc
+libdata/pkgconfig/libavdevice%%SUFF%%.pc
+libdata/pkgconfig/libavfilter%%SUFF%%.pc
+libdata/pkgconfig/libavformat%%SUFF%%.pc
+libdata/pkgconfig/libavresample%%SUFF%%.pc
+libdata/pkgconfig/libavutil%%SUFF%%.pc
+libdata/pkgconfig/libpostproc%%SUFF%%.pc
+libdata/pkgconfig/libswresample%%SUFF%%.pc
+libdata/pkgconfig/libswscale%%SUFF%%.pc
+man/man1/ffmpeg%%SUFF%%.1.gz
+man/man1/ffprobe%%SUFF%%.1.gz
+%%DATADIR%%/examples/Makefile
+%%DATADIR%%/examples/README
+%%DATADIR%%/examples/decoding_encoding.c
+%%DATADIR%%/examples/demuxing.c
+%%DATADIR%%/examples/filtering_audio.c
+%%DATADIR%%/examples/filtering_video.c
+%%DATADIR%%/examples/metadata.c
+%%DATADIR%%/examples/muxing.c
+%%DATADIR%%/examples/resampling_audio.c
+%%DATADIR%%/examples/scaling_video.c
+%%DATADIR%%/ffprobe.xsd
+%%DATADIR%%/libvpx-1080p.ffpreset
+%%DATADIR%%/libvpx-1080p50_60.ffpreset
+%%DATADIR%%/libvpx-360p.ffpreset
+%%DATADIR%%/libvpx-720p.ffpreset
+%%DATADIR%%/libvpx-720p50_60.ffpreset
+%%DATADIR%%/libx264-ipod320.ffpreset
+%%DATADIR%%/libx264-ipod640.ffpreset
+@dirrm %%DATADIR%%/examples
+@dirrm %%DATADIR%%
+@dirrm lib/ffmpeg%%SUFF%%
+@dirrm include/ffmpeg%%SUFF%%/libswscale
+@dirrm include/ffmpeg%%SUFF%%/libswresample
+@dirrm include/ffmpeg%%SUFF%%/libpostproc
+@dirrm include/ffmpeg%%SUFF%%/libavutil
+@dirrm include/ffmpeg%%SUFF%%/libavresample
+@dirrm include/ffmpeg%%SUFF%%/libavformat
+@dirrm include/ffmpeg%%SUFF%%/libavfilter
+@dirrm include/ffmpeg%%SUFF%%/libavdevice
+@dirrm include/ffmpeg%%SUFF%%/libavcodec
+@dirrm include/ffmpeg%%SUFF%%