summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2024-01-29 19:17:30 +0000
committer Eric Hameleers <alien@slackware.com>2024-01-29 21:03:28 +0100
commit8713bd99bfb8ba7634cc8e1f998e4af24c345e35 (patch)
treed20aaa083bb779fc4a7875ea9073ec75eed92365 /source
parentcbe9ad0002d6cf754a82ffb47486e67a3d220ed8 (diff)
downloadcurrent-8713bd99bfb8ba7634cc8e1f998e4af24c345e35.tar.gz
current-8713bd99bfb8ba7634cc8e1f998e4af24c345e35.tar.xz
Mon Jan 29 19:17:30 UTC 202420240129191730
ap/diffstat-1.66-x86_64-1.txz: Upgraded. ap/moc-2.6_alpha3-x86_64-3.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. ap/vim-9.1.0061-x86_64-1.txz: Upgraded. d/nv-codec-headers-12.1.14.0-x86_64-1.txz: Added. Needed to build support for nvidia hardware decoders/encoders on newer GPUs. gst-plugins-bad can use it too. Thanks to Heinz Wiesinger. kde/digikam-8.2.0-x86_64-4.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. kde/ffmpegthumbs-23.08.4-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. kde/k3b-23.08.4-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. kde/kfilemetadata-5.114.0-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. kde/kpipewire-5.27.10-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/Imath-3.1.10-x86_64-1.txz: Upgraded. l/alsa-plugins-1.2.7.1-x86_64-3.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/ffmpeg-6.1.1-x86_64-1.txz: Upgraded. Shared library .so-version bump. Added some new build options in the SlackBuild. Use shaderc instead of glslang. Build against libgcrypt to enable support for RTMP[E]. Enable support for lcms2. Build against libass, libplacebo, and nv-codec-headers. Thanks to Heinz Wiesinger. l/gegl-0.4.46-x86_64-4.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/gst-plugins-bad-free-1.22.9-x86_64-2.txz: Rebuilt. Recompiled against libass-0.17.1. l/gst-plugins-libav-1.22.9-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/libass-0.17.1-x86_64-1.txz: Added. Adds ASS/SSA subtitle renderer (commonly used in the anime community). adapted SlackBuild from SBo, original by Larry Hajali/Matteo Bernardini. MPlayer and gst-plugins-bad can use it too. Thanks to Heinz Wiesinger. l/libplacebo-6.338.2-x86_64-1.txz: Added. Adds various hardware accelerated filters such as HDR -> SDR tone mapping. adapted SlackBuild from SBo, original by Hunter Sezen/Christoph Willing. Thanks to Heinz Wiesinger. l/mlt-7.22.0-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/netpbm-11.05.02-x86_64-1.txz: Upgraded. l/opencv-4.9.0-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/pipewire-1.0.1-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. l/qt5-5.15.12_20240103_b8fd1448-x86_64-3.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. x/pixman-0.43.2-x86_64-1.txz: Upgraded. xap/MPlayer-20240127-x86_64-1.txz: Upgraded. Compiled against ffmpeg-6.1.1 and libass-0.17.1. xap/audacious-plugins-4.3.1-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. xap/ffmpegthumbnailer-2.2.2-x86_64-5.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. xap/freerdp-2.11.5-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. xap/ssr-0.4.4-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. xap/vim-gvim-9.1.0061-x86_64-1.txz: Upgraded. xap/xine-lib-1.2.13-x86_64-6.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. xap/xscreensaver-6.08-x86_64-2.txz: Rebuilt. Recompiled against ffmpeg-6.1.1. extra/tigervnc/tigervnc-1.13.1-x86_64-4.txz: Rebuilt. Recompiled against ffmpeg-6.1.1.
Diffstat (limited to 'source')
-rw-r--r--source/ap/diffstat/diffstat.url2
-rw-r--r--source/ap/moc/0001-Refreshed-opus-patch-from-Tomasz-Golinski-tomaszg-al.patch586
-rw-r--r--source/ap/moc/0002-Adapted-the-opus-patch-to-config.example.in.patch22
-rw-r--r--source/ap/moc/0003-The-AX_PATH_BDB_NO_OPTIONS-is-broken.patch26
-rw-r--r--source/ap/moc/0004_playtime_perc.patch27
-rw-r--r--source/ap/moc/0008-Rename-configure.in-to-configure.ac.patch18
-rw-r--r--source/ap/moc/0009-Add-https-to-is_url.patch25
-rw-r--r--source/ap/moc/0010-ffmpeg-6.0.patch23
-rwxr-xr-xsource/ap/moc/moc.SlackBuild17
-rwxr-xr-xsource/d/nv-codec-headers/fetch-sources.sh18
-rwxr-xr-xsource/d/nv-codec-headers/nv-codec-headers.SlackBuild104
-rw-r--r--source/d/nv-codec-headers/slack-desc19
-rw-r--r--source/kde/kde/build/digikam2
-rw-r--r--source/kde/kde/build/ffmpegthumbs2
-rw-r--r--source/kde/kde/build/k3b2
-rw-r--r--source/kde/kde/build/kfilemetadata2
-rw-r--r--source/kde/kde/build/kpipewire2
-rwxr-xr-xsource/l/alsa-plugins/alsa-plugins.SlackBuild2
-rw-r--r--source/l/ffmpeg/250471ea1745fc703eb346a2a662304536a311b1.patch25
-rwxr-xr-xsource/l/ffmpeg/ffmpeg.SlackBuild65
-rwxr-xr-xsource/l/gegl/gegl.SlackBuild2
-rwxr-xr-xsource/l/gst-plugins-bad-free/gst-plugins-bad-free.SlackBuild2
-rwxr-xr-xsource/l/gst-plugins-libav/gst-plugins-libav.SlackBuild2
-rwxr-xr-xsource/l/libass/libass.SlackBuild120
-rw-r--r--source/l/libass/libass.url1
-rw-r--r--source/l/libass/slack-desc19
-rwxr-xr-xsource/l/libplacebo/libplacebo.SlackBuild112
-rw-r--r--source/l/libplacebo/libplacebo.url1
-rw-r--r--source/l/libplacebo/slack-desc19
-rwxr-xr-xsource/l/mlt/mlt.SlackBuild2
-rwxr-xr-xsource/l/opencv/opencv.SlackBuild2
-rwxr-xr-xsource/l/pipewire/pipewire.SlackBuild2
-rwxr-xr-xsource/l/qt5/qt5.SlackBuild2
-rwxr-xr-xsource/xap/MPlayer/MPlayer.SlackBuild2
-rwxr-xr-xsource/xap/audacious-plugins/audacious-plugins.SlackBuild2
-rwxr-xr-xsource/xap/ffmpegthumbnailer/ffmpegthumbnailer.SlackBuild2
-rwxr-xr-xsource/xap/freerdp/freerdp.SlackBuild2
-rwxr-xr-xsource/xap/ssr/ssr.SlackBuild2
-rwxr-xr-xsource/xap/xine-lib/xine-lib.SlackBuild2
-rwxr-xr-xsource/xap/xscreensaver/xscreensaver.SlackBuild2
40 files changed, 1249 insertions, 40 deletions
diff --git a/source/ap/diffstat/diffstat.url b/source/ap/diffstat/diffstat.url
index 93042284e..9679704e4 100644
--- a/source/ap/diffstat/diffstat.url
+++ b/source/ap/diffstat/diffstat.url
@@ -1 +1 @@
-ftp://ftp.invisible-island.net/diffstat/
+https://invisible-island.net/archives/diffstat/
diff --git a/source/ap/moc/0001-Refreshed-opus-patch-from-Tomasz-Golinski-tomaszg-al.patch b/source/ap/moc/0001-Refreshed-opus-patch-from-Tomasz-Golinski-tomaszg-al.patch
new file mode 100644
index 000000000..60751bdd3
--- /dev/null
+++ b/source/ap/moc/0001-Refreshed-opus-patch-from-Tomasz-Golinski-tomaszg-al.patch
@@ -0,0 +1,586 @@
+From 9cff5bc22740bf80e59b76f20ccaa2888d9d6426 Mon Sep 17 00:00:00 2001
+From: Elimar Riesebieter <riesebie@lxtec.de>
+Date: Sun, 27 Nov 2016 12:12:43 +0100
+Subject: [PATCH] Refreshed opus patch from Tomasz Golinski
+ <tomaszg@alpha.uwb.edu.pl>
+
+---
+ decoder_plugins/Makefile.am | 4 +
+ decoder_plugins/decoders.m4 | 1 +
+ decoder_plugins/opus/Makefile.am | 6 +
+ decoder_plugins/opus/opus.c | 473 +++++++++++++++++++++++++++++++++++++++
+ decoder_plugins/opus/opus.m4 | 25 +++
+ options.c | 4 +-
+ 6 files changed, 511 insertions(+), 2 deletions(-)
+ create mode 100644 decoder_plugins/opus/Makefile.am
+ create mode 100644 decoder_plugins/opus/opus.c
+ create mode 100644 decoder_plugins/opus/opus.m4
+
+diff --git a/decoder_plugins/Makefile.am b/decoder_plugins/Makefile.am
+index 32a6376..d746099 100644
+--- a/decoder_plugins/Makefile.am
++++ b/decoder_plugins/Makefile.am
+@@ -16,6 +16,10 @@ if BUILD_vorbis
+ SUBDIRS += vorbis
+ endif
+
++if BUILD_opus
++ SUBDIRS += opus
++endif
++
+ if BUILD_flac
+ SUBDIRS += flac
+ endif
+diff --git a/decoder_plugins/decoders.m4 b/decoder_plugins/decoders.m4
+index 77bc2b3..a851967 100644
+--- a/decoder_plugins/decoders.m4
++++ b/decoder_plugins/decoders.m4
+@@ -20,6 +20,7 @@ m4_include(decoder_plugins/flac/flac.m4)
+ m4_include(decoder_plugins/modplug/modplug.m4)
+ m4_include(decoder_plugins/mp3/mp3.m4)
+ m4_include(decoder_plugins/musepack/musepack.m4)
++m4_include(decoder_plugins/opus/opus.m4)
+ m4_include(decoder_plugins/sidplay2/sidplay2.m4)
+ m4_include(decoder_plugins/sndfile/sndfile.m4)
+ m4_include(decoder_plugins/speex/speex.m4)
+diff --git a/decoder_plugins/opus/Makefile.am b/decoder_plugins/opus/Makefile.am
+new file mode 100644
+index 0000000..d0c183d
+--- /dev/null
++++ b/decoder_plugins/opus/Makefile.am
+@@ -0,0 +1,6 @@
++lib_LTLIBRARIES = libopus_decoder.la
++libdir = $(plugindir)/$(DECODER_PLUGIN_DIR)
++libopus_decoder_la_LDFLAGS = @PLUGIN_LDFLAGS@
++libopus_decoder_la_LIBADD = $(OPUSFILE_LIBS)
++libopus_decoder_la_CFLAGS = $(OPUSFILE_CFLAGS) -I$(top_srcdir)
++libopus_decoder_la_SOURCES = opus.c
+diff --git a/decoder_plugins/opus/opus.c b/decoder_plugins/opus/opus.c
+new file mode 100644
+index 0000000..6cc9d55
+--- /dev/null
++++ b/decoder_plugins/opus/opus.c
+@@ -0,0 +1,473 @@
++/*
++ * MOC - music on console
++ * Copyright (C) 2002 - 2005 Damian Pietras <daper@daper.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ */
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include <string.h>
++#include <strings.h>
++#include <stdio.h>
++#include <errno.h>
++#include <assert.h>
++#include <opusfile.h>
++
++#define DEBUG
++
++#include "common.h"
++#include "log.h"
++#include "decoder.h"
++#include "io.h"
++#include "audio.h"
++
++
++struct opus_data
++{
++ struct io_stream *stream;
++ OggOpusFile *of;
++ int last_section;
++ opus_int32 bitrate;
++ opus_int32 avg_bitrate;
++ int duration;
++ struct decoder_error error;
++ int ok; /* was this stream successfully opened? */
++ int tags_change; /* the tags were changed from the last call of
++ ogg_current_tags */
++ struct file_tags *tags;
++};
++
++
++static void get_comment_tags (OggOpusFile *of, struct file_tags *info)
++{
++ int i;
++ const OpusTags *comments;
++
++ comments = op_tags (of, -1);
++ for (i = 0; i < comments->comments; i++) {
++ if (!strncasecmp(comments->user_comments[i], "title=",
++ strlen ("title=")))
++ info->title = xstrdup(comments->user_comments[i]
++ + strlen ("title="));
++ else if (!strncasecmp(comments->user_comments[i],
++ "artist=", strlen ("artist=")))
++ info->artist = xstrdup (
++ comments->user_comments[i]
++ + strlen ("artist="));
++ else if (!strncasecmp(comments->user_comments[i],
++ "album=", strlen ("album=")))
++ info->album = xstrdup (
++ comments->user_comments[i]
++ + strlen ("album="));
++ else if (!strncasecmp(comments->user_comments[i],
++ "tracknumber=",
++ strlen ("tracknumber=")))
++ info->track = atoi (comments->user_comments[i]
++ + strlen ("tracknumber="));
++ else if (!strncasecmp(comments->user_comments[i],
++ "track=", strlen ("track=")))
++ info->track = atoi (comments->user_comments[i]
++ + strlen ("track="));
++ }
++}
++
++/* Return a malloc()ed description of an op_*() error. */
++static char *opus_str_error (const int code)
++{
++ char *err;
++
++ switch (code) {
++ case OP_FALSE:
++ err = "Request was not successful";
++ break;
++ case OP_EOF:
++ err = "End Of File";
++ break;
++ case OP_HOLE:
++ err = "Hole in stream";
++ break;
++ case OP_EREAD:
++ err = "An underlying read, seek, or tell operation failed.";
++ break;
++ case OP_EFAULT:
++ err = "Internal (Opus) logic fault";
++ break;
++ case OP_EIMPL:
++ err = "Unimplemented feature";
++ break;
++ case OP_EINVAL:
++ err = "Invalid argument";
++ break;
++ case OP_ENOTFORMAT:
++ err = "Not an Opus file";
++ break;
++ case OP_EBADHEADER:
++ err = "Invalid or corrupt header";
++ break;
++ case OP_EVERSION:
++ err = "Opus header version mismatch";
++ break;
++ case OP_EBADPACKET:
++ err = "An audio packet failed to decode properly";
++ break;
++ case OP_ENOSEEK:
++ err = "Requested seeking in unseekable stream";
++ break;
++ case OP_EBADTIMESTAMP:
++ err = "File timestamps fail sanity tests";
++ break;
++ default:
++ err = "Unknown error";
++ }
++
++ return xstrdup (err);
++}
++
++
++/* Fill info structure with data from ogg comments */
++static void opus_tags (const char *file_name, struct file_tags *info,
++ const int tags_sel)
++{
++ OggOpusFile *of;
++ int err_code;
++
++ // op_test() is faster than op_open(), but we can't read file time with it.
++ if (tags_sel & TAGS_TIME) {
++ of = op_open_file(file_name,&err_code);
++ if (err_code < 0) {
++ char *opus_err = opus_str_error (err_code);
++
++ logit ("Can't open %s: %s", file_name, opus_err);
++ free (opus_err);
++ op_free(of);
++
++ return;
++ }
++ }
++ else {
++ of = op_open_file(file_name,&err_code);
++ if (err_code < 0) {
++ char *opus_err = opus_str_error (err_code);
++
++ logit ("Can't open %s: %s", file_name, opus_err);
++ free (opus_err);
++ op_free (of);
++
++ return;
++ }
++ }
++
++ if (tags_sel & TAGS_COMMENTS)
++ get_comment_tags (of, info);
++
++ if (tags_sel & TAGS_TIME) {
++ ogg_int64_t opus_time;
++
++ opus_time = op_pcm_total (of, -1);
++ if (opus_time >= 0)
++ info->time = opus_time / 48000;
++ debug("Duration tags: %d, samples %lld",info->time,(long long)opus_time);
++ }
++
++ op_free (of);
++}
++
++static int read_callback (void *datasource, unsigned char *ptr, int bytes)
++{
++ ssize_t res;
++
++ res = io_read (datasource, ptr, bytes);
++
++ if (res < 0) {
++ logit ("Read error");
++ res = -1;
++ }
++
++ return res;
++}
++
++static int seek_callback (void *datasource, opus_int64 offset, int whence)
++{
++ debug ("Seek request to %ld (%s)", (long)offset,
++ whence == SEEK_SET ? "SEEK_SET"
++ : (whence == SEEK_CUR ? "SEEK_CUR" : "SEEK_END"));
++ return io_seek (datasource, offset, whence)<0 ? -1 : 0;
++}
++
++static int close_callback (void *datasource ATTR_UNUSED)
++{
++ return 0;
++}
++
++static opus_int64 tell_callback (void *datasource)
++{
++ return io_tell (datasource);
++}
++
++static void opus_open_stream_internal (struct opus_data *data)
++{
++ int res;
++ OpusFileCallbacks callbacks = {
++ read_callback,
++ seek_callback,
++ tell_callback,
++ close_callback
++ };
++
++ data->tags = tags_new ();
++
++ data->of = op_open_callbacks(data->stream, &callbacks, NULL, 0, &res);
++ if (res < 0) {
++ char *opus_err = opus_str_error (res);
++
++ decoder_error (&data->error, ERROR_FATAL, 0, "%s",
++ opus_err);
++ debug ("op_open error: %s", opus_err);
++ free (opus_err);
++ op_free (data->of);
++ data->of = NULL;
++ io_close (data->stream);
++ }
++ else {
++ ogg_int64_t samples;
++ data->last_section = -1;
++ data->avg_bitrate = op_bitrate (data->of, -1) / 1000;
++ data->bitrate = data->avg_bitrate;
++ samples = op_pcm_total (data->of, -1);
++ if (samples == OP_EINVAL)
++ data->duration = -1;
++ else
++ data->duration =samples/48000;
++ debug("Duration: %d, samples %lld",data->duration,(long long)samples);
++ data->ok = 1;
++ get_comment_tags (data->of, data->tags);
++ }
++}
++
++static void *opus_open (const char *file)
++{
++ struct opus_data *data;
++ data = (struct opus_data *)xmalloc (sizeof(struct opus_data));
++ data->ok = 0;
++
++ decoder_error_init (&data->error);
++ data->tags_change = 0;
++ data->tags = NULL;
++
++ data->stream = io_open (file, 1);
++ if (!io_ok(data->stream)) {
++ decoder_error (&data->error, ERROR_FATAL, 0,
++ "Can't load Opus: %s",
++ io_strerror(data->stream));
++ io_close (data->stream);
++ }
++ else
++ opus_open_stream_internal (data);
++
++ return data;
++}
++
++static int opus_can_decode (struct io_stream *stream)
++{
++ char buf[36];
++
++ if (io_peek (stream, buf, 36) == 36 && !memcmp (buf, "OggS", 4)
++ && !memcmp (buf + 28, "OpusHead", 8))
++ return 1;
++
++ return 0;
++}
++
++static void *opus_open_stream (struct io_stream *stream)
++{
++ struct opus_data *data;
++
++ data = (struct opus_data *)xmalloc (sizeof(struct opus_data));
++ data->ok = 0;
++
++ decoder_error_init (&data->error);
++ data->stream = stream;
++ opus_open_stream_internal (data);
++
++ return data;
++}
++
++static void opus_close (void *prv_data)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ if (data->ok) {
++ op_free (data->of);
++ io_close (data->stream);
++ }
++
++ decoder_error_clear (&data->error);
++ if (data->tags)
++ tags_free (data->tags);
++ free (data);
++}
++
++static int opus_seek (void *prv_data, int sec)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ assert (sec >= 0);
++
++ return op_pcm_seek (data->of, sec * (ogg_int64_t)48000)<0 ? -1 : sec;
++}
++
++static int opus_decodeX (void *prv_data, char *buf, int buf_len,
++ struct sound_params *sound_params)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++ int ret;
++ int current_section;
++ int bitrate;
++
++ decoder_error_clear (&data->error);
++
++ while (1) {
++#ifdef HAVE_OPUSFILE_FLOAT
++ ret = op_read_float(data->of, (float *)buf, buf_len/sizeof(float), &current_section);
++debug("opus float!");
++#else
++ ret = op_read(data->of, (opus_int16 *)buf, buf_len/sizeof(opus_int16), &current_section);
++debug("opus fixed!");
++#endif
++ if (ret == 0)
++ return 0;
++ if (ret < 0) {
++ decoder_error (&data->error, ERROR_STREAM, 0,
++ "Error in the stream!");
++ continue;
++ }
++
++ if (current_section != data->last_section) {
++ logit ("section change or first section");
++
++ data->last_section = current_section;
++ data->tags_change = 1;
++ tags_free (data->tags);
++ data->tags = tags_new ();
++ get_comment_tags (data->of, data->tags);
++ }
++
++ sound_params->channels = op_channel_count (data->of, current_section);
++ sound_params->rate = 48000;
++#ifdef HAVE_OPUSFILE_FLOAT
++ sound_params->fmt = SFMT_FLOAT;
++ ret *= sound_params->channels * sizeof(float);
++#else
++ sound_params->fmt = SFMT_S16 | SFMT_NE;
++ ret *= sound_params->channels * sizeof(opus_int16);
++#endif
++ /* Update the bitrate information */
++ bitrate = op_bitrate_instant (data->of);
++ if (bitrate > 0)
++ data->bitrate = bitrate / 1000;
++
++ break;
++ }
++ return ret;
++}
++
++static int opus_current_tags (void *prv_data, struct file_tags *tags)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ tags_copy (tags, data->tags);
++
++ if (data->tags_change) {
++ data->tags_change = 0;
++ return 1;
++ }
++
++ return 0;
++}
++
++
++static int opus_get_bitrate (void *prv_data)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ return data->bitrate;
++}
++
++static int opus_get_avg_bitrate (void *prv_data)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ return data->avg_bitrate;
++}
++
++static int opus_get_duration (void *prv_data)
++{
++
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ return data->duration;
++}
++
++static struct io_stream *opus_get_stream (void *prv_data)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ return data->stream;
++}
++
++static void opus_get_name (const char *file ATTR_UNUSED, char buf[4])
++{
++ strcpy (buf, "OPS");
++}
++
++static int opus_our_format_ext (const char *ext)
++{
++ return !strcasecmp (ext, "opus");
++}
++
++static void opus_get_error (void *prv_data, struct decoder_error *error)
++{
++ struct opus_data *data = (struct opus_data *)prv_data;
++
++ decoder_error_copy (error, &data->error);
++}
++
++static int opus_our_mime (const char *mime)
++{
++ return !strcasecmp (mime, "audio/ogg")
++ || !strcasecmp (mime, "audio/ogg; codecs=opus");
++}
++
++static struct decoder opus_decoder = {
++ DECODER_API_VERSION,
++ NULL,
++ NULL,
++ opus_open,
++ opus_open_stream,
++ opus_can_decode,
++ opus_close,
++ opus_decodeX,
++ opus_seek,
++ opus_tags,
++ opus_get_bitrate,
++ opus_get_duration,
++ opus_get_error,
++ opus_our_format_ext,
++ opus_our_mime,
++ opus_get_name,
++ opus_current_tags,
++ opus_get_stream,
++ opus_get_avg_bitrate
++};
++
++struct decoder *plugin_init ()
++{
++ return &opus_decoder;
++}
+diff --git a/decoder_plugins/opus/opus.m4 b/decoder_plugins/opus/opus.m4
+new file mode 100644
+index 0000000..08cceb9
+--- /dev/null
++++ b/decoder_plugins/opus/opus.m4
+@@ -0,0 +1,25 @@
++dnl opus
++
++AC_ARG_WITH(opus, AS_HELP_STRING([--without-opus],
++ [Compile without Opus support]))
++
++ if test "x$with_opus" != "xno"
++ then
++ PKG_CHECK_MODULES(OPUSFILE,
++ [opusfile >= 0.1],
++ [AC_SUBST(OPUSFILE_LIBS)
++ AC_SUBST(OPUSFILE_CFLAGS)
++ want_opus="yes"
++ DECODER_PLUGINS="$DECODER_PLUGINS opus"],
++ [true])
++ if test "x$want_opus" = "xyes"
++ then
++ AC_SEARCH_LIBS(op_read_float, opusfile,
++ [AC_DEFINE([HAVE_OPUSFILE_FLOAT], 1,
++ [Define to 1 if you have the `op_read_float' function.])])
++ fi
++
++ fi
++
++AM_CONDITIONAL([BUILD_opus], [test "$want_opus"])
++AC_CONFIG_FILES([decoder_plugins/opus/Makefile])
+diff --git a/options.c b/options.c
+index 62835ac..bb97b94 100644
+--- a/options.c
++++ b/options.c
+@@ -659,9 +659,9 @@ void options_init ()
+ "audio/aac(aac):audio/aacp(aac):audio/m4a(ffmpeg):"
+ "audio/wav(sndfile,*):"
+ "ogg(vorbis,*,ffmpeg):oga(vorbis,*,ffmpeg):ogv(ffmpeg):"
+- "application/ogg(vorbis):audio/ogg(vorbis):"
++ "application/ogg(vorbis,opus):audio/ogg(vorbis,opus):"
+ "flac(flac,*,ffmpeg):"
+- "opus(ffmpeg):"
++ "opus(opus,ffmpeg):"
+ "spx(speex)",
+ CHECK_FUNCTION);
+
+--
+2.10.2
+
diff --git a/source/ap/moc/0002-Adapted-the-opus-patch-to-config.example.in.patch b/source/ap/moc/0002-Adapted-the-opus-patch-to-config.example.in.patch
new file mode 100644
index 000000000..f4995f100
--- /dev/null
+++ b/source/ap/moc/0002-Adapted-the-opus-patch-to-config.example.in.patch
@@ -0,0 +1,22 @@
+From 0ce08aec4fda7077845aa483667b6bd2a9421bbb Mon Sep 17 00:00:00 2001
+From: Elimar Riesebieter <riesebie@lxtec.de>
+Date: Sun, 27 Nov 2016 12:19:29 +0100
+Subject: [PATCH] Adapted the opus patch to config.example.in
+
+---
+ config.example.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: debian-git/config.example.in
+===================================================================
+--- debian-git.orig/config.example.in
++++ debian-git/config.example.in
+@@ -399,7 +399,7 @@
+ #PreferredDecoders += ogg(vorbis,*,ffmpeg):oga(vorbis,*,ffmpeg):ogv(ffmpeg)
+ #PreferredDecoders += application/ogg(vorbis):audio/ogg(vorbis)
+ #PreferredDecoders += flac(flac,*,ffmpeg)
+-#PreferredDecoders += opus(ffmpeg)
++#PreferredDecoders += opus(opus,ffmpeg)
+ #PreferredDecoders += spx(speex)
+
+ # Which resampling method to use. There are a few methods of resampling
diff --git a/source/ap/moc/0003-The-AX_PATH_BDB_NO_OPTIONS-is-broken.patch b/source/ap/moc/0003-The-AX_PATH_BDB_NO_OPTIONS-is-broken.patch
new file mode 100644
index 000000000..8989e3101
--- /dev/null
+++ b/source/ap/moc/0003-The-AX_PATH_BDB_NO_OPTIONS-is-broken.patch
@@ -0,0 +1,26 @@
+From 4b5144d7997246d1e5ab7be7daec8bbc2ecd3b89 Mon Sep 17 00:00:00 2001
+From: Elimar Riesebieter <riesebie@lxtec.de>
+Date: Sun, 10 Feb 2019 08:32:09 +0100
+Subject: [PATCH] The AX_PATH_BDB_NO_OPTIONS is broken
+
+for cross compilation and that breaks moc. Pass -P to $ac_cpp.
+---
+ m4/ax_path_bdb.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/ax_path_bdb.m4 b/m4/ax_path_bdb.m4
+index 585218d..461d423 100644
+--- a/m4/ax_path_bdb.m4
++++ b/m4/ax_path_bdb.m4
+@@ -179,7 +179,7 @@ AX_PATH_BDB_STUFF DB_VERSION_MAJOR,DB_VERSION_MINOR,DB_VERSION_PATCH
+ ]])
+ ],[
+ # Extract version from preprocessor output.
+- HEADER_VERSION=`eval "$ac_cpp conftest.$ac_ext" 2> /dev/null \
++ HEADER_VERSION=`eval "$ac_cpp -P conftest.$ac_ext" 2> /dev/null \
+ | grep AX_PATH_BDB_STUFF | sed 's/[[^0-9,]]//g;s/,/./g;1q'`
+ ],[])
+
+--
+2.20.1
+
diff --git a/source/ap/moc/0004_playtime_perc.patch b/source/ap/moc/0004_playtime_perc.patch
new file mode 100644
index 000000000..14683ca12
--- /dev/null
+++ b/source/ap/moc/0004_playtime_perc.patch
@@ -0,0 +1,27 @@
+From 23a0cdc97e54bc8ac5edc0fca84aaf27bc34d910 Mon Sep 17 00:00:00 2001
+From: Elimar Riesebieter <riesebie@lxtec.de>
+Date: Mon, 30 Jul 2018 07:31:13 +0200
+Subject: [PATCH] Assign "Switch on/off play time percentage"
+
+---
+ keys.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/keys.c b/keys.c
+index 7ff052e..c1a7dfa 100644
+--- a/keys.c
++++ b/keys.c
+@@ -204,8 +204,8 @@ static struct command commands[] = {
+ "toggle_percent",
+ "Switch on/off play time percentage",
+ CON_MENU,
+- { -1 },
+- 0
++ {CTRL('p'), -1 },
++ 1
+ },
+ {
+ KEY_CMD_PLIST_ADD_FILE,
+--
+2.18.0
+
diff --git a/source/ap/moc/0008-Rename-configure.in-to-configure.ac.patch b/source/ap/moc/0008-Rename-configure.in-to-configure.ac.patch
new file mode 100644
index 000000000..d927d216f
--- /dev/null
+++ b/source/ap/moc/0008-Rename-configure.in-to-configure.ac.patch
@@ -0,0 +1,18 @@
+From 9637b87ddeb33f6c04d17b090605fb5ee21cc243 Mon Sep 17 00:00:00 2001
+From: Elimar Riesebieter <riesebie@lxtec.de>
+Date: Sat, 25 Jun 2022 16:18:58 +0300
+Subject: [PATCH] Rename configure.in to configure.ac
+
+Signed-off-by: Elimar Riesebieter <riesebie@lxtec.de>
+---
+ configure.in => configure.ac | 0
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+ rename configure.in => configure.ac (100%)
+
+diff --git a/configure.in b/configure.ac
+similarity index 100%
+rename from configure.in
+rename to configure.ac
+--
+2.36.1
+
diff --git a/source/ap/moc/0009-Add-https-to-is_url.patch b/source/ap/moc/0009-Add-https-to-is_url.patch
new file mode 100644
index 000000000..9d3ec0552
--- /dev/null
+++ b/source/ap/moc/0009-Add-https-to-is_url.patch
@@ -0,0 +1,25 @@
+From 868951edfb1cb719fcc662b93d6b19e658f6dfde Mon Sep 17 00:00:00 2001
+From: Elimar Riesebieter <riesebie@lxtec.de>
+Date: Sun, 30 Oct 2022 10:01:19 +0100
+Subject: [PATCH] Add https to is_url
+
+Signed-off-by: Elimar Riesebieter <riesebie@lxtec.de>
+---
+ files.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/files.c b/files.c
+index 16aa4b6..ed59217 100644
+--- a/files.c
++++ b/files.c
+@@ -85,6 +85,7 @@ void files_cleanup ()
+ inline int is_url (const char *str)
+ {
+ return !strncasecmp (str, "http://", sizeof ("http://") - 1)
++ || !strncasecmp (str, "https://", sizeof ("https://") - 1)
+ || !strncasecmp (str, "ftp://", sizeof ("ftp://") - 1);
+ }
+
+--
+2.37.2
+
diff --git a/source/ap/moc/0010-ffmpeg-6.0.patch b/source/ap/moc/0010-ffmpeg-6.0.patch
new file mode 100644
index 000000000..743d1a939
--- /dev/null
+++ b/source/ap/moc/0010-ffmpeg-6.0.patch
@@ -0,0 +1,23 @@
+From: Shengjing Zhu <zhsj@debian.org>
+Date: Wed, 13 Sep 2023 11:04:52 +0800
+Subject: ffmpeg 6.0
+
+ffmpeg 6.0 removed AV_CODEC_*_TRUNCATED api.
+
+---
+ decoder_plugins/ffmpeg/ffmpeg.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/decoder_plugins/ffmpeg/ffmpeg.c b/decoder_plugins/ffmpeg/ffmpeg.c
+index 64afe04..e26c804 100644
+--- a/decoder_plugins/ffmpeg/ffmpeg.c
++++ b/decoder_plugins/ffmpeg/ffmpeg.c
+@@ -762,8 +762,6 @@ static void *ffmpeg_open_internal (struct ffmpeg_data *data)
+ }
+
+ set_downmixing (data);
+- if (data->codec->capabilities & AV_CODEC_CAP_TRUNCATED)
+- data->enc->flags |= AV_CODEC_FLAG_TRUNCATED;
+
+ if (avcodec_open2 (data->enc, data->codec, NULL) < 0)
+ {
diff --git a/source/ap/moc/moc.SlackBuild b/source/ap/moc/moc.SlackBuild
index aafb57b5f..673f9c28e 100755
--- a/source/ap/moc/moc.SlackBuild
+++ b/source/ap/moc/moc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2011, 2013, 2018, 2019, 2022 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011, 2013, 2018, 2019, 2022, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=moc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d -)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -78,9 +78,16 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-zcat $CWD/0005-avcodec-include.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0006-uncast-warnings.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0007-cur-dts.patch.gz | patch -p1 --verbose || exit 1
+cat $CWD/0001-Refreshed-opus-patch-from-Tomasz-Golinski-tomaszg-al.patch | patch -p1 --verbose || exit 1
+cat $CWD/0002-Adapted-the-opus-patch-to-config.example.in.patch | patch -p1 --verbose || exit 1
+cat $CWD/0003-The-AX_PATH_BDB_NO_OPTIONS-is-broken.patch | patch -p1 --verbose || exit 1
+cat $CWD/0004_playtime_perc.patch | patch -p1 --verbose || exit 1
+cat $CWD/0005-avcodec-include.patch | patch -p1 --verbose || exit 1
+cat $CWD/0006-uncast-warnings.patch | patch -p1 --verbose || exit 1
+cat $CWD/0007-cur-dts.patch | patch -p1 --verbose || exit 1
+cat $CWD/0008-Rename-configure.in-to-configure.ac.patch | patch -p1 --verbose || exit 1
+cat $CWD/0009-Add-https-to-is_url.patch | patch -p1 --verbose || exit 1
+cat $CWD/0010-ffmpeg-6.0.patch | patch -p1 --verbose || exit 1
# Configure:
if [ ! -r configure ]; then
diff --git a/source/d/nv-codec-headers/fetch-sources.sh b/source/d/nv-codec-headers/fetch-sources.sh
new file mode 100755
index 000000000..5443e429f
--- /dev/null
+++ b/source/d/nv-codec-headers/fetch-sources.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+VERSION=${VERSION:-12.1.14.0}
+
+rm -rf nv-codec-headers-*.tar.?z*
+
+git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git nv-codec-headers
+
+cd nv-codec-headers
+ git checkout n$VERSION
+cd ..
+
+mv nv-codec-headers nv-codec-headers-$VERSION
+
+tar --exclude-vcs -cf nv-codec-headers-$VERSION.tar nv-codec-headers-$VERSION
+plzip -9 nv-codec-headers-$VERSION.tar
+
+rm -rf nv-codec-headers-$VERSION
diff --git a/source/d/nv-codec-headers/nv-codec-headers.SlackBuild b/source/d/nv-codec-headers/nv-codec-headers.SlackBuild
new file mode 100755
index 000000000..6879efba7
--- /dev/null
+++ b/source/d/nv-codec-headers/nv-codec-headers.SlackBuild
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+# Copyright 2022 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2024 Heinz Wiesinger, Amsterdam, The Netherlands
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=nv-codec-headers
+VERSION=${VERSION:-$(echo nv-codec-headers-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf nv-codec-headers-$VERSION
+tar xvf $CWD/nv-codec-headers-$VERSION.tar.?z || exit 1
+cd nv-codec-headers-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+make \
+ $NUMJOBS \
+ PREFIX=/usr \
+ LIBDIR=/lib$LIBDIRSUFFIX \
+ DESTDIR=$PKG \
+ install || exit 1
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a README \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/d/nv-codec-headers/slack-desc b/source/d/nv-codec-headers/slack-desc
new file mode 100644
index 000000000..663375af2
--- /dev/null
+++ b/source/d/nv-codec-headers/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+nv-codec-headers: nv-codec-headers (Headers for NVidia's codec APIs)
+nv-codec-headers:
+nv-codec-headers: FFmpeg version of headers required to interface with NVidia's codec
+nv-codec-headers: APIs.
+nv-codec-headers:
+nv-codec-headers:
+nv-codec-headers:
+nv-codec-headers:
+nv-codec-headers:
+nv-codec-headers:
+nv-codec-headers:
diff --git a/source/kde/kde/build/digikam b/source/kde/kde/build/digikam
index 00750edc0..b8626c4cf 100644
--- a/source/kde/kde/build/digikam
+++ b/source/kde/kde/build/digikam
@@ -1 +1 @@
-3
+4
diff --git a/source/kde/kde/build/ffmpegthumbs b/source/kde/kde/build/ffmpegthumbs
index d00491fd7..0cfbf0888 100644
--- a/source/kde/kde/build/ffmpegthumbs
+++ b/source/kde/kde/build/ffmpegthumbs
@@ -1 +1 @@
-1
+2
diff --git a/source/kde/kde/build/k3b b/source/kde/kde/build/k3b
index d00491fd7..0cfbf0888 100644
--- a/source/kde/kde/build/k3b
+++ b/source/kde/kde/build/k3b
@@ -1 +1 @@
-1
+2
diff --git a/source/kde/kde/build/kfilemetadata b/source/kde/kde/build/kfilemetadata
index d00491fd7..0cfbf0888 100644
--- a/source/kde/kde/build/kfilemetadata
+++ b/source/kde/kde/build/kfilemetadata
@@ -1 +1 @@
-1
+2
diff --git a/source/kde/kde/build/kpipewire b/source/kde/kde/build/kpipewire
index d00491fd7..0cfbf0888 100644
--- a/source/kde/kde/build/kpipewire
+++ b/source/kde/kde/build/kpipewire
@@ -1 +1 @@
-1
+2
diff --git a/source/l/alsa-plugins/alsa-plugins.SlackBuild b/source/l/alsa-plugins/alsa-plugins.SlackBuild
index f349bca92..dc83faeba 100755
--- a/source/l/alsa-plugins/alsa-plugins.SlackBuild
+++ b/source/l/alsa-plugins/alsa-plugins.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=alsa-plugins
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/l/ffmpeg/250471ea1745fc703eb346a2a662304536a311b1.patch b/source/l/ffmpeg/250471ea1745fc703eb346a2a662304536a311b1.patch
new file mode 100644
index 000000000..b735415ae
--- /dev/null
+++ b/source/l/ffmpeg/250471ea1745fc703eb346a2a662304536a311b1.patch
@@ -0,0 +1,25 @@
+From 250471ea1745fc703eb346a2a662304536a311b1 Mon Sep 17 00:00:00 2001
+From: Sebastian Ramacher <sramacher@debian.org>
+Date: Sun, 12 Nov 2023 18:46:28 +0100
+Subject: [PATCH] avcoded/fft: Fix memory leak if ctx2 is used
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+---
+ libavcodec/avfft.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c
+index 3ef076d222..999b5ed79a 100644
+--- a/libavcodec/avfft.c
++++ b/libavcodec/avfft.c
+@@ -130,6 +130,7 @@ av_cold void av_mdct_end(FFTContext *s)
+ {
+ if (s) {
+ AVTXWrapper *w = (AVTXWrapper *)s;
++ av_tx_uninit(&w->ctx2);
+ av_tx_uninit(&w->ctx);
+ av_free(w);
+ }
+--
+2.25.1
+
diff --git a/source/l/ffmpeg/ffmpeg.SlackBuild b/source/l/ffmpeg/ffmpeg.SlackBuild
index 9be957bca..1553821b0 100755
--- a/source/l/ffmpeg/ffmpeg.SlackBuild
+++ b/source/l/ffmpeg/ffmpeg.SlackBuild
@@ -2,8 +2,8 @@
# Slackware build script for ffmpeg
-# Copyright 2010-2017 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2017, 2018, 2022, 2023 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2010-2024 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2017, 2018, 2022, 2024 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ffmpeg
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -89,13 +89,25 @@ fi
# - xz
# - zlib
+# Select one of these for HTTPS support
+ssl="" ; [ "${OPENSSL:-no}" != "no" ] && \
+ { ssl="--enable-openssl" ; non_free="--enable-nonfree" ; }
+gnutls="" ; [ "${GNUTLS:-yes}" != "no" ] && gnutls="--enable-gnutls"
+
+# Select one of these for RTMP[E] support
+librtmp="" ; [ "${RTMP:-no}" != "no" ] && librtmp="--enable-librtmp"
+gmp="" ; [ "${GMP:-no}" != "no" ] && gmp="--enable-gmp"
+libgcrypt="" ; [ "${GCRYPT:-yes}" != "no" ] && libgcrypt="--enable-gcrypt"
+
+# Select one of these for GLSL->SPIRV compilation (Required for Vulkan support)
+libglslang="" ; [ "${GLSLANG:-no}" != "no" ] && libglslang="--enable-libglslang"
+shaderc="" ; [ "${SHADERC:-yes}" != "no" ] && libshaderc="--enable-libshaderc"
+
libx264="" ; [ "${X264:-no}" != "no" ] && libx264="--enable-libx264"
libcelt="" ; [ "${CELT:-no}" != "no" ] && libcelt="--enable-libcelt"
libdc1394="" ; [ "${DC1394:-no}" != "no" ] && libdc1394="--enable-libdc1394"
libgsm="" ; [ "${GSM:-no}" != "no" ] && libgsm="--enable-libgsm"
-librtmp="" ; [ "${RTMP:-no}" != "no" ] && librtmp="--enable-librtmp"
libxvid="" ; [ "${XVID:-no}" != "no" ] && libxvid="--enable-libxvid"
-libass="" ; [ "${ASS:-no}" != "no" ] && libass="--enable-libass"
libiec61883=""; [ "${IEC61883:-no}" != "no" ] && libiec61883="--enable-libiec61883"
libilbc="" ; [ "${ILBC:-no}" != "no" ] && libilbc="--enable-libilbc"
libmodplug="" ; [ "${MODPLUG:-no}" != "no" ] && libmodplug="--enable-libmodplug"
@@ -104,7 +116,6 @@ ladspa="" ; [ "${LADSPA:-no}" != "no" ] && ladspa="--enable-ladspa"
libflite="" ; [ "${FLITE:-no}" != "no" ] && libflite="--enable-libflite"
libx265="" ; [ "${X265:-no}" != "no" ] && libx265="--enable-libx265"
libzvbi="" ; [ "${ZVBI:-no}" != "no" ] && libzvbi="--enable-libzvbi"
-libopencv="" ; [ "${OPENCV:-no}" != "no" ] && libopencv="--enable-libopencv"
libgme="" ; [ "${GME:-no}" != "no" ] && libgme="--enable-libgme"
libsnappy="" ; [ "${SNAPPY:-no}" != "no" ] && libsnappy="--enable-libsnappy"
libzmq="" ; [ "${ZMQ:-no}" != "no" ] && libzmq="--enable-libzmq"
@@ -126,19 +137,28 @@ opencore_amr="" ; [ "${OPENCORE:-no}" != "no" ] && \
opencore_amr="--enable-libopencore-amrnb --enable-libopencore-amrwb"
fdk="" ; [ "${FDK_AAC:-no}" != "no" ] && \
{ fdk="--enable-libfdk-aac"; non_free="--enable-nonfree" ; }
-ssl="" ; [ "${OPENSSL:-no}" != "no" ] && \
- { ssl="--enable-openssl" ; non_free="--enable-nonfree" ; }
decklink="" ; [ "${DECKLINK:-no}" != "no" ] && \
{ decklink="--enable-decklink" ; \
SLKCFLAGS="$SLKCFLAGS -I/usr/include/decklink" ; }
-liblensfun="" ; [ "${LENSFUN:-no}" != "no" ] && liblensfun="--enable-liblensfun"
+libaribb24="" ; [ "${ARIBB24:-no}" != "no" ] && libaribb24="--enable-libaribb24"
+libjxl="" ; [ "${JXL:-no}" != "no" ] && libjxl="--enable-libjxl"
+librist="" ; [ "${RIST:-no}" != "no" ] && librist="--enable-librist"
+libshine="" ; [ "${SHINE:-no}" != "no" ] && libshine="--enable-libshine"
+svtav1="" ; [ "${SVTAV1:-no}" != "no" ] && svtav1="--enable-libsvtav1"
+libmysofa="" ; [ "${MYSOFA:-no}" != "no" ] && libmysofa="--enable-libmysofa"
+libxavs2="" ; [ "${XAVS2:-no}" != "no" ] && libxavs2="--enable-libxavs2"
libvmaf="" ; [ "${VMAF:-no}" != "no" ] && libvmaf="--enable-libvmaf"
+# Needs older opencv than we ship. See https://trac.ffmpeg.org/ticket/7059
+libopencv="" ; [ "${OPENCV:-no}" != "no" ] && libopencv="--enable-libopencv"
+
+# Needs newer lensfun than we ship. See https://trac.ffmpeg.org/ticket/9112
+liblensfun="" ; [ "${LENSFUN:-no}" != "no" ] && liblensfun="--enable-liblensfun"
+
# Default enabled features:
fontconfig="" ; [ "${FONTCONFIG:-yes}" != "no" ] && fontconfig="--enable-libfontconfig"
freetype="" ; [ "${FREETYPE:-yes}" != "no" ] && freetype="--enable-libfreetype"
fribidi="" ; [ "${FRIBIDI:-yes}" != "no" ] && fribidi="--enable-libfribidi"
-gnutls="" ; [ "${GNUTLS:-yes}" != "no" ] && gnutls="--enable-gnutls"
libbluray="" ; [ "${BLURAY:-yes}" != "no" ] && libbluray="--enable-libbluray"
libcaca="" ; [ "${CACA:-yes}" != "no" ] && libcaca="--enable-libcaca"
libcdio="" ; [ "${LIBCDIO:-yes}" != "no" ] && libcdio="--enable-libcdio"
@@ -162,8 +182,10 @@ libvidstab="" ; [ "${VIDSTAB:-yes}" != "no" ] && libvidstab="--enable-libvid
libxml2="" ; [ "${LIBXML2:-yes}" != "no" ] && libxml2="--enable-libxml2"
librsvg="" ; [ "${LIBRSVG:-yes}" != "no" ] && librsvg="--enable-librsvg"
libdrm="" ; [ "${LIBDRM:-yes}" != "no" ] && libdrm="--enable-libdrm"
-libglslang="" ; [ "${GLSLANG:-yes}" != "no" ] && libglslang="--enable-libglslang"
vulkan="" ; [ "${VULKAN:-yes}" != "no" ] && vulkan="--enable-vulkan"
+libass="" ; [ "${ASS:-yes}" != "no" ] && libass="--enable-libass"
+libplacebo="" ; [ "${PLACEBO:-yes}" != "no" ] && libplacebo="--enable-libplacebo"
+lcms2="" ; [ "${LCMS2:-yes}" != "no" ] && lcms2="--enable-lcms2"
# No default patent encumbered features:
aac="" ; [ "${AAC:-no}" = "no" ] && aac="--disable-encoder=aac"
@@ -172,7 +194,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+tar xf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
@@ -188,6 +210,9 @@ zcat $CWD/add-av_stream_get_first_dts-for-chromium.patch.gz | patch -p1 --verbos
# Build against recent Vulkan:
zcat $CWD/ffmpeg.vulkan.diff.gz | patch -p1 --verbose || exit 1
+# Fix ctx memory leak:
+zcat $CWD/250471ea1745fc703eb346a2a662304536a311b1.patch | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -256,7 +281,6 @@ CXXFLAGS="$SLKCFLAGS" \
$ssl \
$tesseract \
$liblensfun \
- $libvmaf \
$libxml2 \
$librsvg \
$vulkan \
@@ -271,7 +295,20 @@ CXXFLAGS="$SLKCFLAGS" \
$libsoxr \
$libsrt \
$libzimg \
- $vapoursynth || exit 1
+ $vapoursynth \
+ $libshaderc \
+ $libgcrypt \
+ $libplacebo \
+ $lcms2 \
+ $gmp \
+ $libaribb24 \
+ $libjxl \
+ $librist \
+ $libshine \
+ $svtav1 \
+ $libmysofa \
+ $libxavs2 \
+ $libvmaf || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/gegl/gegl.SlackBuild b/source/l/gegl/gegl.SlackBuild
index 3f037bd23..c583158cd 100755
--- a/source/l/gegl/gegl.SlackBuild
+++ b/source/l/gegl/gegl.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gegl
VERSION=${VERSION:-$(echo gegl-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/gst-plugins-bad-free/gst-plugins-bad-free.SlackBuild b/source/l/gst-plugins-bad-free/gst-plugins-bad-free.SlackBuild
index 17d9735ba..f6e40311b 100755
--- a/source/l/gst-plugins-bad-free/gst-plugins-bad-free.SlackBuild
+++ b/source/l/gst-plugins-bad-free/gst-plugins-bad-free.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gst-plugins-bad-free
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/gst-plugins-libav/gst-plugins-libav.SlackBuild b/source/l/gst-plugins-libav/gst-plugins-libav.SlackBuild
index fce74fbe7..6c06c0622 100755
--- a/source/l/gst-plugins-libav/gst-plugins-libav.SlackBuild
+++ b/source/l/gst-plugins-libav/gst-plugins-libav.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gst-plugins-libav
VERSION=${VERSION:-$(echo gst-libav-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libass/libass.SlackBuild b/source/l/libass/libass.SlackBuild
new file mode 100755
index 000000000..3faf80af7
--- /dev/null
+++ b/source/l/libass/libass.SlackBuild
@@ -0,0 +1,120 @@
+#!/bin/bash
+
+# Written by Larry Hajali <larryhaja[at]gmail[dot]com>
+# Copyright 2011-2018 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2024 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=libass
+VERSION=${VERSION:-$(echo libass-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf libass-$VERSION
+tar xvf $CWD/libass-$VERSION.tar.?z || exit 1
+cd libass-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Configure, build, and install:
+if [ ! -r configure ]; then
+ if [ -x ./autogen.sh ]; then
+ NOCONFIGURE=1 ./autogen.sh
+ else
+ autoreconf -vif
+ fi
+fi
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static=no \
+ --disable-silent-rules \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || exit 1
+make install-strip DESTDIR=$PKG || exit 1
+
+rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a Changelog COPYING* MAINTAINERS* README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libass/libass.url b/source/l/libass/libass.url
new file mode 100644
index 000000000..1daba4ba7
--- /dev/null
+++ b/source/l/libass/libass.url
@@ -0,0 +1 @@
+https://github.com/libass/libass
diff --git a/source/l/libass/slack-desc b/source/l/libass/slack-desc
new file mode 100644
index 000000000..540f32401
--- /dev/null
+++ b/source/l/libass/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libass: libass (Subtitle renderer for the ASS/SSA)
+libass:
+libass: libass is a portable subtitle renderer for the ASS/SSA (Advanced
+libass: Substation Alpha/Substation Alpha) subtitle format. It is mostly
+libass: compatible with VSFilter.
+libass:
+libass: Homepage: https://github.com/libass/libass
+libass:
+libass:
+libass:
+libass:
diff --git a/source/l/libplacebo/libplacebo.SlackBuild b/source/l/libplacebo/libplacebo.SlackBuild
new file mode 100755
index 000000000..608324215
--- /dev/null
+++ b/source/l/libplacebo/libplacebo.SlackBuild
@@ -0,0 +1,112 @@
+#!/bin/bash
+
+# Copyright 2019-2020 Hunter Sezen California, USA
+# Copyright 2024 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=libplacebo
+VERSION=${VERSION:-$(echo libplacebo-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Configure, build, and install:
+export CFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS"
+mkdir meson-build
+cd meson-build
+meson setup \
+ --prefix=/usr \
+ --libdir=lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/libexec \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --includedir=/usr/include \
+ --datadir=/usr/share \
+ --mandir=/usr/man \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --buildtype=release \
+ -D demos=false \
+ -D glslang=enabled \
+ -D dovi=disabled \
+ -D libdovi=disabled \
+ -D d3d11=disabled \
+ .. || exit 1
+ "${NINJA:=ninja}" $NUMJOBS || exit 1
+ DESTDIR=$PKG $NINJA install || exit 1
+cd ..
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a LICENSE* README* $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libplacebo/libplacebo.url b/source/l/libplacebo/libplacebo.url
new file mode 100644
index 000000000..2a08578b2
--- /dev/null
+++ b/source/l/libplacebo/libplacebo.url
@@ -0,0 +1 @@
+https://github.com/haasn/libplacebo
diff --git a/source/l/libplacebo/slack-desc b/source/l/libplacebo/slack-desc
new file mode 100644
index 000000000..e580bad41
--- /dev/null
+++ b/source/l/libplacebo/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libplacebo: libplacebo (GPU-accelerated video processing library)
+libplacebo:
+libplacebo: libplacebo is, in a nutshell, the core rendering algorithms and ideas
+libplacebo: of mpv rewritten as an independent library. It contains a large
+libplacebo: assortment of video processing shaders, focusing on both quality and
+libplacebo: performance.
+libplacebo:
+libplacebo: Homepage: https://code.videolan.org/videolan/libplacebo
+libplacebo:
+libplacebo:
+libplacebo:
diff --git a/source/l/mlt/mlt.SlackBuild b/source/l/mlt/mlt.SlackBuild
index 66c34e9bd..8a688f399 100755
--- a/source/l/mlt/mlt.SlackBuild
+++ b/source/l/mlt/mlt.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=mlt
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/opencv/opencv.SlackBuild b/source/l/opencv/opencv.SlackBuild
index 01b969bba..179c7bfc4 100755
--- a/source/l/opencv/opencv.SlackBuild
+++ b/source/l/opencv/opencv.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=opencv
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/pipewire/pipewire.SlackBuild b/source/l/pipewire/pipewire.SlackBuild
index f3dd30ae8..6c5ff7147 100755
--- a/source/l/pipewire/pipewire.SlackBuild
+++ b/source/l/pipewire/pipewire.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=pipewire
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/qt5/qt5.SlackBuild b/source/l/qt5/qt5.SlackBuild
index 1eb85dd75..941530891 100755
--- a/source/l/qt5/qt5.SlackBuild
+++ b/source/l/qt5/qt5.SlackBuild
@@ -31,7 +31,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=qt5
VERSION=$(ls qt-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
PKGSRC=$(echo $VERSION | cut -d - -f 1)
PKGVER=$(echo $VERSION | tr - _)
diff --git a/source/xap/MPlayer/MPlayer.SlackBuild b/source/xap/MPlayer/MPlayer.SlackBuild
index 0f274ebb7..891497582 100755
--- a/source/xap/MPlayer/MPlayer.SlackBuild
+++ b/source/xap/MPlayer/MPlayer.SlackBuild
@@ -25,7 +25,7 @@
# Set initial variables:
PKGNAM=MPlayer
-VERSION=${VERSION:-20221009}
+VERSION=${VERSION:-20240127}
# Need to build trunk until there's a stable branch compatible with the
# latest ffmpeg stable release:
#BRANCH=${BRANCH:-1.3} # leave empty if you want to build MPlayer trunk
diff --git a/source/xap/audacious-plugins/audacious-plugins.SlackBuild b/source/xap/audacious-plugins/audacious-plugins.SlackBuild
index 3e3de478b..65d939a21 100755
--- a/source/xap/audacious-plugins/audacious-plugins.SlackBuild
+++ b/source/xap/audacious-plugins/audacious-plugins.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=audacious-plugins
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Whether to include faad/aac support:
FAAD=${FAAD:---disable-aac}
diff --git a/source/xap/ffmpegthumbnailer/ffmpegthumbnailer.SlackBuild b/source/xap/ffmpegthumbnailer/ffmpegthumbnailer.SlackBuild
index bc46b59cc..30d5f5627 100755
--- a/source/xap/ffmpegthumbnailer/ffmpegthumbnailer.SlackBuild
+++ b/source/xap/ffmpegthumbnailer/ffmpegthumbnailer.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ffmpegthumbnailer
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/xap/freerdp/freerdp.SlackBuild b/source/xap/freerdp/freerdp.SlackBuild
index 21e78ee05..6252d5db3 100755
--- a/source/xap/freerdp/freerdp.SlackBuild
+++ b/source/xap/freerdp/freerdp.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=freerdp
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/xap/ssr/ssr.SlackBuild b/source/xap/ssr/ssr.SlackBuild
index 583d2a105..faefebadc 100755
--- a/source/xap/ssr/ssr.SlackBuild
+++ b/source/xap/ssr/ssr.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ssr
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/xap/xine-lib/xine-lib.SlackBuild b/source/xap/xine-lib/xine-lib.SlackBuild
index 111a30619..1f03f2619 100755
--- a/source/xap/xine-lib/xine-lib.SlackBuild
+++ b/source/xap/xine-lib/xine-lib.SlackBuild
@@ -32,7 +32,7 @@ DIRVER=1.2.13
# Version used for the Slackware package
PKGVER=1.2.13
-BUILD=${BUILD:-5}
+BUILD=${BUILD:-6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/xap/xscreensaver/xscreensaver.SlackBuild b/source/xap/xscreensaver/xscreensaver.SlackBuild
index 8d12829d5..ffc957672 100755
--- a/source/xap/xscreensaver/xscreensaver.SlackBuild
+++ b/source/xap/xscreensaver/xscreensaver.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=xscreensaver
VERSION=${VERSION:-$(echo xscreensaver-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then