mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-02-16 23:57:11 +00:00
alarm/vlc-rpi to 3.0.20-2
This commit is contained in:
parent
b7fb8ac1e9
commit
5317769770
2 changed files with 320 additions and 13 deletions
|
@ -1,3 +1,38 @@
|
||||||
|
diff --git a/NEWS b/NEWS
|
||||||
|
index 2cbc3e00b5..7690f54a53 100644
|
||||||
|
--- a/NEWS
|
||||||
|
+++ b/NEWS
|
||||||
|
@@ -1,21 +1,3 @@
|
||||||
|
-Changes between 3.0.19 and 3.0.20:
|
||||||
|
-----------------------------------
|
||||||
|
-
|
||||||
|
-Video Output:
|
||||||
|
- - Fix green line in fullscreen in D3D11 video output
|
||||||
|
- - Fix crash with some AMD drivers old versions
|
||||||
|
- - Fix events propagation issue when double-clicking with mouse wheel
|
||||||
|
-
|
||||||
|
-Decoders:
|
||||||
|
- - Fix crash when AV1 hardware decoder fails
|
||||||
|
-
|
||||||
|
-Interface:
|
||||||
|
- - Fix annoying disappearance of the Windows fullscreen controller
|
||||||
|
-
|
||||||
|
-Demuxers:
|
||||||
|
- - Fix potential security issue (OOB Write) on MMS:// by checking user size bounds
|
||||||
|
-
|
||||||
|
-
|
||||||
|
Changes between 3.0.18 and 3.0.19:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
@@ -73,7 +55,7 @@ Misc:
|
||||||
|
* Fix 5.1/7.1 output on macOS and tvOS
|
||||||
|
* Fix several crashes and bugs in the macOS preferences panel
|
||||||
|
* Improvements on the threading of the MMDevice audio output on Windows
|
||||||
|
- * Fix a potential security issue on the uninstaller DLLs (CVE-2023-46814)
|
||||||
|
+ * Fix a potential security issue on the uninstaller DLLs
|
||||||
|
* Fix memory leaks when using the media_list_player libVLC APIs
|
||||||
|
|
||||||
|
Translations:
|
||||||
diff --git a/bin/vlc.c b/bin/vlc.c
|
diff --git a/bin/vlc.c b/bin/vlc.c
|
||||||
index 72e0eee428..6d92b95990 100644
|
index 72e0eee428..6d92b95990 100644
|
||||||
--- a/bin/vlc.c
|
--- a/bin/vlc.c
|
||||||
|
@ -15,9 +50,22 @@ index 72e0eee428..6d92b95990 100644
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index 753d0610e6..2933715dc6 100644
|
index 69beb77ac0..2933715dc6 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
|
@@ -2,10 +2,10 @@ dnl Autoconf settings for vlc
|
||||||
|
|
||||||
|
AC_COPYRIGHT([Copyright 1999-2023 VLC authors and VideoLAN])
|
||||||
|
|
||||||
|
-AC_INIT(vlc, 3.0.20)
|
||||||
|
+AC_INIT(vlc, 3.0.19)
|
||||||
|
VERSION_MAJOR=3
|
||||||
|
VERSION_MINOR=0
|
||||||
|
-VERSION_REVISION=20
|
||||||
|
+VERSION_REVISION=19
|
||||||
|
VERSION_EXTRA=0
|
||||||
|
VERSION_DEV=
|
||||||
|
|
||||||
@@ -3083,6 +3083,21 @@ AS_IF([test "${have_gl}" = "yes"], [
|
@@ -3083,6 +3083,21 @@ AS_IF([test "${have_gl}" = "yes"], [
|
||||||
dnl OpenGL ES 2: depends on EGL 1.1
|
dnl OpenGL ES 2: depends on EGL 1.1
|
||||||
PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
|
PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
|
||||||
|
@ -76,6 +124,42 @@ index 753d0610e6..2933715dc6 100644
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl evas plugin
|
dnl evas plugin
|
||||||
|
diff --git a/contrib/src/dav1d/SHA512SUMS b/contrib/src/dav1d/SHA512SUMS
|
||||||
|
index 737a98e57e..ae01773dff 100644
|
||||||
|
--- a/contrib/src/dav1d/SHA512SUMS
|
||||||
|
+++ b/contrib/src/dav1d/SHA512SUMS
|
||||||
|
@@ -1 +1 @@
|
||||||
|
-a91d217b8656c452dd80f5597e988f0e7a2ea32b12092c2695e7dc388033db7b193f7a8c98413bec31d1c38af376561d39f7618b935c4feeb6498c5d2b43f6a4 dav1d-1.3.0.tar.xz
|
||||||
|
+f172eebc0a5f6c51d31fc9e9758c2dd0de51d8a5d0e00c93a5f2b1b16b7b4a37b365f9c56dea95d400e66b63af5fa4c63d9e720719ac38852777fc8c6066e4a7 dav1d-1.2.1.tar.xz
|
||||||
|
diff --git a/contrib/src/dav1d/rules.mak b/contrib/src/dav1d/rules.mak
|
||||||
|
index 1a692e41f5..dd009c8dad 100644
|
||||||
|
--- a/contrib/src/dav1d/rules.mak
|
||||||
|
+++ b/contrib/src/dav1d/rules.mak
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
# libdav1d
|
||||||
|
|
||||||
|
-DAV1D_VERSION := 1.3.0
|
||||||
|
+DAV1D_VERSION := 1.2.1
|
||||||
|
DAV1D_URL := $(VIDEOLAN)/dav1d/$(DAV1D_VERSION)/dav1d-$(DAV1D_VERSION).tar.xz
|
||||||
|
|
||||||
|
PKGS += dav1d
|
||||||
|
diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h
|
||||||
|
index 37f7889337..2e8a1456bb 100644
|
||||||
|
--- a/include/vlc_fixups.h
|
||||||
|
+++ b/include/vlc_fixups.h
|
||||||
|
@@ -589,12 +589,6 @@ struct addrinfo
|
||||||
|
struct addrinfo *ai_next;
|
||||||
|
};
|
||||||
|
|
||||||
|
-# ifdef __LIBCN__
|
||||||
|
-/* OS/2 LIBCn has inet_pton(). Because of this, socklen_t is not defined above.
|
||||||
|
- * And OS/2 LIBCn has socklen_t. So include sys/socket.h here for socklen_t. */
|
||||||
|
-# include <sys/socket.h>
|
||||||
|
-# endif
|
||||||
|
-
|
||||||
|
const char *gai_strerror (int);
|
||||||
|
|
||||||
|
int getaddrinfo (const char *node, const char *service,
|
||||||
diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h
|
diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h
|
||||||
index 97827bd4c1..76ad846f2f 100644
|
index 97827bd4c1..76ad846f2f 100644
|
||||||
--- a/include/vlc_fourcc.h
|
--- a/include/vlc_fourcc.h
|
||||||
|
@ -141,6 +225,39 @@ index 53b90a2713..6a29b126e9 100644
|
||||||
include hw/vaapi/Makefile.am
|
include hw/vaapi/Makefile.am
|
||||||
include hw/vdpau/Makefile.am
|
include hw/vdpau/Makefile.am
|
||||||
include keystore/Makefile.am
|
include keystore/Makefile.am
|
||||||
|
diff --git a/modules/access/mms/mmsh.c b/modules/access/mms/mmsh.c
|
||||||
|
index ff598d775f..b032b4c5bb 100644
|
||||||
|
--- a/modules/access/mms/mmsh.c
|
||||||
|
+++ b/modules/access/mms/mmsh.c
|
||||||
|
@@ -927,15 +927,7 @@ static int GetPacket( stream_t * p_access, chunk_t *p_ck )
|
||||||
|
if( restsize < 8 )
|
||||||
|
p_ck->i_size2 = 8;
|
||||||
|
else
|
||||||
|
- {
|
||||||
|
p_ck->i_size2 = GetWLE( p_sys->buffer + 10);
|
||||||
|
- if (p_ck->i_size2 < 8 /* Prevent underflow when set to i_data */
|
||||||
|
- || p_ck->i_size2 - 8 > BUFFER_SIZE - 12 /* Prevent Out Of Bound Write */)
|
||||||
|
- {
|
||||||
|
- msg_Err(p_access, "invalid size2: %" PRIu16, p_ck->i_size2);
|
||||||
|
- return VLC_EGENERIC;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
|
||||||
|
p_ck->p_data = p_sys->buffer + 12;
|
||||||
|
p_ck->i_data = p_ck->i_size2 - 8;
|
||||||
|
diff --git a/modules/access/vcd/cdrom.c b/modules/access/vcd/cdrom.c
|
||||||
|
index 83ef4388c5..8b719ec532 100644
|
||||||
|
--- a/modules/access/vcd/cdrom.c
|
||||||
|
+++ b/modules/access/vcd/cdrom.c
|
||||||
|
@@ -856,7 +856,7 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev,
|
||||||
|
p_vcddev->i_vcdimage_handle = vlc_open( psz_vcdfile,
|
||||||
|
O_RDONLY | O_NONBLOCK | O_BINARY );
|
||||||
|
|
||||||
|
- while( !b_found && fgets( line, 1024, cuefile ) )
|
||||||
|
+ while( fgets( line, 1024, cuefile ) && !b_found )
|
||||||
|
{
|
||||||
|
/* We have a cue file, but no valid vcd file yet */
|
||||||
|
char filename[1024];
|
||||||
diff --git a/modules/audio_filter/converter/tospdif.c b/modules/audio_filter/converter/tospdif.c
|
diff --git a/modules/audio_filter/converter/tospdif.c b/modules/audio_filter/converter/tospdif.c
|
||||||
index 0c725d99e7..8d962d6e81 100644
|
index 0c725d99e7..8d962d6e81 100644
|
||||||
--- a/modules/audio_filter/converter/tospdif.c
|
--- a/modules/audio_filter/converter/tospdif.c
|
||||||
|
@ -856,7 +973,7 @@ index 0feb03b974..aa3a80f929 100644
|
||||||
#if LIBAVUTIL_VERSION_CHECK(54, 13, 1, 24, 100)
|
#if LIBAVUTIL_VERSION_CHECK(54, 13, 1, 24, 100)
|
||||||
case AV_PIX_FMT_D3D11VA_VLD:
|
case AV_PIX_FMT_D3D11VA_VLD:
|
||||||
diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
|
diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
|
||||||
index 55ea1c82fb..c299fe2a38 100644
|
index 8c892dd3f4..c299fe2a38 100644
|
||||||
--- a/modules/codec/avcodec/video.c
|
--- a/modules/codec/avcodec/video.c
|
||||||
+++ b/modules/codec/avcodec/video.c
|
+++ b/modules/codec/avcodec/video.c
|
||||||
@@ -29,6 +29,8 @@
|
@@ -29,6 +29,8 @@
|
||||||
|
@ -1045,7 +1162,24 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
#endif
|
#endif
|
||||||
AV_PIX_FMT_NONE,
|
AV_PIX_FMT_NONE,
|
||||||
};
|
};
|
||||||
@@ -814,11 +892,11 @@ failed:
|
@@ -788,7 +866,7 @@ int InitVideoHwDec( vlc_object_t *obj )
|
||||||
|
|
||||||
|
int res = InitVideoDecCommon( p_dec );
|
||||||
|
if (res != VLC_SUCCESS)
|
||||||
|
- return res;
|
||||||
|
+ goto not_usable;
|
||||||
|
|
||||||
|
const AVPixFmtDescriptor *src_desc = av_pix_fmt_desc_get(p_context->sw_pix_fmt);
|
||||||
|
|
||||||
|
@@ -799,6 +877,7 @@ int InitVideoHwDec( vlc_object_t *obj )
|
||||||
|
return VLC_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
+not_usable:
|
||||||
|
EndVideoDec(obj);
|
||||||
|
return VLC_EGENERIC;
|
||||||
|
failed:
|
||||||
|
@@ -813,11 +892,11 @@ failed:
|
||||||
* the ffmpeg codec will be opened, some memory allocated. The vout is not yet
|
* the ffmpeg codec will be opened, some memory allocated. The vout is not yet
|
||||||
* opened (done after the first decoded frame).
|
* opened (done after the first decoded frame).
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -1059,7 +1193,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
if( p_context == NULL )
|
if( p_context == NULL )
|
||||||
return VLC_EGENERIC;
|
return VLC_EGENERIC;
|
||||||
|
|
||||||
@@ -840,6 +918,27 @@ int InitVideoDec( vlc_object_t *obj )
|
@@ -839,6 +918,27 @@ int InitVideoDec( vlc_object_t *obj )
|
||||||
return InitVideoDecCommon( p_dec );
|
return InitVideoDecCommon( p_dec );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1087,7 +1221,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Flush:
|
* Flush:
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
@@ -849,6 +948,8 @@ static void Flush( decoder_t *p_dec )
|
@@ -848,6 +948,8 @@ static void Flush( decoder_t *p_dec )
|
||||||
AVCodecContext *p_context = p_sys->p_context;
|
AVCodecContext *p_context = p_sys->p_context;
|
||||||
|
|
||||||
date_Set(&p_sys->pts, VLC_TICK_INVALID); /* To make sure we recover properly */
|
date_Set(&p_sys->pts, VLC_TICK_INVALID); /* To make sure we recover properly */
|
||||||
|
@ -1096,7 +1230,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
p_sys->i_late_frames = 0;
|
p_sys->i_late_frames = 0;
|
||||||
p_sys->b_draining = false;
|
p_sys->b_draining = false;
|
||||||
cc_Flush( &p_sys->cc );
|
cc_Flush( &p_sys->cc );
|
||||||
@@ -876,6 +977,8 @@ static bool check_block_validity( decoder_sys_t *p_sys, block_t *block )
|
@@ -875,6 +977,8 @@ static bool check_block_validity( decoder_sys_t *p_sys, block_t *block )
|
||||||
if( block->i_flags & (BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED) )
|
if( block->i_flags & (BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED) )
|
||||||
{
|
{
|
||||||
date_Set( &p_sys->pts, VLC_TICK_INVALID ); /* To make sure we recover properly */
|
date_Set( &p_sys->pts, VLC_TICK_INVALID ); /* To make sure we recover properly */
|
||||||
|
@ -1105,7 +1239,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
cc_Flush( &p_sys->cc );
|
cc_Flush( &p_sys->cc );
|
||||||
|
|
||||||
p_sys->i_late_frames = 0;
|
p_sys->i_late_frames = 0;
|
||||||
@@ -1216,6 +1319,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
|
@@ -1215,6 +1319,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
|
||||||
}
|
}
|
||||||
if( b_has_data )
|
if( b_has_data )
|
||||||
{
|
{
|
||||||
|
@ -1116,7 +1250,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
pkt->data = p_block->p_buffer;
|
pkt->data = p_block->p_buffer;
|
||||||
pkt->size = p_block->i_buffer;
|
pkt->size = p_block->i_buffer;
|
||||||
pkt->pts = p_block->i_pts > VLC_TICK_INVALID ? p_block->i_pts : AV_NOPTS_VALUE;
|
pkt->pts = p_block->i_pts > VLC_TICK_INVALID ? p_block->i_pts : AV_NOPTS_VALUE;
|
||||||
@@ -1322,6 +1429,17 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
|
@@ -1321,6 +1429,17 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
|
||||||
if( i_pts == AV_NOPTS_VALUE )
|
if( i_pts == AV_NOPTS_VALUE )
|
||||||
i_pts = date_Get( &p_sys->pts );
|
i_pts = date_Get( &p_sys->pts );
|
||||||
|
|
||||||
|
@ -1134,7 +1268,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
/* Interpolate the next PTS */
|
/* Interpolate the next PTS */
|
||||||
if( i_pts > VLC_TICK_INVALID )
|
if( i_pts > VLC_TICK_INVALID )
|
||||||
date_Set( &p_sys->pts, i_pts );
|
date_Set( &p_sys->pts, i_pts );
|
||||||
@@ -1374,9 +1492,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
|
@@ -1373,9 +1492,10 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
|
||||||
{ /* When direct rendering is not used, get_format() and get_buffer()
|
{ /* When direct rendering is not used, get_format() and get_buffer()
|
||||||
* might not be called. The output video format must be set here
|
* might not be called. The output video format must be set here
|
||||||
* then picture buffer can be allocated. */
|
* then picture buffer can be allocated. */
|
||||||
|
@ -1147,7 +1281,7 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
p_pic = decoder_NewPicture(p_dec);
|
p_pic = decoder_NewPicture(p_dec);
|
||||||
|
|
||||||
if( !p_pic )
|
if( !p_pic )
|
||||||
@@ -1769,6 +1888,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
|
@@ -1768,6 +1888,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
|
||||||
}
|
}
|
||||||
swfmt = defaultfmt;
|
swfmt = defaultfmt;
|
||||||
}
|
}
|
||||||
|
@ -1155,6 +1289,28 @@ index 55ea1c82fb..c299fe2a38 100644
|
||||||
|
|
||||||
if (p_sys->pix_fmt == AV_PIX_FMT_NONE)
|
if (p_sys->pix_fmt == AV_PIX_FMT_NONE)
|
||||||
goto no_reuse;
|
goto no_reuse;
|
||||||
|
diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp
|
||||||
|
index 3adfe67c0d..382be37dcc 100644
|
||||||
|
--- a/modules/gui/qt/components/controller.cpp
|
||||||
|
+++ b/modules/gui/qt/components/controller.cpp
|
||||||
|
@@ -1089,7 +1089,7 @@ bool FullscreenControllerWidget::eventFilter( QObject *watched, QEvent *event )
|
||||||
|
if ( watched == wParent && event->type() == QEvent::ActivationChange )
|
||||||
|
{
|
||||||
|
/* Hide if not active */
|
||||||
|
- if ( !wParent->isActiveWindow() && !isActiveWindow() )
|
||||||
|
+ if ( !wParent->isActiveWindow() )
|
||||||
|
hideFSC();
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1307,7 +1307,7 @@ void FullscreenControllerWidget::mouseChanged( vout_thread_t *, int i_mousex, in
|
||||||
|
Q_ASSERT( wParent );
|
||||||
|
|
||||||
|
/* Ignore mouse events if not active */
|
||||||
|
- if ( !wParent->isActiveWindow() && !isActiveWindow() ) return;
|
||||||
|
+ if ( !wParent->isActiveWindow() ) return;
|
||||||
|
|
||||||
|
bool b_toShow;
|
||||||
|
|
||||||
diff --git a/modules/gui/qt/components/interface_widgets.cpp b/modules/gui/qt/components/interface_widgets.cpp
|
diff --git a/modules/gui/qt/components/interface_widgets.cpp b/modules/gui/qt/components/interface_widgets.cpp
|
||||||
index 4a0a0dae12..17946c58d6 100644
|
index 4a0a0dae12..17946c58d6 100644
|
||||||
--- a/modules/gui/qt/components/interface_widgets.cpp
|
--- a/modules/gui/qt/components/interface_widgets.cpp
|
||||||
|
@ -16413,6 +16569,67 @@ index 2709425255..5ac384e633 100644
|
||||||
i_ret = CreateChain( p_filter, &fmt_mid );
|
i_ret = CreateChain( p_filter, &fmt_mid );
|
||||||
es_format_Clean( &fmt_mid );
|
es_format_Clean( &fmt_mid );
|
||||||
if( i_ret == VLC_SUCCESS )
|
if( i_ret == VLC_SUCCESS )
|
||||||
|
diff --git a/modules/video_chroma/d3d11_fmt.c b/modules/video_chroma/d3d11_fmt.c
|
||||||
|
index 1ca26e8e20..0875af6ea2 100644
|
||||||
|
--- a/modules/video_chroma/d3d11_fmt.c
|
||||||
|
+++ b/modules/video_chroma/d3d11_fmt.c
|
||||||
|
@@ -146,32 +146,21 @@ int D3D11_AllocateShaderView(vlc_object_t *obj, ID3D11Device *d3ddevice,
|
||||||
|
#if !VLC_WINSTORE_APP
|
||||||
|
static HKEY GetAdapterRegistry(vlc_object_t *obj, DXGI_ADAPTER_DESC *adapterDesc)
|
||||||
|
{
|
||||||
|
- HKEY hDisplayKey, hKey;
|
||||||
|
+ HKEY hKey;
|
||||||
|
CHAR key[128];
|
||||||
|
CHAR szData[256], lookup[256];
|
||||||
|
DWORD len = 256;
|
||||||
|
LSTATUS ret;
|
||||||
|
|
||||||
|
- ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}", 0, KEY_READ, &hDisplayKey);
|
||||||
|
- if ( ret != ERROR_SUCCESS )
|
||||||
|
- {
|
||||||
|
- msg_Warn(obj, "failed to read the Display Adapter registry key (%ld)", ret);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- char DisplayNum[16];
|
||||||
|
_snprintf(lookup, 256, "pci\\ven_%04x&dev_%04x", adapterDesc->VendorId, adapterDesc->DeviceId);
|
||||||
|
- for (DWORD k=0;; k++)
|
||||||
|
+ for (int i=0;;i++)
|
||||||
|
{
|
||||||
|
- ret = RegEnumKeyA(hDisplayKey, k, DisplayNum, ARRAY_SIZE(DisplayNum));
|
||||||
|
- if (ret != ERROR_SUCCESS)
|
||||||
|
- break;
|
||||||
|
-
|
||||||
|
- ret = RegOpenKeyExA(hDisplayKey, DisplayNum, 0, KEY_READ, &hKey);
|
||||||
|
+ _snprintf(key, 128, "SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}\\%04d", i);
|
||||||
|
+ ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hKey);
|
||||||
|
if ( ret != ERROR_SUCCESS )
|
||||||
|
{
|
||||||
|
- msg_Warn(obj, "failed to read the %s Display Adapter registry key (%ld)", DisplayNum, ret);
|
||||||
|
- continue;
|
||||||
|
+ msg_Warn(obj, "failed to read the %d Display Adapter registry key (%ld)", i, ret);
|
||||||
|
+ return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = sizeof(szData);
|
||||||
|
@@ -179,15 +168,13 @@ static HKEY GetAdapterRegistry(vlc_object_t *obj, DXGI_ADAPTER_DESC *adapterDesc
|
||||||
|
if ( ret == ERROR_SUCCESS ) {
|
||||||
|
if (_strnicmp(lookup, szData, strlen(lookup)) == 0)
|
||||||
|
return hKey;
|
||||||
|
- msg_Dbg(obj, "different %s device %s vs %s", DisplayNum, lookup, szData);
|
||||||
|
+ msg_Dbg(obj, "different %d device %s vs %s", i, lookup, szData);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- msg_Warn(obj, "failed to get the %s MatchingDeviceId (%ld)", DisplayNum, ret);
|
||||||
|
+ msg_Warn(obj, "failed to get the %d MatchingDeviceId (%ld)", i, ret);
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
- RegCloseKey(hDisplayKey);
|
||||||
|
-
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am
|
diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am
|
||||||
index ae48c8e062..270f1a63b8 100644
|
index ae48c8e062..270f1a63b8 100644
|
||||||
--- a/modules/video_output/Makefile.am
|
--- a/modules/video_output/Makefile.am
|
||||||
|
@ -28591,6 +28808,83 @@ index 08ad5022f9..b1feb622d8 100644
|
||||||
set_callbacks(Open, Close)
|
set_callbacks(Open, Close)
|
||||||
add_shortcut("wl")
|
add_shortcut("wl")
|
||||||
vlc_module_end()
|
vlc_module_end()
|
||||||
|
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
|
||||||
|
index 9fe576ebad..06aeddeff8 100644
|
||||||
|
--- a/modules/video_output/win32/direct3d11.c
|
||||||
|
+++ b/modules/video_output/win32/direct3d11.c
|
||||||
|
@@ -122,7 +122,6 @@ struct vout_display_sys_t
|
||||||
|
d3d11_handle_t hd3d;
|
||||||
|
IDXGISwapChain1 *dxgiswapChain; /* DXGI 1.2 swap chain */
|
||||||
|
IDXGISwapChain4 *dxgiswapChain4; /* DXGI 1.5 for HDR */
|
||||||
|
- DXGI_HDR_METADATA_HDR10 hdr10;
|
||||||
|
d3d11_device_t d3d_dev;
|
||||||
|
d3d_quad_t picQuad;
|
||||||
|
video_format_t quad_fmt;
|
||||||
|
@@ -1104,11 +1103,7 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic
|
||||||
|
hdr10.MaxMasteringLuminance = picture->format.mastering.max_luminance;
|
||||||
|
hdr10.MaxContentLightLevel = picture->format.lighting.MaxCLL;
|
||||||
|
hdr10.MaxFrameAverageLightLevel = picture->format.lighting.MaxFALL;
|
||||||
|
- if (memcmp(&sys->hdr10, &hdr10, sizeof(hdr10)))
|
||||||
|
- {
|
||||||
|
- memcpy(&sys->hdr10, &hdr10, sizeof(hdr10));
|
||||||
|
- IDXGISwapChain4_SetHDRMetaData(sys->dxgiswapChain4, DXGI_HDR_METADATA_TYPE_HDR10, sizeof(hdr10), &hdr10);
|
||||||
|
- }
|
||||||
|
+ IDXGISwapChain4_SetHDRMetaData(sys->dxgiswapChain4, DXGI_HDR_METADATA_TYPE_HDR10, sizeof(hdr10), &hdr10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1575,6 +1570,16 @@ static int Direct3D11Open(vout_display_t *vd, bool external_device)
|
||||||
|
|
||||||
|
video_format_Copy(&sys->pool_fmt, &fmt);
|
||||||
|
|
||||||
|
+ sys->legacy_shader = sys->d3d_dev.feature_level < D3D_FEATURE_LEVEL_10_0 ||
|
||||||
|
+ (sys->scaleProc == NULL && !CanUseTextureArray(vd)) ||
|
||||||
|
+ BogusZeroCopy(vd);
|
||||||
|
+
|
||||||
|
+ if (!sys->legacy_shader && is_d3d11_opaque(sys->pool_fmt.i_chroma))
|
||||||
|
+ {
|
||||||
|
+ sys->pool_fmt.i_width = (sys->pool_fmt.i_width + 0x7F) & ~0x7F;
|
||||||
|
+ sys->pool_fmt.i_height = (sys->pool_fmt.i_height + 0x7F) & ~0x7F;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
if ( sys->picQuad.formatInfo->formatTexture != DXGI_FORMAT_R8G8B8A8_UNORM &&
|
||||||
|
sys->picQuad.formatInfo->formatTexture != DXGI_FORMAT_B5G6R5_UNORM )
|
||||||
|
{
|
||||||
|
@@ -1684,10 +1689,6 @@ static int SetupOutputFormat(vout_display_t *vd, video_format_t *fmt)
|
||||||
|
|
||||||
|
InitScaleProcessor(vd);
|
||||||
|
|
||||||
|
- sys->legacy_shader = sys->d3d_dev.feature_level < D3D_FEATURE_LEVEL_10_0 ||
|
||||||
|
- (sys->scaleProc == NULL && !CanUseTextureArray(vd)) ||
|
||||||
|
- BogusZeroCopy(vd);
|
||||||
|
-
|
||||||
|
if (Direct3D11CreateFormatResources(vd, fmt)) {
|
||||||
|
msg_Err(vd, "Failed to allocate format resources");
|
||||||
|
return VLC_EGENERIC;
|
||||||
|
diff --git a/modules/video_output/win32/events.c b/modules/video_output/win32/events.c
|
||||||
|
index 474142f0fc..476a710529 100644
|
||||||
|
--- a/modules/video_output/win32/events.c
|
||||||
|
+++ b/modules/video_output/win32/events.c
|
||||||
|
@@ -277,9 +277,6 @@ static void *EventThread( void *p_this )
|
||||||
|
case WM_MBUTTONUP:
|
||||||
|
MouseReleased( p_event, MOUSE_BUTTON_CENTER );
|
||||||
|
break;
|
||||||
|
- case WM_MBUTTONDBLCLK:
|
||||||
|
- MousePressed( p_event, msg.hwnd, MOUSE_BUTTON_CENTER );
|
||||||
|
- break;
|
||||||
|
|
||||||
|
case WM_RBUTTONDOWN:
|
||||||
|
MousePressed( p_event, msg.hwnd, MOUSE_BUTTON_RIGHT );
|
||||||
|
@@ -287,9 +284,6 @@ static void *EventThread( void *p_this )
|
||||||
|
case WM_RBUTTONUP:
|
||||||
|
MouseReleased( p_event, MOUSE_BUTTON_RIGHT );
|
||||||
|
break;
|
||||||
|
- case WM_RBUTTONDBLCLK:
|
||||||
|
- MousePressed( p_event, msg.hwnd, MOUSE_BUTTON_RIGHT );
|
||||||
|
- break;
|
||||||
|
|
||||||
|
case WM_KEYDOWN:
|
||||||
|
case WM_SYSKEYDOWN:
|
||||||
diff --git a/pi-util/README.txt b/pi-util/README.txt
|
diff --git a/pi-util/README.txt b/pi-util/README.txt
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000..59a8655955
|
index 0000000000..59a8655955
|
||||||
|
@ -29296,3 +29590,16 @@ index 892d5b7dac..3c75b6450f 100644
|
||||||
|
|
||||||
assert( p_dst->context == NULL );
|
assert( p_dst->context == NULL );
|
||||||
|
|
||||||
|
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
|
||||||
|
index 085067cb40..592c0474ca 100644
|
||||||
|
--- a/src/video_output/video_output.c
|
||||||
|
+++ b/src/video_output/video_output.c
|
||||||
|
@@ -1427,8 +1427,6 @@ static void ThreadChangeWindowMouse(vout_thread_t *vout,
|
||||||
|
case VOUT_WINDOW_MOUSE_DOUBLE_CLICK:
|
||||||
|
if (mouse->button_mask == 0)
|
||||||
|
vout_display_SendEventMouseDoubleClick(vd);
|
||||||
|
- else
|
||||||
|
- vout_display_SendEventMousePressed(vd, mouse->button_mask);
|
||||||
|
break;
|
||||||
|
default: vlc_assert_unreachable();
|
||||||
|
break;
|
|
@ -10,7 +10,7 @@ _vlcver=3.0.20
|
||||||
# optional fixup version including hyphen
|
# optional fixup version including hyphen
|
||||||
_vlcfixupver=
|
_vlcfixupver=
|
||||||
pkgver=${_vlcver}${_vlcfixupver//-/.r}
|
pkgver=${_vlcver}${_vlcfixupver//-/.r}
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3/4/400'
|
pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3/4/400'
|
||||||
url='https://www.videolan.org/vlc/'
|
url='https://www.videolan.org/vlc/'
|
||||||
arch=(aarch64)
|
arch=(aarch64)
|
||||||
|
@ -113,7 +113,7 @@ source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcv
|
||||||
# credit to jc and RPi-Distro maintainers for this work, see:
|
# credit to jc and RPi-Distro maintainers for this work, see:
|
||||||
# https://github.com/jc-kynesim/vlc.git
|
# https://github.com/jc-kynesim/vlc.git
|
||||||
# https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches
|
# https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches
|
||||||
0003-dev-3.0.19-port_1.patch
|
0003-dev-3.0.19-port_1_to_3.0.20.patch
|
||||||
update-vlc-plugin-cache.hook)
|
update-vlc-plugin-cache.hook)
|
||||||
sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5'
|
sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
|
@ -121,7 +121,7 @@ sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5'
|
||||||
'be970a020695fdc4d0f968021f057a1cb625eeb6ee62995560e532d61ffb52dc'
|
'be970a020695fdc4d0f968021f057a1cb625eeb6ee62995560e532d61ffb52dc'
|
||||||
'753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291'
|
'753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291'
|
||||||
'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989'
|
'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989'
|
||||||
'6d0e7b14ae4cd2e490271a8c00cd97027af01eb6e65629f761562bcbd2869980'
|
'ea721ef759c7fa4b9cc66ea57b4ba02b78e2944049ef39792c1ef2c6082e499f'
|
||||||
'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13')
|
'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13')
|
||||||
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key
|
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue