Compare commits

..

No commits in common. 'el9' and 'i10fe' have entirely different histories.
el9 ... i10fe

3
.gitignore vendored

@ -1,2 +1 @@
vlc-*.tar.xz
vlc-*.tar.gz
SOURCES/vlc-3.0.20.tar.xz

@ -0,0 +1 @@
b834516ab701bf6311980ed5d67b77c834fdebe7 SOURCES/vlc-3.0.20.tar.xz

@ -1,50 +0,0 @@
From 94845266b705dc9de7921408531b9d7704f4458f Mon Sep 17 00:00:00 2001
From: Dominic Mayers <dominic.mayers@meditationstudies.org>
Date: Sun, 28 Mar 2021 04:37:54 -0400
Subject: [PATCH] Get addr by ref. from getConnectionEndpointAddress.
Fixes issue #25473 in code.videolan.org. The maintainers of live555 changed
connectionEndpointAddresss to getConnectionEndpointAddress, which now provides
the address value by reference. Before, connectionEndpointAddresss returned
the value. So, in modules/access/live555.cpp, we must first get the value and
then pass it to IsMulticastAddress. The code will not compile with the recent
live555 unless we also modify modules/access/Makefile.am - a different patch.
---
modules/access/live555.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp
index 01c535ca5b..95e15e35d9 100644
--- a/modules/access/live555.cpp
+++ b/modules/access/live555.cpp
@@ -60,6 +60,7 @@
#include <liveMedia.hh>
#include <liveMedia_version.hh>
#include <Base64.hh>
+#include <NetAddress.hh>
extern "C" {
#include "../access/mms/asf.h" /* Who said ugly ? */
@@ -727,7 +728,8 @@ static int SessionsSetup( demux_t *p_demux )
unsigned const thresh = 200000; /* RTP reorder threshold .2 second (default .1) */
const char *p_sess_lang = NULL;
const char *p_lang;
-
+ struct sockaddr_storage addr;
+
b_rtsp_tcp = var_CreateGetBool( p_demux, "rtsp-tcp" ) ||
var_GetBool( p_demux, "rtsp-http" );
i_client_port = var_InheritInteger( p_demux, "rtp-client-port" );
@@ -850,7 +852,8 @@ static int SessionsSetup( demux_t *p_demux )
if( !p_sys->b_multicast )
{
/* We need different rollover behaviour for multicast */
- p_sys->b_multicast = IsMulticastAddress( sub->connectionEndpointAddress() );
+ sub->getConnectionEndpointAddress(addr);
+ p_sys->b_multicast = IsMulticastAddress( addr );
}
tk = (live_track_t*)malloc( sizeof( live_track_t ) );
--
2.25.1

@ -1,74 +0,0 @@
From b107d105f8489edd6deafb340c65f435ab6e1c29 Mon Sep 17 00:00:00 2001
From: Leigh Scott <leigh123linux@gmail.com>
Date: Mon, 14 Jun 2021 12:26:09 +0100
Subject: [PATCH] Revert "access: libdvdread 6.1.2 supports UTF-8 paths in
Windows."
This reverts commit 02b784c0cefe6d0d36bbc3b668a7f238c7f7b3ed.
---
modules/access/dvdnav.c | 9 ---------
modules/access/dvdread.c | 9 ---------
2 files changed, 18 deletions(-)
diff --git a/modules/access/dvdnav.c b/modules/access/dvdnav.c
index 69abe50c8c..89fb66f11e 100644
--- a/modules/access/dvdnav.c
+++ b/modules/access/dvdnav.c
@@ -371,14 +371,7 @@ static int AccessDemuxOpen ( vlc_object_t *p_this )
goto bailout;
/* Open dvdnav */
-#if DVDREAD_VERSION < DVDREAD_VERSION_CODE(6, 1, 2)
- /* In libdvdread prior to 6.1.2, UTF8 is not supported for windows and
- * requires a prior conversion.
- * For non win32/os2 platforms, this is just a no-op */
psz_path = ToLocale( psz_file );
-#else
- psz_path = psz_file;
-#endif
#if DVDNAV_VERSION >= 60100
dvdnav_logger_cb cbs;
cbs.pf_log = DvdNavLog;
@@ -397,10 +390,8 @@ static int AccessDemuxOpen ( vlc_object_t *p_this )
bailout:
free( psz_file );
-#if DVDREAD_VERSION < DVDREAD_VERSION_CODE(6, 1, 2)
if( psz_path )
LocaleFree( psz_path );
-#endif
return i_ret;
}
diff --git a/modules/access/dvdread.c b/modules/access/dvdread.c
index 749cbd47e0..e75bef5986 100644
--- a/modules/access/dvdread.c
+++ b/modules/access/dvdread.c
@@ -212,14 +212,7 @@ static int Open( vlc_object_t *p_this )
}
/* Open dvdread */
-#if DVDREAD_VERSION < DVDREAD_VERSION_CODE(6, 1, 2)
- /* In libdvdread prior to 6.1.2, UTF8 is not supported for windows and
- * requires a prior conversion.
- * For non win32/os2 platforms, this is just a no-op */
const char *psz_path = ToLocale( psz_file );
-#else
- const char *psz_path = psz_file;
-#endif
#if DVDREAD_VERSION >= DVDREAD_VERSION_CODE(6, 1, 0)
dvd_logger_cb cbs;
cbs.pf_log = DvdReadLog;
@@ -227,9 +220,7 @@ static int Open( vlc_object_t *p_this )
#else
dvd_reader_t *p_dvdread = DVDOpen( psz_path );
#endif
-#if DVDREAD_VERSION < DVDREAD_VERSION_CODE(6, 1, 2)
LocaleFree( psz_path );
-#endif
if( p_dvdread == NULL )
{
msg_Err( p_demux, "DVDRead cannot open source: %s", psz_file );
--
2.31.1

@ -1,45 +0,0 @@
From 982f44d09bb61490194baf371d52c12016e0c5c9 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Fri, 28 Jul 2023 12:25:44 +0200
Subject: [PATCH] po: Fixup invalid format string
Will fix the following errors
oc.po:5301: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the argument size specifier is invalid.
oc.po:5306: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the argument size specifier is invalid.
oc.po:5312: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the argument size specifier is invalid.
Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
---
po/oc.po | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/po/oc.po b/po/oc.po
index 667696cfe785..ddb1677d8a53 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -5298,18 +5298,18 @@ msgstr "Comanda+"
#: src/misc/update.c:482
#, c-format
msgid "%.1f GiB"
-msgstr "%.lf Gio"
+msgstr "%.1f Gio"
#: src/misc/update.c:484
#, c-format
msgid "%.1f MiB"
-msgstr "%.lf Mio"
+msgstr "%.1f Mio"
#: src/misc/update.c:486 modules/gui/macosx/VLCPlaylistInfo.m:138
#: modules/gui/macosx/VLCPlaylistInfo.m:140
#, c-format
msgid "%.1f KiB"
-msgstr "%.lf Kio"
+msgstr "%.1f Kio"
#: src/misc/update.c:488
#, c-format
--
2.41.0

@ -1,44 +0,0 @@
From fefc0d51b9d3ec6046a73cf317b31870048d1fc2 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 6 Apr 2020 09:08:08 +0200
Subject: [PATCH] Lower libgcrypt to 1.5.3
Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
---
configure.ac | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1dfe2fce9b..cdac533e10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4038,14 +4038,14 @@ AC_ARG_ENABLE(libgcrypt,
AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
-# require libgcrypt >= 1.6.0
+# require libgcrypt >= 1.5.3
AS_IF([test "${enable_libgcrypt}" != "no"], [
- AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
+ AC_CACHE_CHECK([for gcrypt 1.5.3 or later], [ac_cv_lib_gcrypt], [
VLC_SAVE_FLAGS
CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
[#include <gcrypt.h>
-#if GCRYPT_VERSION_NUMBER < 0x010600
+#if GCRYPT_VERSION_NUMBER < 0x010503
#error
#endif]])], [
ac_cv_lib_gcrypt=yes
@@ -4059,7 +4059,7 @@ AS_IF([test "${enable_libgcrypt}" != "no"], [
AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
], [
AS_IF([test "${enable_libgcrypt}" = "yes"], [
- AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
+ AC_MSG_ERROR([libgcrypt version 1.5.3 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
])
])
])
--
2.25.1

@ -1,98 +0,0 @@
diff -uNrp a/modules/video_output/caca.c b/modules/video_output/caca.c
--- a/modules/video_output/caca.c 2022-01-14 06:09:28.000000000 +0000
+++ b/modules/video_output/caca.c 2022-01-18 23:09:44.979137301 +0000
@@ -74,9 +74,9 @@ static void Place(vout_display_t *, vout
/* */
struct vout_display_sys_t {
- cucul_canvas_t *cv;
+ caca_canvas_t *cv;
caca_display_t *dp;
- cucul_dither_t *dither;
+ caca_dither_t *dither;
picture_pool_t *pool;
vout_display_event_thread_t *et;
@@ -153,9 +153,9 @@ static int Open(vlc_object_t *object)
if (!sys)
goto error;
- sys->cv = cucul_create_canvas(0, 0);
+ sys->cv = caca_create_canvas(0, 0);
if (!sys->cv) {
- msg_Err(vd, "cannot initialize libcucul");
+ msg_Err(vd, "cannot initialize libcaca");
goto error;
}
@@ -209,11 +209,11 @@ error:
if (sys->pool)
picture_pool_Release(sys->pool);
if (sys->dither)
- cucul_free_dither(sys->dither);
+ caca_free_dither(sys->dither);
if (sys->dp)
caca_free_display(sys->dp);
if (sys->cv)
- cucul_free_canvas(sys->cv);
+ caca_free_canvas(sys->cv);
free(sys);
}
@@ -235,9 +235,9 @@ static void Close(vlc_object_t *object)
if (sys->pool)
picture_pool_Release(sys->pool);
if (sys->dither)
- cucul_free_dither(sys->dither);
+ caca_free_dither(sys->dither);
caca_free_display(sys->dp);
- cucul_free_canvas(sys->cv);
+ caca_free_canvas(sys->cv);
#if defined(_WIN32)
FreeConsole();
@@ -266,7 +266,7 @@ static void Prepare(vout_display_t *vd,
if (!sys->dither) {
/* Create the libcaca dither object */
- sys->dither = cucul_create_dither(32,
+ sys->dither = caca_create_dither(32,
vd->source.i_visible_width,
vd->source.i_visible_height,
picture->p[0].i_pitch,
@@ -284,12 +284,12 @@ static void Prepare(vout_display_t *vd,
vout_display_place_t place;
Place(vd, &place);
- cucul_set_color_ansi(sys->cv, CUCUL_COLOR_DEFAULT, CUCUL_COLOR_BLACK);
- cucul_clear_canvas(sys->cv);
+ caca_set_color_ansi(sys->cv, CACA_DEFAULT, CACA_BLACK);
+ caca_clear_canvas(sys->cv);
const int crop_offset = vd->source.i_y_offset * picture->p->i_pitch +
vd->source.i_x_offset * picture->p->i_pixel_pitch;
- cucul_dither_bitmap(sys->cv, place.x, place.y,
+ caca_dither_bitmap(sys->cv, place.x, place.y,
place.width, place.height,
sys->dither,
&picture->p->p_pixels[crop_offset]);
@@ -328,7 +328,7 @@ static int Control(vout_display_t *vd, i
case VOUT_DISPLAY_CHANGE_SOURCE_CROP:
if (sys->dither)
- cucul_free_dither(sys->dither);
+ caca_free_dither(sys->dither);
sys->dither = NULL;
return VLC_SUCCESS;
@@ -366,8 +366,8 @@ static void Place(vout_display_t *vd, vo
vout_display_PlacePicture(place, &vd->source, vd->cfg, false);
- const int canvas_width = cucul_get_canvas_width(sys->cv);
- const int canvas_height = cucul_get_canvas_height(sys->cv);
+ const int canvas_width = caca_get_canvas_width(sys->cv);
+ const int canvas_height = caca_get_canvas_height(sys->cv);
const int display_width = caca_get_display_width(sys->dp);
const int display_height = caca_get_display_height(sys->dp);

@ -1,94 +0,0 @@
From 43332a4fa12ff79f284749177dc0743a495caea6 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Sat, 18 Jul 2020 15:19:31 +0200
Subject: [PATCH 1/1] Restore support for thread callbacks for older gcrypt
---
include/vlc_gcrypt.h | 64 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/include/vlc_gcrypt.h b/include/vlc_gcrypt.h
index a04e1b1d86..4c7f1e86b0 100644
--- a/include/vlc_gcrypt.h
+++ b/include/vlc_gcrypt.h
@@ -25,6 +25,67 @@
#include <errno.h>
+#if GCRYPT_VERSION_NUMBER < 0x010600
+#ifdef LIBVLC_USE_PTHREAD
+/**
+ * If possible, use gcrypt-provided thread implementation. This is so that
+ * other non-VLC components (inside the process) can also use gcrypt safely.
+ */
+GCRY_THREAD_OPTION_PTHREAD_IMPL;
+# define gcry_threads_vlc gcry_threads_pthread
+#else
+
+/**
+ * gcrypt thread option VLC implementation
+ */
+
+static int gcry_vlc_mutex_init( void **p_sys )
+{
+ vlc_mutex_t *p_lock = (vlc_mutex_t *)malloc( sizeof( vlc_mutex_t ) );
+ if( p_lock == NULL)
+ return ENOMEM;
+
+ vlc_mutex_init( p_lock );
+ *p_sys = p_lock;
+ return VLC_SUCCESS;
+}
+
+static int gcry_vlc_mutex_destroy( void **p_sys )
+{
+ vlc_mutex_t *p_lock = (vlc_mutex_t *)*p_sys;
+ vlc_mutex_destroy( p_lock );
+ free( p_lock );
+ return VLC_SUCCESS;
+}
+
+static int gcry_vlc_mutex_lock( void **p_sys )
+{
+ vlc_mutex_lock( (vlc_mutex_t *)*p_sys );
+ return VLC_SUCCESS;
+}
+
+static int gcry_vlc_mutex_unlock( void **lock )
+{
+ vlc_mutex_unlock( (vlc_mutex_t *)*lock );
+ return VLC_SUCCESS;
+}
+
+static const struct gcry_thread_cbs gcry_threads_vlc =
+{
+ GCRY_THREAD_OPTION_USER,
+ NULL,
+ gcry_vlc_mutex_init,
+ gcry_vlc_mutex_destroy,
+ gcry_vlc_mutex_lock,
+ gcry_vlc_mutex_unlock,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+};
+#endif
+#endif
+
+/**
+ * Initializes gcrypt with proper locking.
+ */
static inline void vlc_gcrypt_init (void)
{
/* This would need a process-wide static mutex with all libraries linking
@@ -37,6 +98,9 @@ static inline void vlc_gcrypt_init (void)
vlc_global_lock (VLC_GCRYPT_MUTEX);
if (!done)
{
+#if GCRYPT_VERSION_NUMBER < 0x010600
+ gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_vlc);
+#endif
/* The suggested way for an application to make sure that global_init
* has been called is by using gcry_check_version. (see global_init
* comments in gcrypt sources) */
--
2.25.4

@ -1,84 +0,0 @@
From 81b2bf43c688e081454b6382db8c7cd917232446 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Thu, 12 Oct 2023 16:42:21 +0200
Subject: [PATCH] Revert "taglib: wav: fix RIFF INFO tags parsing"
This reverts commit 85868dfb0319dced501a78dfd2ee6432d6be90f3.
---
modules/meta_engine/taglib.cpp | 38 ++++++----------------------------
1 file changed, 6 insertions(+), 32 deletions(-)
diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
index 84b401c795a9..d65607b98dc0 100644
--- a/modules/meta_engine/taglib.cpp
+++ b/modules/meta_engine/taglib.cpp
@@ -845,28 +845,6 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta
}
}
-static int ReadWAVMeta( const RIFF::WAV::File *wav, demux_meta_t *demux_meta )
-{
- if( !wav->hasID3v2Tag() && !wav->hasInfoTag() )
- return VLC_EGENERIC;
-
- demux_meta->p_meta = vlc_meta_New();
- if( !demux_meta->p_meta )
- return VLC_ENOMEM;
-
- TAB_INIT( demux_meta->i_attachments, demux_meta->attachments );
-
- if( wav->hasInfoTag() )
- ReadMetaFromBasicTag( wav->InfoTag(), demux_meta->p_meta );
- if( wav->hasID3v2Tag() )
- {
- // Re-read basic tags from id3 to prioritize it against INFO tags.
- ReadMetaFromBasicTag( wav->ID3v2Tag(), demux_meta->p_meta );
- ReadMetaFromId3v2( wav->ID3v2Tag(), demux_meta, demux_meta->p_meta );
- }
- return VLC_SUCCESS;
-}
-
/**
* Get the tags from the file using TagLib
* @param p_this: the demux object
@@ -942,14 +920,6 @@ static int ReadMeta( vlc_object_t* p_this)
if( f.isNull() )
return VLC_EGENERIC;
-
- // XXX: Workaround a quirk in TagLib that doesn't merge id3 tags and RIFF
- // INFO tags in `Wav::File::tag()`'s return value.
- // This forces us to parse WAV separately for now.
- const auto* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file());
- if (riff_wav != nullptr)
- return ReadWAVMeta(riff_wav, p_demux_meta);
-
if( !f.tag() || f.tag()->isEmpty() )
return VLC_EGENERIC;
@@ -957,6 +927,7 @@ static int ReadMeta( vlc_object_t* p_this)
if( !p_meta )
return VLC_ENOMEM;
+
// Read the tags from the file
ReadMetaFromBasicTag(f.tag(), p_meta);
@@ -1011,9 +982,12 @@ static int ReadMeta( vlc_object_t* p_this)
ReadMetaFromXiph( ogg_opus->tag(), p_demux_meta, p_meta );
#endif
}
- else if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
+ else if( dynamic_cast<RIFF::File*>(f.file()) )
{
- ReadMetaFromId3v2( riff_aiff->tag(), p_demux_meta, p_meta );
+ if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
+ ReadMetaFromId3v2( riff_aiff->tag(), p_demux_meta, p_meta );
+ else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) )
+ ReadMetaFromId3v2( riff_wav->tag(), p_demux_meta, p_meta );
}
else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) )
{
--
2.41.0

@ -0,0 +1,177 @@
From 1e2918115ca2f5c4ffde00dc02ad89525714f6c2 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Tue, 5 Dec 2023 09:23:35 +0100
Subject: [PATCH 1/5] input: fix incompatible-pointer-types assignment
Fixes #28441
---
src/input/input_internal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/input/input_internal.h b/src/input/input_internal.h
index d29731edca1b..ea02f39f5add 100644
--- a/src/input/input_internal.h
+++ b/src/input/input_internal.h
@@ -117,7 +117,7 @@ typedef struct input_thread_private_t
/* Title infos FIXME multi-input (not easy) ? */
int i_title;
- const input_title_t **title;
+ input_title_t * const *title;
int i_title_offset;
int i_seekpoint_offset;
--
GitLab
From adcf4e66e2ce2c382bb97957c91bfde040f4f3ca Mon Sep 17 00:00:00 2001
From: Zhao Zhili <quinkblack@foxmail.com>
Date: Thu, 1 Mar 2018 14:25:59 +0800
Subject: [PATCH 2/5] yadif: fix variable type
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit 77b86f4452be4dbe0d56a9cd1b66da61b116da60)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
---
modules/video_filter/deinterlace/yadif.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/video_filter/deinterlace/yadif.h b/modules/video_filter/deinterlace/yadif.h
index 4bc592ba9307..af16443d0804 100644
--- a/modules/video_filter/deinterlace/yadif.h
+++ b/modules/video_filter/deinterlace/yadif.h
@@ -140,10 +140,10 @@ static void yadif_filter_line_c(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8
}
static void yadif_filter_line_c_16bit(uint8_t *dst8, uint8_t *prev8, uint8_t *cur8, uint8_t *next8, int w, int prefs, int mrefs, int parity, int mode) {
- uint8_t *dst = (uint8_t *)dst8;
- uint8_t *prev = (uint8_t *)prev8;
- uint8_t *cur = (uint8_t *)cur8;
- uint8_t *next = (uint8_t *)next8;
+ uint16_t *dst = (uint16_t *)dst8;
+ uint16_t *prev = (uint16_t *)prev8;
+ uint16_t *cur = (uint16_t *)cur8;
+ uint16_t *next = (uint16_t *)next8;
int x;
uint16_t *prev2= parity ? prev : cur ;
uint16_t *next2= parity ? cur : next;
--
GitLab
From 45198e5328ff2b2f4eb2fb76add0789fec26270f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Sun, 3 Mar 2019 09:59:10 +0200
Subject: [PATCH 3/5] swscale: avoid invalid pointer conversion
(cherry picked from commit ab00e6c59d42e05ab08893091783d8b5febc0058)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
---
modules/video_chroma/swscale.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c
index 8993d11ec5dd..11897527355c 100644
--- a/modules/video_chroma/swscale.c
+++ b/modules/video_chroma/swscale.c
@@ -588,8 +588,9 @@ static void Convert( filter_t *p_filter, struct SwsContext *ctx,
{
filter_sys_t *p_sys = p_filter->p_sys;
uint8_t palette[AVPALETTE_SIZE];
- uint8_t *src[4]; int src_stride[4];
- uint8_t *dst[4]; int dst_stride[4];
+ uint8_t *src[4], *dst[4];
+ const uint8_t *csrc[4];
+ int src_stride[4], dst_stride[4];
GetPixels( src, src_stride, p_sys->desc_in, &p_filter->fmt_in.video,
p_src, i_plane_count, b_swap_uvi );
@@ -606,11 +607,14 @@ static void Convert( filter_t *p_filter, struct SwsContext *ctx,
GetPixels( dst, dst_stride, p_sys->desc_out, &p_filter->fmt_out.video,
p_dst, i_plane_count, b_swap_uvo );
+ for (size_t i = 0; i < ARRAY_SIZE(src); i++)
+ csrc[i] = src[i];
+
#if LIBSWSCALE_VERSION_INT >= ((0<<16)+(5<<8)+0)
- sws_scale( ctx, src, src_stride, 0, i_height,
+ sws_scale( ctx, csrc, src_stride, 0, i_height,
dst, dst_stride );
#else
- sws_scale_ordered( ctx, src, src_stride, 0, i_height,
+ sws_scale_ordered( ctx, csrc, src_stride, 0, i_height,
dst, dst_stride );
#endif
}
--
GitLab
From 4431076ad4a21fdcabd3f7ef1d61c45891689b0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Sun, 3 Mar 2019 17:20:04 +0200
Subject: [PATCH 4/5] dynamicoverlay: fix variable shadowing
(cherry picked from commit d42e05d6b2c061ae352c131d5aebf8c8d8aa6d35)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
---
modules/spu/dynamicoverlay/dynamicoverlay_commands.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
index a93462925e8a..a85f9aafb0b9 100644
--- a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
+++ b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
@@ -899,12 +899,11 @@ static const commanddesc_static_t p_commands[] =
void RegisterCommand( filter_t *p_filter )
{
filter_sys_t *p_sys = (filter_sys_t*) p_filter->p_sys;
- size_t i_index = 0;
p_sys->i_commands = ARRAY_SIZE(p_commands);
p_sys->pp_commands = (commanddesc_t **) calloc( p_sys->i_commands, sizeof(commanddesc_t*) );
if( !p_sys->pp_commands ) return;
- for( i_index = 0; i_index < p_sys->i_commands; i_index ++ )
+ for( size_t i_index = 0; i_index < p_sys->i_commands; i_index ++ )
{
p_sys->pp_commands[i_index] = (commanddesc_t *) malloc( sizeof(commanddesc_t) );
if( !p_sys->pp_commands[i_index] ) return;
--
GitLab
From fda14fc7c013eb75291df10cc8b88336c51328ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Mon, 26 Feb 2018 20:43:03 +0200
Subject: [PATCH 5/5] dynamicoverlay: fix memory corruption
Font alpha is 8-bits, not 32-bits.
(cherry picked from commit 6f14081af7325d334a53126c4eea52bc30fc08a0)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
---
modules/spu/dynamicoverlay/dynamicoverlay_commands.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
index a85f9aafb0b9..7a71c6f2373a 100644
--- a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
+++ b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c
@@ -234,8 +234,12 @@ static int parser_SetTextAlpha( char *psz_command, char *psz_end,
skip_space( &psz_command );
if( isdigit( (unsigned char)*psz_command ) )
{
- if( parse_digit( &psz_command, &p_params->fontstyle.i_font_alpha ) == VLC_EGENERIC )
+ int32_t value;
+
+ if( parse_digit( &psz_command, &value ) == VLC_EGENERIC )
return VLC_EGENERIC;
+
+ p_params->fontstyle.i_font_alpha = value;
}
return VLC_SUCCESS;
}
--
GitLab

@ -0,0 +1,375 @@
From 770789f265761fc7ab2de69ca105fec4ad93d9e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Mon, 26 Feb 2018 20:36:29 +0200
Subject: [PATCH 1/9] chromaprint: missing cast
(cherry picked from commit 7bd5bab3e43ae187f7219db61ed85d06d2ba0547)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
modules/stream_out/chromaprint.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/stream_out/chromaprint.c b/modules/stream_out/chromaprint.c
index 80ec31ba2590..c76cbda3c2bb 100644
--- a/modules/stream_out/chromaprint.c
+++ b/modules/stream_out/chromaprint.c
@@ -231,7 +231,7 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
if ( !p_sys->b_finished && id->i_samples > 0 && p_buf->i_buffer )
{
if(! chromaprint_feed( p_sys->p_chromaprint_ctx,
- p_buf->p_buffer,
+ (int16_t *)p_buf->p_buffer,
p_buf->i_buffer / BYTESPERSAMPLE ) )
msg_Warn( p_stream, "feed error" );
id->i_samples -= i_samples;
--
GitLab
From 6179d6b843f2a93af6a3d51c4244766e3eba9e77 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Sun, 14 Apr 2019 09:41:38 +0300
Subject: [PATCH 2/9] win32: wrap {g,s}etsockopt()
char * can alias anything, and Winsock relies on that. Unfortunately,
the compiler still issues warnings. This works around that.
(cherry picked from commit 36715d9b79f34824e126c2bc3aee2f1c1c16af46)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
include/vlc_network.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/include/vlc_network.h b/include/vlc_network.h
index 010454a01c09..e39ffd0bacaa 100644
--- a/include/vlc_network.h
+++ b/include/vlc_network.h
@@ -183,6 +183,22 @@ VLC_API int vlc_close(int);
/** @} */
+#ifdef _WIN32
+static inline int vlc_getsockopt(int s, int level, int name,
+ void *val, socklen_t *len)
+{
+ return getsockopt(s, level, name, (char *)val, len);
+}
+#define getsockopt vlc_getsockopt
+
+static inline int vlc_setsockopt(int s, int level, int name,
+ const void *val, socklen_t len)
+{
+ return setsockopt(s, level, name, (const char *)val, len);
+}
+#define setsockopt vlc_setsockopt
+#endif
+
/* Portable network names/addresses resolution layer */
#define NI_MAXNUMERICHOST 64
--
GitLab
From 3391108f9709f0d77d9297c94371cf9cd30f2cbe Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Thu, 7 Dec 2023 15:43:04 +0100
Subject: [PATCH 3/9] netsync: use char for temporary local buffer
On Windows recvfrom/revc/sendto expects a char*.
---
modules/control/netsync.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/modules/control/netsync.c b/modules/control/netsync.c
index 2a6a1a6a2bf8..8c91034d7cf2 100644
--- a/modules/control/netsync.c
+++ b/modules/control/netsync.c
@@ -181,7 +181,7 @@ static void *Master(void *handle)
intf_sys_t *sys = intf->p_sys;
for (;;) {
struct pollfd ufd = { .fd = sys->fd, .events = POLLIN, };
- uint64_t data[2];
+ char data[16];
if (poll(&ufd, 1, -1) < 0)
continue;
@@ -198,8 +198,8 @@ static void *Master(void *handle)
if (master_system < 0)
continue;
- data[0] = hton64(mdate());
- data[1] = hton64(master_system);
+ SetQWBE(&data[0], mdate());
+ SetQWBE(&data[8], master_system);
/* Reply to the sender */
sendto(sys->fd, data, 16, 0,
@@ -224,7 +224,7 @@ static void *Slave(void *handle)
for (;;) {
struct pollfd ufd = { .fd = sys->fd, .events = POLLIN, };
- uint64_t data[2];
+ char data[16];
vlc_tick_t system = GetPcrSystem(sys->input);
if (system < 0)
@@ -233,7 +233,7 @@ static void *Slave(void *handle)
/* Send clock request to the master */
const vlc_tick_t send_date = mdate();
- data[0] = hton64(system);
+ SetQWBE(&data[0], system);
send(sys->fd, data, 8, 0);
/* Don't block */
@@ -244,8 +244,8 @@ static void *Slave(void *handle)
if (recv(sys->fd, data, 16, 0) < 16)
goto wait;
- const vlc_tick_t master_date = ntoh64(data[0]);
- const vlc_tick_t master_system = ntoh64(data[1]);
+ const vlc_tick_t master_date = GetQWBE(&data[0]);
+ const vlc_tick_t master_system = GetQWBE(&data[8]);
const vlc_tick_t diff_date = receive_date -
((receive_date - send_date) / 2 + master_date);
--
GitLab
From 27e584d7b9add8dbbb82b7227228e1ec1e25a089 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Tue, 3 Jan 2023 13:23:00 +0100
Subject: [PATCH 4/9] access/dtv: move the lfind() Windows hack in the module
So that we don't have to include search.h each time vlc_fixups.h is used.
The Win32 prototype of lfind() expects an unsigned* for 'nelp', not a size_t*.
(cherry picked from commit 7c43bcba27b6fe256456d93a9d32e10648f08da8)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
include/vlc_fixups.h | 3 +++
modules/access/dtv/access.c | 5 +++++
2 files changed, 8 insertions(+)
diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h
index 37f788933779..861cb4cc5063 100644
--- a/include/vlc_fixups.h
+++ b/include/vlc_fixups.h
@@ -501,8 +501,11 @@ void *tsearch( const void *key, void **rootp, int(*cmp)(const void *, const void
void *tfind( const void *key, const void **rootp, int(*cmp)(const void *, const void *) );
void *tdelete( const void *key, void **rootp, int(*cmp)(const void *, const void *) );
void twalk( const void *root, void(*action)(const void *nodep, VISIT which, int depth) );
+#ifndef _WIN32
+/* the Win32 prototype of lfind() expects an unsigned* for 'nmemb' */
void *lfind( const void *key, const void *base, size_t *nmemb,
size_t size, int(*cmp)(const void *, const void *) );
+#endif
#endif /* HAVE_SEARCH_H */
#ifndef HAVE_TDESTROY
void tdestroy( void *root, void (*free_node)(void *nodep) );
diff --git a/modules/access/dtv/access.c b/modules/access/dtv/access.c
index d9756c7b4885..c6ca5005883c 100644
--- a/modules/access/dtv/access.c
+++ b/modules/access/dtv/access.c
@@ -32,6 +32,11 @@
#ifdef HAVE_SEARCH_H
#include <search.h>
#endif
+#if defined(_WIN32)
+/* the Win32 prototype of lfind() expects an unsigned* for 'nelp' */
+# define lfind(a,b,c,d,e) \
+ lfind((a),(b), &(unsigned){ (*(c) > UINT_MAX) ? UINT_MAX : *(c) }, (d),(e))
+#endif
#include "dtv/dtv.h"
--
GitLab
From 5a9ca37a95b6e85e6beaaefba9aa4a886a45411c Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Mon, 15 Jul 2019 12:41:29 +0200
Subject: [PATCH 5/9] vlc_common: fix swab() calls on win32 that don't use
const on source pointer
(cherry picked from commit a9e0b1124e19225b903a2926951781e84002c410)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
include/vlc_common.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/vlc_common.h b/include/vlc_common.h
index 8090b277150d..089878581763 100644
--- a/include/vlc_common.h
+++ b/include/vlc_common.h
@@ -947,6 +947,11 @@ static inline void SetQWLE (void *p, uint64_t qw)
# define O_NONBLOCK 0
# endif
+/* the mingw32 swab() and win32 _swab() prototypes expect a char* instead of a
+ const void* */
+# define swab(a,b,c) swab((char*) (a), (char*) (b), (c))
+
+
# include <tchar.h>
#endif /* _WIN32 */
--
GitLab
From b758e19479a80604e3feb470b197e4a13a203a85 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Wed, 10 Jul 2019 08:23:45 +0200
Subject: [PATCH 6/9] avcodec: encoder: fix MPEG4 matrix passed as const
lavc expects a pointer that it will free in avcodec_free_context().
(cherry picked from commit d86c4c87aa78130a4fd00294e25df865d0e2b327)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
modules/codec/avcodec/encoder.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 2b1c3604713d..4919ccf0e0e4 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -588,8 +588,14 @@ int InitVideoEnc( vlc_object_t *p_this )
if ( p_sys->b_mpeg4_matrix )
{
- p_context->intra_matrix = mpeg4_default_intra_matrix;
- p_context->inter_matrix = mpeg4_default_non_intra_matrix;
+ p_context->intra_matrix = av_malloc( sizeof(mpeg4_default_intra_matrix) );
+ if ( p_context->intra_matrix )
+ memcpy( p_context->intra_matrix, mpeg4_default_intra_matrix,
+ sizeof(mpeg4_default_intra_matrix));
+ p_context->inter_matrix = av_malloc( sizeof(mpeg4_default_non_intra_matrix) );
+ if ( p_context->inter_matrix )
+ memcpy( p_context->inter_matrix, mpeg4_default_non_intra_matrix,
+ sizeof(mpeg4_default_non_intra_matrix));
}
if ( p_sys->b_pre_me )
--
GitLab
From 55be3ce60795a09d13861c5637c1fe7aebc5ce8b Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Thu, 7 Dec 2023 14:18:22 +0100
Subject: [PATCH 7/9] smb: fix potential string to wide string copy
The type of net_resource depends on the UNICODE define.
---
modules/access/smb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/access/smb.c b/modules/access/smb.c
index 5fe56f0c9dfe..6add2a3e6278 100644
--- a/modules/access/smb.c
+++ b/modules/access/smb.c
@@ -524,7 +524,7 @@ static void Win32AddConnection( stream_t *p_access, const char *psz_server,
const char *psz_pwd, const char *psz_domain )
{
char psz_remote[MAX_PATH];
- NETRESOURCE net_resource;
+ NETRESOURCEA net_resource;
DWORD i_result;
VLC_UNUSED( psz_domain );
@@ -544,7 +544,7 @@ static void Win32AddConnection( stream_t *p_access, const char *psz_server,
net_resource.lpRemoteName = psz_remote;
- i_result = WNetAddConnection2( &net_resource, psz_pwd, psz_user, 0 );
+ i_result = WNetAddConnection2A( &net_resource, psz_pwd, psz_user, 0 );
if( i_result != NO_ERROR )
{
--
GitLab
From 5ae924bf212dce64a6424561d92426dbcc2cf3a0 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Wed, 6 Dec 2023 14:45:46 +0100
Subject: [PATCH 8/9] dxva2: add missing mask initializers
---
modules/codec/avcodec/dxva2.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index 18b872fe0fe3..2e6809a05410 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -84,12 +84,12 @@ DEFINE_GUID(DXVA_Intel_H264_NoFGT_ClearVideo, 0x604F8E68, 0x4951, 0x4c54,
/* XXX Preferred format must come first */
static const d3d9_format_t d3d_formats[] = {
- { "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_YV12 },
- { "NV12", MAKEFOURCC('N','V','1','2'), VLC_CODEC_NV12 },
- //{ "IMC3", MAKEFOURCC('I','M','C','3'), VLC_CODEC_YV12 },
- { "P010", MAKEFOURCC('P','0','1','0'), VLC_CODEC_P010 },
+ { "YV12", MAKEFOURCC('Y','V','1','2'), VLC_CODEC_YV12, 0,0,0 },
+ { "NV12", MAKEFOURCC('N','V','1','2'), VLC_CODEC_NV12, 0,0,0 },
+ //{ "IMC3", MAKEFOURCC('I','M','C','3'), VLC_CODEC_YV12, 0,0,0 },
+ { "P010", MAKEFOURCC('P','0','1','0'), VLC_CODEC_P010, 0,0,0 },
- { NULL, 0, 0 }
+ { NULL, 0, 0, 0,0,0 }
};
static const d3d9_format_t *D3dFindFormat(D3DFORMAT format)
--
GitLab
From 08c7a66780740679ba1b0abe9e30e73afc6bc271 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Wed, 6 Dec 2023 07:48:29 +0100
Subject: [PATCH 9/9] win32/modules: use cast with GetProcAddress function
pointers
---
src/text/url.c | 3 ++-
src/win32/plugin.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/text/url.c b/src/text/url.c
index b962eb31f849..2eb4b8d10817 100644
--- a/src/text/url.c
+++ b/src/text/url.c
@@ -892,7 +892,8 @@ static int IdnToAscii(DWORD flags, LPCWSTR str, int len, LPWSTR buf, int size)
int (WINAPI *IdnToAsciiReal)(DWORD, LPCWSTR, int, LPWSTR, int);
int ret = 0;
- IdnToAsciiReal = GetProcAddress(h, "IdnToAscii");
+ IdnToAsciiReal = (int (WINAPI *)(DWORD, LPCWSTR, int, LPWSTR, int))
+ GetProcAddress(h, "IdnToAscii");
if (IdnToAsciiReal != NULL)
ret = IdnToAsciiReal(flags, str, len, buf, size);
else
diff --git a/src/win32/plugin.c b/src/win32/plugin.c
index 1a65521fca75..b5c336eb99ca 100644
--- a/src/win32/plugin.c
+++ b/src/win32/plugin.c
@@ -45,7 +45,8 @@ static BOOL WINAPI SetThreadErrorModeFallback(DWORD mode, DWORD *oldmode)
BOOL (WINAPI *SetThreadErrorModeReal)(DWORD, DWORD *);
- SetThreadErrorModeReal = GetProcAddress(h, "SetThreadErrorMode");
+ SetThreadErrorModeReal = (BOOL (WINAPI *)(DWORD, DWORD *))
+ GetProcAddress(h, "SetThreadErrorMode");
if (SetThreadErrorModeReal != NULL)
return SetThreadErrorModeReal(mode, oldmode);
--
GitLab

@ -0,0 +1,19 @@
diff --git a/share/vlc.appdata.xml.in.in b/share/vlc.appdata.xml.in.in
index cc9c39a..3c55620 100644
--- a/share/vlc.appdata.xml.in.in
+++ b/share/vlc.appdata.xml.in.in
@@ -18,7 +18,7 @@
<url type="bugtracker">https://trac.videolan.org/vlc/</url>
<url type="donation">https://www.videolan.org/contribute.html</url>
<releases>
- <release version="@VERSION@" />
+ <release version="@VERSION@" date="@DATE@" />
</releases>
<provides>
<library>libvlc.so.5</library>
@@ -38,4 +38,5 @@
<image>http://images.videolan.org/vlc/screenshots/2.0.0/vlc-2.0-gnome3-debian.jpg</image>
</screenshot>
</screenshots>
+ <content_rating type="oars-1.1" />
</component>

@ -0,0 +1,84 @@
From 6ea9b13fe82fae2b25b7371c6c36d6296db28ccb Mon Sep 17 00:00:00 2001
From: Antonio Larrosa <antonio.larrosa@gmail.com>
Date: Thu, 14 Feb 2019 10:09:30 +0100
Subject: [PATCH] Fix building vlc with libfdk-aac v2
When flushing the encoder, we now need to provide non-null buffer
parameters for everything, even if they are unused.
The encoderDelay parameter has been replaced by two, nDelay and
nDelayCore.
This is based on:
https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=141c960e21d2860e354f9b90df136184dd00a9a8;hp=c8bca9fe466f810fd484e2c6db7ef7bc83b5a943
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
---
modules/codec/fdkaac.c | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/modules/codec/fdkaac.c b/modules/codec/fdkaac.c
index e0b3088c4a..3ac7b756a3 100644
--- a/modules/codec/fdkaac.c
+++ b/modules/codec/fdkaac.c
@@ -92,6 +92,11 @@ static void CloseEncoder(vlc_object_t *);
#define SIGNALING_COMPATIBLE 1
#define SIGNALING_HIERARCHICAL 2
+#define FDKENC_VER_AT_LEAST(vl0, vl1) \
+ (defined(AACENCODER_LIB_VL0) && \
+ ((AACENCODER_LIB_VL0 > vl0) || \
+ (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1)))
+
static const int pi_aot_values[] = { PROFILE_AAC_LC, PROFILE_AAC_HE, PROFILE_AAC_HE_v2, PROFILE_AAC_LD, PROFILE_AAC_ELD };
static const char *const ppsz_aot_descriptions[] =
{ N_("AAC-LC"), N_("HE-AAC"), N_("HE-AAC-v2"), N_("AAC-LD"), N_("AAC-ELD") };
@@ -288,7 +293,11 @@ static int OpenEncoder(vlc_object_t *p_this)
p_sys->i_maxoutputsize = 768*p_enc->fmt_in.audio.i_channels;
p_enc->fmt_in.audio.i_bitspersample = 16;
p_sys->i_frame_size = info.frameLength;
+#if FDKENC_VER_AT_LEAST(4, 0)
+ p_sys->i_encoderdelay = info.nDelay;
+#else
p_sys->i_encoderdelay = info.encoderDelay;
+#endif
p_enc->fmt_out.i_extra = info.confSize;
if (p_enc->fmt_out.i_extra) {
@@ -351,21 +360,27 @@ static block_t *EncodeAudio(encoder_t *p_enc, block_t *p_aout_buf)
int out_identifier = OUT_BITSTREAM_DATA;
int out_size, out_elem_size;
void *in_ptr, *out_ptr;
+ uint8_t dummy_buf[1];
if (unlikely(i_samples == 0)) {
// this forces the encoder to purge whatever is left in the internal buffer
+ /* Must be a non-null pointer, even if it's a dummy. We could use
+ * the address of anything else on the stack as well. */
+ in_ptr = dummy_buf;
+ in_size = 0;
+
in_args.numInSamples = -1;
} else {
in_ptr = p_buffer + (i_samples - i_samples_left)*p_enc->fmt_in.audio.i_channels;
in_size = 2*p_enc->fmt_in.audio.i_channels*i_samples_left;
- in_elem_size = 2;
in_args.numInSamples = p_enc->fmt_in.audio.i_channels*i_samples_left;
- in_buf.numBufs = 1;
- in_buf.bufs = &in_ptr;
- in_buf.bufferIdentifiers = &in_identifier;
- in_buf.bufSizes = &in_size;
- in_buf.bufElSizes = &in_elem_size;
}
+ in_elem_size = 2;
+ in_buf.numBufs = 1;
+ in_buf.bufs = &in_ptr;
+ in_buf.bufferIdentifiers = &in_identifier;
+ in_buf.bufSizes = &in_size;
+ in_buf.bufElSizes = &in_elem_size;
block_t *p_block;
p_block = block_Alloc(p_sys->i_maxoutputsize);
p_block->i_buffer = p_sys->i_maxoutputsize;
--
2.11.0

@ -0,0 +1 @@
%vlc_plugindir %{_libdir}/vlc/plugins

@ -0,0 +1,48 @@
Backport of https://code.videolan.org/videolan/vlc/-/merge_requests/3843
"Switch from deprecated MFX to VPL" for 3.0, as direct use of intel-mediasdk
is deprecated in favour of oneVPL.
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -2923,9 +2923,9 @@ fi
dnl
-dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
+dnl Intel oneAPI Video Processing Library
dnl
-PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
+PKG_ENABLE_MODULES_VLC([VPL], [qsv], [vpl], [Intel oneAPI Video Processing Library encoder], [auto])
dnl
dnl libfluidsynth (MIDI synthetizer) plugin
diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am
--- a/modules/codec/Makefile.am
+++ b/modules/codec/Makefile.am
@@ -610,9 +610,9 @@ codec_LTLIBRARIES += $(LTLIBdav1d)
codec_LTLIBRARIES += $(LTLIBcrystalhd)
libqsv_plugin_la_SOURCES = codec/qsv.c
-libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(MFX_CFLAGS)
+libqsv_plugin_la_CFLAGS = $(AM_CFLAGS) $(VPL_CFLAGS)
libqsv_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
-libqsv_plugin_la_LIBADD = $(MFX_LIBS)
+libqsv_plugin_la_LIBADD = $(VPL_LIBS)
EXTRA_LTLIBRARIES += libqsv_plugin.la
codec_LTLIBRARIES += $(LTLIBqsv)
diff --git a/modules/codec/qsv.c b/modules/codec/qsv.c
--- a/modules/codec/qsv.c
+++ b/modules/codec/qsv.c
@@ -33,7 +33,7 @@
#include <vlc_picture.h>
#include <vlc_codec.h>
-#include <mfx/mfxvideo.h>
+#include <vpl/mfxvideo.h>
#define SOUT_CFG_PREFIX "sout-qsv-"
--
GitLab

@ -0,0 +1,18 @@
avcodec_vaapi requires ffmpeg-4, but other vaapi modules can be built
diff --git a/configure.ac b/configure.ac
index 69beb77..c7f7142 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2454,9 +2454,9 @@ AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
have_avcodec_vaapi="yes"
],[
AS_IF([test -n "${enable_libva}"], [
- AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
+ AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing])
], [
- AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
+ AC_MSG_NOTICE([libva is present but libavcodec/vaapi.h is missing ])
])
])
VLC_RESTORE_FLAGS

File diff suppressed because it is too large Load Diff

@ -1,36 +0,0 @@
From 3965d3cf07a62a7ed64c79f44a7cc416b76cb27e Mon Sep 17 00:00:00 2001
From: Leigh Scott <leigh123linux@gmail.com>
Date: Fri, 30 Oct 2020 10:51:52 +0100
Subject: [PATCH] Switch to Fedora lua-5.1
---
configure.ac | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3aa07a8c715d..9bc7ceafb5ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1681,7 +1681,7 @@ then
[
AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
- PKG_CHECK_MODULES(LUA, lua5.1,
+ PKG_CHECK_MODULES(LUA, lua-5.1,
[ have_lua=yes ],
[
AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
@@ -1695,8 +1695,8 @@ then
[ have_lua=no ] )
AC_CHECK_LIB( lua5.2 , luaL_newstate,
[LUA_LIBS="-llua5.2"],
- AC_CHECK_LIB( lua5.1 , luaL_newstate,
- [LUA_LIBS="-llua5.1"],
+ AC_CHECK_LIB( lua-5.1 , luaL_newstate,
+ [LUA_LIBS="-llua-5.1"],
AC_CHECK_LIB( lua51 , luaL_newstate,
[LUA_LIBS="-llua51"],
AC_CHECK_LIB( lua , luaL_newstate,
--
2.25.4

@ -1,149 +0,0 @@
From 55b24abf7219a0c6a6560187496e41fd60638552 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Fri, 18 Mar 2022 11:42:49 +0100
Subject: [PATCH 1/2] dav1d: fix compilation with (upcoming) dav1d 1.0
(cherry picked from commit dbf45cea2a8abdfbef897b8a71f3eb782bb1b712) (edited)
edited:
- 3.0 has the 128 pixels padding elsewhere
- 3.0 has an extra parameter for add_integer_with_range()
- 3.0 was setting i_extra_picture_buffers further down in the code
- 3.0 uses 16 threads max
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
modules/codec/dav1d.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c
index 039165f52e..cfabbc27cb 100644
--- a/modules/codec/dav1d.c
+++ b/modules/codec/dav1d.c
@@ -63,10 +63,16 @@ vlc_module_begin ()
set_category(CAT_INPUT)
set_subcategory(SUBCAT_INPUT_VCODEC)
+#if DAV1D_API_VERSION_MAJOR >= 6
+ add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_THREADS,
+ THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false)
+ add_obsolete_string("dav1d-thread-tiles") // unused with dav1d 1.0
+#else
add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_FRAME_THREADS,
THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false)
add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS,
THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false)
+#endif
vlc_module_end ()
/*****************************************************************************
@@ -294,6 +300,11 @@ static int OpenDecoder(vlc_object_t *p_this)
return VLC_ENOMEM;
dav1d_default_settings(&p_sys->s);
+#if DAV1D_API_VERSION_MAJOR >= 6
+ p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames");
+ if (p_sys->s.n_threads == 0)
+ p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16;
+#else
p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles");
if (p_sys->s.n_tile_threads == 0)
p_sys->s.n_tile_threads =
@@ -303,6 +314,7 @@ static int OpenDecoder(vlc_object_t *p_this)
p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames");
if (p_sys->s.n_frame_threads == 0)
p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16;
+#endif
p_sys->s.allocator.cookie = dec;
p_sys->s.allocator.alloc_picture_callback = NewPicture;
p_sys->s.allocator.release_picture_callback = FreePicture;
@@ -313,12 +325,20 @@ static int OpenDecoder(vlc_object_t *p_this)
return VLC_EGENERIC;
}
+#if DAV1D_API_VERSION_MAJOR >= 6
+ msg_Dbg(p_this, "Using dav1d version %s with %d threads",
+ dav1d_version(), p_sys->s.n_threads);
+
+ dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1);
+#else
msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads",
dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads);
+ dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1);
+#endif
+
dec->pf_decode = Decode;
dec->pf_flush = FlushDecoder;
- dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1);
dec->fmt_out.video.i_width = dec->fmt_in.video.i_width;
dec->fmt_out.video.i_height = dec->fmt_in.video.i_height;
--
2.36.1
From c95e5288ab2d222346b19552a462afe5159d1122 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Mon, 21 Mar 2022 15:53:52 +0100
Subject: [PATCH 2/2] dav1d: limit the number of extra frames needed by the
decoder
The i_extra_picture_buffers is used to add pictures to the pool that the core
will allocate. dav1d is actually using n_threads frames. And the core is
allocating 10 frames per default for AV1. So we need to add the missing ones.
(cherry picked from commit a32031dc0f5f32083fc54a21397bce732742ccbe) (rebased)
rebased:
- the code dav1d 1.0.0 in 3.0 uses different max versions
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
---
modules/codec/dav1d.c | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c
index cfabbc27cb..8a439ce4ff 100644
--- a/modules/codec/dav1d.c
+++ b/modules/codec/dav1d.c
@@ -304,7 +304,28 @@ static int OpenDecoder(vlc_object_t *p_this)
p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames");
if (p_sys->s.n_threads == 0)
p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16;
-#else
+
+#if DAV1D_API_VERSION_MAJOR > 6 || DAV1D_API_VERSION_MINOR >= 7
+ // after dav1d 1.0.0
+ p_sys->s.max_frame_delay = dav1d_get_frame_delay( &p_sys->s );
+#else // 1.0.0
+ // corresponds to c->n_fc when max_frame_delay is 0 in dav1d 1.0.0
+ static const uint8_t fc_lut[49] = {
+ 1, /* 1 */
+ 2, 2, 2, /* 2- 4 */
+ 3, 3, 3, 3, 3, /* 5- 9 */
+ 4, 4, 4, 4, 4, 4, 4, /* 10-16 */
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, /* 17-25 */
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, /* 26-36 */
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, /* 37-49 */
+ };
+ if (p_sys->s.n_threads >= 50)
+ p_sys->s.max_frame_delay = 8;
+ else
+ p_sys->s.max_frame_delay = fc_lut[p_sys->s.n_threads - 1];
+#endif
+
+#else // before dav1d 1.0.0
p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles");
if (p_sys->s.n_tile_threads == 0)
p_sys->s.n_tile_threads =
@@ -329,7 +350,7 @@ static int OpenDecoder(vlc_object_t *p_this)
msg_Dbg(p_this, "Using dav1d version %s with %d threads",
dav1d_version(), p_sys->s.n_threads);
- dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1);
+ dec->i_extra_picture_buffers = p_sys->s.max_frame_delay;
#else
msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads",
dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads);
--
2.36.1

File diff suppressed because it is too large Load Diff

@ -1,14 +0,0 @@
--- a/modules/video_chroma/chain.c
+++ b/modules/video_chroma/chain.c
@@ -280,8 +280,9 @@ static int BuildTransformChain( filter_t
return VLC_SUCCESS;
/* Lets try resize+chroma first, then transform */
- msg_Dbg( p_filter, "Trying to build chroma+resize" );
- EsFormatMergeSize( &fmt_mid, &p_filter->fmt_out, &p_filter->fmt_in );
+ msg_Dbg( p_filter, "Trying to build chroma+resize, then transform" );
+ es_format_Copy( &fmt_mid, &p_filter->fmt_out );
+ video_format_TransformTo(&fmt_mid.video, p_filter->fmt_in.video.orientation);
i_ret = CreateChain( p_filter, &fmt_mid );
es_format_Clean( &fmt_mid );
if( i_ret == VLC_SUCCESS )

@ -1,101 +0,0 @@
From c25400b146f7a7b3b4a29c0efa4daee9d1c49633 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Tue, 5 May 2020 18:48:06 +0300
Subject: [PATCH] notify: don't depend on any GTK version
If there's one in the process use it. If there's none fallback to
default VLC icon with the old code.
This not only avoids VLC builds depending on GTK, but this should
prevent crashes if GTK 2 is present in the process (e.g. through Qt plugin).
Adapted to vlc-3.x by "Nicolas Chauvet <kwizart@gmail.com>"
---
configure.ac | 2 +-
modules/notify/notify.c | 38 ++++++++++++++++++++++----------------
2 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/configure.ac b/configure.ac
index 09ac250ff483..a3ef64318561 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4206,7 +4206,7 @@ AS_IF([test "${enable_osx_notifications}" != "no"], [
dnl
dnl Libnotify notification plugin
dnl
-PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
+PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
dnl
dnl libplacebo support
diff --git a/modules/notify/notify.c b/modules/notify/notify.c
index bd6bba6c32c8..20b7c4acb761 100644
--- a/modules/notify/notify.c
+++ b/modules/notify/notify.c
@@ -36,10 +36,16 @@
#include <vlc_playlist.h>
#include <vlc_url.h>
-#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <libnotify/notify.h>
+typedef struct GtkIconTheme GtkIconTheme;
+enum GtkIconLookupFlags { dummy = 0x7fffffff };
+
+__attribute__((weak)) GtkIconTheme *gtk_icon_theme_get_default(void);
+__attribute__((weak)) GdkPixbuf *gtk_icon_theme_load_icon(GtkIconTheme *,
+ const char *icon_name, int size, enum GtkIconLookupFlags, GError **);
+
#ifndef NOTIFY_CHECK_VERSION
# define NOTIFY_CHECK_VERSION(x,y,z) 0
#endif
@@ -222,30 +228,30 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
GError *p_error = NULL;
pix = gdk_pixbuf_new_from_file_at_scale( psz_arturl,
72, 72, TRUE, &p_error );
+ free( psz_arturl );
}
- else /* else we show state-of-the art logo */
+ else
+ /* else we show state-of-the art logo */
+ if( gtk_icon_theme_get_default != NULL
+ && gtk_icon_theme_load_icon != NULL )
{
/* First try to get an icon from the current theme. */
GtkIconTheme* p_theme = gtk_icon_theme_get_default();
pix = gtk_icon_theme_load_icon( p_theme, "vlc", 72, 0, NULL);
-
- if( !pix )
+ }
+ else
+ { /* Load icon from share/ */
+ GError *p_error = NULL;
+ char *psz_pixbuf;
+ char *psz_data = config_GetDataDir();
+ if( asprintf( &psz_pixbuf, "%s/icons/48x48/vlc.png", psz_data ) >= 0 )
{
- /* Load icon from share/ */
- GError *p_error = NULL;
- char *psz_pixbuf;
- char *psz_data = config_GetDataDir();
- if( asprintf( &psz_pixbuf, "%s/icons/48x48/vlc.png", psz_data ) >= 0 )
- {
- pix = gdk_pixbuf_new_from_file( psz_pixbuf, &p_error );
- free( psz_pixbuf );
- }
- free( psz_data );
+ pix = gdk_pixbuf_new_from_file( psz_pixbuf, &p_error );
+ free( psz_pixbuf );
}
+ free( psz_data );
}
- free( psz_arturl );
-
/* we need to replace '&' with '&amp;' because '&' is a keyword of
* notification-daemon parser */
const int i_len = strlen( psz_tmp );
--
2.25.4

@ -1 +0,0 @@
SHA512 (vlc-6f0d0ab.tar.gz) = 5a2529a397c27c97d0a8ac32d483327b3f47f90ce97c86ff7c169e4c349456c95339b755f28320cbc717d52148225402f6fd64009d7543f50a85701d303dbd6a

@ -1,131 +0,0 @@
From efbb1fdbc4420365b3ffd22e55dd27ad520037c7 Mon Sep 17 00:00:00 2001
From: Niklas Haas <git@haasn.dev>
Date: Sat, 16 Jul 2022 14:41:13 +0200
Subject: [PATCH] opengl: port to libplacebo v4 API
These v3.x APIs will be removed in v5.x. Fortunately, the new APIs are a
near drop-in replacement, so the change was minimal. Only the error
handling was cleaned up slightly.
---
modules/video_output/opengl/converter.h | 18 ++++++++++--------
modules/video_output/opengl/fragment_shaders.c | 4 ++--
modules/video_output/opengl/vout_helper.c | 14 +++++++-------
3 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/modules/video_output/opengl/converter.h b/modules/video_output/opengl/converter.h
index 7000e1f38e..cb8e593a9a 100644
--- a/modules/video_output/opengl/converter.h
+++ b/modules/video_output/opengl/converter.h
@@ -52,6 +52,11 @@
# endif
#endif
+#ifdef HAVE_LIBPLACEBO
+# include <libplacebo/log.h>
+# include <libplacebo/shaders.h>
+#endif
+
#define VLCGL_PICTURE_MAX 128
#ifndef GL_TEXTURE_RECTANGLE
@@ -253,10 +258,6 @@ static inline bool HasExtension(const char *apis, const char *api)
return false;
}
-struct pl_context;
-struct pl_shader;
-struct pl_shader_res;
-
/*
* Structure that is filled by "glhw converter" module probe function
* The implementation should initialize every members of the struct that are
@@ -272,8 +273,12 @@ struct opengl_tex_converter_t
/* Pointer to object gl, set by the caller */
vlc_gl_t *gl;
+#ifdef HAVE_LIBPLACEBO
/* libplacebo context, created by the caller (optional) */
- struct pl_context *pl_ctx;
+ pl_log pl_log;
+ pl_shader pl_sh;
+ const struct pl_shader_res *pl_sh_res;
+#endif
/* Function pointers to OpenGL functions, set by the caller */
const opengl_vtable_t *vt;
@@ -337,9 +342,6 @@ struct opengl_tex_converter_t
bool yuv_color;
GLfloat yuv_coefficients[16];
- struct pl_shader *pl_sh;
- const struct pl_shader_res *pl_sh_res;
-
/* Private context */
void *priv;
diff --git a/modules/video_output/opengl/fragment_shaders.c b/modules/video_output/opengl/fragment_shaders.c
index 2246e33afd..16380335cc 100644
--- a/modules/video_output/opengl/fragment_shaders.c
+++ b/modules/video_output/opengl/fragment_shaders.c
@@ -611,7 +611,7 @@ opengl_fragment_shader_init_impl(opengl_tex_converter_t *tc, GLenum tex_target,
#ifdef HAVE_LIBPLACEBO
if (tc->pl_sh) {
- struct pl_shader *sh = tc->pl_sh;
+ pl_shader sh = tc->pl_sh;
struct pl_color_map_params color_params = pl_color_map_default_params;
color_params.intent = var_InheritInteger(tc->gl, "rendering-intent");
color_params.tone_mapping_algo = var_InheritInteger(tc->gl, "tone-mapping");
@@ -634,7 +634,7 @@ opengl_fragment_shader_init_impl(opengl_tex_converter_t *tc, GLenum tex_target,
pl_color_space_from_video_format(&tc->fmt),
dst_space, NULL, false);
- struct pl_shader_obj *dither_state = NULL;
+ pl_shader_obj dither_state = NULL;
int method = var_InheritInteger(tc->gl, "dither-algo");
if (method >= 0) {
diff --git a/modules/video_output/opengl/vout_helper.c b/modules/video_output/opengl/vout_helper.c
index 13d65e04c8..e971f5170b 100644
--- a/modules/video_output/opengl/vout_helper.c
+++ b/modules/video_output/opengl/vout_helper.c
@@ -570,8 +570,8 @@ opengl_deinit_program(vout_display_opengl_t *vgl, struct prgm *prgm)
#ifdef HAVE_LIBPLACEBO
FREENULL(tc->uloc.pl_vars);
- if (tc->pl_ctx)
- pl_context_destroy(&tc->pl_ctx);
+ pl_shader_free(&tc->pl_sh);
+ pl_log_destroy(&tc->pl_log);
#endif
vlc_object_release(tc);
@@ -622,21 +622,21 @@ opengl_init_program(vout_display_opengl_t *vgl, struct prgm *prgm,
// create the main libplacebo context
if (!subpics)
{
- tc->pl_ctx = pl_context_create(PL_API_VER, &(struct pl_context_params) {
+ tc->pl_log = pl_log_create(PL_API_VER, &(struct pl_log_params) {
.log_cb = log_cb,
.log_priv = tc,
.log_level = PL_LOG_INFO,
});
- if (tc->pl_ctx) {
+ if (tc->pl_log) {
# if PL_API_VER >= 20
- tc->pl_sh = pl_shader_alloc(tc->pl_ctx, &(struct pl_shader_params) {
+ tc->pl_sh = pl_shader_alloc(tc->pl_log, &(struct pl_shader_params) {
.glsl.version = tc->glsl_version,
.glsl.gles = tc->is_gles,
});
# elif PL_API_VER >= 6
- tc->pl_sh = pl_shader_alloc(tc->pl_ctx, NULL, 0);
+ tc->pl_sh = pl_shader_alloc(tc->pl_log, NULL, 0);
# else
- tc->pl_sh = pl_shader_alloc(tc->pl_ctx, NULL, 0, 0);
+ tc->pl_sh = pl_shader_alloc(tc->pl_log, NULL, 0, 0);
# endif
}
}
--
2.38.1

@ -1,24 +0,0 @@
diff -up vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/configure.ac.vpl vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/configure.ac
--- vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/configure.ac.vpl 2023-06-17 17:19:28.954540887 +0200
+++ vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/configure.ac 2023-06-17 17:19:28.956540899 +0200
@@ -2925,7 +2925,7 @@ fi
dnl
dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
dnl
-PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
+PKG_ENABLE_MODULES_VLC([MFX], [qsv], [vpl], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
dnl
dnl libfluidsynth (MIDI synthetizer) plugin
diff -up vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/modules/codec/qsv.c.vpl vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/modules/codec/qsv.c
--- vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/modules/codec/qsv.c.vpl 2023-06-09 17:29:29.000000000 +0200
+++ vlc-26fb05e95724bd19f9a144c51bc11f79c609f3bc/modules/codec/qsv.c 2023-06-17 17:22:05.468382540 +0200
@@ -33,7 +33,7 @@
#include <vlc_picture.h>
#include <vlc_codec.h>
-#include <mfx/mfxvideo.h>
+#include <vpl/mfxvideo.h>
#define SOUT_CFG_PREFIX "sout-qsv-"
Loading…
Cancel
Save