6 CATEGORIES= multimedia audio ipv6 net
7 MASTER_SITES= http://libav.org/releases/
9 MAINTAINER= dem.procopiou@gmail.com
10 COMMENT= Realtime audio/video conversion library
12 BUILD_DEPENDS= yasm:devel/yasm
13 LIB_DEPENDS= libopencv_core.so:graphics/opencv2-core \
15 libvdpau.so:multimedia/libvdpau \
16 libhogweed.so:security/nettle
18 USES= cpe gmake perl5 pkgconfig tar:xz
22 USE_LDCONFIG= ${PREFIX}/lib/${PORTNAME}
24 CPPFLAGS+= -I${LOCALBASE}/include
25 CONFIGURE_ARGS= --prefix="${PREFIX}" \
26 --libdir="${PREFIX}/lib/${PORTNAME}" \
27 --shlibdir="${PREFIX}/lib/${PORTNAME}" \
28 --incdir="${PREFIX}/include/${PORTNAME}" \
29 --mandir="${PREFIX}/man" \
30 --datadir="${DATADIR}" \
31 --extra-ldflags="-L${LOCALBASE}/lib" \
34 --enable-runtime-cpudetect \
38 OPTIONS_DEFINE= ALSA AMR_NB AMR_WB BZIP2 CDIO FAAC FDK_AAC DC1394 DOCS FREETYPE \
39 FREI0R GNUTLS GSM ILBC JACK LAME OPENCV OPENJPEG OPENSSL \
40 OPUS PULSEAUDIO RTMP SCHROEDINGER SDL SPEEX THEORA V4L VAAPI \
41 VDPAU VO_AACENC VO_AMRWBENC VORBIS VPX WAVPACK WEBP X11GRAB \
43 OPTIONS_DEFAULT=BZIP2 FREETYPE FREI0R GNUTLS OPENCV SCHROEDINGER \
44 THEORA VAAPI VDPAU VO_AACENC VORBIS VPX X264 XVID ZLIB
46 FDK_AAC_DESC= AAC audio encoding via Fraunhofer FDK
47 ILBC_DESC= iLBC en/decoding via libilbc
48 X11GRAB_DESC= X11 grabbing
49 DC1394_DESC= IIDC-1394 grabbing using libdc1394
53 ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
54 ALSA_CONFIGURE_ON= --enable-indev=alsa --enable-outdev=alsa
55 ALSA_CONFIGURE_OFF= --disable-indev=alsa --disable-outdev=alsa
57 AMR_NB_LIB_DEPENDS= libopencore-amrnb.so:audio/opencore-amr
58 AMR_NB_CONFIGURE_ENABLE= libopencore-amrnb
60 AMR_WB_LIB_DEPENDS= libopencore-amrnb.so:audio/opencore-amr
61 AMR_WB_CONFIGURE_ENABLE= libopencore-amrwb
63 BZIP2_CONFIGURE_ENABLE= bzlib
65 CDIO_LIB_DEPENDS= libcdio.so:sysutils/libcdio \
66 libcdio_paranoia.so:sysutils/libcdio-paranoia
67 CDIO_CONFIGURE_ENABLE= libcdio
69 DC1394_LIB_DEPENDS= libdc1394.so:multimedia/libdc1394
70 DC1394_CONFIGURE_ENABLE= libdc1394
72 DOCS_BUILD_DEPENDS= texi2html:textproc/texi2html
74 FREI0R_BUILD_DEPENDS= ${LOCALBASE}/include/frei0r.h:graphics/frei0r
75 FREI0R_CONFIGURE_ENABLE= frei0r
77 FAAC_LIB_DEPENDS= libfaac.so:audio/faac
78 FAAC_CONFIGURE_ENABLE= libfaac
80 FDK_AAC_LIB_DEPENDS= libfdk-aac.so:audio/fdk-aac
81 FDK_AAC_CONFIGURE_ENABLE= libfdk-aac
83 FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2
84 FREETYPE_CONFIGURE_ENABLE= libfreetype
86 GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
87 GNUTLS_CONFIGURE_ENABLE= gnutls
89 GSM_LIB_DEPENDS= libgsm.so:audio/gsm
90 GSM_CONFIGURE_ENABLE= libgsm
92 ILBC_BUILD_DEPENDS= ${LOCALBASE}/include/ilbc.h:net/libilbc
93 ILBC_CONFIGURE_ENABLE= libilbc
95 JACK_LIB_DEPENDS= libjack.so:audio/jack
96 JACK_CONFIGURE_ON= --enable-indev=jack
97 JACK_CONFIGURE_OFF= --disable-indev=jack
99 LAME_LIB_DEPENDS= libmp3lame.so:audio/lame
100 LAME_CONFIGURE_ENABLE= libmp3lame
102 OPENCV_LIB_DEPENDS= libopencv_gpu.so:graphics/opencv2
103 OPENCV_CONFIGURE_ENABLE= libopencv
105 OPENJPEG_LIB_DEPENDS= libopenjpeg.so:graphics/openjpeg15
106 OPENJPEG_CONFIGURE_ENABLE= libopenjpeg
108 OPENSSL_CONFIGURE_ENABLE= openssl
111 OPUS_LIB_DEPENDS= libopus.so:audio/opus
112 OPUS_CONFIGURE_ENABLE= libopus
114 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
115 PULSEAUDIO_CONFIGURE_ENABLE= libpulse
117 RTMP_LIB_DEPENDS= librtmp.so:multimedia/librtmp
118 RTMP_CONFIGURE_ENABLE= librtmp
120 SCHROEDINGER_LIB_DEPENDS= libschroedinger-1.0.so:multimedia/schroedinger
121 SCHROEDINGER_CONFIGURE_ENABLE= libschroedinger
124 SDL_CONFIGURE_ENABLE= avplay
126 SPEEX_LIB_DEPENDS= libspeex.so:audio/speex
127 SPEEX_CONFIGURE_ENABLE= libspeex
129 THEORA_LIB_DEPENDS= libtheora.so:multimedia/libtheora
130 THEORA_CONFIGURE_ENABLE= libtheora
132 V4L_BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
133 V4L_CONFIGURE_ON= --enable-indev=v4l2
134 V4L_CONFIGURE_OFF= --disable-indev=v4l2
136 VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
137 VAAPI_CONFIGURE_ENABLE= vaapi
139 VDPAU_BUILD_DEPENDS= ${LOCALBASE}/include/vdpau/vdpau.h:multimedia/libvdpau
140 VDPAU_CONFIGURE_ENABLE= vdpau
142 VO_AACENC_LIB_DEPENDS= libvo-aacenc.so:audio/vo-aacenc
143 VO_AACENC_CONFIGURE_ENABLE= libvo-aacenc
145 VO_AMRWBENC_LIB_DEPENDS= libvo-amrwbenc.so:audio/vo-amrwbenc
146 VO_AMRWBENC_CONFIGURE_ENABLE= libvo-amrwbenc
148 VORBIS_LIB_DEPENDS= libvorbisenc.so:audio/libvorbis
149 VORBIS_CONFIGURE_ENABLE= libvorbis
151 VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
152 VPX_CONFIGURE_ENABLE= libvpx
154 WAVPACK_LIB_DEPENDS= libwavpack.so:audio/wavpack
155 WAVPACK_CONFIGURE_ENABLE= libwavpack
157 WEBP_LIB_DEPENDS= libwebp.so:graphics/webp
158 WEBP_CONFIGURE_ENABLE= libwebp
160 X11GRAB_USE= XORG=x11,xext,xfixes
162 X264_LIB_DEPENDS= libx264.so:multimedia/libx264
163 X264_CONFIGURE_ENABLE= libx264
165 XVID_LIB_DEPENDS= libxvidcore.so:multimedia/xvid
166 XVID_CONFIGURE_ENABLE= libxvid
168 ZLIB_CONFIGURE_ENABLE= zlib
170 .include <bsd.port.options.mk>
172 .if ${ARCH} == "armv6"
173 CONFIGURE_ENV+= ASFLAGS=-no-integrated-as
176 .if ${ARCH} == "i386"
177 CONFIGURE_ARGS+= --extra-cflags=-m32
180 # License definitions
182 .if ${PORT_OPTIONS:MFAAC} || ${PORT_OPTIONS:MFDK_AAC} || ${PORT_OPTIONS:MOPENSSL}
183 RESTRICTED= linking to libfaac or libaacplus or using OpenSSL support restricts redistribution
184 CONFIGURE_ARGS+= --enable-nonfree
188 .if ${PORT_OPTIONS:MCDIO} || ${PORT_OPTIONS:MX264} || ${PORT_OPTIONS:MXVID} || ${PORT_OPTIONS:MX11GRAB}
189 CONFIGURE_ARGS+= --enable-gpl
190 .if !defined(AV_NONFREE)
196 .if ${PORT_OPTIONS:MAMR_NB} || ${PORT_OPTIONS:MAMR_WB} || ${PORT_OPTIONS:MVO_AACENC} || ${PORT_OPTIONS:MVO_AMRWBENC}
197 CONFIGURE_ARGS+= --enable-version3
198 .if !defined(AV_NONFREE)
199 .if defined(AV_ISGPL)
207 .if !defined(AV_NONFREE) && !defined(AV_ISGPL) && !defined(LICENSE)
212 @${REINPLACE_CMD} -e 's|freetype/freetype.h|freetype2/freetype.h|' \
213 -e 's|-ldc1394 -lraw1394|-ldc1394|' \
215 @${REINPLACE_CMD} -e 's|gsm/gsm.h|gsm.h|' \
216 ${WRKSRC}/configure \
217 ${WRKSRC}/libavcodec/libgsmdec.c
218 @${REINPLACE_CMD} -e 's|$$(LIBDIR)/pkgconfig|${STAGEDIR}${PREFIX}/libdata/pkgconfig|' \
219 ${WRKSRC}/library.mak
221 post-configure-DOCS-off:
222 @${REINPLACE_CMD} -e 's|CONFIG_TEXI2HTML=yes|!CONFIG_TEXI2HTML=yes|' ${WRKSRC}/config.mak
225 .for a in bin/avconv bin/avprobe lib/libav/libavdevice.so.55.0.0\
226 lib/libav/libavfilter.so.5.0.0 lib/libav/libavformat.so.56.1.0\
227 lib/libav/libavcodec.so.56.1.0 lib/libav/libavresample.so.2.1.0\
228 lib/libav/libswscale.so.3.0.0 lib/libav/libavutil.so.54.3.0
229 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${a}
232 .include <bsd.port.mk>