Skip to content

Commit 55f08f0

Browse files
authored
Merge branch 'videolan:3.0.x' into 3.0.x
2 parents f5659c9 + 8462f79 commit 55f08f0

File tree

347 files changed

+338713
-556783
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

347 files changed

+338713
-556783
lines changed

Makefile.am

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,9 @@ EXTRA_DIST += \
6565
extras/tools/bison-macOS-7df04f9.patch \
6666
extras/tools/bison-macOS-c41f233c.patch \
6767
extras/tools/cmake-enable-ALPN-support-on-macOS-10.14.patch \
68-
extras/tools/libtool-2.4.6-bitcode.patch \
69-
extras/tools/libtool-2.4.6-clang-libs.patch \
70-
extras/tools/libtool-2.4.6-response-files.patch \
71-
extras/tools/libtool-2.4.6-san.patch \
68+
extras/tools/libtool-2.4.7-bitcode.patch \
69+
extras/tools/libtool-2.4.7-clang-libs.patch \
70+
extras/tools/libtool-2.4.7-response-files.patch \
7271
extras/tools/ragel-6.8-javacodegen.patch
7372

7473
###############################################################################

NEWS

Lines changed: 109 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,130 @@
1+
Changes between 3.0.20 and 3.0.21:
2+
----------------------------------
3+
4+
Decoders:
5+
* Improve Opus ambisonic support
6+
* Fix some ASS subtitle rendering issues
7+
* Fix Opus in MP4 behaviour
8+
* Fix VAAPI hw decoding with some drivers
9+
10+
Input:
11+
* Add support for HTTP content range handling according to RFC 9110
12+
* Fix some HLS Adaptive Streaming not working in audio-only mode
13+
14+
Video Output:
15+
* Super Resolution scaling with AMD GPUs
16+
* The D3D11 HDR option can also turn on/off HDR for all sources regardless of
17+
the display
18+
* Improve subtitles rendering on Apple platforms of notably Asian languages
19+
by correcting font fallback lookups
20+
21+
Video Filter:
22+
* New AMD VQ Enhancer filter
23+
* Add D3D11 option to use NVIDIA TrueHDR to generate HDR from SDR sources
24+
25+
Audio Output:
26+
* Fix regression on macOS causing crashes when using audio devices
27+
with more than 9 channels
28+
29+
Services Discovery:
30+
* Fix exposed UPnP directory URL schemes to be compliant with RFC 3986
31+
32+
Contrib:
33+
* Update FFmpeg to 4.4.4
34+
* Update dav1d to 1.4.2
35+
* Update libvpx to 1.14.1
36+
37+
libVLC:
38+
* the HWND passed to libvlc_media_player_set_hwnd must have the WS_CLIPCHILDREN
39+
style set.
40+
* Fix crashes when using caopengllayer
41+
42+
Misc:
43+
* Fix various warnings, leaks and potential crashes
44+
* Fix security integer overflow in MMS module
45+
46+
47+
Changes between 3.0.19 and 3.0.20:
48+
----------------------------------
49+
50+
Video Output:
51+
* Fix green line in fullscreen in D3D11 video output
52+
* Fix crash with some AMD drivers old versions
53+
* Fix events propagation issue when double-clicking with mouse wheel
54+
55+
Decoders:
56+
* Fix crash when AV1 hardware decoder fails
57+
58+
Interface:
59+
* Fix annoying disappearance of the Windows fullscreen controller
60+
61+
Demuxers:
62+
* Fix potential security issue (OOB Write) on MMS:// by checking user size bounds
63+
64+
165
Changes between 3.0.18 and 3.0.19:
266
----------------------------------
367

68+
Core:
69+
* Fix next-frame freezing in most scenarios
70+
471
Demux:
5-
* Fix some FLAC VBR files playback regression
6-
* Fix black screen on poorly edited MP4 files on Android Mediacodec
72+
* Fix FLAC playback quality regression with variable frame size
73+
* Support RIFF INFO tags for Wav files
774
* Fix AVI files with flipped RAW video planes
875
* Fix duration on short and small Ogg/Opus files
976
* Fix some HLS/TS streams with ID3 prefix
77+
* Fix some HLS playlist refresh drift
1078
* Fix for GoPro MAX spatial metadata
79+
* Improve FFmpeg-muxed MP4 chapters handling
80+
* Improve playback for QNap-produced AVI files
81+
* Improve playback of some old RealVideo files
82+
* Fix duration probing on some MP4 with missing information
83+
84+
Decoders:
85+
* Multiple fixes on AAC handling
86+
* Activate hardware decoding of AV1 on Windows (DxVA)
87+
* Improve AV1 HDR support with software decoding
88+
* Fix some AV1 GBRP streams, AV1 super-resolution streams and monochrome ones
89+
* Fix black screen on poorly edited MP4 files on Android Mediacodec
90+
* Fix rawvid video in NV12
91+
* Fix several issues on Windows hardware decoding (including "too large resolution in DxVA")
92+
* Improve crunchyroll-produced SSA rendering
93+
94+
Video Output:
95+
* Super Resolution scaling with nVidia and Intel GPUs
96+
* Fix for an issue when cropping on Direct3D9
97+
* Multiple fixes for hardware decoding on D3D11 and OpenGL interop
98+
* Fix an issue when playing -90°rotated video
99+
* Fix subtitles rendering blur on recent macOS
100+
101+
Input:
102+
* Improve SMB compatibility with Windows 11 hosts
11103

12104
Contribs:
13105
* Update of fluidlite, fixing some MIDI rendering on Windows
14106
* Update of zlib to 1.2.13 (CVE-2022-37434)
107+
* Update of FFmpeg, vpx (CVE-2023-5217), ebml, dav1d, libass
15108

16109
Misc:
110+
* Improve muxing timestamps in a few formats (reset to 0)
17111
* Fix some rendering issues on Linux with the fullscreen controller
18-
* Fix some MPRIS inconsistencies that broke some OS widgets on Linux
112+
* Fix GOOM visualization
19113
* Fixes for Youtube playback
20-
* Fix some crashes on macOS when switching application
114+
* Fix some MPRIS inconsistencies that broke some OS widgets on Linux
115+
* Implement MPRIS TrackList signals
116+
* Fix opening files in read-only mode
21117
* Fix password search using the Kwallet backend
118+
* Fix some crashes on macOS when switching application
22119
* Fix 5.1/7.1 output on macOS and tvOS
23-
* Multiple fixes on AAC handling
120+
* Fix several crashes and bugs in the macOS preferences panel
121+
* Improvements on the threading of the MMDevice audio output on Windows
122+
* Fix a potential security issue on the uninstaller DLLs (CVE-2023-46814)
123+
* Fix memory leaks when using the media_list_player libVLC APIs
124+
125+
Translations:
126+
* Update of most translations
127+
* New translations to Esperanto, Interlingue, Lao, Macedonian, Burmese, Odia, Samoan and Swahili
24128

25129

26130
Changes between 3.0.18-rc2 and 3.0.18:

bin/breakpad.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,23 @@ static bool FilterCallback(void*, EXCEPTION_POINTERS*, MDRawAssertionInfo*)
4242
extern "C"
4343
{
4444

45+
#define WIDEN_(x) L ## x
46+
#define WIDEN(x) WIDEN_(x)
47+
4548
void CheckCrashDump( const wchar_t* path )
4649
{
4750
wchar_t pattern[MAX_PATH];
48-
WIN32_FIND_DATA data;
51+
WIN32_FIND_DATAW data;
4952
_snwprintf( pattern, MAX_PATH, L"%s/*.dmp", path );
50-
HANDLE h = FindFirstFile( pattern, &data );
53+
HANDLE h = FindFirstFileW( pattern, &data );
5154
if (h == INVALID_HANDLE_VALUE)
5255
return;
53-
int answer = MessageBox( NULL, L"Ooops: VLC media player just crashed.\n" \
56+
int answer = MessageBoxW( NULL, L"Ooops: VLC media player just crashed.\n" \
5457
"Would you like to send a bug report to the developers team?",
5558
L"VLC crash reporting", MB_YESNO);
5659
std::map<std::wstring, std::wstring> params;
5760
params[L"prod"] = L"VLC";
58-
params[L"ver"] = TEXT(PACKAGE_VERSION);
61+
params[L"ver"] = WIDEN(PACKAGE_VERSION);
5962
do
6063
{
6164
wchar_t fullPath[MAX_PATH];
@@ -65,18 +68,18 @@ void CheckCrashDump( const wchar_t* path )
6568
std::map<std::wstring, std::wstring> files;
6669
files[L"upload_file_minidump"] = fullPath;
6770
google_breakpad::HTTPUpload::SendRequest(
68-
TEXT( BREAKPAD_URL "/reports" ), params, files,
71+
WIDEN( BREAKPAD_URL "/reports" ), params, files,
6972
NULL, NULL, NULL );
7073
}
71-
DeleteFile( fullPath );
72-
} while ( FindNextFile( h, &data ) );
74+
DeleteFileW( fullPath );
75+
} while ( FindNextFileW( h, &data ) );
7376
FindClose(h);
7477
}
7578

7679
void* InstallCrashHandler( const wchar_t* crashdump_path )
7780
{
7881
// Breakpad needs the folder to exist to generate the crashdump
79-
CreateDirectory( crashdump_path, NULL );
82+
CreateDirectoryW( crashdump_path, NULL );
8083
return new(std::nothrow) ExceptionHandler( crashdump_path, FilterCallback,
8184
NULL, NULL, ExceptionHandler::HANDLER_ALL);
8285
}

bin/winvlc.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,19 +209,28 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
209209
argv[argc] = NULL;
210210
LocalFree (wargv);
211211

212+
#ifdef HAVE_BREAKPAD
212213
void* eh = NULL;
213214
if(crash_handling)
214215
{
215-
#ifdef HAVE_BREAKPAD
216-
static wchar_t path[MAX_PATH];
216+
wchar_t path[MAX_PATH];
217217
if( S_OK != SHGetFolderPathW( NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE,
218218
NULL, SHGFP_TYPE_CURRENT, path ) )
219219
fprintf( stderr, "Can't open the vlc conf PATH\n" );
220-
_snwprintf( path+wcslen( path ), MAX_PATH, L"%s", L"\\vlc\\crashdump" );
221-
CheckCrashDump( &path[0] );
222-
eh = InstallCrashHandler( &path[0] );
223-
#endif
220+
else
221+
{
222+
size_t pathlen = wcslen(path);
223+
if ( pathlen + 1 + wcslen(L"\\vlc\\crashdump" ) <= MAX_PATH )
224+
{
225+
wcscpy( &path[pathlen], L"\\vlc\\crashdump" );
226+
CheckCrashDump( path );
227+
eh = InstallCrashHandler( path );
228+
}
229+
}
224230
}
231+
#else
232+
(void)crash_handling;
233+
#endif
225234

226235
_setmode( _fileno( stdin ), _O_BINARY ); /* Needed for pipes */
227236

configure.ac

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
dnl Autoconf settings for vlc
22

3-
AC_COPYRIGHT([Copyright 1999-2022 VLC authors and VideoLAN])
3+
AC_COPYRIGHT([Copyright 1999-2024 VLC authors and VideoLAN])
44

5-
AC_INIT(vlc, 3.0.19)
5+
AC_INIT(vlc, 3.0.21)
66
VERSION_MAJOR=3
77
VERSION_MINOR=0
8-
VERSION_REVISION=19
8+
VERSION_REVISION=21
99
VERSION_EXTRA=0
1010
VERSION_DEV=
1111

@@ -14,7 +14,7 @@ AC_SUBST(PKGDIR)
1414

1515
CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
1616
CODENAME="Vetinari"
17-
COPYRIGHT_YEARS="1996-2022"
17+
COPYRIGHT_YEARS="1996-2024"
1818

1919
AC_CONFIG_SRCDIR(src/libvlc.c)
2020
AC_CONFIG_AUX_DIR(autotools)
@@ -219,7 +219,9 @@ case "${host_os}" in
219219
*mingw32* | *cygwin* | *wince* | *mingwce*)
220220
dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
221221
dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
222-
CXXFLAGS="${CXXFLAGS} -static-libgcc"
222+
AC_LANG_PUSH(C++)
223+
AX_APPEND_COMPILE_FLAGS([-static-libgcc], [CXXFLAGS], [-Werror])
224+
AC_LANG_POP(C++)
223225
AC_CHECK_TOOL(WINDRES, windres, :)
224226
AC_CHECK_TOOL(OBJCOPY, objcopy, :)
225227
AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
@@ -355,8 +357,7 @@ AC_ARG_ENABLE([pdb],
355357
AS_IF([test "${SYS}" = "mingw32"],[
356358
AS_IF([test "${enable_pdb}" = "yes"], [
357359
vlc_build_pdb=1
358-
AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
359-
AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
360+
AX_APPEND_FLAG([-g -gcodeview],[CPPFLAGS])
360361
LDFLAGS="${LDFLAGS} -Wl,-pdb="
361362
],[])
362363
])
@@ -1824,7 +1825,7 @@ You can get an updated one from http://www.live555.com/liveMedia .])
18241825
other_libs="$other_libs -lws2_32"
18251826
])
18261827
1827-
dnl We need to check for pic because live555 don't provide shared libs
1828+
dnl We need to check for pic because live555 do not provide shared libs
18281829
dnl and we want to build a plugins so we need -fPIC on some arch.
18291830
VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
18301831
VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
@@ -1941,6 +1942,31 @@ AS_IF([test "$enable_v4l2" != "no"], [
19411942
])
19421943
AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
19431944

1945+
dnl
1946+
dnl AMD Advanced Media Framework API
1947+
dnl
1948+
AC_ARG_ENABLE([amf-scaler], AS_HELP_STRING([--disable-amf-scaler],
1949+
[disable AMD Scaler API (default auto)]))
1950+
have_amf_scaler="no"
1951+
AS_IF([test "$enable_amf_scaler" != "no"], [
1952+
AC_CHECK_HEADERS([AMF/core/PropertyStorage.h AMF/components/HQScaler.h], [
1953+
have_amf_scaler="yes"
1954+
AC_DEFINE(HAVE_AMF_SCALER, 1, AMD HQScaler supported)
1955+
])
1956+
])
1957+
AM_CONDITIONAL([HAVE_AMF_SCALER], [test "${have_amf_scaler}" != "no"])
1958+
1959+
AC_ARG_ENABLE([amf-enhancer], AS_HELP_STRING([--disable-amf-enhancer],
1960+
[disable AMD Enhancer API (default auto)]))
1961+
have_amf_enhancer="no"
1962+
AS_IF([test "$enable_amf_enhancer" != "no"], [
1963+
AC_CHECK_HEADERS([AMF/core/PropertyStorage.h AMF/components/VQEnhancer.h], [
1964+
have_amf_enhancer="yes"
1965+
AC_DEFINE(HAVE_AMF_ENHANCER, 1, AMD VQ Enhancer supported)
1966+
])
1967+
])
1968+
AM_CONDITIONAL([HAVE_AMF_ENHANCER], [test "${have_amf_enhancer}" != "no"])
1969+
19441970
dnl
19451971
dnl special access module for Blackmagic SDI cards
19461972
dnl
@@ -3370,6 +3396,7 @@ AS_IF([test "${enable_directx}" != "no"], [
33703396
33713397
dnl Direct3D11
33723398
AC_CHECK_HEADERS(d3d11.h, [
3399+
AC_CHECK_TYPES([D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS],,,[#include <d3d11.h>])
33733400
VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
33743401
])
33753402
@@ -4196,7 +4223,7 @@ AC_ARG_ENABLE(libplacebo,
41964223
[disable libplacebo support (default auto)])])
41974224

41984225
AS_IF([test "$enable_libplacebo" != "no"], [
4199-
PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.2.1], [
4226+
PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.2.1 libplacebo < 6], [
42004227
AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
42014228
], [
42024229
AS_IF([test -n "${enable_libplacebo}"], [
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
From cf190d084644d3d3e2ea1ffbb740ad8e7aede760 Mon Sep 17 00:00:00 2001
2+
From: Steve Lhomme <[email protected]>
3+
Date: Fri, 16 Feb 2024 08:18:19 +0100
4+
Subject: [PATCH] Differentiate the AMF_NO_VTABLE based on the compiler
5+
6+
This is a Microsoft specific extension: https://learn.microsoft.com/en-us/cpp/cpp/novtable
7+
Clang and gcc can compile for Windows but don't support this.
8+
---
9+
amf/public/include/core/Platform.h | 8 ++++++--
10+
1 file changed, 6 insertions(+), 2 deletions(-)
11+
12+
diff --git a/amf/public/include/core/Platform.h b/amf/public/include/core/Platform.h
13+
index d6496d4..378f789 100644
14+
--- a/amf/public/include/core/Platform.h
15+
+++ b/amf/public/include/core/Platform.h
16+
@@ -100,6 +100,12 @@ typedef signed int HRESULT;
17+
#include <stdint.h>
18+
#include <string.h>
19+
20+
+#if defined(_MSC_VER)
21+
+ #define AMF_NO_VTABLE __declspec(novtable)
22+
+#else
23+
+ #define AMF_NO_VTABLE
24+
+#endif
25+
+
26+
#if defined(_WIN32)
27+
28+
29+
@@ -116,7 +122,6 @@ typedef signed int HRESULT;
30+
#define AMF_INLINE __inline
31+
#define AMF_FORCEINLINE __forceinline
32+
#endif
33+
- #define AMF_NO_VTABLE __declspec(novtable)
34+
35+
#else // !WIN32 - Linux and Mac
36+
37+
@@ -130,7 +135,6 @@ typedef signed int HRESULT;
38+
#define AMF_INLINE __inline__
39+
#define AMF_FORCEINLINE __inline__
40+
#endif
41+
- #define AMF_NO_VTABLE
42+
43+
#endif // WIN32
44+
45+
--
46+
2.37.3.windows.1
47+

0 commit comments

Comments
 (0)