diff options
Diffstat (limited to 'multimedia')
49 files changed, 1291 insertions, 108 deletions
diff --git a/multimedia/ab-av1/Makefile b/multimedia/ab-av1/Makefile index 51505135682d..a05b4048ccf3 100644 --- a/multimedia/ab-av1/Makefile +++ b/multimedia/ab-av1/Makefile @@ -1,6 +1,7 @@ PORTNAME= ab-av1 DISTVERSIONPREFIX= v DISTVERSION= 0.10.3 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= jbeich@FreeBSD.org diff --git a/multimedia/alass/Makefile b/multimedia/alass/Makefile index 9a3905913756..9b26da5e3b2c 100644 --- a/multimedia/alass/Makefile +++ b/multimedia/alass/Makefile @@ -1,7 +1,7 @@ PORTNAME= alass DISTVERSIONPREFIX= v DISTVERSION= 2.0.0 -PORTREVISION= 19 +PORTREVISION= 20 CATEGORIES= multimedia MAINTAINER= yuri@FreeBSD.org diff --git a/multimedia/arcan/Makefile b/multimedia/arcan/Makefile index 2e1cfaaa9623..66617ffd2694 100644 --- a/multimedia/arcan/Makefile +++ b/multimedia/arcan/Makefile @@ -13,6 +13,8 @@ LICENSE_FILE_BSD3CLAUSE=${WRKSRC:H}/data/distr/LICENSE.BSD LICENSE_FILE_GPLv2+ = ${WRKSRC:H}/data/distr/LICENSE.GPL LICENSE_FILE_LGPL21+ = ${WRKSRC:H}/data/distr/LICENSE.LGPL +EXTRA_PATCHES= ${FILESDIR}/ffmpeg.patch:-p1 + BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto LIB_DEPENDS= libdrm.so:graphics/libdrm \ libfreetype.so:print/freetype2 diff --git a/multimedia/arcan/files/ffmpeg.patch b/multimedia/arcan/files/ffmpeg.patch new file mode 100644 index 000000000000..c1038e0e3c90 --- /dev/null +++ b/multimedia/arcan/files/ffmpeg.patch @@ -0,0 +1,57 @@ +Index: src/frameserver/encode/default/encode_presets.c +================================================================== +--- src/frameserver/encode/default/encode_presets.c ++++ src/frameserver/encode/default/encode_presets.c +@@ -61,11 +61,11 @@ + + if (avcodec_open2(dst->storage.video.context, + dst->storage.video.codec, NULL) != 0){ + dst->storage.video.codec = NULL; + dst->storage.video.context = NULL; +- avcodec_close(dst->storage.video.context); ++ avcodec_free_context(&dst->storage.video.context); + return false; + } + + return true; + } +@@ -89,11 +89,11 @@ + "got %d kbit/s using %s\n", samplerate, abr, + (int)(ctx->bit_rate / 1000), codec->name); + + if (avcodec_open2( + dst->storage.audio.context, dst->storage.audio.codec, NULL) != 0){ +- avcodec_close(dst->storage.audio.context); ++ avcodec_free_context(&dst->storage.audio.context); + dst->storage.audio.context = NULL; + dst->storage.audio.codec = NULL; + return false; + } + +@@ -179,11 +179,11 @@ + LOG("(encode) video setup @ %d * %d, %f fps, %d kbit / s.\n", + width, height, fps, vbr / 1000); + + if (avcodec_open2(dst->storage.video.context, + dst->storage.video.codec, &opts) != 0){ +- avcodec_close(dst->storage.video.context); ++ avcodec_free_context(&dst->storage.video.context); + dst->storage.video.context = NULL; + dst->storage.video.codec = NULL; + return false; + } + +@@ -245,11 +245,11 @@ + + LOG("(encode) video setup @ %d * %d, %f fps, %d kbit / s.\n", + width, height, fps, vbr / 1024); + if (avcodec_open2(dst->storage.video.context, + dst->storage.video.codec, &opts) != 0){ +- avcodec_close(dst->storage.video.context); ++ avcodec_free_context(&dst->storage.video.context); + dst->storage.video.context = NULL; + dst->storage.video.codec = NULL; + return false; + } + + diff --git a/multimedia/av1an/Makefile b/multimedia/av1an/Makefile index 7a2ef68e6465..4a02ce6bc2a7 100644 --- a/multimedia/av1an/Makefile +++ b/multimedia/av1an/Makefile @@ -1,5 +1,6 @@ PORTNAME= av1an DISTVERSION= 0.5.0 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= ports@FreeBSD.org diff --git a/multimedia/ccextractor/Makefile b/multimedia/ccextractor/Makefile index 5c505748b9eb..4eb1ab838384 100644 --- a/multimedia/ccextractor/Makefile +++ b/multimedia/ccextractor/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 2 +PORTREVISION= 3 COMMENT= Subtitle extractor diff --git a/multimedia/dovi_tool/Makefile b/multimedia/dovi_tool/Makefile index 350a6d9a69b3..df688ee12d73 100644 --- a/multimedia/dovi_tool/Makefile +++ b/multimedia/dovi_tool/Makefile @@ -1,6 +1,6 @@ PORTNAME= dovi_tool DISTVERSION= 2.1.2 -PORTREVISION= 10 +PORTREVISION= 11 CATEGORIES= multimedia MAINTAINER= michiel@vanbaak.eu diff --git a/multimedia/gstreamer1-plugins-rust/Makefile b/multimedia/gstreamer1-plugins-rust/Makefile index b6d43853fbbe..3d55e4c2a658 100644 --- a/multimedia/gstreamer1-plugins-rust/Makefile +++ b/multimedia/gstreamer1-plugins-rust/Makefile @@ -1,5 +1,6 @@ PORTNAME= gstreamer1-plugins-rust DISTVERSION= ${gst-rust_VERSION} +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= multimedia@FreeBSD.org diff --git a/multimedia/gstreamer1/Makefile b/multimedia/gstreamer1/Makefile index f65febe33bb1..7305ad711290 100644 --- a/multimedia/gstreamer1/Makefile +++ b/multimedia/gstreamer1/Makefile @@ -1,5 +1,6 @@ PORTNAME= gstreamer PORTVERSION= ${_GST_VERSION} +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= https://gstreamer.freedesktop.org/src/gstreamer/ PKGNAMESUFFIX= 1 diff --git a/multimedia/guvcview/Makefile b/multimedia/guvcview/Makefile index 5c8d1726983e..17cab1ed38b8 100644 --- a/multimedia/guvcview/Makefile +++ b/multimedia/guvcview/Makefile @@ -36,4 +36,8 @@ PULSEAUDIO_BROKEN= Doesn't show up as an audio backend at runtime PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE +post-patch: + ${REINPLACE_CMD} -e 's/FF_/AV_/g' \ + ${WRKDIR}/guvcview-src-2.2.1/gview_encoder/audio_codecs.c + .include <bsd.port.mk> diff --git a/multimedia/helvum/Makefile b/multimedia/helvum/Makefile index e4562f412724..186f92589e1a 100644 --- a/multimedia/helvum/Makefile +++ b/multimedia/helvum/Makefile @@ -1,6 +1,6 @@ PORTNAME= helvum DISTVERSION= 0.5.1 -PORTREVISION= 20 +PORTREVISION= 21 CATEGORIES= multimedia MAINTAINER= ports@FreeBSD.org diff --git a/multimedia/kooha/Makefile b/multimedia/kooha/Makefile index 806db2d5c3db..87ae227f131f 100644 --- a/multimedia/kooha/Makefile +++ b/multimedia/kooha/Makefile @@ -1,7 +1,7 @@ PORTNAME= kooha DISTVERSIONPREFIX= v DISTVERSION= 2.3.0 -PORTREVISION= 16 +PORTREVISION= 17 CATEGORIES= multimedia wayland MAINTAINER= ports@FreeBSD.org diff --git a/multimedia/libcec/Makefile b/multimedia/libcec/Makefile index 9a777814c048..603d302662f6 100644 --- a/multimedia/libcec/Makefile +++ b/multimedia/libcec/Makefile @@ -13,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.md LIB_DEPENDS= libp8-platform.so:devel/p8-platform -USES= alias cmake compiler:c++11-lib pathfix pkgconfig shebangfix +USES= alias cmake compiler:c++11-lib pkgconfig shebangfix CMAKE_ARGS= -DCMAKE_REQUIRED_INCLUDES=${LOCALBASE}/include \ -DCMAKE_REQUIRED_FLAGS=-L${LOCALBASE}/lib \ diff --git a/multimedia/librav1e/Makefile b/multimedia/librav1e/Makefile index d8b8c065be24..91b5ee8882f6 100644 --- a/multimedia/librav1e/Makefile +++ b/multimedia/librav1e/Makefile @@ -1,4 +1,4 @@ -PORTREVISION= 4 +PORTREVISION= 5 PKGNAMEPREFIX= lib MASTERDIR= ${.CURDIR}/../rav1e diff --git a/multimedia/librespot/Makefile b/multimedia/librespot/Makefile index 8e8ad57f9805..78268c027b75 100644 --- a/multimedia/librespot/Makefile +++ b/multimedia/librespot/Makefile @@ -1,6 +1,7 @@ PORTNAME= librespot DISTVERSIONPREFIX= v DISTVERSION= 0.8.0 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= driesm@FreeBSD.org diff --git a/multimedia/libxine/Makefile b/multimedia/libxine/Makefile index e3f6a2d82ad7..b8ca9980f6d7 100644 --- a/multimedia/libxine/Makefile +++ b/multimedia/libxine/Makefile @@ -32,8 +32,15 @@ LIB_DEPENDS= libFLAC.so:audio/flac \ libogg.so:audio/libogg \ libdvdnav.so:multimedia/libdvdnav -EXTRA_PATCHES= ${FILESDIR}/ffmpeg8-1.patch:-p1 \ - ${FILESDIR}/ffmpeg8-2.patch:-p1 +# patch obtain via hg export -r <rev> +EXTRA_PATCHES= \ + ${FILESDIR}/771f4ae27e582123ff3500444718fc8f96186d74.patch:-p1 \ + ${FILESDIR}/0a786d63bbdb2d780a9231f6772e84e743c72014.patch:-p1 \ + ${FILESDIR}/6f1000084f6084f49c95c202d12593e49916f58b.patch:-p1 \ + ${FILESDIR}/1e7b184008860c8be2289c3cefd9dee57f06193a.patch:-p1 \ + ${FILESDIR}/73b833e7fe356cd2d9490dda4ebc9bfe16fce958.patch:-p1 \ + ${FILESDIR}/9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc.patch:-p1 \ + ${FILESDIR}/a8fffd1193b2247c7f732d4df83dcc03fce96dbe.patch:-p1 USES= compiler cpe gl gmake gnome iconv libtool:keepla jpeg \ localbase pathfix perl5 pkgconfig tar:xz xorg diff --git a/multimedia/libxine/files/0a786d63bbdb2d780a9231f6772e84e743c72014.patch b/multimedia/libxine/files/0a786d63bbdb2d780a9231f6772e84e743c72014.patch new file mode 100644 index 000000000000..d792fbc858df --- /dev/null +++ b/multimedia/libxine/files/0a786d63bbdb2d780a9231f6772e84e743c72014.patch @@ -0,0 +1,67 @@ +# HG changeset patch +# User Torsten Jager <t.jager@gmx.de> +# Date 1675683900 -3600 +# Mon Feb 06 12:45:00 2023 +0100 +# Node ID 0a786d63bbdb2d780a9231f6772e84e743c72014 +# Parent b0a36ed8ec8f3f2de545502b93ec846561168b64 +Try to silence some cast align warnings 4. + +diff -r b0a36ed8ec8f -r 0a786d63bbdb src/combined/ffmpeg/ff_video_decoder.c +--- a/src/combined/ffmpeg/ff_video_decoder.c Mon Feb 06 12:44:55 2023 +0100 ++++ b/src/combined/ffmpeg/ff_video_decoder.c Mon Feb 06 12:45:00 2023 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2001-2022 the xine project ++ * Copyright (C) 2001-2023 the xine project + * + * This file is part of xine, a free video player. + * +@@ -1398,7 +1398,7 @@ + #if defined(AV_PIX_FMT_YUV420P9) || defined(AV_PIX_FMT_YUV420P10) + static void ff_get_deep_color (uint8_t *src, int sstride, uint8_t *dest, int dstride, + int width, int height, uint8_t *tab) { +- uint16_t *p = (uint16_t *) src; ++ uint16_t *p = (uint16_t *)ASSUME_ALIGNED_2 (src, 2); + uint8_t *q = dest; + int spad = sstride / 2 - width; + int dpad = dstride - width; +@@ -1804,22 +1804,24 @@ + #ifdef XFF_AVCODEC_SUB_ID + this->context->sub_id = _X_BE_32(&this->buf[30]); + #endif +- this->context->extradata_size = this->size - 26; +- if (this->context->extradata_size < 8) { +- this->context->extradata_size= 8; +- this->context->extradata = calloc(1, this->context->extradata_size + +- AV_INPUT_BUFFER_PADDING_SIZE); +- ((uint32_t *)this->context->extradata)[0] = 0; +- if (codec_type == BUF_VIDEO_RV10) +- ((uint32_t *)this->context->extradata)[1] = 0x10000000; +- else +- ((uint32_t *)this->context->extradata)[1] = 0x10003001; ++ if (this->size < 8 + 26) { ++ uint32_t *b = calloc (1, 8 + AV_INPUT_BUFFER_PADDING_SIZE); ++ if (b) { ++ this->context->extradata_size = 8; ++ this->context->extradata = (uint8_t *)b; ++ b[0] = 0; ++ if (codec_type == BUF_VIDEO_RV10) ++ b[1] = 0x10000000; ++ else ++ b[1] = 0x10003001; ++ } + } else { +- this->context->extradata = malloc(this->context->extradata_size + +- AV_INPUT_BUFFER_PADDING_SIZE); +- memcpy(this->context->extradata, this->buf + 26, +- this->context->extradata_size); +- memset(this->context->extradata + this->context->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); ++ this->context->extradata = malloc (this->size - 26 + AV_INPUT_BUFFER_PADDING_SIZE); ++ if (this->context->extradata) { ++ this->context->extradata_size = this->size - 26; ++ memcpy (this->context->extradata, this->buf + 26, this->context->extradata_size); ++ memset (this->context->extradata + this->context->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); ++ } + } + + xprintf(this->stream->xine, XINE_VERBOSITY_LOG, diff --git a/multimedia/libxine/files/1e7b184008860c8be2289c3cefd9dee57f06193a.patch b/multimedia/libxine/files/1e7b184008860c8be2289c3cefd9dee57f06193a.patch new file mode 100644 index 000000000000..b6b4040a8478 --- /dev/null +++ b/multimedia/libxine/files/1e7b184008860c8be2289c3cefd9dee57f06193a.patch @@ -0,0 +1,475 @@ +# HG changeset patch +# User Torsten Jager <t.jager@gmx.de> +# Date 1715025355 -7200 +# Mon May 06 21:55:55 2024 +0200 +# Node ID 1e7b184008860c8be2289c3cefd9dee57f06193a +# Parent d1954d852980ddc887a67a9f1a26626909561ff5 +ffmpeg compatibility update 1. + +diff -r d1954d852980 -r 1e7b18400886 src/combined/ffmpeg/ff_audio_decoder.c +--- a/src/combined/ffmpeg/ff_audio_decoder.c Mon Apr 08 13:25:10 2024 +0200 ++++ b/src/combined/ffmpeg/ff_audio_decoder.c Mon May 06 21:55:55 2024 +0200 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2001-2023 the xine project ++ * Copyright (C) 2001-2024 the xine project + * + * This file is part of xine, a free video player. + * +@@ -67,6 +67,7 @@ + + xine_t *xine; + float gain; ++ int bitexact; + } ff_audio_class_t; + + typedef struct ff_audio_decoder_s { +@@ -188,14 +189,25 @@ + xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, + "ffmpeg_audio_dec: found AAC ADTS syncword after %d bytes\n", i); + if (this->buftype == BUF_AUDIO_AAC_LATM) { ++ uint8_t *ed = NULL; ++ int es = 0; + xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, + "ffmpeg_audio_dec: stream says LATM but is ADTS -> switching decoders\n"); +- if (this->decoder_ok) { +- pthread_mutex_lock (&ffmpeg_lock); +- avcodec_close (this->context); +- pthread_mutex_unlock (&ffmpeg_lock); +- this->decoder_ok = 0; ++ pthread_mutex_lock (&ffmpeg_lock); ++ if (this->context) { ++ ed = this->context->extradata; ++ es = this->context->extradata_size; ++ this->context->extradata = NULL; ++ this->context->extradata_size = 0; ++ XFF_FREE_CONTEXT (this->context); + } ++ this->decoder_ok = 0; ++ this->context = XFF_ALLOC_CONTEXT (); ++ if (this->context) { ++ this->context->extradata = ed; ++ this->context->extradata_size = es; ++ } ++ pthread_mutex_unlock (&ffmpeg_lock); + this->codec = NULL; + ff_audio_open_codec (this, BUF_AUDIO_AAC); + } +@@ -349,6 +361,11 @@ + return -1; + } + ++ if (this->class->bitexact) ++ this->context->flags |= CODEC_FLAG_BITEXACT; ++ else ++ this->context->flags &= ~CODEC_FLAG_BITEXACT; ++ + pthread_mutex_lock (&ffmpeg_lock); + if (XFF_AVCODEC_OPEN (this->context, this->codec) < 0) { + pthread_mutex_unlock (&ffmpeg_lock); +@@ -1377,9 +1394,21 @@ + } + #endif + pthread_mutex_lock (&ffmpeg_lock); +- avcodec_close (this->context); +- if (XFF_AVCODEC_OPEN (this->context, this->codec) < 0) ++ { ++ uint8_t *ed = this->context->extradata; ++ int es = this->context->extradata_size; ++ this->context->extradata = NULL; ++ this->context->extradata_size = 0; ++ XFF_FREE_CONTEXT (this->context); + this->decoder_ok = 0; ++ this->context = XFF_ALLOC_CONTEXT (); ++ if (this->context) { ++ this->context->extradata = ed; ++ this->context->extradata_size = es; ++ } ++ } ++ if (XFF_AVCODEC_OPEN (this->context, this->codec) >= 0) ++ this->decoder_ok = 1; + pthread_mutex_unlock (&ffmpeg_lock); + } + +@@ -1418,20 +1447,20 @@ + XFF_FREE_FRAME (this->av_frame); + } + #endif +- pthread_mutex_lock (&ffmpeg_lock); +- avcodec_close (this->context); +- pthread_mutex_unlock (&ffmpeg_lock); + } ++ pthread_mutex_lock (&ffmpeg_lock); ++ if (this->context) { ++ _x_freep (&this->context->extradata); ++ this->context->extradata_size = 0; ++ XFF_FREE_CONTEXT (this->context); ++ } ++ pthread_mutex_unlock (&ffmpeg_lock); + + ff_audio_output_close(this); + + xine_free_aligned (this->buf); + xine_free_aligned (this->decode_buffer); + +- _x_freep (&this->context->extradata); +- this->context->extradata_size = 0; +- XFF_FREE_CONTEXT (this->context); +- + XFF_PACKET_UNREF (this->avpkt); + + xine_pts_queue_delete (&this->pts_queue); +@@ -1513,6 +1542,12 @@ + free (this); + } + ++static void ff_bitexact_cb (void *user_data, xine_cfg_entry_t *entry) { ++ ff_audio_class_t *class = (ff_audio_class_t *)user_data; ++ ++ class->bitexact = entry->num_value; ++} ++ + void *init_audio_plugin (xine_t *xine, const void *data) { + + ff_audio_class_t *this ; +@@ -1540,5 +1575,12 @@ + 10, ff_gain_cb, this) + / (float)20); + ++ this->bitexact = xine->config->register_bool (xine->config, ++ "audio.processing.ffmpeg_bitexact", 0, ++ _("Let FFmpeg use precise but slower math"), ++ _("Get slightly better sound, at the expense of speed.\n" ++ "Takes effect with next stream."), ++ 10, ff_bitexact_cb, this); ++ + return this; + } +diff -r d1954d852980 -r 1e7b18400886 src/combined/ffmpeg/ff_video_decoder.c +--- a/src/combined/ffmpeg/ff_video_decoder.c Mon Apr 08 13:25:10 2024 +0200 ++++ b/src/combined/ffmpeg/ff_video_decoder.c Mon May 06 21:55:55 2024 +0200 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2001-2023 the xine project ++ * Copyright (C) 2001-2024 the xine project + * + * This file is part of xine, a free video player. + * +@@ -128,6 +128,7 @@ + + int64_t pts; + int64_t last_pts; ++ int64_t tagged_pts; + int video_step; + int reported_video_step; + uint8_t pts_tag_pass; +@@ -551,7 +552,9 @@ + # ifdef XFF_FRAME_AGE + av_frame->age = 1; + # endif ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE + av_frame->reordered_opaque = context->reordered_opaque; ++#endif + + ffsf = ffsf_new (this); + if (!ffsf) +@@ -862,7 +865,9 @@ + # endif + + /* take over pts for this frame to have it reordered */ ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE + av_frame->reordered_opaque = context->reordered_opaque; ++#endif + + return 0; + } +@@ -1142,9 +1147,13 @@ + if (this->codec->id == CODEC_ID_VC1 && + (!this->bih.biWidth || !this->bih.biHeight)) { + /* VC1 codec must be re-opened with correct width and height. */ +- avcodec_close(this->context); +- +- if (XFF_AVCODEC_OPEN (this->context, this->codec) < 0) { ++ if (this->context) { ++ _x_freep (&this->context->extradata); ++ this->context->extradata_size = 0; ++ XFF_FREE_CONTEXT (this->context); ++ } ++ this->context = XFF_ALLOC_CONTEXT (); ++ if (!(this->context && XFF_AVCODEC_OPEN (this->context, this->codec) >= 0)) { + pthread_mutex_unlock(&ffmpeg_lock); + xprintf (this->stream->xine, XINE_VERBOSITY_LOG, + _("ffmpeg_video_dec: couldn't open decoder (pass 2)\n")); +@@ -1211,6 +1220,11 @@ + /* dont want initial AV_NOPTS_VALUE here */ + this->context->reordered_opaque = 0; + #endif ++ ++#ifdef XFF_AVCODEC_FRAME_PTS ++ this->context->time_base.num = 1; ++ this->context->time_base.den = 90000 << 8; ++#endif + } + + #ifdef ENABLE_VAAPI +@@ -1959,7 +1973,26 @@ + return (pts * 256) | this->pts_tag_pass; + } + +-static int64_t ff_untag_pts (ff_video_decoder_t *this, int64_t pts) { ++static int64_t ff_untag_pts (ff_video_decoder_t *this, AVFrame *av_frame) { ++ int64_t pts; ++#if defined(XFF_AVCODEC_FRAME_PTS) ++ pts = (av_frame->pts != AV_NOPTS_VALUE) ? av_frame->pts : 0; ++# if defined(XFF_AVCODEC_REORDERED_OPAQUE) ++ /* paranoia !!! */ ++ if (pts != av_frame->reordered_opaque) { ++ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, ++ LOG_MODULE ": WARNING: frame pts %" PRId64 " != reordered_opaque %" PRId64 ".\n", ++ pts, av_frame->reordered_opaque); ++ pts = av_frame->reordered_opaque; ++ } ++ av_frame->reordered_opaque = 0; ++# endif ++#elif defined(XFF_AVCODEC_REORDERED_OPAQUE) ++ pts = av_frame->reordered_opaque; ++ av_frame->reordered_opaque = 0; ++#else ++ pts = this->tagged_pts; ++#endif + if ((uint8_t)(pts & 0xff) == this->pts_tag_pass) { + /* restore sign. */ + return pts >> 8; +@@ -1984,7 +2017,9 @@ + this->avpkt->data = buf; + this->avpkt->size = buf_size; + this->avpkt->flags = AV_PKT_FLAG_KEY; +- ++# ifdef XFF_AVCODEC_FRAME_PTS ++ this->avpkt->pts = this->tagged_pts; ++# endif + # if XFF_PALETTE == 2 || XFF_PALETTE == 3 + if (buf && this->palette_changed) { + uint8_t *sd = av_packet_new_side_data (this->avpkt, AV_PKT_DATA_PALETTE, 256 * 4); +@@ -2094,9 +2129,14 @@ + #endif + + /* apply valid pts to first frame _starting_ thereafter only */ +- if (this->pts && !this->context->reordered_opaque) { +- this->context->reordered_opaque = +- this->av_frame->reordered_opaque = ff_tag_pts (this, this->pts); ++ if (this->pts && !this->tagged_pts) { ++ this->tagged_pts = ff_tag_pts (this, this->pts); ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE ++ this->context->reordered_opaque = this->av_frame->reordered_opaque = this->tagged_pts; ++#endif ++#ifdef XFF_AVCODEC_FRAME_PTS ++ this->av_frame->pts = this->tagged_pts; ++#endif + this->pts = 0; + } + +@@ -2207,9 +2247,11 @@ + img->top_field_first = this->av_frame->top_field_first; + + /* get back reordered pts */ +- img->pts = ff_untag_pts (this, this->av_frame->reordered_opaque); +- this->av_frame->reordered_opaque = 0; ++ img->pts = ff_untag_pts (this, this->av_frame); ++ this->tagged_pts = 0; ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE + this->context->reordered_opaque = 0; ++#endif + + if (this->av_frame->repeat_pict) + img->duration = this->video_step * 3 / 2; +@@ -2330,9 +2372,14 @@ + } + + if (this->size == 0) { ++ this->tagged_pts = ff_tag_pts (this, this->pts); + /* take over pts when we are about to buffer a frame */ +- this->av_frame->reordered_opaque = ff_tag_pts(this, this->pts); +- this->context->reordered_opaque = ff_tag_pts(this, this->pts); ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE ++ this->av_frame->reordered_opaque = this->context->reordered_opaque = this->tagged_pts; ++#endif ++#ifdef XFF_AVCODEC_FRAME_PTS ++ this->av_frame->pts = this->tagged_pts; ++#endif + this->pts = 0; + } + +@@ -2405,7 +2452,10 @@ + need_unref = 1; + #endif + /* reset consumed pts value */ +- this->context->reordered_opaque = ff_tag_pts(this, 0); ++ this->tagged_pts = ff_tag_pts (this, 0); ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE ++ this->context->reordered_opaque = this->tagged_pts; ++#endif + + if (err) { + +@@ -2439,10 +2489,14 @@ + ff_check_bufsize(this, this->size); + memmove (this->buf, &chunk_buf[offset], this->size); + chunk_buf = this->buf; +- + /* take over pts for next access unit */ +- this->av_frame->reordered_opaque = ff_tag_pts(this, this->pts); +- this->context->reordered_opaque = ff_tag_pts(this, this->pts); ++ this->tagged_pts = ff_tag_pts (this, this->pts); ++#ifdef XFF_AVCODEC_REORDERED_OPAQUE ++ this->av_frame->reordered_opaque = this->context->reordered_opaque = this->tagged_pts; ++#endif ++#ifdef XFF_AVCODEC_FRAME_PTS ++ this->av_frame->pts = this->tagged_pts; ++#endif + this->pts = 0; + } + } +@@ -2559,8 +2613,7 @@ + ff_convert_frame(this, img, this->av_frame); + } + +- img->pts = ff_untag_pts(this, this->av_frame->reordered_opaque); +- this->av_frame->reordered_opaque = 0; ++ img->pts = ff_untag_pts(this, this->av_frame); + + /* workaround for weird 120fps streams */ + if( video_step_to_use == 750 ) { +@@ -2600,8 +2653,7 @@ + this->output_format, + VO_BOTH_FIELDS|this->frame_flags); + /* set PTS to allow early syncing */ +- img->pts = ff_untag_pts(this, this->av_frame->reordered_opaque); +- this->av_frame->reordered_opaque = 0; ++ img->pts = ff_untag_pts(this, this->av_frame); + + img->duration = video_step_to_use; + +@@ -2783,7 +2835,7 @@ + ff_convert_frame (this, img, this->av_frame2); + } + +- img->pts = ff_untag_pts (this, this->av_frame2->reordered_opaque); ++ img->pts = ff_untag_pts (this, this->av_frame2); + + if (video_step_to_use == 750) + video_step_to_use = 0; +@@ -2903,7 +2955,9 @@ + if (this->decoder_ok) { + + pthread_mutex_lock(&ffmpeg_lock); +- avcodec_close (this->context); ++ _x_freep (&this->context->extradata); ++ this->context->extradata_size = 0; ++ XFF_FREE_CONTEXT (this->context); + pthread_mutex_unlock(&ffmpeg_lock); + + #ifdef ENABLE_DIRECT_RENDERING +@@ -2912,16 +2966,15 @@ + + this->stream->video_out->close(this->stream->video_out, this->stream); + this->decoder_ok = 0; ++ } else if (this->context) { ++ _x_freep (&this->context->extradata); ++ this->context->extradata_size = 0; ++ XFF_FREE_CONTEXT (this->context); + } + + if (this->slice_offset_table) + free (this->slice_offset_table); + +- if (this->context) { +- _x_freep (&this->context->extradata); +- this->context->extradata_size = 0; +- XFF_FREE_CONTEXT (this->context); +- } + + #if XFF_VIDEO > 1 + XFF_PACKET_UNREF (this->avpkt); +diff -r d1954d852980 -r 1e7b18400886 src/combined/ffmpeg/ffmpeg_compat.h +--- a/src/combined/ffmpeg/ffmpeg_compat.h Mon Apr 08 13:25:10 2024 +0200 ++++ b/src/combined/ffmpeg/ffmpeg_compat.h Mon May 06 21:55:55 2024 +0200 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2000-2022 the xine project ++ * Copyright (C) 2000-2024 the xine project + * + * This file is part of xine, a unix video player. + * +@@ -54,9 +54,16 @@ + #endif + + /* reordered_opaque appeared in libavcodec 51.68.0 */ +-#define XFF_AVCODEC_REORDERED_OPAQUE +-#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(51,68,0) +-# undef XFF_AVCODEC_REORDERED_OPAQUE ++#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(51,68,0) && LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(60,0,0) ++# define XFF_AVCODEC_REORDERED_OPAQUE ++#else ++# undef XFF_AVCODEC_REORDERED_OPAQUE ++#endif ++ ++#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(58,33,100) ++# define XFF_AVCODEC_FRAME_PTS ++#else ++# undef XFF_AVCODEC_FRAME_PTS + #endif + + /* colorspace and color_range were added before 52.29.0 */ +@@ -210,9 +217,11 @@ + #endif + + #if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(55,63,100) +-# define XFF_FREE_CONTEXT(pp) do {av_free(pp); pp = NULL;} while (0) ++# define XFF_FREE_CONTEXT(pp) do {if (pp) avcodec_close (pp); av_free (pp); pp = NULL;} while (0) ++#elif LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(58,33,100) ++# define XFF_FREE_CONTEXT(pp) do {if (pp) avcodec_close (pp); avcodec_free_context (&(pp));} while (0) + #else +-# define XFF_FREE_CONTEXT(pp) avcodec_free_context(&(pp)) ++# define XFF_FREE_CONTEXT(pp) avcodec_free_context (&(pp)) + #endif + + #if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(54,59,100) +@@ -303,4 +312,3 @@ + #endif /* defined(LIBAVCODEC_VERSION_INT) */ + + #endif /* XINE_AVCODEC_COMPAT_H */ +- +diff -r d1954d852980 -r 1e7b18400886 src/dxr3/ffmpeg_encoder.c +--- a/src/dxr3/ffmpeg_encoder.c Mon Apr 08 13:25:10 2024 +0200 ++++ b/src/dxr3/ffmpeg_encoder.c Mon May 06 21:55:55 2024 +0200 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2000-2022 the xine project ++ * Copyright (C) 2000-2024 the xine project + * + * This file is part of xine, a unix video player. + * +@@ -127,10 +127,8 @@ + unsigned char use_quantizer; + + if (this->context) { +- avcodec_close(this->context); +- free(this->context); ++ XFF_FREE_CONTEXT (this->context); + free(this->picture); +- this->context = NULL; + this->picture = NULL; + } + +@@ -344,10 +342,8 @@ + #if XFF_ENCVIDEO > 1 + XFF_PACKET_UNREF (this->pkt); + #endif +- avcodec_close(this->context); + XFF_FREE_CONTEXT (this->context); + free(this->picture); +- this->context = NULL; + this->picture = NULL; + } + return 1; diff --git a/multimedia/libxine/files/6f1000084f6084f49c95c202d12593e49916f58b.patch b/multimedia/libxine/files/6f1000084f6084f49c95c202d12593e49916f58b.patch new file mode 100644 index 000000000000..36b07bb7e0a0 --- /dev/null +++ b/multimedia/libxine/files/6f1000084f6084f49c95c202d12593e49916f58b.patch @@ -0,0 +1,161 @@ +# HG changeset patch +# User Torsten Jager <t.jager@gmx.de> +# Date 1675683905 -3600 +# Mon Feb 06 12:45:05 2023 +0100 +# Node ID 6f1000084f6084f49c95c202d12593e49916f58b +# Parent 0a786d63bbdb2d780a9231f6772e84e743c72014 +Try to silence some cast align warnings 5. + +diff -r 0a786d63bbdb -r 6f1000084f60 src/combined/ffmpeg/ff_audio_decoder.c +--- a/src/combined/ffmpeg/ff_audio_decoder.c Mon Feb 06 12:45:00 2023 +0100 ++++ b/src/combined/ffmpeg/ff_audio_decoder.c Mon Feb 06 12:45:05 2023 +0100 +@@ -796,7 +796,7 @@ + #define CLIP_16(v) ((v + 0x8000) & ~0xffff ? (v >> 31) ^ 0x7fff : v) + + static int ff_audio_decode (ff_audio_decoder_t *this) { +- int16_t *decode_buffer = (int16_t *)this->send.buf; ++ int16_t *decode_buffer = (int16_t *)ASSUME_ALIGNED_2 (this->send.buf, 2); + int consumed, got_frame = 0; + #if XFF_AUDIO >= 4 + float gain = this->class->gain; +@@ -871,13 +871,13 @@ + const stype *p1, *p2, *p3, *p4;\ + int i, sstep;\ + int8_t *x = idx;\ +- int16_t *dptr = (int16_t *)decode_buffer + dindx;\ ++ int16_t *dptr = decode_buffer + dindx;\ + if (planar) {\ +- p1 = (stype *)this->av_frame->extended_data[x[0]];\ ++ p1 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[0]], sizeof (stype));\ + if (!p1) break;\ + sstep = 1;\ + } else {\ +- p1 = (stype *)this->av_frame->extended_data[0];\ ++ p1 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype));\ + if (!p1) break;\ + p1 += x[0];\ + sstep = this->ff_channels;\ +@@ -893,10 +893,10 @@ + break;\ + }\ + if (planar) {\ +- p2 = (stype *)this->av_frame->extended_data[x[1]];\ ++ p2 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[1]], sizeof (stype));\ + if (!p2) break;\ + } else\ +- p2 = (stype *)this->av_frame->extended_data[0] + x[1];\ ++ p2 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype)) + x[1];\ + if (num == 2) {\ + for (i = 0; i < samples; i++) {\ + int32_t v = MIX_FIX(*p2);\ +@@ -911,10 +911,10 @@ + break;\ + }\ + if (planar) {\ +- p3 = (stype *)this->av_frame->extended_data[x[2]];\ ++ p3 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[2]], sizeof (stype));\ + if (!p3) break;\ + } else\ +- p3 = (stype *)this->av_frame->extended_data[0] + x[2];\ ++ p3 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype)) + x[2];\ + if (num == 3) {\ + for (i = 0; i < samples; i++) {\ + int32_t v = MIX_FIX(*p2);\ +@@ -931,10 +931,10 @@ + break;\ + }\ + if (planar) {\ +- p4 = (stype *)this->av_frame->extended_data[x[3]];\ ++ p4 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[3]], sizeof (stype));\ + if (!p4) break;\ + } else\ +- p4 = (stype *)this->av_frame->extended_data[0] + x[3];\ ++ p4 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype)) + x[3];\ + for (i = 0; i < samples; i++) {\ + int32_t v = MIX_FIX(*p2);\ + p2 += sstep;\ +@@ -1003,13 +1003,13 @@ + int i, sstep;\ + float gain3;\ + int8_t *x = idx;\ +- int16_t *dptr = (int16_t *)decode_buffer + dindx;\ ++ int16_t *dptr = decode_buffer + dindx;\ + if (planar) {\ +- p1 = (stype *)this->av_frame->extended_data[x[0]];\ ++ p1 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[0]], sizeof (stype));\ + if (!p1) break;\ + sstep = 1;\ + } else {\ +- p1 = (stype *)this->av_frame->extended_data[0];\ ++ p1 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype));\ + if (!p1) break;\ + p1 += x[0];\ + sstep = this->ff_channels;\ +@@ -1025,10 +1025,10 @@ + }\ + gain3 = gain * 0.7071;\ + if (planar) {\ +- p2 = (stype *)this->av_frame->extended_data[x[1]];\ ++ p2 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[1]], sizeof (stype));\ + if (!p2) break;\ + } else\ +- p2 = (stype *)this->av_frame->extended_data[0] + x[1];\ ++ p2 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype)) + x[1];\ + if (num == 2) {\ + for (i = 0; i < samples; i++) {\ + int32_t v = (*p1) * gain + (*p2) * gain3;\ +@@ -1040,10 +1040,10 @@ + break;\ + }\ + if (planar) {\ +- p3 = (stype *)this->av_frame->extended_data[x[2]];\ ++ p3 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[2]], sizeof (stype));\ + if (!p3) break;\ + } else\ +- p3 = (stype *)this->av_frame->extended_data[0] + x[2];\ ++ p3 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype)) + x[2];\ + if (num == 3) {\ + for (i = 0; i < samples; i++) {\ + int32_t v = (*p1) * gain + (*p2 + *p3) * gain3;\ +@@ -1056,10 +1056,10 @@ + break;\ + }\ + if (planar) {\ +- p4 = (stype *)this->av_frame->extended_data[x[3]];\ ++ p4 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[x[3]], sizeof (stype));\ + if (!p4) break;\ + } else\ +- p4 = (stype *)this->av_frame->extended_data[0] + x[3];\ ++ p4 = (stype *)ASSUME_ALIGNED_2 (this->av_frame->extended_data[0], sizeof (stype)) + x[3];\ + for (i = 0; i < samples; i++) {\ + int32_t v = (*p1) * gain + (*p2 + *p3 + *p4) * gain3;\ + p1 += sstep;\ +@@ -1240,8 +1240,8 @@ + /* the above codecs output float samples, not 16-bit integers */ + int samples = this->send.len / sizeof(float); + float gain = this->class->gain; +- float *p = (float *)this->decode_buffer; +- int16_t *q = (int16_t *)this->decode_buffer; ++ float *p = (float *)ASSUME_ALIGNED_2 (this->decode_buffer, 4); ++ int16_t *q = (int16_t *)ASSUME_ALIGNED_2 (this->decode_buffer, 2); + int i; + for (i = samples; i; i--) { + int v = *p++ * gain; +@@ -1255,7 +1255,7 @@ + int samples = this->send.len / (this->ff_channels * 2); + int channels = this->ao_channels; + int ff_channels = this->ff_channels; +- int16_t *p = (int16_t *)this->decode_buffer; ++ int16_t *p = (int16_t *)ASSUME_ALIGNED_2 (this->decode_buffer, 2); + int16_t *q = p; + int shift = this->downmix_shift, i, j; + /* downmix mono output to stereo first */ +@@ -1300,7 +1300,7 @@ + } + /* final mono downmix */ + if (channels > this->ao_channels) { +- p = (int16_t *)this->decode_buffer; ++ p = (int16_t *)ASSUME_ALIGNED_2 (this->decode_buffer, 2); + q = p; + for (i = samples; i; i--) { + int v = *p++; diff --git a/multimedia/libxine/files/73b833e7fe356cd2d9490dda4ebc9bfe16fce958.patch b/multimedia/libxine/files/73b833e7fe356cd2d9490dda4ebc9bfe16fce958.patch new file mode 100644 index 000000000000..136750404be2 --- /dev/null +++ b/multimedia/libxine/files/73b833e7fe356cd2d9490dda4ebc9bfe16fce958.patch @@ -0,0 +1,318 @@ +# HG changeset patch +# User Torsten Jager <t.jager@gmx.de> +# Date 1715160885 -7200 +# Wed May 08 11:34:45 2024 +0200 +# Node ID 73b833e7fe356cd2d9490dda4ebc9bfe16fce958 +# Parent 1e7b184008860c8be2289c3cefd9dee57f06193a +ffmpeg compatibility update 2. + +diff -r 1e7b18400886 -r 73b833e7fe35 src/combined/ffmpeg/ff_audio_decoder.c +--- a/src/combined/ffmpeg/ff_audio_decoder.c Mon May 06 21:55:55 2024 +0200 ++++ b/src/combined/ffmpeg/ff_audio_decoder.c Wed May 08 11:34:45 2024 +0200 +@@ -1393,6 +1393,9 @@ + XFF_FREE_FRAME (this->av_frame); + } + #endif ++#if 1 ++ avcodec_flush_buffers (this->context); ++#else + pthread_mutex_lock (&ffmpeg_lock); + { + uint8_t *ed = this->context->extradata; +@@ -1410,6 +1413,7 @@ + if (XFF_AVCODEC_OPEN (this->context, this->codec) >= 0) + this->decoder_ok = 1; + pthread_mutex_unlock (&ffmpeg_lock); ++#endif + } + + ff_audio_reset_parser(this); +diff -r 1e7b18400886 -r 73b833e7fe35 src/combined/ffmpeg/ff_video_decoder.c +--- a/src/combined/ffmpeg/ff_video_decoder.c Mon May 06 21:55:55 2024 +0200 ++++ b/src/combined/ffmpeg/ff_video_decoder.c Wed May 08 11:34:45 2024 +0200 +@@ -89,6 +89,11 @@ + # define ENABLE_EMMS + #endif + ++/* ++#undef XFF_AVCODEC_SLICE_TABLE ++#define XFF_AVCODEC_SLICE_TABLE 1 ++*/ ++ + #define VIDEOBUFSIZE (128*1024) + #define SLICE_BUFFER_SIZE (1194*1024) + +@@ -148,11 +153,11 @@ + int bufsize; + int size; + int skipframes; +- ++#if XFF_AVCODEC_SLICE_TABLE == 1 + int *slice_offset_table; + int slice_offset_size; + int slice_offset_pos; +- ++#endif + AVFrame *av_frame; + AVFrame *av_frame2; + AVCodecContext *context; +@@ -238,6 +243,13 @@ + #if XFF_VIDEO > 1 + XFF_PACKET_DECL (avpkt); + #endif ++ ++#if XFF_AVCODEC_SLICE_TABLE == 2 ++ uint8_t *temp_buf; ++ uint32_t temp_size; ++ int slice_num; ++ uint8_t slice_table[1 + 256 * 8]; ++#endif + }; + + /* import color matrix names */ +@@ -1783,10 +1795,9 @@ + this->size += buf->size; + + if (buf->decoder_flags & BUF_FLAG_FRAME_END) { +- int codec_type; ++ uint32_t codec_type = buf->type & 0xFFFF0000; + + lprintf ("header complete\n"); +- codec_type = buf->type & 0xFFFF0000; + + if (buf->decoder_flags & BUF_FLAG_STDHEADER) { + +@@ -1912,33 +1923,44 @@ + #endif + } + else if (buf->decoder_info[1] == BUF_SPECIAL_RV_CHUNK_TABLE) { +- /* o dear. Multiple decoding threads use individual contexts. +- av_decode_video2 () does only copy the _pointer_ to the offsets, +- not the offsets themselves. So we must not overwrite anything +- that another thread has not yet read. */ +- int i, l, total; +- +- lprintf("BUF_SPECIAL_RV_CHUNK_TABLE\n"); +- l = buf->decoder_info[2] + 1; +- +- total = l * this->class->thread_count; +- if (total < SLICE_OFFSET_SIZE) +- total = SLICE_OFFSET_SIZE; +- if (total > this->slice_offset_size) { +- this->slice_offset_table = realloc (this->slice_offset_table, total * sizeof (int)); +- this->slice_offset_size = total; +- } +- +- if (this->slice_offset_pos + l > this->slice_offset_size) +- this->slice_offset_pos = 0; +- this->context->slice_offset = this->slice_offset_table + this->slice_offset_pos; +- this->context->slice_count = l; +- +- lprintf ("slice_count=%d\n", l); +- for (i = 0; i < l; i++) { +- this->slice_offset_table[this->slice_offset_pos++] = +- ((uint32_t *)buf->decoder_info_ptr[2])[(2 * i) + 1]; +- lprintf("slice_offset[%d]=%d\n", i, this->context->slice_offset[i]); ++ { ++#if XFF_AVCODEC_SLICE_TABLE == 1 ++ /* o dear. Multiple decoding threads use individual contexts. ++ * av_decode_video2 () does only copy the _pointer_ to the offsets, ++ * not the offsets themselves. So we must not overwrite anything ++ * that another thread has not yet read. */ ++ int i, l, total; ++ ++ lprintf("BUF_SPECIAL_RV_CHUNK_TABLE\n"); ++ l = buf->decoder_info[2] + 1; ++ ++ total = l * this->class->thread_count; ++ if (total < SLICE_OFFSET_SIZE) ++ total = SLICE_OFFSET_SIZE; ++ if (total > this->slice_offset_size) { ++ this->slice_offset_table = realloc (this->slice_offset_table, total * sizeof (int)); ++ this->slice_offset_size = total; ++ } ++ ++ if (this->slice_offset_pos + l > this->slice_offset_size) ++ this->slice_offset_pos = 0; ++ this->context->slice_offset = this->slice_offset_table + this->slice_offset_pos; ++ this->context->slice_count = l; ++ ++ lprintf ("slice_count=%d\n", l); ++ for (i = 0; i < l; i++) { ++ this->slice_offset_table[this->slice_offset_pos++] = ++ ((uint32_t *)buf->decoder_info_ptr[2])[(2 * i) + 1]; ++ lprintf("slice_offset[%d]=%d\n", i, this->context->slice_offset[i]); ++ } ++#elif XFF_AVCODEC_SLICE_TABLE == 2 ++ /* (count-1):1, 1:4, (offs[0]):4, 1:4, (offs[1]:4, ... just in front of the frame bitstream. ++ * reverse engineered from ffmpeg/libavcodec/rv34.c. they seem to expect no ++ * external use of rv decoders, and did not document this. */ ++ this->slice_table[0] = buf->decoder_info[2]; ++ this->slice_num = this->slice_table[0] + 1; ++ memcpy (this->slice_table + 1, buf->decoder_info_ptr[2], 8 * this->slice_num); ++#endif + } + } + } +@@ -2004,6 +2026,7 @@ + + static int decode_video_wrapper (ff_video_decoder_t *this, + AVFrame *av_frame, int *err, void *buf, size_t buf_size) { ++ uint32_t tsize = 0; + int len; + + #if ENABLE_VAAPI +@@ -2013,9 +2036,32 @@ + } + #endif /* ENABLE_VAAPI */ + ++#if XFF_AVCODEC_SLICE_TABLE == 2 ++ if ((this->slice_num > 0) && buf) { ++ uint32_t nsize; ++ tsize = 1 + this->slice_num * 8; ++ nsize = tsize + buf_size + AV_INPUT_BUFFER_PADDING_SIZE; ++ if (this->temp_size < nsize) { ++ nsize = nsize * 3 / 2; ++ free (this->temp_buf); ++ this->temp_buf = malloc (nsize); ++ if (!this->temp_buf) ++ nsize = 0; ++ this->temp_size = nsize; ++ nsize = tsize + buf_size + AV_INPUT_BUFFER_PADDING_SIZE; ++ } ++ if (this->temp_size >= nsize) { ++ memcpy (this->temp_buf, this->slice_table, tsize); ++ memcpy (this->temp_buf + tsize, buf, buf_size + AV_INPUT_BUFFER_PADDING_SIZE); ++ buf = this->temp_buf; ++ } ++ this->slice_num = 0; ++ } ++#endif ++ + #if XFF_VIDEO > 1 + this->avpkt->data = buf; +- this->avpkt->size = buf_size; ++ this->avpkt->size = buf_size + tsize; + this->avpkt->flags = AV_PKT_FLAG_KEY; + # ifdef XFF_AVCODEC_FRAME_PTS + this->avpkt->pts = this->tagged_pts; +@@ -2486,7 +2532,6 @@ + this->size -= len; + + if (this->size > 0) { +- ff_check_bufsize(this, this->size); + memmove (this->buf, &chunk_buf[offset], this->size); + chunk_buf = this->buf; + /* take over pts for next access unit */ +@@ -2615,8 +2660,8 @@ + + img->pts = ff_untag_pts(this, this->av_frame); + +- /* workaround for weird 120fps streams */ +- if( video_step_to_use == 750 ) { ++ /* workaround for weird 120fps streams, as well as some rv20 with frame duration 3pts. */ ++ if (video_step_to_use <= 750) { + /* fallback to the VIDEO_PTS_MODE */ + video_step_to_use = 0; + } +@@ -2837,7 +2882,7 @@ + + img->pts = ff_untag_pts (this, this->av_frame2); + +- if (video_step_to_use == 750) ++ if (video_step_to_use <= 750) + video_step_to_use = 0; + img->duration = this->av_frame2->repeat_pict ? video_step_to_use * 3 / 2 : video_step_to_use; + img->progressive_frame = !this->av_frame2->interlaced_frame; +@@ -2941,6 +2986,9 @@ + mpeg_parser_reset(this->mpeg_parser); + + /* this->pts_tag_pass = 0; */ ++#if XFF_AVCODEC_SLICE_TABLE == 2 ++ this->slice_num = 0; ++#endif + } + + static void ff_dispose (video_decoder_t *this_gen) { +@@ -2953,12 +3001,15 @@ + rgb2yuy2_free (this->rgb2yuy2); + + if (this->decoder_ok) { ++ uint8_t *ed; + + pthread_mutex_lock(&ffmpeg_lock); +- _x_freep (&this->context->extradata); ++ ed = this->context->extradata; ++ this->context->extradata = NULL; + this->context->extradata_size = 0; + XFF_FREE_CONTEXT (this->context); + pthread_mutex_unlock(&ffmpeg_lock); ++ _x_freep (&ed); + + #ifdef ENABLE_DIRECT_RENDERING + ff_free_dr1_frames (this, 1); +@@ -2972,9 +3023,11 @@ + XFF_FREE_CONTEXT (this->context); + } + +- if (this->slice_offset_table) +- free (this->slice_offset_table); +- ++#if XFF_AVCODEC_SLICE_TABLE == 1 ++ free (this->slice_offset_table); ++#elif XFF_AVCODEC_SLICE_TABLE == 2 ++ free (this->temp_buf); ++#endif + + #if XFF_VIDEO > 1 + XFF_PACKET_UNREF (this->avpkt); +@@ -3062,21 +3115,25 @@ + this->decoder_ok = 0; + this->aspect_ratio = 0; + this->pts_tag_pass = 0; +-#ifdef HAVE_POSTPROC ++# ifdef HAVE_POSTPROC + this->pp_quality = 0; + this->our_context = NULL; + this->our_mode = NULL; +-#endif ++# endif + this->mpeg_parser = NULL; + this->set_stream_info = 0; + this->rgb2yuy2 = NULL; +-#ifdef ENABLE_VAAPI ++# ifdef ENABLE_VAAPI + this->accel = NULL; + this->accel_img = NULL; +-#endif +-#if XFF_VIDEO == 3 ++# endif ++# if XFF_VIDEO == 3 + this->flush_packet_sent = 0; +-#endif ++# endif ++# if XFF_AVCODEC_SLICE_TABLE == 2 ++ this->temp_size = 0; ++ this->temp_buf = NULL; ++# endif + #endif + + this->video_decoder.decode_data = ff_decode_data; +diff -r 1e7b18400886 -r 73b833e7fe35 src/combined/ffmpeg/ffmpeg_compat.h +--- a/src/combined/ffmpeg/ffmpeg_compat.h Mon May 06 21:55:55 2024 +0200 ++++ b/src/combined/ffmpeg/ffmpeg_compat.h Wed May 08 11:34:45 2024 +0200 +@@ -139,6 +139,14 @@ + # define XFF_PALETTE 3 + #endif + ++#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,42,100) ++/* AVCodecContext.slice_{offset,count} */ ++# define XFF_AVCODEC_SLICE_TABLE 1 ++#else ++/* inline offset table before the frame. */ ++# define XFF_AVCODEC_SLICE_TABLE 2 ++#endif ++ + #if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,0,100) /** << revise this */ + # define XFF_VAAPI 1 /** << libavcodec/vaapi.h */ + #else diff --git a/multimedia/libxine/files/patch-src_combined_ffmpeg_ff__audio__decoder.c b/multimedia/libxine/files/771f4ae27e582123ff3500444718fc8f96186d74.patch index 2108a84e9540..11056aa8cdbf 100644 --- a/multimedia/libxine/files/patch-src_combined_ffmpeg_ff__audio__decoder.c +++ b/multimedia/libxine/files/771f4ae27e582123ff3500444718fc8f96186d74.patch @@ -1,5 +1,50 @@ ---- src/combined/ffmpeg/ff_audio_decoder.c.orig 2022-09-08 21:43:29 UTC -+++ src/combined/ffmpeg/ff_audio_decoder.c +# HG changeset patch +# User Torsten Jager <t.jager@gmx.de> +# Date 1674929040 -3600 +# Sat Jan 28 19:04:00 2023 +0100 +# Node ID 771f4ae27e582123ff3500444718fc8f96186d74 +# Parent 250f1c09f4244c3e7ca7d414410c57bd387792c3 +ffmpeg compatibility update. + +diff -r 250f1c09f424 -r 771f4ae27e58 src/combined/ffmpeg/demux_avformat.c +--- a/src/combined/ffmpeg/demux_avformat.c Wed Jan 25 17:03:55 2023 +0100 ++++ b/src/combined/ffmpeg/demux_avformat.c Sat Jan 28 19:04:00 2023 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2013-2022 the xine project ++ * Copyright (C) 2013-2023 the xine project + * Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net> + * + * This file is part of xine, a free video player. +@@ -423,8 +423,13 @@ + } + + #ifdef XFF_CODECPAR ++# if XFF_AUDIO_CHANNEL_LAYOUT < 2 + if (st->codecpar && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && + st->codecpar->sample_rate != 0 && st->codecpar->channels != 0) ++# else ++ if (st->codecpar && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && ++ st->codecpar->sample_rate != 0 && st->codecpar->ch_layout.nb_channels != 0) ++# endif + #else + if (st->codec && st->codec->codec_type == AVMEDIA_TYPE_AUDIO && + st->codec->sample_rate != 0 && st->codec->channels != 0) +@@ -501,7 +506,11 @@ + buf->size = extradata_size + sizeof(xine_waveformatex); + buf->decoder_info[1] = ctx->sample_rate; + buf->decoder_info[2] = ctx->bits_per_coded_sample; ++#if XFF_AUDIO_CHANNEL_LAYOUT < 2 + buf->decoder_info[3] = ctx->channels; ++#else ++ buf->decoder_info[3] = ctx->ch_layout.nb_channels; ++#endif + buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_STDHEADER | BUF_FLAG_FRAME_END; + + this->stream->audio_fifo->put (this->stream->audio_fifo, buf); +diff -r 250f1c09f424 -r 771f4ae27e58 src/combined/ffmpeg/ff_audio_decoder.c +--- a/src/combined/ffmpeg/ff_audio_decoder.c Wed Jan 25 17:03:55 2023 +0100 ++++ b/src/combined/ffmpeg/ff_audio_decoder.c Sat Jan 28 19:04:00 2023 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001-2022 the xine project @@ -7,7 +52,7 @@ * * This file is part of xine, a free video player. * -@@ -303,7 +303,11 @@ static void ff_audio_init_codec(ff_audio_decoder_t *th +@@ -303,7 +303,11 @@ this->context->bits_per_sample = this->ff_bits; this->context->sample_rate = this->ff_sample_rate; @@ -19,7 +64,7 @@ this->context->codec_id = this->codec->id; this->context->codec_type = this->codec->type; this->context->codec_tag = _x_stream_info_get(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC); -@@ -527,17 +531,76 @@ static void ff_audio_output_close(ff_audio_decoder_t * +@@ -527,16 +531,75 @@ this->ao_mode = 0; } @@ -49,11 +94,10 @@ +# ifdef AV_CH_FRONT_LEFT ff_map = this->context->channel_layout; if (!ff_map) /* wma2 bug */ --#endif +# endif - ff_map = ((uint64_t)1 << this->context->channels) - 1; ++ ff_map = ((uint64_t)1 << this->context->channels) - 1; + ff_num = ff_list_channels (ff_list, ff_map); - ++ +#else /* XFF_AUDIO_CHANNEL_LAYOUT == 2 */ + + ff_num = this->context->ch_layout.nb_channels; @@ -93,12 +137,12 @@ + ff_num = ff_list_channels (ff_list, ff_map); + } + -+#endif -+ + #endif +- ff_map = ((uint64_t)1 << this->context->channels) - 1; + if ((caps != this->ao_caps) || (ff_map != this->ff_map)) { unsigned int i, j; - /* ff: see names[] below; xine: L R RL RR C LFE */ -@@ -562,7 +625,7 @@ static void ff_map_channels (ff_audio_decoder_t *this) +@@ -562,7 +625,7 @@ this->ao_caps = caps; this->ff_map = ff_map; @@ -107,7 +151,7 @@ /* silence out */ for (i = 0; i < MAX_CHANNELS; i++) -@@ -576,20 +639,23 @@ static void ff_map_channels (ff_audio_decoder_t *this) +@@ -576,20 +639,23 @@ this->left[0] = this->right[0] = 0; tries = wishlist + 0 * num_modes; } else if (this->ff_channels == 2) { /* stereo */ @@ -139,7 +183,7 @@ } this->left[0] = this->map[0] < 0 ? 0 : this->map[0]; this->map[0] = -1; -@@ -641,8 +707,8 @@ static void ff_map_channels (ff_audio_decoder_t *this) +@@ -641,8 +707,8 @@ "rear center", "side left", "side right" }; diff --git a/multimedia/libxine/files/ffmpeg8-1.patch b/multimedia/libxine/files/9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc.patch index be5805b82061..1b5b5aa78e3f 100644 --- a/multimedia/libxine/files/ffmpeg8-1.patch +++ b/multimedia/libxine/files/9bb3977ea7e2b652742b3cdd200b0a4a72eb48bc.patch @@ -9,6 +9,13 @@ FFmpeg compatibilty update. diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ff_video_decoder.c --- a/src/combined/ffmpeg/ff_video_decoder.c Sat May 31 15:55:00 2025 +0200 +++ b/src/combined/ffmpeg/ff_video_decoder.c Sat Sep 13 10:59:45 2025 +0200 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2001-2024 the xine project ++ * Copyright (C) 2001-2025 the xine project + * + * This file is part of xine, a free video player. + * @@ -60,6 +60,10 @@ #include "ffmpeg_compat.h" @@ -91,6 +98,13 @@ diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ff_video_decoder.c diff -r 9e326869fe0f -r 9bb3977ea7e2 src/combined/ffmpeg/ffmpeg_compat.h --- a/src/combined/ffmpeg/ffmpeg_compat.h Sat May 31 15:55:00 2025 +0200 +++ b/src/combined/ffmpeg/ffmpeg_compat.h Sat Sep 13 10:59:45 2025 +0200 +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2000-2024 the xine project ++ * Copyright (C) 2000-2025 the xine project + * + * This file is part of xine, a unix video player. + * @@ -319,4 +319,20 @@ # error avcodec.h must be included first ! #endif /* defined(LIBAVCODEC_VERSION_INT) */ diff --git a/multimedia/libxine/files/ffmpeg8-2.patch b/multimedia/libxine/files/a8fffd1193b2247c7f732d4df83dcc03fce96dbe.patch index dffc575f70cd..dffc575f70cd 100644 --- a/multimedia/libxine/files/ffmpeg8-2.patch +++ b/multimedia/libxine/files/a8fffd1193b2247c7f732d4df83dcc03fce96dbe.patch diff --git a/multimedia/libxine/files/patch-src_combined_ffmpeg_demux__avformat.c b/multimedia/libxine/files/patch-src_combined_ffmpeg_demux__avformat.c deleted file mode 100644 index 954c65f363e8..000000000000 --- a/multimedia/libxine/files/patch-src_combined_ffmpeg_demux__avformat.c +++ /dev/null @@ -1,35 +0,0 @@ ---- src/combined/ffmpeg/demux_avformat.c.orig 2022-09-08 21:43:29 UTC -+++ src/combined/ffmpeg/demux_avformat.c -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2013-2022 the xine project -+ * Copyright (C) 2013-2023 the xine project - * Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net> - * - * This file is part of xine, a free video player. -@@ -423,8 +423,13 @@ static int find_avformat_streams(avformat_demux_plugin - } - - #ifdef XFF_CODECPAR -+# if XFF_AUDIO_CHANNEL_LAYOUT < 2 - if (st->codecpar && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && - st->codecpar->sample_rate != 0 && st->codecpar->channels != 0) -+# else -+ if (st->codecpar && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && -+ st->codecpar->sample_rate != 0 && st->codecpar->ch_layout.nb_channels != 0) -+# endif - #else - if (st->codec && st->codec->codec_type == AVMEDIA_TYPE_AUDIO && - st->codec->sample_rate != 0 && st->codec->channels != 0) -@@ -501,7 +506,11 @@ static void send_headers_audio(avformat_demux_plugin_t - buf->size = extradata_size + sizeof(xine_waveformatex); - buf->decoder_info[1] = ctx->sample_rate; - buf->decoder_info[2] = ctx->bits_per_coded_sample; -+#if XFF_AUDIO_CHANNEL_LAYOUT < 2 - buf->decoder_info[3] = ctx->channels; -+#else -+ buf->decoder_info[3] = ctx->ch_layout.nb_channels; -+#endif - buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_STDHEADER | BUF_FLAG_FRAME_END; - - this->stream->audio_fifo->put (this->stream->audio_fifo, buf); diff --git a/multimedia/libzen/Makefile b/multimedia/libzen/Makefile index 6b925d2cc80c..4a06b74f3296 100644 --- a/multimedia/libzen/Makefile +++ b/multimedia/libzen/Makefile @@ -14,7 +14,7 @@ WWW= https://mediaarea.net/en/MediaInfo \ LICENSE= ZLIB LICENSE_FILE= ${WRKSRC}/../../../License.txt -USES= compiler:c++11-lang dos2unix libtool pathfix tar:xz +USES= compiler:c++11-lang dos2unix libtool tar:xz CONFIGURE_ARGS= --enable-shared --enable-static GNU_CONFIGURE= yes diff --git a/multimedia/mediainfo/Makefile b/multimedia/mediainfo/Makefile index dbacfdfea770..192e2dee0972 100644 --- a/multimedia/mediainfo/Makefile +++ b/multimedia/mediainfo/Makefile @@ -16,7 +16,7 @@ LICENSE_FILE= ${WRKSRC}/../../../License.html LIB_DEPENDS= libmediainfo.so:multimedia/libmediainfo \ libzen.so:multimedia/libzen -USES= compiler:c++11-lang cpe libtool pathfix pkgconfig tar:xz +USES= compiler:c++11-lang cpe libtool pkgconfig tar:xz GNU_CONFIGURE= yes diff --git a/multimedia/minisatip/Makefile b/multimedia/minisatip/Makefile index 850d35d5a81d..0b4ddbb34649 100644 --- a/multimedia/minisatip/Makefile +++ b/multimedia/minisatip/Makefile @@ -1,5 +1,5 @@ PORTNAME= minisatip -PORTVERSION= 2.0.43 +PORTVERSION= 2.0.45 DISTVERSIONPREFIX= v PORTEPOCH= 1 CATEGORIES= multimedia diff --git a/multimedia/minisatip/distinfo b/multimedia/minisatip/distinfo index 84655c23941c..3c165a9b4a5d 100644 --- a/multimedia/minisatip/distinfo +++ b/multimedia/minisatip/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1764787919 -SHA256 (catalinii-minisatip-v2.0.43_GH0.tar.gz) = 8c2fae9abf2950333f86e59b96a49789772a8eea2e3e62b1e977df04cfa38710 -SIZE (catalinii-minisatip-v2.0.43_GH0.tar.gz) = 1645266 +TIMESTAMP = 1766133944 +SHA256 (catalinii-minisatip-v2.0.45_GH0.tar.gz) = 2a6c65b95bb023fe340e586078f4d64a5e64a50300f5f55c560d2925fdfee2ea +SIZE (catalinii-minisatip-v2.0.45_GH0.tar.gz) = 1644611 diff --git a/multimedia/neolink/Makefile b/multimedia/neolink/Makefile index 94506d4d574a..ec414acbc0e1 100644 --- a/multimedia/neolink/Makefile +++ b/multimedia/neolink/Makefile @@ -2,7 +2,7 @@ PORTNAME= neolink PORTVERSION= 0.3.0 DISTVERSIONPREFIX= v DISTVERSIONSUFFIX= g20210903 -PORTREVISION= 38 +PORTREVISION= 39 CATEGORIES= multimedia MAINTAINER= kevans@FreeBSD.org diff --git a/multimedia/obs-studio/Makefile b/multimedia/obs-studio/Makefile index 50d35cf37585..1f86f6e69c72 100644 --- a/multimedia/obs-studio/Makefile +++ b/multimedia/obs-studio/Makefile @@ -1,6 +1,6 @@ PORTNAME= obs-studio DISTVERSION= 32.0.2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= multimedia MASTER_SITES= https://github.com/obsproject/obs-studio/releases/download/${DISTVERSION}/ DISTFILES= OBS-Studio-${DISTVERSION}-Sources${EXTRACT_SUFX} diff --git a/multimedia/qt6-multimedia/distinfo b/multimedia/qt6-multimedia/distinfo index d41555709db4..635040e13db6 100644 --- a/multimedia/qt6-multimedia/distinfo +++ b/multimedia/qt6-multimedia/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1759303877 -SHA256 (KDE/Qt/6.9.3/qtmultimedia-everywhere-src-6.9.3.tar.xz) = a275bee7ea60c91851236acdf99d76b891da90f428b68f51fe332354f19b86f5 -SIZE (KDE/Qt/6.9.3/qtmultimedia-everywhere-src-6.9.3.tar.xz) = 9771140 +TIMESTAMP = 1763964336 +SHA256 (KDE/Qt/6.10.1/qtmultimedia-everywhere-src-6.10.1.tar.xz) = f7a4f9bc2840d4f0f9f7329f0dcb3d3500c54177b8e368091a3727c7320e67b8 +SIZE (KDE/Qt/6.10.1/qtmultimedia-everywhere-src-6.10.1.tar.xz) = 9923496 diff --git a/multimedia/qt6-multimedia/files/patch-cmake_FindFFmpeg.cmake b/multimedia/qt6-multimedia/files/patch-cmake_FindFFmpeg.cmake index b3afbc959c8e..1882e3f8d185 100644 --- a/multimedia/qt6-multimedia/files/patch-cmake_FindFFmpeg.cmake +++ b/multimedia/qt6-multimedia/files/patch-cmake_FindFFmpeg.cmake @@ -1,6 +1,6 @@ ---- cmake/FindFFmpeg.cmake.orig 2025-05-04 13:16:35 UTC +--- cmake/FindFFmpeg.cmake.orig 2025-08-15 19:16:13 UTC +++ cmake/FindFFmpeg.cmake -@@ -278,7 +278,7 @@ function(__ffmpeg_internal_set_dependencies _component +@@ -276,7 +276,7 @@ function(__ffmpeg_internal_set_dependencies _component if (WIN32) set(PC_FILE ${${_component}_LIBRARY_DIR}/../lib/pkgconfig/lib${lib}.pc) else() diff --git a/multimedia/qt6-multimedia/files/patch-src_CMakeLists.txt b/multimedia/qt6-multimedia/files/patch-src_CMakeLists.txt index 4112b1c41f56..87d5d76b932e 100644 --- a/multimedia/qt6-multimedia/files/patch-src_CMakeLists.txt +++ b/multimedia/qt6-multimedia/files/patch-src_CMakeLists.txt @@ -1,9 +1,9 @@ Prevent building spatialaudio_quick3d if quick3d is installed and the feature is disabled. ---- src/CMakeLists.txt.orig 2025-02-20 14:13:07 UTC +--- src/CMakeLists.txt.orig 2025-08-15 19:16:13 UTC +++ src/CMakeLists.txt -@@ -26,7 +26,7 @@ endif() +@@ -27,7 +27,7 @@ endif() if(TARGET Qt::Quick) add_subdirectory(multimediaquick) endif() diff --git a/multimedia/qt6-multimedia/files/patch-src_multimedia_CMakeLists.txt b/multimedia/qt6-multimedia/files/patch-src_multimedia_CMakeLists.txt index 89722fa1d38a..a92e689b9be6 100644 --- a/multimedia/qt6-multimedia/files/patch-src_multimedia_CMakeLists.txt +++ b/multimedia/qt6-multimedia/files/patch-src_multimedia_CMakeLists.txt @@ -1,11 +1,11 @@ ---- src/multimedia/CMakeLists.txt.orig 2025-05-04 13:16:35 UTC +--- src/multimedia/CMakeLists.txt.orig 2025-08-15 19:16:13 UTC +++ src/multimedia/CMakeLists.txt -@@ -136,7 +136,7 @@ qt_internal_extend_target(Multimedia +@@ -156,7 +156,7 @@ qt_internal_extend_target(Multimedia ) qt_internal_extend_target(Multimedia -- CONDITION LINUX OR ANDROID -+ CONDITION UNIX OR ANDROID +- CONDITION (LINUX OR ANDROID) AND QT_FEATURE_library ++ CONDITION (UNIX OR ANDROID) AND QT_FEATURE_library SOURCES qsymbolsresolveutils.cpp qsymbolsresolveutils_p.h) qt_internal_add_simd_part(Multimedia SIMD sse2 diff --git a/multimedia/qt6-multimedia/files/patch-src_multimedia_configure.cmake b/multimedia/qt6-multimedia/files/patch-src_multimedia_configure.cmake index cbf22dd3f497..f9782a976418 100644 --- a/multimedia/qt6-multimedia/files/patch-src_multimedia_configure.cmake +++ b/multimedia/qt6-multimedia/files/patch-src_multimedia_configure.cmake @@ -1,11 +1,11 @@ ---- src/multimedia/configure.cmake.orig 2025-08-18 00:47:41 UTC +--- src/multimedia/configure.cmake.orig 2025-08-15 19:16:13 UTC +++ src/multimedia/configure.cmake -@@ -129,7 +129,7 @@ qt_feature("ffmpeg" PRIVATE +@@ -237,7 +237,7 @@ qt_feature("ffmpeg" PRIVATE ENABLE INPUT_ffmpeg STREQUAL 'yes' DISABLE INPUT_ffmpeg STREQUAL 'no' CONDITION FFmpeg_FOUND -- AND (APPLE OR WIN32 OR ANDROID OR QNX OR QT_FEATURE_pulseaudio) -+ AND (APPLE OR WIN32 OR ANDROID OR QNX OR OR QT_FEATURE_alsa OR QT_FEATURE_pulseaudio) +- AND (APPLE OR WIN32 OR ANDROID OR QNX OR QT_FEATURE_pulseaudio OR QT_FEATURE_pipewire) ++ AND (APPLE OR WIN32 OR ANDROID OR QNX OR QT_FEATURE_alsa OR QT_FEATURE_pulseaudio OR QT_FEATURE_pipewire) AND QT_FEATURE_thread ) - qt_feature("pipewire" PRIVATE + diff --git a/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__instance.cpp b/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__instance.cpp index 9139b9f3957a..739d5bf50160 100644 --- a/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__instance.cpp +++ b/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__instance.cpp @@ -2,9 +2,9 @@ Adapt to local symbols from multimedia/pipewire PR: 284719 ---- src/multimedia/pipewire/qpipewire_instance.cpp.orig 2025-02-20 14:13:07 UTC +--- src/multimedia/pipewire/qpipewire_instance.cpp.orig 2025-08-15 19:16:13 UTC +++ src/multimedia/pipewire/qpipewire_instance.cpp -@@ -43,7 +43,7 @@ QPipeWireInstance::QPipeWireInstance() +@@ -45,7 +45,7 @@ QPipeWireInstance::QPipeWireInstance() QPipeWireInstance::QPipeWireInstance() { @@ -13,7 +13,7 @@ PR: 284719 qCDebug(lcPipewire) << "PipeWire initialized: compiled against" << pw_get_headers_version() << " running " << pw_get_library_version(); -@@ -52,7 +52,7 @@ QPipeWireInstance::~QPipeWireInstance() +@@ -54,7 +54,7 @@ QPipeWireInstance::~QPipeWireInstance() QPipeWireInstance::~QPipeWireInstance() { if (pw_check_library_version(0, 3, 49)) diff --git a/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__symbolloader.cpp b/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__symbolloader.cpp index d55400eba281..41e12b8b0b52 100644 --- a/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__symbolloader.cpp +++ b/multimedia/qt6-multimedia/files/patch-src_multimedia_pipewire_qpipewire__symbolloader.cpp @@ -2,9 +2,9 @@ Adapt to local symbols from multimedia/pipewire PR: 284719 ---- src/multimedia/pipewire/qpipewire_symbolloader.cpp.orig 2025-02-20 14:13:07 UTC +--- src/multimedia/pipewire/qpipewire_symbolloader.cpp.orig 2025-08-15 19:16:13 UTC +++ src/multimedia/pipewire/qpipewire_symbolloader.cpp -@@ -14,8 +14,8 @@ BEGIN_INIT_FUNCS("pipewire-" PW_API_VERSION, "0") +@@ -17,8 +17,8 @@ BEGIN_INIT_FUNCS("pipewire-" PW_API_VERSION, "0") //BEGIN_INIT_FUNCS("pipewire-0.3", "0") BEGIN_INIT_FUNCS("pipewire-" PW_API_VERSION, "0") @@ -15,7 +15,7 @@ PR: 284719 INIT_OPT_FUNC(pw_check_library_version); INIT_FUNC(pw_context_new); INIT_FUNC(pw_context_destroy); -@@ -44,8 +44,8 @@ END_INIT_FUNCS() +@@ -52,8 +52,8 @@ END_INIT_FUNCS() END_INIT_FUNCS() diff --git a/multimedia/qt6-multimedia/files/patch-src_plugins_multimedia_ffmpeg_CMakeLists.txt b/multimedia/qt6-multimedia/files/patch-src_plugins_multimedia_ffmpeg_CMakeLists.txt index dde899287a8a..e8ba5dbeb30e 100644 --- a/multimedia/qt6-multimedia/files/patch-src_plugins_multimedia_ffmpeg_CMakeLists.txt +++ b/multimedia/qt6-multimedia/files/patch-src_plugins_multimedia_ffmpeg_CMakeLists.txt @@ -1,7 +1,7 @@ ---- src/plugins/multimedia/ffmpeg/CMakeLists.txt.orig 2025-03-09 20:10:22 UTC +--- src/plugins/multimedia/ffmpeg/CMakeLists.txt.orig 2025-08-15 19:16:13 UTC +++ src/plugins/multimedia/ffmpeg/CMakeLists.txt -@@ -86,7 +86,7 @@ qt_internal_add_module(FFmpegMediaPluginImplPrivate - ../../../3rdparty/signalsmith-stretch/ +@@ -92,7 +92,7 @@ qt_internal_add_module(FFmpegMediaPluginImplPrivate + ../../../3rdparty/signalsmith-stretch ) -if (LINUX OR ANDROID) diff --git a/multimedia/qt6-multimedia/pkg-plist b/multimedia/qt6-multimedia/pkg-plist index b318ff7c9936..0ba5369ac219 100644 --- a/multimedia/qt6-multimedia/pkg-plist +++ b/multimedia/qt6-multimedia/pkg-plist @@ -1,7 +1,4 @@ -%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiodevice_p.h -%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiodevices_p.h -%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiosink_p.h -%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiosource_p.h +%%FFMPEG%%%%QT_INCDIR%%/QtFFmpegMediaPluginImpl/%%FULLVER%%/QtFFmpegMediaPluginImpl/private/ffmpeg_pch.h %%FFMPEG%%%%QT_INCDIR%%/QtFFmpegMediaPluginImpl/%%FULLVER%%/QtFFmpegMediaPluginImpl/private/qffmpeg_p.h %%FFMPEG%%%%QT_INCDIR%%/QtFFmpegMediaPluginImpl/%%FULLVER%%/QtFFmpegMediaPluginImpl/private/qffmpegaudiodecoder_p.h %%FFMPEG%%%%QT_INCDIR%%/QtFFmpegMediaPluginImpl/%%FULLVER%%/QtFFmpegMediaPluginImpl/private/qffmpegaudioencoder_p.h @@ -101,6 +98,11 @@ %%GSTREAMER%%%%QT_INCDIR%%/QtGstreamerMediaPluginImpl/QtGstreamerMediaPluginImplDepends %%GSTREAMER%%%%QT_INCDIR%%/QtGstreamerMediaPluginImpl/QtGstreamerMediaPluginImplVersion %%GSTREAMER%%%%QT_INCDIR%%/QtGstreamerMediaPluginImpl/qtgstreamermediapluginimplversion.h +%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/q_pmr_emulation_p.h +%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiodevice_p.h +%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiodevices_p.h +%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiosink_p.h +%%ALSA%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qalsaaudiosource_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qaudio_alignment_support_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qaudio_platform_implementation_support_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qaudio_qiodevice_support_p.h @@ -125,21 +127,34 @@ %%GSTREAMER%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qgstreamer_platformspecificinterface_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qhwvideobuffer_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qimagevideobuffer_p.h -%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmaybe_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmediacapturesession_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmediaframeinput_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmediainputencoderinterface_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmediaplayer_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmediarecorder_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmediastoragelocation_p.h +%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmemory_resource_tlsf_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmemoryvideobuffer_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmultimedia_assume_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmultimedia_enum_to_string_converter_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmultimedia_ranges_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qmultimediautils_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_async_support_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiocontextmanager_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiodevice_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiodevicemonitor_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiodevices_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiosink_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiosource_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_audiostream_p.h %%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_instance_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_propertydict_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_registry_support_p.h %%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_screencapture_p.h %%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_screencapturehelper_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_spa_compat_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_spa_pod_parser_support_p.h +%%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_spa_pod_support_p.h %%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_support_p.h %%PIPEWIRE%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpipewire_symbolloader_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qplatformaudiobufferinput_p.h @@ -170,8 +185,12 @@ %%PULSEAUDIO%%%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qpulsehelpers_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qrhitextureformats_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qrhivaluemapper_p.h +%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qrtaudioengine_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsamplecache_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsharedhandle_p.h +%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsoundeffect_p.h +%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsoundeffectsynchronous_p.h +%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsoundeffectwithplayer_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsymbolsresolveutils_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qtaggedtime_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qthreadlocalrhi_p.h @@ -211,6 +230,7 @@ %%QT_INCDIR%%/QtMultimedia/QMediaPlayer %%QT_INCDIR%%/QtMultimedia/QMediaRecorder %%QT_INCDIR%%/QtMultimedia/QMediaTimeRange +%%QT_INCDIR%%/QtMultimedia/QPlaybackOptions %%QT_INCDIR%%/QtMultimedia/QScreenCapture %%QT_INCDIR%%/QtMultimedia/QSoundEffect %%QT_INCDIR%%/QtMultimedia/QVideoFrame @@ -246,6 +266,7 @@ %%QT_INCDIR%%/QtMultimedia/qmediaplayer.h %%QT_INCDIR%%/QtMultimedia/qmediarecorder.h %%QT_INCDIR%%/QtMultimedia/qmediatimerange.h +%%QT_INCDIR%%/QtMultimedia/qplaybackoptions.h %%QT_INCDIR%%/QtMultimedia/qscreencapture.h %%QT_INCDIR%%/QtMultimedia/qsoundeffect.h %%QT_INCDIR%%/QtMultimedia/qtaudio.h @@ -508,14 +529,14 @@ lib/cmake/Qt6SpatialAudioPrivate/Qt6SpatialAudioPrivateVersionlessTargets.cmake %%QT_LIBDIR%%/libQt6SpatialAudio.so %%QT_LIBDIR%%/libQt6SpatialAudio.so.6 %%QT_LIBDIR%%/libQt6SpatialAudio.so.%%FULLVER%% -%%FFMPEG%%%%QT_LIBDIR%%/metatypes/qt6ffmpegmediapluginimplprivate_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%GSTREAMER%%%%QT_LIBDIR%%/metatypes/qt6gstreamermediapluginimplprivate_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%QT_LIBDIR%%/metatypes/qt6multimedia_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%QT_LIBDIR%%/metatypes/qt6multimediaquickprivate_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%QT_LIBDIR%%/metatypes/qt6multimediatestlibprivate_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%QT_LIBDIR%%/metatypes/qt6multimediawidgets_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%Q3D%%%%QT_LIBDIR%%/metatypes/qt6quick3dspatialaudioprivate_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%QT_LIBDIR%%/metatypes/qt6spatialaudio_%%CMAKE_BUILD_TYPE%%_metatypes.json +%%FFMPEG%%%%QT_LIBDIR%%/metatypes/qt6ffmpegmediapluginimplprivate_metatypes.json +%%GSTREAMER%%%%QT_LIBDIR%%/metatypes/qt6gstreamermediapluginimplprivate_metatypes.json +%%QT_LIBDIR%%/metatypes/qt6multimedia_metatypes.json +%%QT_LIBDIR%%/metatypes/qt6multimediaquickprivate_metatypes.json +%%QT_LIBDIR%%/metatypes/qt6multimediatestlibprivate_metatypes.json +%%QT_LIBDIR%%/metatypes/qt6multimediawidgets_metatypes.json +%%Q3D%%%%QT_LIBDIR%%/metatypes/qt6quick3dspatialaudioprivate_metatypes.json +%%QT_LIBDIR%%/metatypes/qt6spatialaudio_metatypes.json %%FFMPEG%%%%QT_MKSPECDIR%%/features/ios/add_ios_ffmpeg_libraries.prf %%FFMPEG%%%%QT_MKSPECDIR%%/modules/qt_lib_ffmpegmediapluginimpl_private.pri %%GSTREAMER%%%%QT_MKSPECDIR%%/modules/qt_lib_gstreamermediapluginimpl_private.pri diff --git a/multimedia/rav1e/Makefile b/multimedia/rav1e/Makefile index 3c1f1c6e4b63..0e0550110ced 100644 --- a/multimedia/rav1e/Makefile +++ b/multimedia/rav1e/Makefile @@ -1,7 +1,7 @@ PORTNAME= rav1e DISTVERSIONPREFIX= v DISTVERSION= 0.8.1 -PORTREVISION?= 4 +PORTREVISION?= 5 CATEGORIES= multimedia MAINTAINER= ports@FreeBSD.org diff --git a/multimedia/ringrtc/Makefile b/multimedia/ringrtc/Makefile index 83afa061ff60..9ee37e43afe5 100644 --- a/multimedia/ringrtc/Makefile +++ b/multimedia/ringrtc/Makefile @@ -1,6 +1,7 @@ PORTNAME= ringrtc DISTVERSIONPREFIX= v DISTVERSION= 2.60.7 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= LOCAL/mikael/ringrtc/:boringssl \ LOCAL/mikael/ringrtc/:build \ diff --git a/multimedia/scte35dump/Makefile b/multimedia/scte35dump/Makefile index bfa35bc2acec..e6be803c66e4 100644 --- a/multimedia/scte35dump/Makefile +++ b/multimedia/scte35dump/Makefile @@ -1,7 +1,7 @@ PORTNAME= scte35dump DISTVERSIONPREFIX= v DISTVERSION= 0.1.8 -PORTREVISION= 14 +PORTREVISION= 15 CATEGORIES= multimedia MAINTAINER= rodrigo@FreeBSD.org diff --git a/multimedia/subtitlecomposer/Makefile b/multimedia/subtitlecomposer/Makefile index 4c5ad65ef900..04cf495412d6 100644 --- a/multimedia/subtitlecomposer/Makefile +++ b/multimedia/subtitlecomposer/Makefile @@ -1,5 +1,6 @@ PORTNAME= subtitlecomposer DISTVERSION= 0.8.2 +PORTREVISION= 1 CATEGORIES= multimedia kde MASTER_SITES= KDE/stable/${PORTNAME} diff --git a/multimedia/termplay/Makefile b/multimedia/termplay/Makefile index 11940c2c0732..d23267355725 100644 --- a/multimedia/termplay/Makefile +++ b/multimedia/termplay/Makefile @@ -1,6 +1,6 @@ PORTNAME= termplay DISTVERSION= 2.0.6 -PORTREVISION= 48 +PORTREVISION= 49 CATEGORIES= multimedia MASTER_SITES= CRATESIO DISTFILES= ${CARGO_DIST_SUBDIR}/${DISTNAME}${CARGO_CRATE_EXT} diff --git a/multimedia/video-trimmer/Makefile b/multimedia/video-trimmer/Makefile index 961ee519741f..e44a190961e1 100644 --- a/multimedia/video-trimmer/Makefile +++ b/multimedia/video-trimmer/Makefile @@ -1,7 +1,7 @@ PORTNAME= video-trimmer DISTVERSIONPREFIX= v DISTVERSION= 25.03 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= multimedia gnome DIST_SUBDIR= gnome diff --git a/multimedia/wl-screenrec/Makefile b/multimedia/wl-screenrec/Makefile index ac5935c50a3c..9e2b6a1dfdee 100644 --- a/multimedia/wl-screenrec/Makefile +++ b/multimedia/wl-screenrec/Makefile @@ -1,7 +1,7 @@ PORTNAME= wl-screenrec DISTVERSIONPREFIX= v DISTVERSION= 0.1.5 # see PORTSCOUT comment below -PORTREVISION= 13 +PORTREVISION= 14 CATEGORIES= multimedia wayland MAINTAINER= ports@FreeBSD.org diff --git a/multimedia/x264/Makefile b/multimedia/x264/Makefile index 97a5a4643de4..b9dd3cdb4c03 100644 --- a/multimedia/x264/Makefile +++ b/multimedia/x264/Makefile @@ -26,6 +26,8 @@ MAINTAINER= bofh@FreeBSD.org COMMENT?= H.264/MPEG-4 AVC Video Encoding (Front End CLI) WWW= https://www.videolan.org/x264.html +EXTRA_PATCHES= ${FILESDIR}/32c3b801191522961102d4bea292cdb61068d0dd.patch:-p1 + LICENSE= GPLv2 LICENSE_NAME_PGO= PGO LICENSE_FILE= ${WRKSRC}/COPYING diff --git a/multimedia/x264/files/32c3b801191522961102d4bea292cdb61068d0dd.patch b/multimedia/x264/files/32c3b801191522961102d4bea292cdb61068d0dd.patch new file mode 100644 index 000000000000..31ea7fc63bd6 --- /dev/null +++ b/multimedia/x264/files/32c3b801191522961102d4bea292cdb61068d0dd.patch @@ -0,0 +1,38 @@ +From 32c3b801191522961102d4bea292cdb61068d0dd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> +Date: Fri, 4 Apr 2025 16:59:34 +0300 +Subject: [PATCH] lavf: Update the code to work with the latest libavutil API + +--- + input/lavf.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/input/lavf.c b/input/lavf.c +index 90f4cec5..e2489963 100644 +--- a/input/lavf.c ++++ b/input/lavf.c +@@ -33,6 +33,7 @@ + #include <libavutil/error.h> + #include <libavutil/mem.h> + #include <libavutil/pixdesc.h> ++#include <libavutil/version.h> + + #define FAIL_IF_ERROR( cond, ... ) FAIL_IF_ERR( cond, "lavf", __VA_ARGS__ ) + +@@ -141,8 +142,13 @@ static int read_frame_internal( cli_pic_t *p_pic, lavf_hnd_t *h, int i_frame, vi + if( info ) + { + info->fullrange = is_fullrange; ++#if LIBAVUTIL_VERSION_MAJOR < 60 + info->interlaced = h->frame->interlaced_frame; + info->tff = h->frame->top_field_first; ++#else ++ info->interlaced = !!(h->frame->flags & AV_FRAME_FLAG_INTERLACED); ++ info->tff = !!(h->frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST); ++#endif + } + + if( h->vfr_input ) +-- +GitLab + diff --git a/multimedia/youtui/Makefile b/multimedia/youtui/Makefile index 7fe46dbcb9a0..6f55fdcc32ca 100644 --- a/multimedia/youtui/Makefile +++ b/multimedia/youtui/Makefile @@ -1,6 +1,7 @@ PORTNAME= youtui DISTVERSIONPREFIX= youtui/v DISTVERSION= 0.0.30 +PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= yuri@FreeBSD.org |
