aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwg <wg@FreeBSD.org>2013-10-09 03:24:30 +0800
committerwg <wg@FreeBSD.org>2013-10-09 03:24:30 +0800
commit7d6df196041da922296dfbe544b21192e64b7185 (patch)
tree364e4ed58a06caf599984b03dc49c0f5556a6ef2
parent3098054263963fdf2f1d1371b335c127a85269ef (diff)
downloadfreebsd-ports-gnome-7d6df196041da922296dfbe544b21192e64b7185.tar.gz
freebsd-ports-gnome-7d6df196041da922296dfbe544b21192e64b7185.tar.zst
freebsd-ports-gnome-7d6df196041da922296dfbe544b21192e64b7185.zip
ffmpeg is a hyper fast realtime audio/video encoder, a streaming
server and a generic audio and video file converter. It can convert a standard video source into several file formats based on DCT/motion compensation encoding. Sound is compressed in MPEG audio layer 2 or using an AC3 compatible stream. What makes ffmpeg interesting ? - Simple and efficient video encoder: outputs MPEG1, H263, Real Video(tm), MPEG4, DIVX and MJPEG compatible bitstreams using the same encoder core. - Hyper fast MPEG audio layer 2 compression (50 times faster than realtime on a K6 500). [snip -> rest on website below] ffmpeg is made of two programs: * ffmpeg: soft VCR which encodes in real time to several formats. It can also encode from any supported input file format to any input supported format. * ffserver: high performance live broadcast streaming server based on the ffmpeg core encoders. WWW: http://ffmpeg.mplayerhq.hu/
-rw-r--r--multimedia/Makefile1
-rw-r--r--multimedia/ffmpeg0/Makefile457
-rw-r--r--multimedia/ffmpeg0/distinfo2
-rw-r--r--multimedia/ffmpeg0/files/ffserver0.in26
-rw-r--r--multimedia/ffmpeg0/files/patch-configure31
-rw-r--r--multimedia/ffmpeg0/files/patch-doc-protocols.texi13
-rw-r--r--multimedia/ffmpeg0/files/patch-libavcodec-Makefile11
-rw-r--r--multimedia/ffmpeg0/files/patch-libavcodec-libgsm.c11
-rw-r--r--multimedia/ffmpeg0/files/patch-libavdevice-bktr.c14
-rw-r--r--multimedia/ffmpeg0/files/patch-libavdevice-oss_audio.c14
-rw-r--r--multimedia/ffmpeg0/files/patch-libavfilter-Makefile11
-rw-r--r--multimedia/ffmpeg0/files/patch-libavfilter-vf_libopencv.c12
-rw-r--r--multimedia/ffmpeg0/files/patch-libavformat-udp.c11
-rw-r--r--multimedia/ffmpeg0/files/patch-libavutil-common.h13
-rw-r--r--multimedia/ffmpeg0/pkg-descr24
-rw-r--r--multimedia/ffmpeg0/pkg-plist154
16 files changed, 805 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index a47203c5ceff..b61bae289bb6 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -55,6 +55,7 @@
SUBDIR += emovix
SUBDIR += ffmpeg
SUBDIR += ffmpeg-devel
+ SUBDIR += ffmpeg0
SUBDIR += ffmpeg1
SUBDIR += ffmpeg2
SUBDIR += ffmpeg2theora
diff --git a/multimedia/ffmpeg0/Makefile b/multimedia/ffmpeg0/Makefile
new file mode 100644
index 000000000000..c399f5014bd5
--- /dev/null
+++ b/multimedia/ffmpeg0/Makefile
@@ -0,0 +1,457 @@
+# Created by: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ffmpeg
+PORTVERSION= 0.7.15
+PORTEPOCH= 1
+CATEGORIES= multimedia audio ipv6 net
+MASTER_SITES= http://ffmpeg.org/releases/
+PKGNAMESUFFIX= 0
+
+MAINTAINER= wg@FreeBSD.org
+COMMENT= Realtime audio/video encoder/converter and streaming server
+
+LICENSE= GPLv2 LGPL21
+LICENSE_COMB= multi
+LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING.GPLv2
+LICENSE_FILE_LGPL21= ${WRKSRC}/COPYING.LGPLv2.1
+
+BUILD_DEPENDS= yasm:${PORTSDIR}/devel/yasm \
+ ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils \
+ ${LOCALBASE}/bin/texi2html:${PORTSDIR}/textproc/texi2html
+
+CONFLICTS= libav-[0-9]*
+PORTSCOUT= limit:^0\.7.*
+
+HAS_CONFIGURE= yes
+CONFIGURE_LOG= config.err
+USES= gmake perl5 pkgconfig
+USE_BZIP2= yes
+WANT_SDL= yes
+USE_LDCONFIG= ${PREFIX}/lib/ffmpeg${FFMPEG_SUFFIX}
+USE_PERL5= build
+
+FFMPEG_SUFFIX= 0
+PLIST_SUB+= SUFF="${FFMPEG_SUFFIX}"
+
+CONFIGURE_ENV+= EXESUF="${FFMPEG_SUFFIX}"
+MAKE_ARGS+= EXESUF="${FFMPEG_SUFFIX}"
+PROGS= ffmpeg ffprobe
+
+DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
+DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
+
+OPTIONS_DEFINE= AACPLUS ALSA AMR_NB AMR_WB CELT DEBUG DIRAC FAAC \
+ FFSERVER FREETYPE FREI0R GSM LAME OPENCV OPENJPEG \
+ OPTIMIZED_CFLAGS RTMP SCHROEDINGER SDL SPEEX THEORA VAAPI \
+ VDPAU VO_AACENC VO_AMRWBENC VORBIS VPX X11GRAB X264 XVID
+
+OPTIONS_DEFAULT= FFSERVER FREETYPE FREI0R OPENCV SCHROEDINGER THEORA \
+ VORBIS VPX X264 XVID
+
+FFSERVER_DESC= Build and install ffserver
+X11GRAB_DESC= Enable x11 grabbing
+
+COMPAT_HEADERS=libavcodec/avcodec.h \
+ libavcodec/opt.h \
+ libavcodec/vdpau.h \
+ libavcodec/xvmc.h \
+ libavdevice/avdevice.h \
+ libavfilter/avfilter.h \
+ libavformat/avformat.h \
+ libavformat/avio.h \
+ libavutil/adler32.h \
+ libavutil/avstring.h \
+ libavutil/avutil.h \
+ libavutil/base64.h \
+ libavutil/common.h \
+ libavutil/crc.h \
+ libavutil/fifo.h \
+ libavutil/intfloat_readwrite.h \
+ libavutil/log.h \
+ libavutil/lzo.h \
+ libavutil/mathematics.h \
+ libavutil/md5.h \
+ libavutil/mem.h \
+ libavutil/pixfmt.h \
+ libavutil/rational.h \
+ libavutil/sha1.h \
+ libpostproc/postprocess.h \
+ libswscale/swscale.h
+
+.include <bsd.port.options.mk>
+
+# rtmp
+.if ${PORT_OPTIONS:MRTMP}
+USE_OPENSSL= yes
+.endif
+
+# x11grab
+.if ${PORT_OPTIONS:MX11GRAB}
+USE_XORG= x11 xext xfixes
+CONFIGURE_ARGS+= --enable-x11grab
+.endif
+
+.include <bsd.port.pre.mk>
+
+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}" \
+ --enable-shared \
+ --enable-gpl \
+ --enable-postproc \
+ --enable-avfilter \
+ --enable-pthreads \
+ --enable-memalign-hack \
+ --enable-runtime-cpudetect \
+ --cc="${CC}" \
+ --extra-cflags="${FFMPEG_CFLAGS} -I${LOCALBASE}/include" \
+ --extra-ldflags="-L${LOCALBASE}/lib ${FFMPEG_LDFLAGS}" \
+ --extra-libs="${PTHREAD_LIBS}"
+SHLIB_VER= 1
+PLIST_SUB+= SHLIB_VER=${SHLIB_VER}
+USE_LDCONFIG= yes
+
+DOC_FILES= CREDITS INSTALL LICENSE MAINTAINERS README RELEASE
+# under doc subdirectory
+DOC_DOCFILES= APIchanges RELEASE_NOTES TODO *.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}
+PROGS+= ffserver
+.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)
+CFLAGS+= -msse
+.endif
+
+# optimizations
+.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
+CFLAGS+= -O3 -ffast-math -fno-finite-math-only -fomit-frame-pointer
+.endif
+
+#aacplus
+.if ${PORT_OPTIONS:MAACPLUS}
+FFMPEG_NONFREE= yes
+LIB_DEPENDS+= libaacplus.so:${PORTSDIR}/audio/libaacplus
+CONFIGURE_ARGS+= --enable-libaacplus
+.else
+CONFIGURE_ARGS+= --disable-libaacplus
+.endif
+
+#alsa
+.if ${PORT_OPTIONS:MALSA}
+LIB_DEPENDS+= libasound.so:${PORTSDIR}/audio/alsa-lib
+.else
+CONFIGURE_ARGS+= --disable-indev=alsa \
+ --disable-outdev=alsa
+.endif
+
+# Opencore AMR NB
+.if ${PORT_OPTIONS:MAMR_NB}
+FFMPEG_LICENSE_GPL3= yes
+LIB_DEPENDS+= libopencore-amrnb.so:${PORTSDIR}/audio/opencore-amr
+CONFIGURE_ARGS+= --enable-libopencore-amrnb
+.else
+CONFIGURE_ARGS+= --disable-libopencore-amrnb
+.endif
+
+# Opencore AMR WB
+.if ${PORT_OPTIONS:MAMR_WB}
+FFMPEG_LICENSE_GPL3= yes
+LIB_DEPENDS+= libopencore-amrwb.so:${PORTSDIR}/audio/opencore-amr
+CONFIGURE_ARGS+= --enable-libopencore-amrwb
+.else
+CONFIGURE_ARGS+= --disable-libopencore-amrwb
+.endif
+
+# celt
+.if ${PORT_OPTIONS:MCELT}
+LIB_DEPENDS+= libcelt0.so:${PORTSDIR}/audio/celt
+CONFIGURE_ARGS+= --enable-libcelt
+.else
+CONFIGURE_ARGS+= --disable-libcelt
+.endif
+
+# dirac
+.if ${PORT_OPTIONS:MDIRAC}
+LIB_DEPENDS+= libdirac_encoder.so:${PORTSDIR}/multimedia/dirac
+CONFIGURE_ARGS+= --enable-libdirac
+.else
+CONFIGURE_ARGS+= --disable-libdirac
+.endif
+
+# faac
+.if ${PORT_OPTIONS:MFAAC}
+FFMPEG_NONFREE= yes
+LIB_DEPENDS+= libfaac.so:${PORTSDIR}/audio/faac
+CONFIGURE_ARGS+= --enable-libfaac
+.else
+CONFIGURE_ARGS+= --disable-libfaac
+.endif
+
+# ffserver
+.if ${PORT_OPTIONS:MFFSERVER}
+PLIST_SUB+= FFSERVER=""
+.else
+PLIST_SUB+= FFSERVER="@comment "
+CONFIGURE_ARGS+= --disable-ffserver
+.endif
+
+# freetype
+.if ${PORT_OPTIONS:MFREETYPE}
+LIB_DEPENDS+= libfreetype.so:${PORTSDIR}/print/freetype2
+CONFIGURE_ARGS+= --enable-libfreetype
+.else
+CONFIGURE_ARGS+= --disable-libfreetype
+.endif
+
+# frei0r
+.if ${PORT_OPTIONS:MFREI0R}
+BUILD_DEPENDS+= ${LOCALBASE}/include/frei0r.h:${PORTSDIR}/graphics/frei0r
+CONFIGURE_ARGS+= --enable-frei0r
+.else
+CONFIGURE_ARGS+= --disable-frei0r
+.endif
+
+# gsm
+.if ${PORT_OPTIONS:MGSM}
+LIB_DEPENDS+= libgsm.so:${PORTSDIR}/audio/gsm
+CONFIGURE_ARGS+= --enable-libgsm
+.else
+CONFIGURE_ARGS+= --disable-libgsm
+.endif
+
+# mp3
+.if ${PORT_OPTIONS:MLAME}
+LIB_DEPENDS+= libmp3lame.so:${PORTSDIR}/audio/lame
+CONFIGURE_ARGS+= --enable-libmp3lame
+.else
+CONFIGURE_ARGS+= --disable-libmp3lame
+.endif
+
+# opencv
+.if ${PORT_OPTIONS:MOPENCV}
+LIB_DEPENDS+= libopencv_imgproc.so:${PORTSDIR}/graphics/opencv-core
+CONFIGURE_ARGS+= --enable-libopencv
+.else
+CONFIGURE_ARGS+= --disable-libopencv
+.endif
+
+# openjpeg
+.if ${PORT_OPTIONS:MOPENJPEG}
+LIB_DEPENDS+= libopenjpeg.so:${PORTSDIR}/graphics/openjpeg
+CONFIGURE_ARGS+= --enable-libopenjpeg
+.else
+CONFIGURE_ARGS+= --disable-libopenjpeg
+.endif
+
+# rtmp
+.if ${PORT_OPTIONS:MRTMP}
+LIB_DEPENDS+= librtmp.so:${PORTSDIR}/multimedia/rtmpdump
+CONFIGURE_ARGS+= --enable-librtmp
+. if ${OPENSSLBASE} != "/usr"
+FFMPEG_CFLAGS+= -I${OPENSSLINC}
+FFMPEG_LDFLAGS+= -L${OPENSSLLIB}
+. endif
+.else
+CONFIGURE_ARGS+= --disable-librtmp
+.endif
+
+# schroedinger
+.if ${PORT_OPTIONS:MSCHROEDINGER}
+LIB_DEPENDS+= libschroedinger-1.0.so:${PORTSDIR}/multimedia/schroedinger
+CONFIGURE_ARGS+= --enable-libschroedinger
+.else
+CONFIGURE_ARGS+= --disable-libschroedinger
+.endif
+
+# sdl
+.if ${PORT_OPTIONS:MSDL}
+USE_SDL+= sdl
+PLIST_FILES+= bin/ffplay${FFMPEG_SUFFIX} man/man1/ffplay${FFMPEG_SUFFIX}.1.gz
+PROGS+= ffplay
+.else
+CONFIGURE_ARGS+= --disable-ffplay
+.endif
+
+# speex
+.if ${PORT_OPTIONS:MSPEEX}
+LIB_DEPENDS+= libspeex.so:${PORTSDIR}/audio/speex
+CONFIGURE_ARGS+= --enable-libspeex
+.else
+CONFIGURE_ARGS+= --disable-libspeex
+.endif
+
+# theora
+.if ${PORT_OPTIONS:MTHEORA}
+LIB_DEPENDS+= libtheora.so:${PORTSDIR}/multimedia/libtheora
+CONFIGURE_ARGS+= --enable-libtheora
+.else
+CONFIGURE_ARGS+= --disable-libtheora
+.endif
+
+# vaapi
+.if ${PORT_OPTIONS:MVAAPI}
+FFMPEG_LICENSE_GPL3= yes
+LIB_DEPENDS+= libva.so:${PORTSDIR}/multimedia/libva
+CONFIGURE_ARGS+= --enable-vaapi
+.else
+CONFIGURE_ARGS+= --disable-vaapi
+.endif
+
+# vdpau
+.if ${PORT_OPTIONS:MVDPAU}
+BUILD_DEPENDS+= ${LOCALBASE}/include/vdpau/vdpau.h:${PORTSDIR}/multimedia/libvdpau
+CONFIGURE_ARGS+= --enable-vdpau
+.else
+CONFIGURE_ARGS+= --disable-vdpau
+.endif
+
+# vo-aacenc
+.if ${PORT_OPTIONS:MVO_AACENC}
+FFMPEG_LICENSE_GPL3= yes
+LIB_DEPENDS+= libvo-aacenc.so:${PORTSDIR}/audio/vo-aacenc
+CONFIGURE_ARGS+= --enable-libvo-aacenc
+.else
+CONFIGURE_ARGS+= --disable-libvo-aacenc
+.endif
+
+# vo-amrwbenc
+.if ${PORT_OPTIONS:MVO_AMRWBENC}
+FFMPEG_LICENSE_GPL3= yes
+LIB_DEPENDS+= libvo-amrwbenc.so:${PORTSDIR}/audio/vo-amrwbenc
+CONFIGURE_ARGS+= --enable-libvo-amrwbenc
+.else
+CONFIGURE_ARGS+= --disable-libvo-amrwbenc
+.endif
+
+# vorbis
+.if ${PORT_OPTIONS:MVORBIS}
+LIB_DEPENDS+= libvorbisenc.so:${PORTSDIR}/audio/libvorbis
+CONFIGURE_ARGS+= --enable-libvorbis
+FFMPEG_CFLAGS+= -I${LOCALBASE}/include/vorbis
+.else
+CONFIGURE_ARGS+= --disable-libvorbis
+.endif
+
+# vp8
+.if ${PORT_OPTIONS:MVPX}
+LIB_DEPENDS+= libvpx.so:${PORTSDIR}/multimedia/libvpx
+CONFIGURE_ARGS+= --enable-libvpx
+.else
+CONFIGURE_ARGS+= --disable-libvpx
+.endif
+
+# x264
+.if ${PORT_OPTIONS:MX264}
+LIB_DEPENDS+= libx264.so:${PORTSDIR}/multimedia/x264
+CONFIGURE_ARGS+= --enable-libx264
+.else
+CONFIGURE_ARGS+= --disable-libx264
+.endif
+
+# xvid
+.if ${PORT_OPTIONS:MXVID}
+LIB_DEPENDS+= libxvidcore.so:${PORTSDIR}/multimedia/xvid
+CONFIGURE_ARGS+= --enable-libxvid
+.else
+CONFIGURE_ARGS+= --disable-libxvid
+.endif
+
+# License knobs
+.if defined(FFMPEG_NONFREE)
+RESTRICTED= linking to libfaac or libaacplus restricts redistribution
+CONFIGURE_ARGS+= --enable-nonfree
+.endif
+
+.if defined(FFMPEG_LICENSE_GPL3)
+LICENSE+= GPLv3 LGPL3
+LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPLv3
+LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPLv3
+CONFIGURE_ARGS+= --enable-version3
+.endif
+
+post-patch:
+# {C,LD}FLAGS safeness
+ @${REINPLACE_CMD} -e 's|$$(LIBDIR)/pkgconfig|$$(DESTDIR)$$(prefix)/libdata/pkgconfig|' \
+ ${WRKSRC}/subdir.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||; s|$$(LIBMAJOR)|${SHLIB_VER}|g;' \
+ -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:MDSL}
+ @${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
+ @${REINPLACE_CMD} -E \
+ -e 's|\$$\(INSTALL\) -m 644 \$$\(MANPAGES\) "\$$\(MANDIR\)/man1"||g' \
+ ${WRKSRC}/Makefile
+ @${REINPLACE_CMD} -E \
+ -e 's|\$$\$$\(INSTALL\) -m 644 \$$\$$\^ "\$$\(DESTDIR\)\$$\(prefix\)/libdata/pkgconfig"|\$$\$$\(INSTALL\) -m 644 \$$\$$\^ "\$$\(DESTDIR\)\$$\(prefix\)/libdata/pkgconfig/lib\$$\(NAME\)0.pc"|' \
+ ${WRKSRC}/subdir.mak
+
+post-install:
+.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
+.for i in ${PROGS}
+ ${INSTALL_MAN} ${WRKSRC}/doc/${i}.1 ${STAGEDIR}${MANPREFIX}/man/man1/${i}0.1
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/multimedia/ffmpeg0/distinfo b/multimedia/ffmpeg0/distinfo
new file mode 100644
index 000000000000..600a5b12f994
--- /dev/null
+++ b/multimedia/ffmpeg0/distinfo
@@ -0,0 +1,2 @@
+SHA256 (ffmpeg-0.7.15.tar.bz2) = c5145aab922076b9986168214c9bd607f4664644f14f9074499fc52a039fcfd9
+SIZE (ffmpeg-0.7.15.tar.bz2) = 4528584
diff --git a/multimedia/ffmpeg0/files/ffserver0.in b/multimedia/ffmpeg0/files/ffserver0.in
new file mode 100644
index 000000000000..cd3a74467531
--- /dev/null
+++ b/multimedia/ffmpeg0/files/ffserver0.in
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ffserver0
+# REQUIRE: NETWORKING
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable ffserver:
+#
+#ffserver0_enable="YES"
+#
+ffserver0_enable="${ffserver0_enable-NO}"
+
+. /etc/rc.subr
+
+name=ffserver0
+rcvar=ffserver0_enable
+
+command="%%PREFIX%%/bin/${name} &"
+required_files=%%PREFIX%%/etc/ffserver0.conf
+
+load_rc_config ${name}
+run_rc_command "$1"
diff --git a/multimedia/ffmpeg0/files/patch-configure b/multimedia/ffmpeg0/files/patch-configure
new file mode 100644
index 000000000000..5e0f7e987e47
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-configure
@@ -0,0 +1,31 @@
+--- configure.orig 2011-06-21 21:29:25.000000000 +0200
++++ configure 2011-06-23 13:36:46.099381871 +0200
+@@ -1657,7 +1657,7 @@
+ nm_opts='-g'
+
+ # machine
+-arch_default=$(uname -m)
++arch_default=$(uname -p)
+ cpu="generic"
+
+ # OS
+@@ -2966,8 +2966,8 @@
+ texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html
+
+ check_header linux/fb.h
+-check_header linux/videodev.h
+-check_header linux/videodev2.h
++#check_header linux/videodev.h
++#check_header linux/videodev2.h
+ check_header sys/videoio.h
+
+ check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs"
+@@ -3322,7 +3322,7 @@
+ SRC_PATH="$source_path"
+ SRC_PATH_BARE=$source_path
+ CC_IDENT=$cc_ident
+-ARCH=$arch
++FFMPEG_ARCH=$arch
+ CC=$cc
+ AS=$as
+ LD=$ld
diff --git a/multimedia/ffmpeg0/files/patch-doc-protocols.texi b/multimedia/ffmpeg0/files/patch-doc-protocols.texi
new file mode 100644
index 000000000000..1e078d04a96f
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-doc-protocols.texi
@@ -0,0 +1,13 @@
+--- doc/protocols.texi.orig 2013-02-17 14:46:23.000000000 -0800
++++ doc/protocols.texi 2013-10-08 12:00:38.375693236 -0700
+@@ -155,8 +155,8 @@
+
+ Real-Time Messaging Protocol.
+
+-The Real-Time Messaging Protocol (RTMP) is used for streaming multimeā€
+-dia content across a TCP/IP network.
++The Real-Time Messaging Protocol (RTMP) is used for streaming multimedia
++content across a TCP/IP network.
+
+ The required syntax is:
+ @example
diff --git a/multimedia/ffmpeg0/files/patch-libavcodec-Makefile b/multimedia/ffmpeg0/files/patch-libavcodec-Makefile
new file mode 100644
index 000000000000..bfc359cff690
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-libavcodec-Makefile
@@ -0,0 +1,11 @@
+--- libavcodec/Makefile.orig 2010-08-01 20:33:53.484907333 +0200
++++ libavcodec/Makefile 2010-08-01 20:34:26.190893400 +0200
+@@ -590,7 +590,7 @@
+
+ OBJS-$(CONFIG_MLIB) += mlib/dsputil_mlib.o \
+
+--include $(SUBDIR)$(ARCH)/Makefile
++-include $(SUBDIR)$(FFMPEG_ARCH)/Makefile
+
+ SKIPHEADERS = %_tablegen.h
+ SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
diff --git a/multimedia/ffmpeg0/files/patch-libavcodec-libgsm.c b/multimedia/ffmpeg0/files/patch-libavcodec-libgsm.c
new file mode 100644
index 000000000000..62f52c8206fe
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-libavcodec-libgsm.c
@@ -0,0 +1,11 @@
+--- libavcodec/libgsm.c.orig 2010-07-21 10:24:16.297810379 +0200
++++ libavcodec/libgsm.c 2010-07-21 10:24:22.915234561 +0200
+@@ -28,7 +28,7 @@
+ // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
+
+ #include "avcodec.h"
+-#include <gsm/gsm.h>
++#include <gsm.h>
+
+ // gsm.h misses some essential constants
+ #define GSM_BLOCK_SIZE 33
diff --git a/multimedia/ffmpeg0/files/patch-libavdevice-bktr.c b/multimedia/ffmpeg0/files/patch-libavdevice-bktr.c
new file mode 100644
index 000000000000..541775966313
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-libavdevice-bktr.c
@@ -0,0 +1,14 @@
+--- libavdevice/bktr.c.orig 2011-06-21 21:29:25.000000000 +0200
++++ libavdevice/bktr.c 2011-06-23 13:39:44.160881669 +0200
+@@ -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 "libavutil/log.h"
+ #include "libavutil/opt.h"
+ #include "libavutil/parseutils.h"
diff --git a/multimedia/ffmpeg0/files/patch-libavdevice-oss_audio.c b/multimedia/ffmpeg0/files/patch-libavdevice-oss_audio.c
new file mode 100644
index 000000000000..d3428dd5cefc
--- /dev/null
+++ b/multimedia/ffmpeg0/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/ffmpeg0/files/patch-libavfilter-Makefile b/multimedia/ffmpeg0/files/patch-libavfilter-Makefile
new file mode 100644
index 000000000000..be35a25555cf
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-libavfilter-Makefile
@@ -0,0 +1,11 @@
+--- libavfilter/Makefile.orig 2011-06-23 16:22:46.163337772 +0200
++++ libavfilter/Makefile 2011-06-23 16:22:53.731245405 +0200
+@@ -136,7 +136,7 @@
+ OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/pullup.o
+
+
+--include $(SUBDIR)$(ARCH)/Makefile
++-include $(SUBDIR)$(FFMPEG_ARCH)/Makefile
+
+ DIRS = x86 libmpcodecs
+
diff --git a/multimedia/ffmpeg0/files/patch-libavfilter-vf_libopencv.c b/multimedia/ffmpeg0/files/patch-libavfilter-vf_libopencv.c
new file mode 100644
index 000000000000..28cccd3cb5bf
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-libavfilter-vf_libopencv.c
@@ -0,0 +1,12 @@
+--- libavfilter/vf_libopencv.c.orig 2011-06-27 21:27:01.521012341 +0200
++++ libavfilter/vf_libopencv.c 2011-06-27 21:27:16.839540294 +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/ffmpeg0/files/patch-libavformat-udp.c b/multimedia/ffmpeg0/files/patch-libavformat-udp.c
new file mode 100644
index 000000000000..0042372ae7b5
--- /dev/null
+++ b/multimedia/ffmpeg0/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/ffmpeg0/files/patch-libavutil-common.h b/multimedia/ffmpeg0/files/patch-libavutil-common.h
new file mode 100644
index 000000000000..9bb629bc0ab8
--- /dev/null
+++ b/multimedia/ffmpeg0/files/patch-libavutil-common.h
@@ -0,0 +1,13 @@
+--- libavutil/common.h.orig 2010-04-26 23:01:38.000000000 +0200
++++ libavutil/common.h 2010-07-10 16:06:27.038027901 +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/ffmpeg0/pkg-descr b/multimedia/ffmpeg0/pkg-descr
new file mode 100644
index 000000000000..a57c13b8945e
--- /dev/null
+++ b/multimedia/ffmpeg0/pkg-descr
@@ -0,0 +1,24 @@
+[ excerpt (with adaptations) from developer's README ]
+ffmpeg is a hyper fast realtime audio/video encoder, a streaming
+server and a generic audio and video file converter.
+
+It can convert a standard video source into several file formats
+based on DCT/motion compensation encoding. Sound is compressed in
+MPEG audio layer 2 or using an AC3 compatible stream.
+
+What makes ffmpeg interesting ?
+- Simple and efficient video encoder: outputs MPEG1, H263, Real
+ Video(tm), MPEG4, DIVX and MJPEG compatible bitstreams using the
+ same encoder core.
+- Hyper fast MPEG audio layer 2 compression (50 times faster than
+ realtime on a K6 500).
+[snip -> rest on website below]
+
+ffmpeg is made of two programs:
+* ffmpeg: soft VCR which encodes in real time to several formats.
+ It can also encode from any supported input file format to any
+ input supported format.
+* ffserver: high performance live broadcast streaming server based
+ on the ffmpeg core encoders.
+
+WWW: http://ffmpeg.mplayerhq.hu/
diff --git a/multimedia/ffmpeg0/pkg-plist b/multimedia/ffmpeg0/pkg-plist
new file mode 100644
index 000000000000..4a98fbe4e5bd
--- /dev/null
+++ b/multimedia/ffmpeg0/pkg-plist
@@ -0,0 +1,154 @@
+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
+etc/rc.d/ffserver%%SUFF%%
+include/ffmpeg%%SUFF%%/libavcodec/avcodec.h
+include/ffmpeg%%SUFF%%/libavcodec/avfft.h
+include/ffmpeg%%SUFF%%/libavcodec/dxva2.h
+include/ffmpeg%%SUFF%%/libavcodec/opt.h
+include/ffmpeg%%SUFF%%/libavcodec/vaapi.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%%/libavfilter/avcodec.h
+include/ffmpeg%%SUFF%%/libavfilter/avfilter.h
+include/ffmpeg%%SUFF%%/libavfilter/avfiltergraph.h
+include/ffmpeg%%SUFF%%/libavfilter/vsink_buffer.h
+include/ffmpeg%%SUFF%%/libavfilter/vsrc_buffer.h
+include/ffmpeg%%SUFF%%/libavformat/avformat.h
+include/ffmpeg%%SUFF%%/libavformat/avio.h
+include/ffmpeg%%SUFF%%/libavformat/version.h
+include/ffmpeg%%SUFF%%/libavutil/adler32.h
+include/ffmpeg%%SUFF%%/libavutil/aes.h
+include/ffmpeg%%SUFF%%/libavutil/attributes.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/bswap.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/imgutils.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/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/samplefmt.h
+include/ffmpeg%%SUFF%%/libavutil/sha.h
+include/ffmpeg%%SUFF%%/libavutil/sha1.h
+include/ffmpeg%%SUFF%%/libpostproc/postprocess.h
+include/ffmpeg%%SUFF%%/libswscale/swscale.h
+lib/ffmpeg%%SUFF%%/libavcodec0.a
+lib/ffmpeg%%SUFF%%/libavcodec0.so
+lib/ffmpeg%%SUFF%%/libavcodec0.so.1
+lib/ffmpeg%%SUFF%%/libavcodec0.so.52.123.0
+lib/ffmpeg%%SUFF%%/libavdevice0.a
+lib/ffmpeg%%SUFF%%/libavdevice0.so
+lib/ffmpeg%%SUFF%%/libavdevice0.so.1
+lib/ffmpeg%%SUFF%%/libavdevice0.so.52.5.0
+lib/ffmpeg%%SUFF%%/libavfilter0.a
+lib/ffmpeg%%SUFF%%/libavfilter0.so
+lib/ffmpeg%%SUFF%%/libavfilter0.so.1
+lib/ffmpeg%%SUFF%%/libavfilter0.so.1.80.0
+lib/ffmpeg%%SUFF%%/libavformat0.a
+lib/ffmpeg%%SUFF%%/libavformat0.so
+lib/ffmpeg%%SUFF%%/libavformat0.so.1
+lib/ffmpeg%%SUFF%%/libavformat0.so.52.111.0
+lib/ffmpeg%%SUFF%%/libavutil0.a
+lib/ffmpeg%%SUFF%%/libavutil0.so
+lib/ffmpeg%%SUFF%%/libavutil0.so.1
+lib/ffmpeg%%SUFF%%/libavutil0.so.50.43.0
+lib/ffmpeg%%SUFF%%/libpostproc0.a
+lib/ffmpeg%%SUFF%%/libpostproc0.so
+lib/ffmpeg%%SUFF%%/libpostproc0.so.1
+lib/ffmpeg%%SUFF%%/libpostproc0.so.51.2.0
+lib/ffmpeg%%SUFF%%/libswscale0.a
+lib/ffmpeg%%SUFF%%/libswscale0.so
+lib/ffmpeg%%SUFF%%/libswscale0.so.0.14.1
+lib/ffmpeg%%SUFF%%/libswscale0.so.1
+libdata/pkgconfig/libavcodec0.pc
+libdata/pkgconfig/libavdevice0.pc
+libdata/pkgconfig/libavfilter0.pc
+libdata/pkgconfig/libavformat0.pc
+libdata/pkgconfig/libavutil0.pc
+libdata/pkgconfig/libpostproc0.pc
+libdata/pkgconfig/libswscale0.pc
+man/man1/ffmpeg%%SUFF%%.1.gz
+man/man1/ffprobe%%SUFF%%.1.gz
+man/man1/ffserver%%SUFF%%.1.gz
+%%PORTDOCS%%%%DOCSDIR%%/APIchanges
+%%PORTDOCS%%%%DOCSDIR%%/CREDITS
+%%PORTDOCS%%%%DOCSDIR%%/INSTALL
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE
+%%PORTDOCS%%%%DOCSDIR%%/MAINTAINERS
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/RELEASE
+%%PORTDOCS%%%%DOCSDIR%%/RELEASE_NOTES
+%%PORTDOCS%%%%DOCSDIR%%/TODO
+%%PORTDOCS%%%%DOCSDIR%%/avutil.txt
+%%PORTDOCS%%%%DOCSDIR%%/build_system.txt
+%%PORTDOCS%%%%DOCSDIR%%/developer.html
+%%PORTDOCS%%%%DOCSDIR%%/faq.html
+%%PORTDOCS%%%%DOCSDIR%%/fate.txt
+%%PORTDOCS%%%%DOCSDIR%%/ffmpeg.html
+%%PORTDOCS%%%%DOCSDIR%%/ffprobe.html
+%%PORTDOCS%%%%DOCSDIR%%/ffserver.html
+%%PORTDOCS%%%%DOCSDIR%%/general.html
+%%PORTDOCS%%%%DOCSDIR%%/git-howto.txt
+%%PORTDOCS%%%%DOCSDIR%%/issue_tracker.txt
+%%PORTDOCS%%%%DOCSDIR%%/libavfilter.html
+%%PORTDOCS%%%%DOCSDIR%%/multithreading.txt
+%%PORTDOCS%%%%DOCSDIR%%/optimization.txt
+%%PORTDOCS%%%%DOCSDIR%%/rate_distortion.txt
+%%PORTDOCS%%%%DOCSDIR%%/snow.txt
+%%PORTDOCS%%%%DOCSDIR%%/soc.txt
+%%PORTDOCS%%%%DOCSDIR%%/swscale.txt
+%%PORTDOCS%%%%DOCSDIR%%/tablegen.txt
+%%PORTDOCS%%%%DOCSDIR%%/viterbi.txt
+%%DATADIR%%/libvpx-1080p.ffpreset
+%%DATADIR%%/libvpx-1080p50_60.ffpreset
+%%DATADIR%%/libvpx-360p.ffpreset
+%%DATADIR%%/libvpx-720p.ffpreset
+%%DATADIR%%/libvpx-720p50_60.ffpreset
+%%DATADIR%%/libx264-baseline.ffpreset
+%%DATADIR%%/libx264-ipod320.ffpreset
+%%DATADIR%%/libx264-ipod640.ffpreset
+%%DATADIR%%/libx264-lossless_fast.ffpreset
+%%DATADIR%%/libx264-lossless_max.ffpreset
+%%DATADIR%%/libx264-lossless_medium.ffpreset
+%%DATADIR%%/libx264-lossless_slow.ffpreset
+%%DATADIR%%/libx264-lossless_slower.ffpreset
+%%DATADIR%%/libx264-lossless_ultrafast.ffpreset
+@dirrmtry %%DATADIR%%
+%%PORTDOCS%%@dirrmtry %%DOCSDIR%%
+@dirrmtry lib/ffmpeg%%SUFF%%
+@dirrmtry include/ffmpeg%%SUFF%%/libswscale
+@dirrmtry include/ffmpeg%%SUFF%%/libpostproc
+@dirrmtry include/ffmpeg%%SUFF%%/libavutil
+@dirrmtry include/ffmpeg%%SUFF%%/libavformat
+@dirrmtry include/ffmpeg%%SUFF%%/libavfilter
+@dirrmtry include/ffmpeg%%SUFF%%/libavdevice
+@dirrmtry include/ffmpeg%%SUFF%%/libavcodec
+@dirrmtry include/ffmpeg%%SUFF%%