diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile index edbdbed65..67a2aecfe 100644 --- a/multimedia/ffmpeg/Makefile +++ b/multimedia/ffmpeg/Makefile @@ -31,17 +31,10 @@ NOPRECIOUSMAKEVARS= yes # ARCH PORTSCOUT= limit:^6\. # Option CHROMAPRINT disabled, it cannot work and people are baffled. -OPTIONS_DEFINE= ALSA AMR_NB AMR_WB AOM ARIBB24 ARIBCAPTION ASM ASS BS2B CACA CDIO \ - CODEC2 DAV1D DAVS2 DC1394 DEBUG DOCS DRM FDK_AAC FLITE \ - FONTCONFIG FREETYPE FREI0R FRIBIDI GLSLANG GME GSM HARFBUZZ ICONV ILBC \ - JACK JXL KLVANC KVAZAAR LADSPA LAME LCMS2 LENSFUN LIBBLURAY LIBPLACEBO LIBRSVG2 \ - LIBXML2 LTO LV2 MODPLUG MYSOFA NETWORK NVENC OPENAL OPENCL OPENGL \ - OPENH264 OPENJPEG OPENMPT OPENVINO OPTIMIZED_CFLAGS OPUS POCKETSPHINX \ - PULSEAUDIO RAV1E RABBITMQ RIST RTCPU RUBBERBAND SDL SHADERC SMB SNAPPY \ - SNDIO SOXR SPEEX SRT SSH SVTAV1 SVTHEVC SVTVP9 TENSORFLOW \ - TESSERACT THEORA TWOLAME UAVS3D V4L VAAPI VAPOURSYNTH VDPAU VIDSTAB \ - VMAF VO_AMRWBENC VORBIS VPX VULKAN WEBP X264 X265 \ - XAVS2 XCB XVID XVIDEO ZIMG ZMQ ZVBI +OPTIONS_DEFINE= DOCS ICONV LIBXML2 \ + OPENVINO POCKETSPHINX SNAPPY \ + TENSORFLOW TESSERACT \ + ZVBI # intel-media-sdk only for i386/amd64 OPTIONS_DEFINE_amd64= MFX VPL OPTIONS_DEFINE_i386= MFX @@ -86,12 +79,33 @@ OPTIONS_EXCLUDE+= KLVANC OPTIONS_EXCLUDE+= OPENVINO .endif -OPTIONS_RADIO= RTMP SSL +OPTIONS_RADIO= RTMP SSL OPTIONS_RADIO_RTMP= GCRYPT GMP LIBRTMP OPTIONS_RADIO_SSL= GNUTLS MBEDTLS OPENSSL -OPTIONS_GROUP= LICENSE -OPTIONS_GROUP_LICENSE= GPL3 NONFREE +OPTIONS_GROUP= VIDEO VPROC AUDIO APROC COMBINED \ + COMPILE DRIVER NETWORK TRANSPORT RENDER SOUND \ + STILLS SUBTITLE LICENSE +OPTIONS_GROUP_AUDIO= OPUS FDK_AAC CODEC2 ILBC SPEEX VORBIS \ + AMR_NB AMR_WB VO_AMRWBENC LAME TWOLAME GSM \ + GME MODPLUG OPENMPT +OPTIONS_GROUP_APROC= BS2B LADSPA LV2 MYSOFA RUBBERBAND SOXR +OPTIONS_GROUP_COMBINED= UAVS3D DAVS2 XAVS2 +OPTIONS_GROUP_COMPILE= ASM DEBUG OPTIMIZED_CFLAGS LTO RTCPU \ + OPENCL GLSLANG SHADERC VDPAU +OPTIONS_GROUP_DRIVER= DRM XCB XVIDEO CDIO LIBBLURAY NETWORK SMB SSH V4L DC1394 +OPTIONS_GROUP_LICENSE= GPL3 NONFREE +OPTIONS_GROUP_RENDER= CACA FLITE OPENGL SDL VAAPI +OPTIONS_GROUP_SOUND= ALSA JACK OPENAL PULSEAUDIO SNDIO +OPTIONS_GROUP_STILLS= JXL LIBRSVG2 OPENJPEG WEBP +OPTIONS_GROUP_SUBTITLE= ARIBB24 ARIBCAPTION ASS FONTCONFIG FREETYPE FRIBIDI HARFBUZZ +OPTIONS_GROUP_TRANSPORT=RABBITMQ RIST KLVANC SRT ZMQ +OPTIONS_GROUP_VIDEO= AOM DAV1D RAV1E SVTAV1 X265 SVTHEVC KVAZAAR SVTVP9 VPX \ + X264 XVID OPENH264 THEORA +OPTIONS_GROUP_VPROC= FREI0R LCMS2 LENSFUN LIBPLACEBO VAPOURSYNTH VIDSTAB VMAF VULKAN ZIMG + +AUDIO_DESC= Audio CoDecs +APROC_DESC= Audio processing ASS_DESC= Subtitles rendering via libass AOM_DESC= AV1 video encoding/decoding via libaom ARIBB24_DESC= ARIB text and caption decoding via libaribb24 @@ -99,9 +113,11 @@ ARIBCAPTION_DESC= ARIB text and caption decoding via libaribcaption BS2B_DESC= Bauer Stereophonic-to-Binaural filter CHROMAPRINT_DESC= Audio fingerprinting with chromaprint CODEC2_DESC= Codec 2 audio encoding/decoding via libcodec2 +COMBINED_DESC= Audio/Video CoDecs DAV1D_DESC= AV1 video decoding via libdav1d DAVS2_DESC= AVS2 decoding via libdavs2 DC1394_DESC= IIDC-1394 grabbing using libdc1394 +DRIVER_DESC= Hardware access DRM_DESC= KMS grabbing using libdrm FDK_AAC_DESC= AAC audio encoding via Fraunhofer FDK FLITE_DESC= Voice synthesis support via libflite @@ -122,6 +138,7 @@ NVENC_DESC= NVIDIA decoder/encoder with CUDA support OPENMPT_DESC= Decoding tracked files via libopenmpt OPENH264_DESC= H.264 video codec support via OpenH264 OPENVINO_DESC= OpenVINO as a DNN module backend for DNN based filters like dnn_processing +COMPILE_DESC= Compile options POCKETSPHINX_DESC= Automatic Speech Recognition via PocketSphinx RAV1E_DESC= AV1 encoding via librav1e RABBITMQ_DESC= AMQP 0-9-1 protocol via RabbitMQ @@ -130,6 +147,7 @@ RUBBERBAND_DESC=Time-stretching and pitch-shifting with librubberband RTCPU_DESC= Detect CPU capabilities at runtime RTMP_DESC= RTMP(T)E protocol support SHADERC_DESC= GLSL->SPIRV compilation via libshaderc +SOUND_SYSTEM_DESC= Sound systems SRT_DESC= Haivision SRT protocol via libsrt SVTAV1_DESC= AV1 encoding via SVT-AV1 SVTHEVC_DESC= HEVC encoding via SVT-HEVC @@ -141,6 +159,8 @@ TESSERACT_DESC= Optical Character Recognition via Tesseract THEORA_DESC= Encoding support for theora via libtheora UAVS3D_DESC= AVS3 decoding via libuavs3d VAPOURSYNTH_DESC= VapourSynth demuxer +VIDEO_DESC= Video CoDecs +VPROC_DESC= Video processing VIDSTAB_DESC= Video stabilization filter VMAF_DESC= VMAF filter via libvmaf VPL_DESC= Intel oneVPL (aka Quick Sync Video) diff --git a/multimedia/librtmp/Makefile b/multimedia/librtmp/Makefile index 0e4c073c5..b9ad44ef5 100644 --- a/multimedia/librtmp/Makefile +++ b/multimedia/librtmp/Makefile @@ -1,5 +1,6 @@ PORTNAME= librtmp PORTVERSION= 2.4.20190330 +PORTREVISION= 1 CATEGORIES= multimedia net MASTER_SITES= https://git.ffmpeg.org/gitweb/rtmpdump.git/snapshot/c5f04a58fc2aeea6296ca7c44ee4734c18401aa3.tar.gz?/ DISTNAME= rtmpdump-${PORTVERSION} diff --git a/multimedia/librtmp/files/patch-librtmp-dh.h b/multimedia/librtmp/files/patch-librtmp-dh.h index 6f6bbd740..6193ea902 100644 --- a/multimedia/librtmp/files/patch-librtmp-dh.h +++ b/multimedia/librtmp/files/patch-librtmp-dh.h @@ -13,7 +13,7 @@ if (!dh) goto failed; -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L MP_new(dh->g); if (!dh->g) @@ -26,7 +26,7 @@ + goto failed; +#endif + -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L MP_gethex(dh->p, P1024, res); /* prime P1024, see dhgroups.h */ +#else + const BIGNUM *p = DH_get0_p(dh); @@ -38,14 +38,14 @@ goto failed; } -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L MP_set_w(dh->g, 2); /* base 2 */ +#else + MP_set_w(g, 2); /* base 2 */ + DH_set0_pqg(dh, p, NULL, g); +#endif -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L dh->length = nKeyBits; +#else + DH_set_length(dh, nKeyBits); @@ -57,14 +57,14 @@ MP_gethex(q1, Q1024, res); assert(res); -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L res = isValidPublicKey(dh->pub_key, dh->p, q1); +#else + res = isValidPublicKey(DH_get0_pub_key(dh), DH_get0_p(dh), q1); +#endif if (!res) { -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L MP_free(dh->pub_key); MP_free(dh->priv_key); dh->pub_key = dh->priv_key = 0; @@ -78,14 +78,14 @@ DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen) { int len; -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L if (!dh || !dh->pub_key) +#else + if (!dh || !DH_get0_pub_key(dh)) +#endif return 0; -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L len = MP_bytes(dh->pub_key); +#else + len = MP_bytes(DH_get0_pub_key(dh)); @@ -94,7 +94,7 @@ return 0; memset(pubkey, 0, nPubkeyLen); -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L MP_setbin(dh->pub_key, pubkey + (nPubkeyLen - len), len); +#else + MP_setbin(DH_get0_pub_key(dh), pubkey + (nPubkeyLen - len), len); @@ -106,7 +106,7 @@ MP_gethex(q1, Q1024, len); assert(len); -+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L ++#if !defined(USE_OPENSSL) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L if (isValidPublicKey(pubkeyBn, dh->p, q1)) +#else + if (isValidPublicKey(pubkeyBn, DH_get0_p(dh), q1)) diff --git a/multimedia/librtmp/files/patch-librtmp-handshake.h b/multimedia/librtmp/files/patch-librtmp-handshake.h index 0cb645c1f..d673f0fa4 100644 --- a/multimedia/librtmp/files/patch-librtmp-handshake.h +++ b/multimedia/librtmp/files/patch-librtmp-handshake.h @@ -46,7 +46,7 @@ -#define HMAC_setup(ctx, key, len) HMAC_CTX_init(&ctx); HMAC_Init_ex(&ctx, key, len, EVP_sha256(), 0) -#define HMAC_crunch(ctx, buf, len) HMAC_Update(&ctx, buf, len) -#define HMAC_finish(ctx, dig, dlen) HMAC_Final(&ctx, dig, &dlen); HMAC_CTX_cleanup(&ctx) -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) +#define HMAC_setup(ctx, key, len) do { \ + if (ctx == NULL) \ + ctx = calloc(1, sizeof(*ctx)); \ @@ -63,7 +63,7 @@ + } while (0) +#endif +#define HMAC_crunch(ctx, buf, len) HMAC_Update(ctx, buf, len) -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) +#define HMAC_finish(ctx, dig, dlen) do { \ + HMAC_Final(ctx, dig, &dlen); \ + HMAC_CTX_cleanup(ctx); \ diff --git a/multimedia/librtmp/files/patch-librtmp-hashswf.c b/multimedia/librtmp/files/patch-librtmp-hashswf.c index 6973abfd8..209cfcc97 100644 --- a/multimedia/librtmp/files/patch-librtmp-hashswf.c +++ b/multimedia/librtmp/files/patch-librtmp-hashswf.c @@ -50,7 +50,7 @@ -#define HMAC_crunch(ctx, buf, len) HMAC_Update(&ctx, (unsigned char *)buf, len) -#define HMAC_finish(ctx, dig, dlen) HMAC_Final(&ctx, (unsigned char *)dig, &dlen); -#define HMAC_close(ctx) HMAC_CTX_cleanup(&ctx) -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) +#define HMAC_setup(ctx, key, len) do { \ + if (ctx == NULL) \ + ctx = calloc(1, sizeof(*ctx)); \ @@ -66,7 +66,7 @@ +#endif +#define HMAC_crunch(ctx, buf, len) HMAC_Update(ctx, (unsigned char *)buf, len) +#define HMAC_finish(ctx, dig, dlen) HMAC_Final(ctx, (unsigned char *)dig, &dlen); -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L) +#define HMAC_close(ctx) do { \ + HMAC_CTX_cleanup(ctx); \ + free(ctx); \