Index: multimedia/ffmpeg/Makefile =================================================================== --- multimedia/ffmpeg/Makefile +++ multimedia/ffmpeg/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= ffmpeg -PORTVERSION= 3.4.2 -PORTREVISION= 1 +PORTVERSION= 4.0 PORTEPOCH= 1 CATEGORIES= multimedia audio ipv6 net MASTER_SITES= https://ffmpeg.org/releases/ @@ -25,22 +24,33 @@ SHEBANG_FILES= doc/texi2pod.pl NOPRECIOUSMAKEVARS= yes # ARCH -PORTSCOUT= limit:^3\. +PORTSCOUT= limit:^4\. -OPTIONS_DEFINE= ALSA AMR_NB AMR_WB ASS BS2B CACA CDIO CELT CHROMAPRINT DC1394 \ - DEBUG DOCS DRM FDK_AAC FFSERVER FLITE FONTCONFIG \ +OPTIONS_DEFINE= ALSA AMR_NB AMR_WB AOM ASS BS2B CACA CDIO CELT CHROMAPRINT CODEC2 DC1394 \ + DEBUG DOCS DRM FDK_AAC FLITE FONTCONFIG \ FREETYPE FREI0R FRIBIDI GME GSM ICONV ILBC JACK KVAZAAR LADSPA \ - LAME LIBBLURAY LIBRSVG2 LIBXML2 MODPLUG MYSOFA OPENAL OPENCL OPENCV OPENGL \ + LAME LIBBLURAY LIBRSVG2 LIBXML2 LV2 MODPLUG MYSOFA OPENAL OPENCL OPENCV OPENGL \ OPENH264 OPENJPEG OPTIMIZED_CFLAGS OPUS PULSEAUDIO \ - RUBBERBAND RTCPU SDL SMB SNAPPY SNDIO SOXR SPEEX SSH \ + RUBBERBAND RTCPU SDL SMB SNAPPY SNDIO SOXR SPEEX SRT SSH \ TESSERACT THEORA TWOLAME V4L VAAPI VDPAU VIDSTAB VORBIS \ VO_AMRWBENC VPX WAVPACK WEBP X264 X265 XCB XVID \ XVIDEO ZIMG ZMQ ZVBI -OPTIONS_DEFAULT= FFSERVER FONTCONFIG FREETYPE FREI0R GMP GNUTLS ICONV \ +OPTIONS_DEFAULT= FONTCONFIG FREETYPE FREI0R GMP GNUTLS ICONV \ OPENCV OPTIMIZED_CFLAGS OPUS RTCPU THEORA V4L VAAPI VDPAU \ VORBIS VPX X264 X265 XVID +.if !exists(${.CURDIR:H:H}/multimedia/aom) +# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/c438899a7064 +# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/43778a501f1b +OPTIONS_EXCLUDE+= AOM +.endif + +.if !exists(${.CURDIR:H:H}/net/srt) +# https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/a2fc8dbae853 +OPTIONS_EXCLUDE+= SRT +.endif + OPTIONS_RADIO= RTMP SSL OPTIONS_RADIO_RTMP= GCRYPT GMP LIBRTMP OPTIONS_RADIO_SSL= GNUTLS OPENSSL @@ -54,18 +64,20 @@ OPTIONS_DEFAULT_i386= MMX SSE ASS_DESC= Subtitles rendering via libass +AOM_DESC= AV1 video encoding/decoding via libaom BS2B_DESC= Bauer Stereophonic-to-Binaural filter CHROMAPRINT_DESC= Audio fingerprinting with chromaprint +CODEC2_DESC= Codec 2 audio encoding/decoding via libcodec2 DC1394_DESC= IIDC-1394 grabbing using libdc1394 DRM_DESC= KMS grabbing using libdrm FDK_AAC_DESC= AAC audio encoding via Fraunhofer FDK -FFSERVER_DESC= Build and install ffserver FLITE_DESC= Voice synthesis support via libflite GME_DESC= Game Music Emu demuxer GPL3_DESC= Allow (L)GPL version 3 code(cs) ILBC_DESC= Internet Low Bit Rate codec KVAZAAR_DESC= H.265 video codec support via Kvazaar LICENSE_DESC= Licensing options +LV2_DESC= LV2 audio filtering MYSOFA_DESC= SOFAlizer binaural filter NEON_DESC= Media Processing Engine instructions NONFREE_DESC= Allow use of nonfree code @@ -73,6 +85,7 @@ RUBBERBAND_DESC=Time-stretching and pitch-shifting with librubberband RTCPU_DESC= Detect CPU capabilities at runtime RTMP_DESC= RTMP(T)E protocol support +SRT_DESC= Haivision SRT protocol via libsrt LIBRTMP_DESC= ${RTMP_DESC} via librtmp TESSERACT_DESC= Optical Character Recognition via Tesseract VFP_DESC= Vector Floating Point instructions @@ -98,6 +111,10 @@ AMR_WB_CONFIGURE_ENABLE= libopencore-amrwb AMR_WB_IMPLIES= GPL3 +# aom +AOM_LIB_DEPENDS= libaom.so:multimedia/aom +AOM_CONFIGURE_ENABLE= libaom + # ass ASS_LIB_DEPENDS= libass.so:multimedia/libass ASS_CONFIGURE_ENABLE= libass @@ -123,6 +140,10 @@ CHROMAPRINT_LIB_DEPENDS= libchromaprint.so:audio/chromaprint CHROMAPRINT_CONFIGURE_ENABLE= chromaprint +# codec2 +CODEC2_LIB_DEPENDS= libcodec2.so:audio/codec2 +CODEC2_CONFIGURE_ENABLE= libcodec2 + # dc1394 DC1394_LIB_DEPENDS= libdc1394.so:multimedia/libdc1394 DC1394_CONFIGURE_ENABLE= libdc1394 @@ -144,10 +165,6 @@ FDK_AAC_CONFIGURE_ENABLE= libfdk-aac FDK_AAC_IMPLIES= NONFREE -# ffserver -FFSERVER_CONFIGURE_ENABLE= ffserver -FFSERVER_VARS= USE_RC_SUBR+=ffserver - # flite FLITE_LIB_DEPENDS= libflite.so:audio/flite FLITE_CONFIGURE_ENABLE= libflite @@ -199,7 +216,7 @@ # jack JACK_LIB_DEPENDS= libjack.so:audio/jack -JACK_CONFIGURE_ENABLE= jack +JACK_CONFIGURE_ENABLE= libjack # kvazaar KVAZAAR_LIB_DEPENDS= libkvazaar.so:multimedia/kvazaar @@ -226,6 +243,10 @@ LIBXML2_LIB_DEPENDS= libxml2.so:textproc/libxml2 LIBXML2_CONFIGURE_ENABLE= libxml2 +# lv2 +LV2_BUILD_DEPENDS= lv2>0:audio/lv2 +LV2_CONFIGURE_ENABLE= lv2 + # libv4l V4L_BUILD_DEPENDS= v4l_compat>0:multimedia/v4l_compat V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l @@ -269,9 +290,9 @@ OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg OPENJPEG_CONFIGURE_ENABLE= libopenjpeg -# openssl +# openssl/libtls OPENSSL_USES= ssl -OPENSSL_CONFIGURE_ENABLE= openssl +OPENSSL_CONFIGURE_ENABLE= ${"${SSL_DEFAULT:Mlibressl*}"!="":?libtls:openssl} OPENSSL_IMPLIES= NONFREE # optimizations @@ -329,6 +350,10 @@ SSH_LIB_DEPENDS= libssh.so:security/libssh SSH_CONFIGURE_ENABLE= libssh +# srt +SRT_LIB_DEPENDS= libsrt.so:net/srt +SRT_CONFIGURE_ENABLE= libsrt + # tesseract TESSERACT_LIB_DEPENDS= libtesseract.so:graphics/tesseract TESSERACT_CONFIGURE_ENABLE= libtesseract @@ -463,8 +488,6 @@ post-patch: # {C,LD}FLAGS safeness - @${REINPLACE_CMD} -e 's|/etc/ffserver.conf|${PREFIX}/etc/ffserver.conf|' \ - ${WRKSRC}/fftools/ffserver.c @${REINPLACE_CMD} -E \ -e 's|require_pkg_config opencv|require_pkg_config opencv-core|g' \ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} @@ -475,8 +498,4 @@ (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} \ "${DOC_DOCFILES}" ${STAGEDIR}${DOCSDIR}) -post-install-FFSERVER-on: - ${INSTALL_DATA} ${WRKSRC}/doc/ffserver.conf \ - ${STAGEDIR}${PREFIX}/etc/ffserver.conf.sample - .include Index: multimedia/ffmpeg/distinfo =================================================================== --- multimedia/ffmpeg/distinfo +++ multimedia/ffmpeg/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1518395358 -SHA256 (ffmpeg-3.4.2.tar.xz) = 2b92e9578ef8b3e49eeab229e69305f5f4cbc1fdaa22e927fc7fca18acccd740 -SIZE (ffmpeg-3.4.2.tar.xz) = 8478376 +TIMESTAMP = 1524218686 +SHA256 (ffmpeg-4.0.tar.xz) = ed945daf40b124e77a685893cc025d086f638bc703183460aff49508edb3a43f +SIZE (ffmpeg-4.0.tar.xz) = 8656948 Index: multimedia/ffmpeg/files/patch-configure =================================================================== --- multimedia/ffmpeg/files/patch-configure +++ multimedia/ffmpeg/files/patch-configure @@ -1,6 +1,6 @@ ---- configure.orig 2017-10-15 15:59:36 UTC +--- configure.orig 2018-04-20 10:02:55 UTC +++ configure -@@ -3371,12 +3371,7 @@ target_os_default=$(tolower $(uname -s)) +@@ -3516,12 +3516,7 @@ target_os_default=$(tolower $(uname -s)) host_os=$target_os_default # machine @@ -14,13 +14,3 @@ cpu="generic" intrinsics="none" -@@ -6491,6 +6486,9 @@ elif enabled llvm_gcc; then - elif enabled clang; then - check_cflags -mllvm -stack-alignment=16 - check_cflags -mstack-alignment=16 -+ if enabled x86_32; then -+ check_cflags -mstackrealign -+ fi - check_cflags -Qunused-arguments - check_cflags -Werror=implicit-function-declaration - check_cflags -Werror=missing-prototypes Index: multimedia/ffmpeg/files/patch-libavformat_tls__openssl.c =================================================================== --- multimedia/ffmpeg/files/patch-libavformat_tls__openssl.c +++ /dev/null @@ -1,56 +0,0 @@ ---- libavformat/tls_openssl.c.orig 2017-04-13 01:55:55 UTC -+++ libavformat/tls_openssl.c -@@ -43,7 +43,7 @@ typedef struct TLSContext { - TLSShared tls_shared; - SSL_CTX *ctx; - SSL *ssl; --#if OPENSSL_VERSION_NUMBER >= 0x1010000fL -+#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) - BIO_METHOD* url_bio_method; - #endif - } TLSContext; -@@ -68,7 +68,7 @@ static unsigned long openssl_thread_id(v - - static int url_bio_create(BIO *b) - { --#if OPENSSL_VERSION_NUMBER >= 0x1010000fL -+#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) - BIO_set_init(b, 1); - BIO_set_data(b, NULL); - BIO_set_flags(b, 0); -@@ -85,7 +85,7 @@ static int url_bio_destroy(BIO *b) - return 1; - } - --#if OPENSSL_VERSION_NUMBER >= 0x1010000fL -+#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) - #define GET_BIO_DATA(x) BIO_get_data(x) - #else - #define GET_BIO_DATA(x) (x)->ptr -@@ -129,7 +129,7 @@ static int url_bio_bputs(BIO *b, const c - return url_bio_bwrite(b, str, strlen(str)); - } - --#if OPENSSL_VERSION_NUMBER < 0x1010000fL -+#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER) - static BIO_METHOD url_bio_method = { - .type = BIO_TYPE_SOURCE_SINK, - .name = "urlprotocol bio", -@@ -208,7 +208,7 @@ static int tls_close(URLContext *h) - SSL_CTX_free(c->ctx); - if (c->tls_shared.tcp) - ffurl_close(c->tls_shared.tcp); --#if OPENSSL_VERSION_NUMBER >= 0x1010000fL -+#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) - if (c->url_bio_method) - BIO_meth_free(c->url_bio_method); - #endif -@@ -266,7 +266,7 @@ static int tls_open(URLContext *h, const - ret = AVERROR(EIO); - goto fail; - } --#if OPENSSL_VERSION_NUMBER >= 0x1010000fL -+#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) - p->url_bio_method = BIO_meth_new(BIO_TYPE_SOURCE_SINK, "urlprotocol bio"); - BIO_meth_set_write(p->url_bio_method, url_bio_bwrite); - BIO_meth_set_read(p->url_bio_method, url_bio_bread); Index: multimedia/ffmpeg/pkg-plist =================================================================== --- multimedia/ffmpeg/pkg-plist +++ multimedia/ffmpeg/pkg-plist @@ -1,8 +1,8 @@ bin/ffmpeg %%SDL%%bin/ffplay bin/ffprobe -%%FFSERVER%%bin/ffserver -%%FFSERVER%%@sample etc/ffserver.conf.sample +include/libavcodec/ac3_parser.h +include/libavcodec/adts_parser.h include/libavcodec/avcodec.h include/libavcodec/avdct.h include/libavcodec/avfft.h @@ -14,7 +14,6 @@ include/libavcodec/mediacodec.h include/libavcodec/qsv.h include/libavcodec/vaapi.h -include/libavcodec/vda.h include/libavcodec/vdpau.h include/libavcodec/version.h include/libavcodec/videotoolbox.h @@ -23,7 +22,6 @@ include/libavdevice/avdevice.h include/libavdevice/version.h include/libavfilter/avfilter.h -include/libavfilter/avfiltergraph.h include/libavfilter/buffersink.h include/libavfilter/buffersrc.h include/libavfilter/version.h @@ -56,6 +54,7 @@ include/libavutil/dict.h include/libavutil/display.h include/libavutil/downmix_info.h +include/libavutil/encryption_info.h include/libavutil/error.h include/libavutil/eval.h include/libavutil/ffversion.h @@ -69,6 +68,7 @@ include/libavutil/hwcontext_d3d11va.h include/libavutil/hwcontext_drm.h include/libavutil/hwcontext_dxva2.h +include/libavutil/hwcontext_mediacodec.h include/libavutil/hwcontext_qsv.h include/libavutil/hwcontext_vaapi.h include/libavutil/hwcontext_vdpau.h @@ -86,7 +86,6 @@ include/libavutil/mem.h include/libavutil/motion_vector.h include/libavutil/murmur3.h -%%OPENCL%%include/libavutil/opencl.h include/libavutil/opt.h include/libavutil/parseutils.h include/libavutil/pixdesc.h @@ -119,40 +118,40 @@ include/libswscale/version.h lib/libavcodec.a lib/libavcodec.so -lib/libavcodec.so.57 -lib/libavcodec.so.57.107.100 +lib/libavcodec.so.58 +lib/libavcodec.so.58.18.100 lib/libavdevice.a lib/libavdevice.so -lib/libavdevice.so.57 -lib/libavdevice.so.57.10.100 +lib/libavdevice.so.58 +lib/libavdevice.so.58.3.100 lib/libavfilter.a lib/libavfilter.so -lib/libavfilter.so.6 -lib/libavfilter.so.6.107.100 +lib/libavfilter.so.7 +lib/libavfilter.so.7.16.100 lib/libavformat.a lib/libavformat.so -lib/libavformat.so.57 -lib/libavformat.so.57.83.100 +lib/libavformat.so.58 +lib/libavformat.so.58.12.100 lib/libavresample.a lib/libavresample.so -lib/libavresample.so.3 -lib/libavresample.so.3.7.0 +lib/libavresample.so.4 +lib/libavresample.so.4.0.0 lib/libavutil.a lib/libavutil.so -lib/libavutil.so.55 -lib/libavutil.so.55.78.100 +lib/libavutil.so.56 +lib/libavutil.so.56.14.100 lib/libpostproc.a lib/libpostproc.so -lib/libpostproc.so.54 -lib/libpostproc.so.54.7.100 +lib/libpostproc.so.55 +lib/libpostproc.so.55.1.100 lib/libswresample.a lib/libswresample.so -lib/libswresample.so.2 -lib/libswresample.so.2.9.100 +lib/libswresample.so.3 +lib/libswresample.so.3.1.100 lib/libswscale.a lib/libswscale.so -lib/libswscale.so.4 -lib/libswscale.so.4.8.100 +lib/libswscale.so.5 +lib/libswscale.so.5.1.100 libdata/pkgconfig/libavcodec.pc libdata/pkgconfig/libavdevice.pc libdata/pkgconfig/libavfilter.pc @@ -177,8 +176,6 @@ %%SDL%%man/man1/ffplay.1.gz man/man1/ffprobe-all.1.gz man/man1/ffprobe.1.gz -%%FFSERVER%%man/man1/ffserver-all.1.gz -%%FFSERVER%%man/man1/ffserver.1.gz man/man3/libavcodec.3.gz man/man3/libavdevice.3.gz man/man3/libavfilter.3.gz @@ -209,6 +206,8 @@ %%DATADIR%%/examples/scaling_video.c %%DATADIR%%/examples/transcode_aac.c %%DATADIR%%/examples/transcoding.c +%%DATADIR%%/examples/vaapi_encode.c +%%DATADIR%%/examples/vaapi_transcode.c %%DATADIR%%/ffprobe.xsd %%DATADIR%%/libvpx-1080p.ffpreset %%DATADIR%%/libvpx-1080p50_60.ffpreset