mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
o Commit updates after repo copy from multimedia/ffmpeg
o Update to CVS snapshot 20050511 o Add FreeBSD native byteswap support o Video capture is not working and help is appreciated on this matter. Join irc.freenode.net #freebsd-multimedia to help. Some fixes have been borrowed from [2], [3] and [4] o IPV6 support fixed [1] Submitted by: ahze [1], Jacob Meuser <jakemsr@jakemsr.com> [4], Vladimir Kushnir <vkushnir@i.kiev.ua> [4] Reviewed by: ahze, Jacob Meuser <jakemsr@jakemsr.com>, Vladimir Kushnir <vkushnir@i.kiev.ua>, countless others at FreeBSD-multimedia@FreeBSD.org mailing list Obtained from: FFmpeg CVS repo [2], OpenBSD FFmpeg port [3]
This commit is contained in:
parent
37d9112ca5
commit
2ad8ab31b2
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=135093
14 changed files with 486 additions and 383 deletions
|
@ -1,55 +1,96 @@
|
||||||
# New ports collection makefile for: ffmpeg
|
# New ports collection makefile for: ffmpeg cvs
|
||||||
# Date created: Tue Sep 25 15:52:09 BRT 2001
|
# Date created: Sun May 1 20:46:59 UTC 2005
|
||||||
# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
|
# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
|
||||||
#
|
#
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
#
|
#
|
||||||
|
|
||||||
PORTNAME= ffmpeg
|
PORTNAME= ffmpeg
|
||||||
DISTVERSION= 0.4.9-pre1
|
DISTVERSION= 0.4.9.cvs.${RELEASE_DATE}
|
||||||
PORTREVISION= 2
|
CATEGORIES= multimedia audio ipv6 net
|
||||||
CATEGORIES= multimedia audio net
|
MASTER_SITES= http://mplayerhq.hu/MPlayer/cvs/
|
||||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED}
|
DISTNAME= FFMpeg-${RELEASE_DATE}
|
||||||
MASTER_SITE_SUBDIR= ffmpeg
|
|
||||||
|
|
||||||
MAINTAINER= lioux@FreeBSD.org
|
MAINTAINER= lioux@FreeBSD.org
|
||||||
COMMENT= Hyper fast realtime audio/video encoder/converter, streaming server
|
COMMENT= Hyper fast realtime audio/video encoder/converter, streaming server
|
||||||
|
|
||||||
USE_GETOPT_LONG= yes
|
|
||||||
HAS_CONFIGURE= yes
|
HAS_CONFIGURE= yes
|
||||||
|
USE_LINUX= yes
|
||||||
|
USE_BZIP2= yes
|
||||||
USE_GMAKE= yes
|
USE_GMAKE= yes
|
||||||
USE_REINPLACE= yes
|
USE_REINPLACE= yes
|
||||||
WANT_SDL= yes
|
WANT_SDL= yes
|
||||||
CONFIGURE_ARGS= --cc="${CC}" --prefix="${PREFIX}" \
|
CONFIGURE_ARGS= --cc="${CC}" --prefix="${PREFIX}" \
|
||||||
--make="${GMAKE}" --enable-shared \
|
--make="${GMAKE}" \
|
||||||
--extra-ldflags="-L${LOCALBASE}/lib -L${X11BASE}/lib" \
|
--disable-debug \
|
||||||
--extra-libs"-lm" \
|
--enable-memalign-hack \
|
||||||
--disable-debug
|
--enable-shared \
|
||||||
|
--source-path=${WRKSRC}
|
||||||
|
|
||||||
|
FFMPEG_CFLAGS= ${CFLAGS} \
|
||||||
|
-I${WRKSRC}/libavcodec \
|
||||||
|
-I${WRKSRC}/libavcodec/i386 \
|
||||||
|
-I${WRKSRC}/libavformat \
|
||||||
|
-I${LOCALBASE}/include \
|
||||||
|
-I${X11BASE}/include \
|
||||||
|
-I. -I.. \
|
||||||
|
-L${LOCALBASE}/lib \
|
||||||
|
-L${X11BASE}/lib
|
||||||
|
FFMPEG_LDFLAGS= ${LDFLAGS} \
|
||||||
|
-L${WRKSRC}/libavcodec/libpostproc \
|
||||||
|
-L${LOCALBASE}/lib \
|
||||||
|
-L${X11BASE}/lib \
|
||||||
|
-lm \
|
||||||
|
-fpie \
|
||||||
|
-fPIE
|
||||||
|
|
||||||
PLIST_SUB= SHLIB_VERSION=${SHLIB_VERSION}
|
PLIST_SUB= SHLIB_VERSION=${SHLIB_VERSION}
|
||||||
INSTALLS_SHLIB= yes
|
INSTALLS_SHLIB= yes
|
||||||
|
|
||||||
|
NO_LATEST_LINK= yes
|
||||||
|
CONFLICTS= ffmpeg-[0-9]*-*
|
||||||
|
|
||||||
|
RELEASE_DATE= 20050511
|
||||||
SHLIB_VERSION= 1
|
SHLIB_VERSION= 1
|
||||||
#
|
|
||||||
|
MAN1= ffmpeg.1
|
||||||
|
|
||||||
|
##
|
||||||
DOC_FILES= COPYING Changelog README
|
DOC_FILES= COPYING Changelog README
|
||||||
# under subdir doc
|
# under subdir doc
|
||||||
DOC_DOCFILES= TODO faq.html ffmpeg-doc.html \
|
DOC_DOCFILES= TODO faq.html ffmpeg-doc.html \
|
||||||
ffplay-doc.html ffserver-doc.html \
|
ffplay-doc.html ffserver-doc.html \
|
||||||
hooks.html optimization.txt
|
hooks.html optimization.txt
|
||||||
PORTDOCS= ${DOC_FILES} ${DOC_DOCFILES}
|
#
|
||||||
|
PORTDOCS= *
|
||||||
|
|
||||||
|
## headers
|
||||||
HEADER_FILES= libavcodec/avcodec.h libavcodec/common.h \
|
HEADER_FILES= libavcodec/avcodec.h libavcodec/common.h \
|
||||||
libavcodec/dsputil.h
|
libavcodec/dsputil.h
|
||||||
|
#
|
||||||
|
# libraries
|
||||||
LIB_FILES= libavcodec/libavcodec.a libavformat/libavformat.a
|
LIB_FILES= libavcodec/libavcodec.a libavformat/libavformat.a
|
||||||
MAN1= ffmpeg.1
|
|
||||||
|
|
||||||
.include <bsd.port.pre.mk>
|
.include <bsd.port.pre.mk>
|
||||||
|
|
||||||
.if ${ARCH} == "alpha"
|
.if (exists(${LOCALBASE}/lib/libavformat.so))
|
||||||
BROKEN= "Does not compile on alpha"
|
BROKEN= 'Please remove previous version of ${PORTNAME} to continue build'
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if exists(${LOCALBASE}/lib/libavformat.so.0)
|
##
|
||||||
BROKEN= Please remove previous version of ${PORTNAME} to continue build
|
## default options
|
||||||
|
##
|
||||||
|
GPLLIBS=yes
|
||||||
|
WITHOUT_LIBA52=yes
|
||||||
|
# video captuure is not working as of yet
|
||||||
|
WITH_VIDEO_CAPTURE=no
|
||||||
|
CONFIGURE_ARGS+=--disable-v4l
|
||||||
|
|
||||||
|
##
|
||||||
|
## support detection
|
||||||
|
##
|
||||||
|
.if !defined(WITHOUT_IPV6) && ${OSVERSION} >= 400014
|
||||||
|
WITH_IPV6= yes
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -57,26 +98,23 @@ BROKEN= Please remove previous version of ${PORTNAME} to continue build
|
||||||
##
|
##
|
||||||
.if ${ARCH} != "i386"
|
.if ${ARCH} != "i386"
|
||||||
WITHOUT_MMX= yes
|
WITHOUT_MMX= yes
|
||||||
.else
|
|
||||||
# only for i386
|
|
||||||
EXTRA_PATCHES+= ${FILESDIR}/extra-bktr-patch-libavformat::Makefile
|
|
||||||
#. if ${OSVERSION} >= 502000 && !defined(WITH_OPTIMIZED_CFLAGS)
|
|
||||||
#CFLAGS+=-fomit-frame-pointer
|
|
||||||
#WITH_OPTIMIZED_CFLAGS=yes
|
|
||||||
#. endif
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
##
|
||||||
## lib detection
|
## lib detection
|
||||||
##
|
##
|
||||||
##
|
## dts
|
||||||
## SDL
|
.if exists(${LOCALBASE}/lib/libdts.a)
|
||||||
.if ${HAVE_SDL:Msdl}
|
WITH_DTS=yes
|
||||||
WITH_SDL=yes
|
|
||||||
.endif
|
.endif
|
||||||
## faac
|
## faac
|
||||||
.if exists(${LOCALBASE}/lib/libfaac.so.0)
|
.if exists(${LOCALBASE}/lib/libfaac.so)
|
||||||
WITH_FAAC=yes
|
WITH_FAAC=yes
|
||||||
.endif
|
.endif
|
||||||
|
## faad
|
||||||
|
.if exists(${LOCALBASE}/lib/libfaad.so)
|
||||||
|
WITH_FAAD=yes
|
||||||
|
.endif
|
||||||
## freetype2
|
## freetype2
|
||||||
.if exists(${LOCALBASE}/lib/libfreetype.so)
|
.if exists(${LOCALBASE}/lib/libfreetype.so)
|
||||||
WITH_FREETYPE2=yes
|
WITH_FREETYPE2=yes
|
||||||
|
@ -86,110 +124,71 @@ WITH_FREETYPE2=yes
|
||||||
WITH_IMLIB2=yes
|
WITH_IMLIB2=yes
|
||||||
.endif
|
.endif
|
||||||
## lame mp3
|
## lame mp3
|
||||||
.if exists(${LOCALBASE}/lib/libmp3lame.so.0)
|
.if exists(${LOCALBASE}/lib/libmp3lame.so)
|
||||||
WITH_MP3=yes
|
WITH_MP3=yes
|
||||||
.endif
|
.endif
|
||||||
|
## ogg
|
||||||
|
.if exists(${LOCALBASE}/lib/libogg.so)
|
||||||
|
WITH_OGG=yes
|
||||||
|
.endif
|
||||||
|
## sdl
|
||||||
|
.if ${HAVE_SDL:Msdl}
|
||||||
|
WITH_SDL=yes
|
||||||
|
.endif
|
||||||
|
## theora
|
||||||
|
.if exists(${LOCALBASE}/lib/libtheora.so)
|
||||||
|
## XXX theora does not work for the time being
|
||||||
|
WITH_THEORA=yes
|
||||||
|
.endif
|
||||||
## vorbis
|
## vorbis
|
||||||
.if exists(${LOCALBASE}/lib/libvorbisenc.so.2)
|
.if exists(${LOCALBASE}/lib/libvorbisenc.so)
|
||||||
WITH_VORBIS=yes
|
WITH_VORBIS=yes
|
||||||
.endif
|
.endif
|
||||||
.if exists(${LOCALBASE}/lib/libfaad.so.0)
|
# x264
|
||||||
WITH_FAAD=yes
|
.if exists(${LOCALBASE}/lib/libx264.so)
|
||||||
|
WITH_X264=yes
|
||||||
|
.endif
|
||||||
|
# xvid
|
||||||
|
.if exists(${LOCALBASE}/lib/libxvidcore.so)
|
||||||
|
WITH_XVID=yes
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
##
|
||||||
## support activation
|
## support activation
|
||||||
##
|
##
|
||||||
## PORTDOCS
|
## PORTDOCS
|
||||||
.ifndef(NOPORTDOCS)
|
.ifndef(NOPORTDOCS)
|
||||||
BUILD_DEPENDS+= texi2html:${PORTSDIR}/textproc/texi2html
|
BUILD_DEPENDS+= texi2html:${PORTSDIR}/textproc/texi2html
|
||||||
.endif
|
.endif
|
||||||
## disable a52
|
|
||||||
#.ifndef(WITHOUT_LIBA52)
|
|
||||||
#LIB_DEPENDS+= a52.0:${PORTSDIR}/audio/liba52
|
|
||||||
#
|
|
||||||
#CONFIGURE_ARGS+= --enable-a52 \
|
|
||||||
# --enable-a52bin
|
|
||||||
#.else
|
|
||||||
#CONFIGURE_ARGS+= --enable-a52 \
|
|
||||||
# --disable-a52bin
|
|
||||||
#.endif
|
|
||||||
GPLLIBS= yes
|
|
||||||
# --enable-a52bin breaks build
|
|
||||||
CONFIGURE_ARGS+= --enable-a52
|
|
||||||
## enable freetype2
|
|
||||||
.if defined(WITH_FREETYPE2)
|
|
||||||
LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2
|
|
||||||
|
|
||||||
PLIST_SUB+= DRAWTEXT=""
|
|
||||||
.else
|
|
||||||
PLIST_SUB+= DRAWTEXT="@comment "
|
|
||||||
.endif
|
|
||||||
## enable imlib2
|
|
||||||
.if !defined(WITHOUT_VHOOK) && defined(WITH_IMLIB2)
|
|
||||||
LIB_DEPENDS+= Imlib2.3:${PORTSDIR}/graphics/imlib2
|
|
||||||
|
|
||||||
PLIST_SUB+= IMLIB2=""
|
|
||||||
.else
|
|
||||||
PLIST_SUB+= IMLIB2="@comment "
|
|
||||||
.endif
|
|
||||||
## disable mmx
|
|
||||||
.ifdef(WITHOUT_MMX)
|
|
||||||
CONFIGURE_ARGS+= --disable-mmx
|
|
||||||
.endif
|
|
||||||
## SDL
|
|
||||||
.ifdef(WITH_SDL)
|
|
||||||
USE_SDL= sdl
|
|
||||||
|
|
||||||
MAN1+= ffplay.1
|
|
||||||
|
|
||||||
PLIST_SUB+= SDL=""
|
|
||||||
.else
|
|
||||||
PLIST_SUB+= SDL="@comment "
|
|
||||||
.endif
|
|
||||||
## mp3
|
|
||||||
.ifdef(WITH_MP3)
|
|
||||||
LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
|
|
||||||
|
|
||||||
CONFIGURE_ARGS+= --enable-mp3lame
|
|
||||||
.endif
|
|
||||||
## optimization
|
## optimization
|
||||||
.if ${OSVERSION} > 502124
|
# breaks ffmpeg build if defined
|
||||||
|
FFMPEG_CFLAGS+= -fno-force-addr
|
||||||
|
|
||||||
.ifdef(WITH_OPTIMIZED_CFLAGS)
|
.ifdef(WITH_OPTIMIZED_CFLAGS)
|
||||||
CONFIGURE_ARGS+= --extra-cflags="-fPIC -DPIC -I${LOCALBASE}/include \
|
FFMPEG_CFLAGS+= -O3 -ffast-math -fomit-frame-pointer
|
||||||
-I${X11BASE}/include \
|
. if ${OSVERSION} > 502124
|
||||||
-ffast-math -fomit-frame-pointer -fno-unit-at-a-time" \
|
FFMPEG_CFLAGS+= -fno-unit-at-a-time
|
||||||
--extra-ldflags="-L${LOCALBASE}/lib -L${X11BASE}/lib -lm"
|
|
||||||
. else
|
|
||||||
CONFIGURE_ARGS+= --extra-cflags="-fPIC -DPIC -I${LOCALBASE}/include \
|
|
||||||
-I${X11BASE}/include \
|
|
||||||
-fomit-frame-pointer -fno-unit-at-a-time" \
|
|
||||||
--extra-ldflags="-L${LOCALBASE}/lib -L${X11BASE}/lib -lm "
|
|
||||||
# --disable-opts
|
|
||||||
. endif
|
. endif
|
||||||
.else
|
|
||||||
CONFIGURE_ARGS+= --extra-cflags="-fPIC -DPIC -I${LOCALBASE}/include \
|
|
||||||
-I${X11BASE}/include \
|
|
||||||
-ffast-math -fomit-frame-pointer" \
|
|
||||||
--extra-ldflags="-L${LOCALBASE}/lib -L${X11BASE}/lib -lm"
|
|
||||||
. else
|
|
||||||
CONFIGURE_ARGS+= --extra-cflags="-fPIC -DPIC -I${LOCALBASE}/include \
|
|
||||||
-I${X11BASE}/include" \
|
|
||||||
--extra-ldflags="-L${WRKSRC}/libavcodec -L${LOCALBASE}/lib -L${X11BASE}/lib -lm "
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
## vhook
|
## a52
|
||||||
.ifndef(WITHOUT_VHOOK)
|
.ifndef(WITHOUT_LIBA52)
|
||||||
PLIST_SUB+= VHOOK=""
|
LIB_DEPENDS+= a52.0:${PORTSDIR}/audio/liba52
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-a52 \
|
||||||
|
--enable-a52bin
|
||||||
|
|
||||||
|
# libavcodec needs it
|
||||||
|
FFMPEG_LDFLAGS+= -la52
|
||||||
.else
|
.else
|
||||||
CONFIGURE_ARGS+= -disable-vhook
|
CONFIGURE_ARGS+= --enable-a52 \
|
||||||
|
--disable-a52bin
|
||||||
PLIST_SUB+= VHOOK="@comment "
|
|
||||||
.endif
|
.endif
|
||||||
## vorbis
|
## dts
|
||||||
.ifdef(WITH_VORBIS)
|
.ifdef(WITH_DTS)
|
||||||
LIB_DEPENDS+= vorbisenc.2:${PORTSDIR}/audio/libvorbis
|
BUILD_DEPENDS+= ${LOCALBASE}/lib/libdts.a:${PORTSDIR}/multimedia/libdts
|
||||||
|
|
||||||
CONFIGURE_ARGS+= --enable-vorbis
|
CONFIGURE_ARGS+= --enable-dts
|
||||||
.endif
|
.endif
|
||||||
## faac
|
## faac
|
||||||
.ifdef(WITH_FAAC)
|
.ifdef(WITH_FAAC)
|
||||||
|
@ -201,64 +200,194 @@ CONFIGURE_ARGS+= --enable-faac
|
||||||
.ifdef(WITH_FAAD)
|
.ifdef(WITH_FAAD)
|
||||||
LIB_DEPENDS+= faad.0:${PORTSDIR}/audio/faad
|
LIB_DEPENDS+= faad.0:${PORTSDIR}/audio/faad
|
||||||
|
|
||||||
CONFIGURE_ARGS+= --enable-faad --enable-faadbin
|
CONFIGURE_ARGS+= --enable-faad \
|
||||||
GPLLIBS= yes
|
--enable-faadbin
|
||||||
.endif
|
|
||||||
## GPLLIBS
|
|
||||||
.ifdef(GPLLIBS)
|
|
||||||
CONFIGURE_ARGS+= --enable-gpl
|
|
||||||
.endif
|
|
||||||
## post processing
|
|
||||||
.ifndef(WITHOUT_POSTPROCESS)
|
|
||||||
CONFIGURE_ARGS+= --enable-shared-pp
|
|
||||||
PLIST_FILES+= include/ffmpeg/postproc/postprocess.h
|
|
||||||
PLIST_DIRS+= include/ffmpeg/postproc
|
|
||||||
.endif
|
.endif
|
||||||
## ffserver
|
## ffserver
|
||||||
.ifdef(WITHOUT_FFMPEG_FFSERVER)
|
.ifdef(WITHOUT_FFMPEG_FFSERVER)
|
||||||
CONFIGURE_ARGS+= --disable-ffserver
|
CONFIGURE_ARGS+= --disable-ffserver
|
||||||
|
|
||||||
PLIST_SUB+= FFSERVER="@comment "
|
|
||||||
.else
|
.else
|
||||||
USE_RC_SUBR= yes
|
USE_RC_SUBR= yes
|
||||||
|
|
||||||
MAN1+= ffserver.1
|
MAN1+= ffserver.1
|
||||||
|
|
||||||
PLIST_SUB+= FFSERVER=""
|
PLIST_FILES+= bin/ffserver \
|
||||||
|
etc/ffserver.conf.sample \
|
||||||
|
etc/rc.d/ffserver.sh
|
||||||
|
.endif
|
||||||
|
## gpl libs
|
||||||
|
.ifdef(GPLLIBS)
|
||||||
|
CONFIGURE_ARGS+= --enable-gpl
|
||||||
|
.endif
|
||||||
|
## disable mmx
|
||||||
|
.ifdef(WITHOUT_MMX)
|
||||||
|
CONFIGURE_ARGS+= --disable-mmx
|
||||||
|
|
||||||
|
WITHOUT_BUILTIN_VECTOR= yes
|
||||||
|
.endif
|
||||||
|
## mp3
|
||||||
|
.ifdef(WITH_MP3)
|
||||||
|
LIB_DEPENDS+= mp3lame.0:${PORTSDIR}/audio/lame
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-mp3lame
|
||||||
|
.endif
|
||||||
|
## ogg
|
||||||
|
.ifdef(WITH_OGG)
|
||||||
|
LIB_DEPENDS+= ogg.5:${PORTSDIR}/audio/libogg
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-libogg
|
||||||
|
.endif
|
||||||
|
## post processing
|
||||||
|
.ifndef(WITHOUT_POSTPROCESS)
|
||||||
|
CONFIGURE_ARGS+= --enable-pp \
|
||||||
|
--enable-shared-pp
|
||||||
|
|
||||||
|
LIB_FILES+= libavcodec/libpostproc/libpostproc.a
|
||||||
|
PLIST_DIRS+= include/ffmpeg/postproc \
|
||||||
|
include/ffmpeg
|
||||||
|
PLIST_FILES+= include/ffmpeg/postproc/postprocess.h
|
||||||
|
.endif
|
||||||
|
## pthreads
|
||||||
|
.ifndef(WITHOUT_PTHREADS)
|
||||||
|
CONFIGURE_ARGS+= --enable-pthreads
|
||||||
|
.endif
|
||||||
|
## SDL
|
||||||
|
.ifdef(WITH_SDL)
|
||||||
|
USE_SDL= sdl
|
||||||
|
|
||||||
|
MAN1+= ffplay.1
|
||||||
|
|
||||||
|
PLIST_FILES+= bin/ffplay
|
||||||
|
.else
|
||||||
|
CONFIGURE_ARGS+= --disable-ffplay
|
||||||
|
.endif
|
||||||
|
## theora
|
||||||
|
.undef WITH_THEORA
|
||||||
|
.ifdef(WITH_THEORA)
|
||||||
|
LIB_DEPENDS+= theora.1:${PORTSDIR}/multimedia/libtheora
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-theora
|
||||||
|
.endif
|
||||||
|
## vorbis
|
||||||
|
.ifdef(WITH_VORBIS)
|
||||||
|
LIB_DEPENDS+= vorbisenc.2:${PORTSDIR}/audio/libvorbis
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-vorbis
|
||||||
|
FFMPEG_CFLAGS+= -I${LOCALBASE}/include/vorbis
|
||||||
|
.endif
|
||||||
|
# x264
|
||||||
|
.ifdef(WITH_X264)
|
||||||
|
LIB_DEPENDS+= x264.1:${PORTSDIR}/multimedia/x264
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-x264
|
||||||
|
.endif
|
||||||
|
## builtin vector, requires mmx
|
||||||
|
.if !defined(WITHOUT_BUILTIN_VECTOR) && defined(WITH_BUILTIN_VECTOR)
|
||||||
|
FFMPEG_CFLAGS+= -msse
|
||||||
|
.endif
|
||||||
|
## vhook
|
||||||
|
.ifndef(WITHOUT_VHOOK)
|
||||||
|
PLIST_DIRS+= lib/vhook
|
||||||
|
PLIST_FILES+= \
|
||||||
|
lib/vhook/fish.so \
|
||||||
|
lib/vhook/null.so \
|
||||||
|
lib/vhook/ppm.so \
|
||||||
|
lib/vhook/watermark.so
|
||||||
|
|
||||||
|
# enable freetype2
|
||||||
|
. ifdef(WITH_FREETYPE2)
|
||||||
|
LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2
|
||||||
|
|
||||||
|
PLIST_FILES+= lib/vhook/drawtext.so
|
||||||
|
. endif # freetype2
|
||||||
|
|
||||||
|
# enable imlib2
|
||||||
|
. ifdef(WITH_IMLIB2)
|
||||||
|
LIB_DEPENDS+= Imlib2.3:${PORTSDIR}/graphics/imlib2
|
||||||
|
|
||||||
|
PLIST_FILES+= lib/vhook/imlib2.so
|
||||||
|
. else
|
||||||
|
WITHOUT_IMLIB2= yes
|
||||||
|
. endif # imlib2
|
||||||
|
|
||||||
|
.else
|
||||||
|
CONFIGURE_ARGS+= -disable-vhook
|
||||||
|
.endif ## WITHOUT_VHOOK
|
||||||
|
## xvid
|
||||||
|
.ifdef(WITH_XVID)
|
||||||
|
LIB_DEPENDS+= xvidcore.4:${PORTSDIR}/multimedia/xvid
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --enable-xvid
|
||||||
.endif
|
.endif
|
||||||
PLIST_DIRS+= include/ffmpeg
|
|
||||||
|
|
||||||
pre-everything::
|
pre-everything::
|
||||||
.ifndef(WITH_FREETYPE2)
|
.ifndef(WITHOUT_LIBA52)
|
||||||
@${ECHO_MSG} 'Define WITH_FREETYPE2 to enable drawtext FREETYPE2 codec'
|
@${ECHO_MSG} 'You can disable liba52 support by defining WITHOUT_LIBA52'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
.ifndef(WITHOUT_LIBA52)
|
.ifndef(WITH_BUILTIN_VECTOR)
|
||||||
@${ECHO_MSG} "You can disable liba52 support by defining WITHOUT_LIBA52"
|
@${ECHO_MSG} 'Define WITH_BUILTIN_VECTOR if your system supports SSE"
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITH_DTS)
|
||||||
|
@${ECHO_MSG} 'Define WITH_DTS to enable DTS codec'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITH_FAAC)
|
||||||
|
@${ECHO_MSG} 'Define WITH_FAAC to enable FAAC codec'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITH_FAAD)
|
||||||
|
@${ECHO_MSG} 'Define WITH_FAAD to enable FAAD codec'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITHOUT_FFMPEG_FFSERVER)
|
||||||
|
@${ECHO_MSG} 'Define WITHOUT_FFMPEG_FFSERVER to disable ffserver build'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITH_FREETYPE2)
|
||||||
|
@${ECHO_MSG} 'Define WITH_FREETYPE2 to enable VHOOK drawtext FREETYPE2 codec'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITHOUT_IPV6)
|
||||||
|
@${ECHO_MSG} 'Define WITHOUT_IPV6 to disable IPV6 network support'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
.ifndef(WITHOUT_MMX)
|
.ifndef(WITHOUT_MMX)
|
||||||
@${ECHO_MSG} "Define WITHOUT_MMX if your system does not support MMX"
|
@${ECHO_MSG} 'Define WITHOUT_MMX if your system does not support MMX'
|
||||||
@${ECHO_MSG}
|
|
||||||
.endif
|
|
||||||
.ifndef(WITH_SDL)
|
|
||||||
@${ECHO_MSG} 'Define WITH_SDL to enable ffplay SDL version'
|
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
.ifndef(WITH_MP3)
|
.ifndef(WITH_MP3)
|
||||||
@${ECHO_MSG} 'Define WITH_MP3 to enable lame MP3 codec'
|
@${ECHO_MSG} 'Define WITH_MP3 to enable lame MP3 codec'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
|
.ifndef(WITH_OGG)
|
||||||
|
@${ECHO_MSG} 'Define WITH_OGG to enable OGG codec'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
.ifndef(WITH_OPTIMIZED_CFLAGS)
|
.ifndef(WITH_OPTIMIZED_CFLAGS)
|
||||||
@${ECHO_MSG} 'You can enable additional compilation optimizations'
|
@${ECHO_MSG} 'You can enable additional compilation optimizations'
|
||||||
@${ECHO_MSG} 'by defining WITH_OPTIMIZED_CFLAGS'
|
@${ECHO_MSG} 'by defining WITH_OPTIMIZED_CFLAGS'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
|
.ifndef(WITHOUT_PTHREADS)
|
||||||
|
@${ECHO_MSG} 'Define WITHOUT_PTHREADS to disable threading support'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
.ifndef(WITHOUT_POSTPROCESS)
|
.ifndef(WITHOUT_POSTPROCESS)
|
||||||
@${ECHO_MSG} 'You can disable post process support by defining'
|
@${ECHO_MSG} 'You can disable post process support by defining'
|
||||||
@${ECHO_MSG} 'WITHOUT_POSTPROCESS'
|
@${ECHO_MSG} 'WITHOUT_POSTPROCESS'
|
||||||
@${ECHO_MSG} 'Beware that this might break some ports that require it'
|
@${ECHO_MSG} 'Beware that this might break some ports that require it'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
|
.ifndef(WITH_SDL)
|
||||||
|
@${ECHO_MSG} 'Define WITH_SDL to enable ffplay SDL version'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITH_THEORA)
|
||||||
|
@${ECHO_MSG} 'Define WITH_THEORA to enable THEORA codec'
|
||||||
|
@${ECHO_MSG}
|
||||||
|
.endif
|
||||||
.ifndef(WITHOUT_VHOOK)
|
.ifndef(WITHOUT_VHOOK)
|
||||||
@${ECHO_MSG} 'You can disable vhook support by defining WITHOUT_VHOOK'
|
@${ECHO_MSG} 'You can disable vhook support by defining WITHOUT_VHOOK'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
|
@ -267,16 +396,12 @@ pre-everything::
|
||||||
@${ECHO_MSG} 'Define WITH_VORBIS to enable libvorbisenc VORBIS codec'
|
@${ECHO_MSG} 'Define WITH_VORBIS to enable libvorbisenc VORBIS codec'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
.ifndef(WITH_FAAC)
|
.ifndef(WITH_X264)
|
||||||
@${ECHO_MSG} 'Define WITH_FAAC to enable libfaac'
|
@${ECHO_MSG} 'Define WITH_VORBIS to enable X264 codec'
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
.ifndef(WITH_FAAD)
|
.ifndef(WITH_XVID)
|
||||||
@${ECHO_MSG} 'Define WITH_FAAD to enable libfaad codec'
|
@${ECHO_MSG} 'Define WITH_VORBIS to enable XVID codec'
|
||||||
@${ECHO_MSG}
|
|
||||||
.endif
|
|
||||||
.ifndef(WITHOUT_FFMPEG_FFSERVER)
|
|
||||||
@${ECHO_MSG} 'Define WITHOUT_FFMPEG_FFSERVER to disable ffserver build'
|
|
||||||
@${ECHO_MSG}
|
@${ECHO_MSG}
|
||||||
.endif
|
.endif
|
||||||
.if ${ARCH} == "i386"
|
.if ${ARCH} == "i386"
|
||||||
|
@ -300,12 +425,60 @@ post-extract:
|
||||||
.endif # ${ARCH} == i386
|
.endif # ${ARCH} == i386
|
||||||
|
|
||||||
post-patch:
|
post-patch:
|
||||||
|
# {C,LD}FLAGS safeness
|
||||||
|
@${FIND} ${WRKDIR} -type f -name "Makefile" -print0 | \
|
||||||
|
${XARGS} -0 -n 5 -x \
|
||||||
|
${REINPLACE_CMD} -E \
|
||||||
|
-e 's@^(CFLAGS.+)$$@\1 ${FFMPEG_CFLAGS}@' \
|
||||||
|
-e 's@^(FFLIBS|LDFLAGS)(.+)$$@\1\2 ${FFMPEG_LDFLAGS}@' \
|
||||||
|
# fix x264 math, use correct log base 2 from math(3)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's| log2| log|' \
|
||||||
|
${WRKSRC}/libavcodec/x264.c
|
||||||
# force detection of texi2html
|
# force detection of texi2html
|
||||||
.ifndef(NOPORTDOCS)
|
.ifndef(NOPORTDOCS)
|
||||||
@${REINPLACE_CMD} -E \
|
@${REINPLACE_CMD} -E \
|
||||||
-e 's|^(texi2html=)no|\1yes|' \
|
-e 's|^(texi2html=)no|\1yes|' \
|
||||||
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
||||||
.endif
|
.endif
|
||||||
|
.if ${ARCH} == "i386"
|
||||||
|
.ifdef(WITH_VIDEO_CAPTURE)
|
||||||
|
# we support "v4l" per default through Steve O'Hara-Smith's bktr(4)
|
||||||
|
# patch
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|^(v4l).*$$|\1="yes"|' \
|
||||||
|
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
||||||
|
# set proper audio device
|
||||||
|
.ifdef(WITH_AUDIO_DEV)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's!/dev/dsp!${WITH_AUDIO_DEV:Q}!' \
|
||||||
|
${WRKSRC}/libavformat/audio.c
|
||||||
|
.endif
|
||||||
|
.ifdef(WITH_BKTR_DEV)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e "s!idev = 0!idev = ${WITH_BKTR_DEV}!" \
|
||||||
|
${WRKSRC}/libavformat/grab_bsdbktr.c
|
||||||
|
.endif
|
||||||
|
.ifdef(WITH_BKTR_FORMAT)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e "s!VIDEO_FORMAT NTSC!VIDEO_FORMAT ${WITH_BKTR_FORMAT}!" \
|
||||||
|
${WRKSRC}/libavformat/grab_bsdbktr.c
|
||||||
|
.endif
|
||||||
|
.endif # WITH_VIDEO_CAPTURE
|
||||||
|
.endif # ${ARCH} == i386
|
||||||
|
# malloc.h was deprecated in favor of stdlib.h
|
||||||
|
# do not shadow fprintf(3) with bogus statement
|
||||||
|
@${FIND} ${WRKSRC} -type f -print0 | \
|
||||||
|
${XARGS} -0 -n 5 -x ${REINPLACE_CMD} -E \
|
||||||
|
-e 's|malloc\.h|stdlib\.h|' \
|
||||||
|
-e 's|^.*please_use_av_log.*$$||'
|
||||||
|
.ifndef(WITHOUT_LIBA52)
|
||||||
|
@${REINPLACE_CMD} -e 's|-ldl||' \
|
||||||
|
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|../(avcodec.h)|\1|' \
|
||||||
|
${WRKSRC}/libavcodec/liba52/a52.h
|
||||||
|
.endif
|
||||||
.ifndef(WITHOUT_FFMPEG_FFSERVER)
|
.ifndef(WITHOUT_FFMPEG_FFSERVER)
|
||||||
@${SED} -e 's|%%PREFIX%%|${PREFIX}|; s|%%RC_SUBR%%|${RC_SUBR}|' \
|
@${SED} -e 's|%%PREFIX%%|${PREFIX}|; s|%%RC_SUBR%%|${RC_SUBR}|' \
|
||||||
${FILESDIR}/ffserver.sh >${WRKDIR}/ffserver.sh
|
${FILESDIR}/ffserver.sh >${WRKDIR}/ffserver.sh
|
||||||
|
@ -314,30 +487,18 @@ post-patch:
|
||||||
@${REINPLACE_CMD} -e 's!NoDaemon!# NoDaemon!g' \
|
@${REINPLACE_CMD} -e 's!NoDaemon!# NoDaemon!g' \
|
||||||
${WRKSRC}/doc/ffserver.conf
|
${WRKSRC}/doc/ffserver.conf
|
||||||
.endif
|
.endif
|
||||||
.if ${ARCH} == "i386"
|
.if defined(WITH_IMLIB2) && !defined(WITHOUT_IMLIB2)
|
||||||
# we support "v4l" per default through Steve O'Hara-Smith's bktr(4)
|
@${REINPLACE_CMD} -E \
|
||||||
# patch
|
-e 's|^(imlib2).*$$|\1=yes|' \
|
||||||
@${REINPLACE_CMD} -E -e \
|
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
||||||
's|^(v4l).*$$|\1="yes"|' \
|
@${REINPLACE_CMD} -E \
|
||||||
${WRKSRC}/configure
|
-e 's|(-lImlib2)|-L ${X11BASE}/lib \1|' \
|
||||||
.ifdef(WITH_BKTR_FORMAT)
|
${WRKSRC}/vhook/Makefile
|
||||||
@${REINPLACE_CMD} -e \
|
|
||||||
"s!VIDEO_FORMAT NTSC!VIDEO_FORMAT ${WITH_BKTR_FORMAT}!" \
|
|
||||||
${WRKSRC}/libavformat/grab_bsdbktr.c
|
|
||||||
.endif
|
.endif
|
||||||
.ifdef(WITH_BKTR_DEV)
|
.if defined(WITH_IPV6) && ${OSVERSION} >= 400014
|
||||||
@${REINPLACE_CMD} -e \
|
@${REINPLACE_CMD} -E \
|
||||||
"s!idev = 0!idev = ${WITH_BKTR_DEV}!" \
|
-e 's|^(ipv6).*$$|\1=yes|' \
|
||||||
${WRKSRC}/libavformat/grab_bsdbktr.c
|
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
||||||
.endif
|
|
||||||
.endif # ${ARCH} == i386
|
|
||||||
# malloc.h was deprecated in favor of stdlib.h
|
|
||||||
@${FIND} ${WRKSRC} -type f | \
|
|
||||||
${XARGS} -n 10 ${REINPLACE_CMD} -e \
|
|
||||||
's|malloc\.h|stdlib\.h|'
|
|
||||||
.ifndef(WITHOUT_LIBA52)
|
|
||||||
@${REINPLACE_CMD} -e 's|-ldl||' \
|
|
||||||
${WRKSRC}/configure
|
|
||||||
.endif
|
.endif
|
||||||
.ifdef(WITH_SDL)
|
.ifdef(WITH_SDL)
|
||||||
@${REINPLACE_CMD} -E \
|
@${REINPLACE_CMD} -E \
|
||||||
|
@ -347,7 +508,45 @@ post-patch:
|
||||||
${XARGS} -n 10 ${REINPLACE_CMD} -E \
|
${XARGS} -n 10 ${REINPLACE_CMD} -E \
|
||||||
-e 's|#include <SDL|#include <SDL11/SDL|'
|
-e 's|#include <SDL|#include <SDL11/SDL|'
|
||||||
.endif
|
.endif
|
||||||
|
.ifndef(WITHOUT_POSTPROCESS)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|^(SPPVERSION).*$$|\1=${SHLIB_VERSION}|' \
|
||||||
|
-e 's|\$$[(]SPPLIB[)].0|$$(SPPLIB).${SHLIB_VERSION}|' \
|
||||||
|
${WRKSRC}/libavcodec/libpostproc/Makefile
|
||||||
|
# XXX - libavcodec.so needs libpostproc.so but looks for libpostproc.so.0
|
||||||
|
# exists
|
||||||
|
@${LN} -sf libpostproc.so \
|
||||||
|
${WRKSRC}/libavcodec/libpostproc/libpostproc.so.${SHLIB_VERSION}
|
||||||
|
.endif
|
||||||
|
.ifndef(WITHOUT_BUILTIN_VECTOR)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|^(builtin_vector).*$$|\1=yes|' \
|
||||||
|
${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}
|
||||||
|
.endif
|
||||||
|
|
||||||
|
post-configure:
|
||||||
|
.ifdef(WITH_DTS)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|-ldts|${LOCALBASE}/lib/libdts.a|' \
|
||||||
|
-e 's|(-lx264)|-L${LOCALBASE}/lib \1|' \
|
||||||
|
${WRKSRC}/config.mak \
|
||||||
|
${WRKSRC}/libavcodec/Makefile
|
||||||
|
.endif
|
||||||
|
.ifdef(WITH_X264)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|(-lx264)|-L${LOCALBASE}/lib \1|' \
|
||||||
|
${WRKSRC}/config.mak \
|
||||||
|
${WRKSRC}/libavcodec/Makefile
|
||||||
|
.endif
|
||||||
|
.ifndef(WITH_THEORA)
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|^(CONFIG_LIBTHEORA).*$$|\1=no|' \
|
||||||
|
${WRKSRC}/config.mak
|
||||||
|
.endif
|
||||||
|
# shared libraries PIC
|
||||||
|
@${REINPLACE_CMD} -E \
|
||||||
|
-e 's|^(PIC[[:space:]]*=.*)$$|\1 -fpic -fPIC -DPIC|' \
|
||||||
|
${WRKSRC}/config.mak
|
||||||
post-install:
|
post-install:
|
||||||
.ifndef(NOPORTDOCS)
|
.ifndef(NOPORTDOCS)
|
||||||
@${MKDIR} ${DOCSDIR}
|
@${MKDIR} ${DOCSDIR}
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
MD5 (ffmpeg-0.4.9-pre1.tar.gz) = ea5587e3c66d50b1503b82ac4179c303
|
MD5 (FFMpeg-20050511.tar.bz2) = 01d4e80af7ef832ad9a25204a74ab921
|
||||||
SIZE (ffmpeg-0.4.9-pre1.tar.gz) = 1611332
|
SIZE (FFMpeg-20050511.tar.bz2) = 1533468
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- libavformat/Makefile.orig Wed Jan 1 21:00:22 2003
|
|
||||||
+++ libavformat/Makefile Wed Jan 1 21:01:27 2003
|
|
||||||
@@ -21,7 +21,7 @@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_VIDEO4LINUX),yes)
|
|
||||||
-OBJS+= grab.o
|
|
||||||
+OBJS+= grab_bsdbktr.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_AUDIO_OSS),yes)
|
|
|
@ -80,7 +80,7 @@ static void catchsignal(int signal)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bktr_init (const char *video_device, int width, int height,
|
static int bktr_init (const char *video_device, int width, int height,
|
||||||
int format, u_int8_t **video_buf, int *video_fd, int *tuner_fd,
|
int format, u_int8_t **video_buf_local, int *video_fd, int *tuner_fd,
|
||||||
int idev, double frequency)
|
int idev, double frequency)
|
||||||
{
|
{
|
||||||
struct meteor_geomet geo;
|
struct meteor_geomet geo;
|
||||||
|
@ -127,10 +127,11 @@ static int bktr_init (const char *video_device, int width, int height,
|
||||||
perror("Warning: Tuner not opened continuing");
|
perror("Warning: Tuner not opened continuing");
|
||||||
}
|
}
|
||||||
|
|
||||||
*video_fd = open (video_device, O_RDONLY);
|
// *video_fd = open (video_device, O_RDONLY);
|
||||||
|
*video_fd = open (video_device, O_RDWR);
|
||||||
if (*video_fd < 0) {
|
if (*video_fd < 0) {
|
||||||
perror (video_device);
|
perror (video_device);
|
||||||
return -1;
|
return AVERROR_IO;
|
||||||
}
|
}
|
||||||
|
|
||||||
geo.rows = height;
|
geo.rows = height;
|
||||||
|
@ -167,9 +168,9 @@ static int bktr_init (const char *video_device, int width, int height,
|
||||||
perror ("METEORSINPUT");
|
perror ("METEORSINPUT");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
*video_buf = (u_int8_t *) mmap((caddr_t)0, width*height*2,
|
*video_buf_local = (u_int8_t *) mmap((void *)0, width*height*2,
|
||||||
PROT_READ, MAP_SHARED, *video_fd, (off_t) 0);
|
PROT_READ, MAP_SHARED, *video_fd, (off_t) 0);
|
||||||
if (*video_buf == MAP_FAILED) {
|
if (*video_buf_local == MAP_FAILED) {
|
||||||
perror ("mmap");
|
perror ("mmap");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -185,23 +186,29 @@ static int bktr_init (const char *video_device, int width, int height,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bktr_getframe(u_int64_t per_frame)
|
static void bktr_getframe(VideoData *s)
|
||||||
{
|
{
|
||||||
u_int64_t curtime;
|
int64_t curtime, delay;
|
||||||
static u_int64_t last_frame_time = 0;
|
struct timespec ts;
|
||||||
|
|
||||||
|
/* Calculate the time of the next frame */
|
||||||
|
s->per_frame += int64_t_C(1000000);
|
||||||
|
|
||||||
|
/* wait based on the frame rate */
|
||||||
|
for(;;) {
|
||||||
curtime = av_gettime();
|
curtime = av_gettime();
|
||||||
if (!last_frame_time
|
delay = s->per_frame * s->frame_rate_base / s->frame_rate - curtime;
|
||||||
|| ((last_frame_time + per_frame) > curtime)) {
|
if (delay <= 0) {
|
||||||
if (!usleep (last_frame_time + per_frame + per_frame/8 - curtime)) {
|
if (delay < int64_t_C(-1000000) * s->frame_rate_base / s->frame_rate) {
|
||||||
if (!nsignals)
|
/* printf("grabbing is %d frames late (dropping)\n", (int) -(delay / 16666)); */
|
||||||
printf ("\nSLEPT NO signals - %d microseconds late\n",
|
s->per_frame += int64_t_C(1000000);
|
||||||
(int) (av_gettime() - last_frame_time - per_frame));
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ts.tv_sec = delay / 1000000;
|
||||||
|
ts.tv_nsec = (delay % 1000000) * 1000;
|
||||||
|
nanosleep(&ts, NULL);
|
||||||
}
|
}
|
||||||
nsignals = 0;
|
|
||||||
|
|
||||||
last_frame_time = curtime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void bf_memcpy (char *dest, char *src, int size)
|
void bf_memcpy (char *dest, char *src, int size)
|
||||||
|
@ -226,10 +233,12 @@ static int grab_read_packet(AVFormatContext *s1, AVPacket *pkt)
|
||||||
|
|
||||||
// if (av_new_packet(pkt, size + halfsize) < 0)
|
// if (av_new_packet(pkt, size + halfsize) < 0)
|
||||||
if (av_new_packet(pkt, size + size) < 0)
|
if (av_new_packet(pkt, size + size) < 0)
|
||||||
return -EIO;
|
return AVERROR_IO;
|
||||||
|
|
||||||
|
bktr_getframe (s);
|
||||||
|
// pkt->pts = av_gettime() & ((1LL << 48) - 1);
|
||||||
|
pkt->pts = av_gettime() * s->frame_rate / s->frame_rate_base;
|
||||||
|
|
||||||
bktr_getframe (s->per_frame);
|
|
||||||
pkt->pts = av_gettime() & ((1LL << 48) - 1);
|
|
||||||
bf_memcpy (pkt->data, video_buf, size + size);
|
bf_memcpy (pkt->data, video_buf, size + size);
|
||||||
// bf_memcpy (pkt->data, video_buf, size + halfsize);
|
// bf_memcpy (pkt->data, video_buf, size + halfsize);
|
||||||
|
|
||||||
|
@ -246,18 +255,23 @@ static int grab_read_header (AVFormatContext *s1, AVFormatParameters *ap)
|
||||||
int frame_rate_base;
|
int frame_rate_base;
|
||||||
int format = -1;
|
int format = -1;
|
||||||
|
|
||||||
if (!ap || ap->width <= 0 || ap->height <= 0 || ap->frame_rate <= 0)
|
if (!ap || ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
width = ap->width;
|
width = ap->width;
|
||||||
height = ap->height;
|
height = ap->height;
|
||||||
frame_rate = ap->frame_rate;
|
frame_rate = ap->time_base.den;
|
||||||
frame_rate_base = ap->frame_rate_base;
|
frame_rate_base = ap->time_base.num;
|
||||||
|
|
||||||
|
if((unsigned)width > 32767 || (unsigned)height > 32767)
|
||||||
|
return -1;
|
||||||
|
|
||||||
st = av_new_stream(s1, 0);
|
st = av_new_stream(s1, 0);
|
||||||
if (!st)
|
if (!st)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
av_set_pts_info(st, 48, 1, 1000000); /* 48 bits pts in us */
|
||||||
|
|
||||||
s->width = width;
|
s->width = width;
|
||||||
s->height = height;
|
s->height = height;
|
||||||
s->frame_rate = frame_rate;
|
s->frame_rate = frame_rate;
|
||||||
|
@ -270,10 +284,8 @@ static int grab_read_header (AVFormatContext *s1, AVFormatParameters *ap)
|
||||||
st->codec.codec_id = CODEC_ID_RAWVIDEO;
|
st->codec.codec_id = CODEC_ID_RAWVIDEO;
|
||||||
st->codec.width = width;
|
st->codec.width = width;
|
||||||
st->codec.height = height;
|
st->codec.height = height;
|
||||||
st->codec.frame_rate = frame_rate;
|
st->codec.time_base.den = frame_rate;
|
||||||
st->codec.frame_rate_base = frame_rate_base;
|
st->codec.time_base.num = frame_rate_base;
|
||||||
|
|
||||||
av_set_pts_info(s1, 48, 1, 1000000); /* 48 bits pts in use */
|
|
||||||
|
|
||||||
if (ap->standard) {
|
if (ap->standard) {
|
||||||
if (!strcasecmp(ap->standard, "pal"))
|
if (!strcasecmp(ap->standard, "pal"))
|
||||||
|
@ -286,7 +298,7 @@ static int grab_read_header (AVFormatContext *s1, AVFormatParameters *ap)
|
||||||
|
|
||||||
if (bktr_init (video_device, width, height, format, &video_buf,
|
if (bktr_init (video_device, width, height, format, &video_buf,
|
||||||
&(s->fd), &(s->tuner_fd), -1, 0.0) < 0)
|
&(s->fd), &(s->tuner_fd), -1, 0.0) < 0)
|
||||||
return -EIO;
|
return AVERROR_IO;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,7 +310,7 @@ static int grab_read_close (AVFormatContext *s1)
|
||||||
ioctl(s->fd, METEORCAPTUR, &c);
|
ioctl(s->fd, METEORCAPTUR, &c);
|
||||||
close(s->fd);
|
close(s->fd);
|
||||||
close(s->tuner_fd);
|
close(s->tuner_fd);
|
||||||
av_free(s);
|
munmap((void *)video_buf, sizeof(video_buf));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
--- Makefile.orig Sat Jul 17 11:05:15 2004
|
|
||||||
+++ Makefile Sat Jul 17 11:04:42 2004
|
|
||||||
@@ -81,8 +81,9 @@
|
|
||||||
all: lib $(PROG) $(PROGTEST) $(VHOOK) $(QTFASTSTART) $(DOC)
|
|
||||||
|
|
||||||
lib:
|
|
||||||
- $(MAKE) -C libavcodec all
|
|
||||||
- $(MAKE) -C libavformat all
|
|
||||||
+ $(MAKE) LDFLAGS="$(LDFLAGS)" -C libavcodec all
|
|
||||||
+ $(MAKE) LDFLAGS="$(LDFLAGS)" -C libavformat all
|
|
||||||
+
|
|
||||||
|
|
||||||
ffmpeg_g$(EXESUF): ffmpeg.o cmdutils.o .libs
|
|
||||||
$(CC) $(LDFLAGS) -o $@ ffmpeg.o cmdutils.o $(FFLIBS) $(EXTRALIBS)
|
|
|
@ -1,29 +0,0 @@
|
||||||
--- configure.orig Mon Jul 5 15:05:54 2004
|
|
||||||
+++ configure Sun Dec 5 15:49:57 2004
|
|
||||||
@@ -88,7 +88,7 @@
|
|
||||||
mandir=""
|
|
||||||
bindir=""
|
|
||||||
cross_prefix=""
|
|
||||||
-cc="gcc"
|
|
||||||
+cc="$CC"
|
|
||||||
ar="ar"
|
|
||||||
ranlib="ranlib"
|
|
||||||
make="make"
|
|
||||||
@@ -187,7 +187,7 @@
|
|
||||||
BeOS)
|
|
||||||
prefix="/boot/home/config"
|
|
||||||
# helps building libavcodec
|
|
||||||
-CFLAGS="-DPIC -fomit-frame-pointer"
|
|
||||||
+CFLAGS="$CFLAGS -DPIC -fomit-frame-pointer"
|
|
||||||
# 3 gcc releases known for BeOS, each with ugly bugs
|
|
||||||
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
|
|
||||||
case "$gcc_version" in
|
|
||||||
@@ -857,7 +857,7 @@
|
|
||||||
EOF
|
|
||||||
|
|
||||||
imlib2=no
|
|
||||||
-if $cc -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1 ; then
|
|
||||||
+if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1 ; then
|
|
||||||
imlib2=yes
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,22 +1,13 @@
|
||||||
--- libavcodec/Makefile.orig Sat Jul 17 11:07:57 2004
|
--- libavcodec/Makefile.orig Sun May 1 17:07:56 2005
|
||||||
+++ libavcodec/Makefile Sat Jul 17 11:09:21 2004
|
+++ libavcodec/Makefile Sun May 1 17:08:29 2005
|
||||||
@@ -197,7 +197,7 @@
|
@@ -303,8 +303,8 @@
|
||||||
$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
|
install $(INSTALLSTRIP) -m 755 $(SLIB) "$(prefix)"
|
||||||
-lib /machine:i386 /def:$(@:.dll=.def)
|
|
||||||
else
|
else
|
||||||
- $(CC) $(SHFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS) $(LDFLAGS)
|
install -d $(libdir)
|
||||||
+ $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
|
- install $(INSTALLSTRIP) -m 755 $(SLIB) $(libdir)/libavcodec-$(VERSION).so
|
||||||
endif
|
- ln -sf libavcodec-$(VERSION).so $(libdir)/libavcodec.so
|
||||||
|
+ ${BSD_INSTALL_DATA} $(SLIB) $(prefix)/lib/libavcodec.so.1
|
||||||
dsputil.o: dsputil.c dsputil.h
|
+ cd $(prefix)/lib && ln -sf libavcodec.so.1 libavcodec.so
|
||||||
@@ -269,8 +269,8 @@
|
|
||||||
install -s -m 755 $(SLIB) "$(prefix)"
|
|
||||||
else
|
|
||||||
install -d $(prefix)/lib
|
|
||||||
- install -s -m 755 $(SLIB) $(prefix)/lib/libavcodec-$(VERSION).so
|
|
||||||
- ln -sf libavcodec-$(VERSION).so $(prefix)/lib/libavcodec.so
|
|
||||||
+ install -s -m 755 $(SLIB) $(prefix)/lib/libavcodec.so.1
|
|
||||||
+ cd $(prefix)/lib && ln -s libavcodec.so.1 libavcodec.so
|
|
||||||
ldconfig || true
|
ldconfig || true
|
||||||
endif
|
endif
|
||||||
else
|
ifeq ($(CONFIG_PP),yes)
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
--- libavcodec/alpha/simple_idct_alpha.c.bak Fri Dec 27 12:35:23 2002
|
|
||||||
+++ libavcodec/alpha/simple_idct_alpha.c Tue May 13 21:21:42 2003
|
|
||||||
@@ -24,8 +24,16 @@
|
|
||||||
* and Falk Hueffner <falk@debian.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
|
|
||||||
+#include <sys/param.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#include "asm.h"
|
|
||||||
#include "../dsputil.h"
|
|
||||||
+
|
|
||||||
+#if defined(__FreeBSD__) && __FreeBSD_version < 500000
|
|
||||||
+typedef __int32_t int_fast32_t;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
extern void (*put_pixels_clamped_axp_p)(const DCTELEM *block, uint8_t *pixels,
|
|
||||||
int line_size);
|
|
|
@ -1,53 +1,21 @@
|
||||||
--- libavcodec/bswap.h.orig Sun Dec 5 16:03:35 2004
|
--- libavcodec/bswap.h.orig Sun May 8 20:40:17 2005
|
||||||
+++ libavcodec/bswap.h Sun Dec 5 16:06:48 2004
|
+++ libavcodec/bswap.h Sun May 8 20:45:51 2005
|
||||||
@@ -10,6 +10,14 @@
|
@@ -6,8 +6,18 @@
|
||||||
#include <byteswap.h>
|
#ifndef __BSWAP_H__
|
||||||
#else
|
#define __BSWAP_H__
|
||||||
|
|
||||||
|
+/* to detect __FreeBSD_version */
|
||||||
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
|
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
|
||||||
+#include <sys/param.h>
|
+#include <sys/param.h>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#if defined(__FreeBSD__) && __FreeBSD_version >= 470000
|
#ifdef HAVE_BYTESWAP_H
|
||||||
|
#include <byteswap.h>
|
||||||
|
+#elif (defined(__FreeBSD__) && __FreeBSD_version >= 470000)
|
||||||
+#include <sys/endian.h>
|
+#include <sys/endian.h>
|
||||||
+#endif
|
+#define bswap_16(x) bswap16(x)
|
||||||
+
|
+#define bswap_32(x) bswap32(x)
|
||||||
#ifdef ARCH_X86
|
+#define bswap_64(x) bswap64(x)
|
||||||
static inline unsigned short ByteSwap16(unsigned short x)
|
#else
|
||||||
{
|
|
||||||
@@ -18,7 +26,11 @@
|
|
||||||
"0" (x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
+#if defined(__FreeBSD__) && __FreeBSD_version >= 470000
|
|
||||||
+#define bswap_16(x) (be16toh(x))
|
|
||||||
+#else
|
|
||||||
#define bswap_16(x) ByteSwap16(x)
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static inline unsigned int ByteSwap32(unsigned int x)
|
|
||||||
{
|
|
||||||
@@ -34,7 +46,11 @@
|
|
||||||
"0" (x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
+#if defined(__FreeBSD__) && __FreeBSD_version >= 470000
|
|
||||||
+#define bswap_32(x) (be32toh(x))
|
|
||||||
+#else
|
|
||||||
#define bswap_32(x) ByteSwap32(x)
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static inline unsigned long long int ByteSwap64(unsigned long long int x)
|
|
||||||
{
|
|
||||||
@@ -45,7 +61,11 @@
|
|
||||||
"0"(bswap_32((unsigned long)x)),"1"(bswap_32((unsigned long)(x>>32))));
|
|
||||||
return __x.__ll;
|
|
||||||
}
|
|
||||||
+#if defined(__FreeBSD__) && __FreeBSD_version >= 510000
|
|
||||||
+#define bswap_64(x) (be64toh(x))
|
|
||||||
+#else
|
|
||||||
#define bswap_64(x) ByteSwap64(x)
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#elif defined(ARCH_SH4)
|
|
||||||
|
|
||||||
|
#ifdef ARCH_X86_64
|
||||||
|
|
10
multimedia/ffmpeg-devel/files/patch-libavcodec::x264.c
Normal file
10
multimedia/ffmpeg-devel/files/patch-libavcodec::x264.c
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- libavcodec/x264.c.orig Sun May 1 16:15:23 2005
|
||||||
|
+++ libavcodec/x264.c Sun May 1 16:14:58 2005
|
||||||
|
@@ -19,6 +19,7 @@
|
||||||
|
|
||||||
|
#include "avcodec.h"
|
||||||
|
#include <x264.h>
|
||||||
|
+#include <math.h>
|
||||||
|
|
||||||
|
typedef struct X264Context {
|
||||||
|
x264_param_t params;
|
|
@ -1,13 +1,22 @@
|
||||||
--- libavformat/Makefile.orig Thu Sep 11 22:55:10 2003
|
--- libavformat/Makefile.orig Tue Apr 26 07:17:51 2005
|
||||||
+++ libavformat/Makefile Thu Sep 11 23:12:50 2003
|
+++ libavformat/Makefile Sun May 1 17:15:15 2005
|
||||||
@@ -88,8 +88,8 @@
|
@@ -37,7 +37,7 @@
|
||||||
install: all
|
OBJS+= framehook.o
|
||||||
ifeq ($(BUILD_SHARED),yes)
|
|
||||||
install -d $(prefix)/lib
|
ifeq ($(CONFIG_VIDEO4LINUX),yes)
|
||||||
- install -s -m 755 $(SLIB) $(prefix)/lib/libavformat-$(VERSION).so
|
-OBJS+= grab.o
|
||||||
- ln -sf libavformat-$(VERSION).so $(prefix)/lib/libavformat.so
|
+OBJS+= grab_bsdbktr.o
|
||||||
+ install -s -m 755 $(SLIB) $(prefix)/lib/libavformat.so.1
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_DV1394),yes)
|
||||||
|
@@ -109,8 +109,8 @@
|
||||||
|
install $(INSTALLSTRIP) -m 755 $(SLIB) "$(prefix)"
|
||||||
|
else
|
||||||
|
install -d $(libdir)
|
||||||
|
- install $(INSTALLSTRIP) -m 755 $(SLIB) $(libdir)/libavformat-$(VERSION).so
|
||||||
|
- ln -sf libavformat-$(VERSION).so $(libdir)/libavformat.so
|
||||||
|
+ ${BSD_INSTALL_DATA} $(SLIB) $(prefix)/lib/libavformat.so.1
|
||||||
+ ln -sf libavformat.so.1 $(prefix)/lib/libavformat.so
|
+ ln -sf libavformat.so.1 $(prefix)/lib/libavformat.so
|
||||||
ldconfig || true
|
ldconfig || true
|
||||||
mkdir -p $(prefix)/include/ffmpeg
|
endif
|
||||||
install -m 644 $(VPATH)/avformat.h $(prefix)/include/ffmpeg/avformat.h
|
else
|
||||||
|
|
13
multimedia/ffmpeg-devel/files/patch-libavformat::udp.c
Normal file
13
multimedia/ffmpeg-devel/files/patch-libavformat::udp.c
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
--- libavformat/udp.c.orig Tue May 10 01:08:33 2005
|
||||||
|
+++ libavformat/udp.c Tue May 10 01:09:27 2005
|
||||||
|
@@ -27,6 +27,10 @@
|
||||||
|
# include "barpainet.h"
|
||||||
|
#endif
|
||||||
|
#include <netdb.h>
|
||||||
|
+#ifndef IPV6_ADD_MEMBERSHIP
|
||||||
|
+#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
|
||||||
|
+#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int udp_fd;
|
|
@ -1,19 +0,0 @@
|
||||||
--- vhook/Makefile.orig Fri Dec 5 20:07:04 2003
|
|
||||||
+++ vhook/Makefile Fri Dec 5 20:07:55 2003
|
|
||||||
@@ -29,13 +29,13 @@
|
|
||||||
install -s -m 755 $(HOOKS) $(INSTDIR)
|
|
||||||
|
|
||||||
imlib2.so: imlib2.o
|
|
||||||
- $(CC) -g -o $@ $(SHFLAGS) $< -lImlib2
|
|
||||||
+ $(CC) -o $@ $(LDFLAGS) $(SHFLAGS) $< -lImlib2
|
|
||||||
|
|
||||||
drawtext.so: drawtext.o
|
|
||||||
- $(CC) -g -o $@ $(SHFLAGS) $< `freetype-config --libs`
|
|
||||||
+ $(CC) -o $@ $(LDFLAGS) $(SHFLAGS) $< `freetype-config --libs`
|
|
||||||
|
|
||||||
%.so: %.o
|
|
||||||
- $(CC) -g -o $@ $(SHFLAGS) $<
|
|
||||||
+ $(CC) -o $@ $(LDFLAGS) $(SHFLAGS) $<
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o *.d .depend *.so *~
|
|
|
@ -1,8 +1,4 @@
|
||||||
bin/ffmpeg
|
bin/ffmpeg
|
||||||
%%SDL%%bin/ffplay
|
|
||||||
%%FFSERVER%%bin/ffserver
|
|
||||||
%%FFSERVER%%etc/ffserver.conf.sample
|
|
||||||
%%FFSERVER%%etc/rc.d/ffserver.sh
|
|
||||||
include/ffmpeg/avcodec.h
|
include/ffmpeg/avcodec.h
|
||||||
include/ffmpeg/avformat.h
|
include/ffmpeg/avformat.h
|
||||||
include/ffmpeg/avio.h
|
include/ffmpeg/avio.h
|
||||||
|
@ -18,9 +14,6 @@ lib/libavcodec.so.%%SHLIB_VERSION%%
|
||||||
lib/libavformat.a
|
lib/libavformat.a
|
||||||
lib/libavformat.so
|
lib/libavformat.so
|
||||||
lib/libavformat.so.%%SHLIB_VERSION%%
|
lib/libavformat.so.%%SHLIB_VERSION%%
|
||||||
%%VHOOK%%%%DRAWTEXT%%lib/vhook/drawtext.so
|
lib/libpostproc.a
|
||||||
%%VHOOK%%lib/vhook/fish.so
|
lib/libpostproc.so
|
||||||
%%VHOOK%%%%IMLIB2%%lib/vhook/imlib2.so
|
lib/libpostproc.so.%%SHLIB_VERSION%%
|
||||||
%%VHOOK%%lib/vhook/null.so
|
|
||||||
%%VHOOK%%lib/vhook/ppm.so
|
|
||||||
%%VHOOK%%@dirrm lib/vhook
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue