Changes of Revision 405
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/meson.build -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/meson.build
Changed
x
1
2
# VLC plugins
3
subdir('modules')
4
5
-# Integration and non-regression tests, some unittest are there too but the
6
-# modules/, src/ and lib/ folders should be favoured for those.
7
-subdir('test')
8
+if (get_option('tests')
9
+ .disable_auto_if(host_system in 'windows')
10
+ .allowed())
11
+ # Integration and non-regression tests, some unittest are there too but the
12
+ # modules/, src/ and lib/ folders should be favoured for those.
13
+ subdir('test')
14
+endif
15
16
if get_option('rust').allowed()
17
warning('''
18
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/meson_options.txt -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/meson_options.txt
Changed
13
1
2
value : true,
3
description : 'Build the VLC executable program.')
4
5
+option('tests',
6
+ type : 'feature',
7
+ value : 'auto',
8
+ description : 'Build the VLC test executables.')
9
+
10
option('nls',
11
type : 'feature',
12
value : 'auto',
13
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/codec/dav1d.c -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/codec/dav1d.c
Changed
18
1
2
img->seq_hdr->pri == DAV1D_COLOR_PRI_BT709 &&
3
img->seq_hdr->trc == DAV1D_TRC_SRGB )
4
{
5
- if( img->seq_hdr->hbd < 0 || img->seq_hdr->hbd >= (int)ARRAY_SIZE(chroma_table_rgb) )
6
+ if( img->seq_hdr->hbd >= (int)ARRAY_SIZE(chroma_table_rgb) )
7
return 0;
8
return chroma_table_rgbimg->seq_hdr->hbd;
9
}
10
11
if( img->seq_hdr->layout < 0 || img->seq_hdr->layout >= (int)ARRAY_SIZE(chroma_table) )
12
return 0;
13
- if( img->seq_hdr->hbd < 0 || img->seq_hdr->hbd >= (int)ARRAY_SIZE(chroma_table0) )
14
+ if( img->seq_hdr->hbd >= (int)ARRAY_SIZE(chroma_table0) )
15
return 0;
16
17
return chroma_tableimg->seq_hdr->layoutimg->seq_hdr->hbd;
18
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/Makefile.am -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/Makefile.am
Changed
9
1
2
3
libqt_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS_qt) \
4
-DQT_STRICT_ITERATORS \
5
+ -DQT_USE_QSTRINGBUILDER \
6
-I$(srcdir) -I$(builddir) \
7
-I$(builddir)/dialogs/extended \
8
-I$(builddir)/dialogs/fingerprint \
9
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/dialogs/help/help.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/dialogs/help/help.cpp
Changed
10
1
2
.arg( m_model->getMajor() )
3
.arg( m_model->getMinor() )
4
.arg( m_model->getRevision() )
5
- .arg( extra == 0 ? "" : "." + QString::number( extra ) );
6
+ .arg( extra == 0 ? QStringLiteral("") : QStringLiteral(".") + QString::number( extra ) );
7
8
ui.updateNotifyLabel->setText( message );
9
message = m_model->getDescription().replace( "\n", "<br/>" );
10
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/dialogs/sout/convert.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/dialogs/sout/convert.cpp
Changed
19
1
2
3
void ConvertDialog::fileBrowse()
4
{
5
- QString fileExtension = ( ! profile->isEnabled() ) ? ".*" : "." + profile->getMux();
6
+ QString fileExtension = ( ! profile->isEnabled() ) ? QStringLiteral(".*") : QStringLiteral(".") + profile->getMux();
7
8
outgoingMRL = QFileDialog::getSaveFileUrl( this, qtr( "Save file..." ),
9
p_intf->p_mi->getDialogFilePath(),
10
11
// Multiple, use the convention.
12
else
13
{
14
- QString fileExtension = ( ! profile->isEnabled() ) ? ".*" : "." + profile->getMux();
15
+ QString fileExtension = ( ! profile->isEnabled() ) ? QStringLiteral(".*") : QStringLiteral(".") + profile->getMux();
16
17
newFileName = incomingMRLs->at(i);
18
19
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/compositor.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/compositor.cpp
Changed
43
1
2
}
3
if (!backendIsOpenVg && (flags & CompositorVideo::HAS_ACRYLIC))
4
{
5
- setBlurBehind(window, true);
6
+ if (Q_LIKELY(!window->isActive()))
7
+ {
8
+ connect(window, &QWindow::activeChanged, this, this, window = QPointer(window)() {
9
+ setBlurBehind(window, true);
10
+ }, Qt::SingleShotConnection);
11
+ }
12
+ else
13
+ {
14
+ setBlurBehind(window, true);
15
+ }
16
}
17
m_videoWindowHandler = std::make_unique<VideoWindowHandler>(m_intf);
18
m_videoWindowHandler->setWindow( window );
19
20
#else
21
m_interfaceWindowHandler = std::make_unique<InterfaceWindowHandler>(m_intf, m_mainCtx, window);
22
#endif
23
- m_mainCtx->setHasAcrylicSurface(m_blurBehind);
24
m_mainCtx->setWindowSuportExtendedFrame(flags & CompositorVideo::HAS_EXTENDED_FRAME);
25
26
#ifdef _WIN32
27
28
m_taskbarWidget.reset();
29
#endif
30
m_interfaceWindowHandler.reset();
31
+ m_mainCtx = nullptr;
32
}
33
34
void CompositorVideo::commonIntfDestroy()
35
36
return false;
37
38
m_windowEffectsModule->setBlurBehind(window, enable);
39
- m_blurBehind = enable;
40
+ m_mainCtx->setHasAcrylicSurface(enable);
41
return true;
42
}
43
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/compositor.hpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/compositor.hpp
Changed
9
1
2
std::unique_ptr<WinTaskbarWidget> m_taskbarWidget;
3
#endif
4
5
- bool m_blurBehind = false;
6
WindowEffectsModule* m_windowEffectsModule = nullptr;
7
bool m_failedToLoadWindowEffectsModule = false;
8
};
9
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/compositor_dcomp.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/compositor_dcomp.cpp
Changed
49
1
2
3
CompositorDirectComposition::~CompositorDirectComposition()
4
{
5
+ //m_acrylicSurface should be released before the RHI context is destroyed
6
+ assert(!m_acrylicSurface);
7
destroyMainInterface();
8
}
9
10
11
12
m_dcompDevice->Commit();
13
14
- if (!m_blurBehind)
15
+ if (!m_mainCtx->hasAcrylicSurface())
16
{
17
if (var_InheritBool(m_intf, "qt-backdrop-blur"))
18
{
19
try
20
{
21
- m_acrylicSurface = new CompositorDCompositionAcrylicSurface(m_intf, this, m_mainCtx, m_dcompDevice);
22
+ m_acrylicSurface = std::make_unique<CompositorDCompositionAcrylicSurface>(m_intf, this, m_mainCtx, m_dcompDevice);
23
}
24
catch (const std::exception& exception)
25
{
26
if (const auto what = exception.what())
27
msg_Warn(m_intf, "%s", what);
28
- delete m_acrylicSurface.data();
29
}
30
}
31
}
32
33
34
void CompositorDirectComposition::unloadGUI()
35
{
36
+ m_acrylicSurface.reset();
37
m_interfaceWindowHandler.reset();
38
m_quickView.reset();
39
commonGUIDestroy();
40
41
static_cast<QPlatformSurfaceEvent *>(event)->surfaceEventType() == QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed)
42
{
43
m_videoVisual.Reset();
44
- delete m_acrylicSurface.data();
45
+ m_acrylicSurface.reset();
46
// Just in case root visual deletes its children
47
// when it is deleted: (Qt's UI visual should be
48
// deleted by Qt itself)
49
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/compositor_dcomp.hpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/compositor_dcomp.hpp
Changed
27
1
2
3
class MainCtx;
4
class WinTaskbarWidget;
5
-
6
class QQuickView;
7
8
class IDCompositionVisual;
9
10
11
namespace vlc {
12
13
+class CompositorDCompositionAcrylicSurface;
14
+
15
class CompositorDirectComposition : public CompositorVideo
16
{
17
Q_OBJECT
18
19
Microsoft::WRL::ComPtr<IDCompositionVisual> m_videoVisual;
20
IDCompositionVisual *m_uiVisual = nullptr;
21
22
- QPointer<class CompositorDCompositionAcrylicSurface> m_acrylicSurface;
23
+ std::unique_ptr<CompositorDCompositionAcrylicSurface> m_acrylicSurface;
24
};
25
26
}
27
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/compositor_x11.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/compositor_x11.cpp
Changed
10
1
2
3
m_qmlView->show();
4
5
- if (m_blurBehind)
6
+ if (m_mainCtx->hasAcrylicSurface())
7
m_renderWindow->m_hasAcrylic = true;
8
9
m_renderWindow->setInterfaceWindow(m_qmlView.get());
10
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/mainctx.hpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/mainctx.hpp
Changed
10
1
2
inline bool isShowRemainingTime() const { return m_showRemainingTime; }
3
inline double getIntfScaleFactor() const { return m_intfScaleFactor; }
4
inline double getIntfUserScaleFactor() const { return m_intfUserScaleFactor; }
5
- inline int CSDBorderSize() const { return 5 * getIntfScaleFactor(); }
6
+ inline int CSDBorderSize() const { return 10; }
7
inline double getMinIntfUserScaleFactor() const { return MIN_INTF_USER_SCALE_FACTOR; }
8
inline double getMaxIntfUserScaleFactor() const { return MAX_INTF_USER_SCALE_FACTOR; }
9
inline bool hasMediaLibrary() const { return b_hasMedialibrary; }
10
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/maininterface/qml/MainInterface.qml -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/maininterface/qml/MainInterface.qml
Changed
10
1
2
Binding {
3
target: MainCtx
4
property: "windowExtendedMargin"
5
- value: _extendedFrameVisible ? VLCStyle.dp(20, VLCStyle.scale) : 0
6
+ value: _extendedFrameVisible ? 20 : 0
7
}
8
9
Window.onWindowChanged: {
10
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/meson.build -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/meson.build
Changed
10
1
2
qt_include_dir = include_directories('.')
3
4
qt_extra_deps =
5
-qt_extra_flags = '-DQT_STRICT_ITERATORS'
6
+qt_extra_flags = '-DQT_STRICT_ITERATORS','-DQT_USE_QSTRINGBUILDER'
7
qt_cppargs =
8
qt_link_args =
9
10
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/playlist/qml/PlaylistDelegate.qml -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/playlist/qml/PlaylistDelegate.qml
Changed
41
1
2
3
hoverEnabled: true
4
5
- verticalPadding: VLCStyle.playlistDelegate_verticalPadding
6
+ verticalPadding: VLCStyle.margin_xxxsmall
7
8
leftPadding: VLCStyle.margin_normal
9
10
11
Layout.fillWidth: true
12
Layout.fillHeight: true
13
Layout.leftMargin: VLCStyle.margin_large
14
- spacing: VLCStyle.margin_xsmall
15
+ spacing: VLCStyle.margin_xxxsmall
16
17
Widgets.ListLabel {
18
id: textInfo
19
20
- Layout.fillHeight: true
21
Layout.fillWidth: true
22
23
font.weight: model.isCurrent ? Font.Bold : Font.DemiBold
24
text: model.title
25
color: theme.fg.primary
26
- verticalAlignment: Text.AlignTop
27
}
28
29
Widgets.ListSubtitleLabel {
30
id: textArtist
31
32
- Layout.fillHeight: true
33
Layout.fillWidth: true
34
35
text: model.artist || qsTr("Unknown Artist")
36
color: theme.fg.primary
37
- verticalAlignment: Text.AlignBottom
38
}
39
}
40
41
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/qt.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/qt.cpp
Changed
25
1
2
VLCDialogModel::killInstance();
3
DialogErrorModel::killInstance();
4
5
+ //destroy MainCtx, Compositor shouldn't not use MainCtx after `unloadGUI`
6
+ if (p_intf->p_mi) {
7
+ delete p_intf->p_mi;
8
+ p_intf->p_mi = nullptr;
9
+ }
10
+
11
if ( p_intf->p_compositor && cleanupReason == CLEANUP_APP_TERMINATED)
12
{
13
p_intf->p_compositor.reset();
14
15
- //destroy MainCtx
16
- delete p_intf->p_mi;
17
- p_intf->p_mi = nullptr;
18
-
19
delete p_intf->mainSettings;
20
p_intf->mainSettings = nullptr;
21
-
22
}
23
24
/* Destroy the main playlist controller */
25
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/style/VLCStyle.qml -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/style/VLCStyle.qml
Changed
10
1
2
3
readonly property int artistBanner_height: MainCtx.dp(200, scale)
4
5
- readonly property int playlistDelegate_verticalPadding: MainCtx.dp(6, scale)
6
-
7
//global application size, updated by the root widget
8
property int appWidth: 0
9
property int appHeight: 0
10
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/gui/qt/widgets/native/roundimage.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/gui/qt/widgets/native/roundimage.cpp
Changed
19
1
2
if (m_imageResponse)
3
{
4
if (m_cancelOnDelete)
5
+ {
6
+ disconnect(m_imageResponse, &QQuickImageResponse::finished, this, &RoundImageRequest::handleImageResponseFinished);
7
+ connect(m_imageResponse, &QQuickImageResponse::finished, m_imageResponse, &QObject::deleteLater);
8
m_imageResponse->cancel();
9
-
10
- m_imageResponse->deleteLater();
11
+ }
12
+ else
13
+ {
14
+ m_imageResponse->deleteLater();
15
+ }
16
}
17
g_imageCache.removeRequest(m_key);
18
}
19
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/video_chroma/meson.build -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/video_chroma/meson.build
Changed
44
1
2
3
## Tests
4
5
-if host_system != 'windows' # can't use alarm
6
# Chroma copy SSE test
7
-chroma_copy_sse_test = executable(
8
- 'chroma_copy_sse_test',
9
- chroma_copy_lib_srcs,
10
- c_args: '-DCOPY_TEST',
11
- dependencies: libvlccore_dep,
12
- include_directories: vlc_include_dirs
13
-)
14
-test('chroma_copy_sse', chroma_copy_sse_test, suite: 'video_chroma')
15
+vlc_tests += {
16
+ 'name': 'chroma_copy_sse_test',
17
+ 'sources': chroma_copy_lib_srcs,
18
+ 'suite' : 'video_chroma',
19
+ 'c_args': '-DCOPY_TEST',
20
+ 'link_with': vlc_libcompat,
21
+ 'dependencies': libvlccore_dep,
22
+ 'include_directories': vlc_include_dirs
23
+}
24
25
# Chroma copy test
26
-chroma_copy_test = executable(
27
- 'chroma_copy_test',
28
- chroma_copy_lib_srcs,
29
- c_args: '-DCOPY_TEST', '-DCOPY_TEST_NOOPTIM',
30
- dependencies: libvlccore_dep,
31
- include_directories: vlc_include_dirs
32
-)
33
-test('chroma_copy', chroma_copy_test, suite: 'video_chroma')
34
-endif
35
+vlc_tests += {
36
+ 'name': 'chroma_copy_test',
37
+ 'sources': chroma_copy_lib_srcs,
38
+ 'suite' : 'video_chroma',
39
+ 'c_args': '-DCOPY_TEST', '-DCOPY_TEST_NOOPTIM',
40
+ 'link_with': vlc_libcompat,
41
+ 'dependencies': libvlccore_dep,
42
+ 'include_directories': vlc_include_dirs
43
+}
44
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/modules/video_output/win32/direct3d11.cpp -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/modules/video_output/win32/direct3d11.cpp
Changed
14
1
2
picture_t *quad_picture = (*region)i;
3
d3d11_quad_t *quad;
4
if (quad_picture != NULL)
5
+ {
6
quad = static_cast<d3d11_quad_t*>(quad_picture->p_sys);
7
+
8
+ video_format_Clean(&quad->quad_fmt);
9
+ video_format_Copy(&quad->quad_fmt, &r->p_picture->format);
10
+ }
11
else
12
{
13
d3d11_quad_t *d3dquad = new (std::nothrow) d3d11_quad_t;
14
_service:obs_scm:vlc-beta-20241021.e009cc4da6.obscpio/src/preparser/fetcher.c -> _service:obs_scm:vlc-beta-20241028.0450706563.obscpio/src/preparser/fetcher.c
Changed
55
1
2
else if (executor == fetcher->executor_network)
3
task->runnable.run = RunSearchNetwork;
4
else
5
- {
6
- assert(executor == fetcher->executor_downloader);
7
task->runnable.run = RunDownloader;
8
- }
9
10
task->runnable.userdata = task;
11
12
13
return NULL;
14
}
15
16
- fetcher->executor_downloader = vlc_executor_New(max_threads);
17
- if (!fetcher->executor_downloader)
18
- {
19
- if (fetcher->executor_network)
20
- vlc_executor_Delete(fetcher->executor_network);
21
- if (fetcher->executor_local)
22
- vlc_executor_Delete(fetcher->executor_local);
23
- free(fetcher);
24
- return NULL;
25
- }
26
}
27
else
28
- {
29
fetcher->executor_network = NULL;
30
- fetcher->executor_downloader = NULL;
31
+
32
+ fetcher->executor_downloader = vlc_executor_New(max_threads);
33
+ if (!fetcher->executor_downloader)
34
+ {
35
+ if (fetcher->executor_network)
36
+ vlc_executor_Delete(fetcher->executor_network);
37
+ if (fetcher->executor_local)
38
+ vlc_executor_Delete(fetcher->executor_local);
39
+ free(fetcher);
40
+ return NULL;
41
}
42
43
fetcher->owner = owner;
44
45
vlc_executor_Delete(fetcher->executor_local);
46
if (fetcher->executor_network)
47
vlc_executor_Delete(fetcher->executor_network);
48
- if (fetcher->executor_downloader)
49
- vlc_executor_Delete(fetcher->executor_downloader);
50
+ assert(fetcher->executor_downloader);
51
+ vlc_executor_Delete(fetcher->executor_downloader);
52
53
vlc_dictionary_clear( &fetcher->album_cache, FreeCacheEntry, NULL );
54
free( fetcher );
55
_service:obs_scm:vlc-beta.obsinfo
Changed
9
1
2
name: vlc-beta
3
-version: 20241021.e009cc4da6
4
-mtime: 1729484057
5
-commit: e009cc4da6689f648d5fe32d500b0a6f16adeeb8
6
+version: 20241028.0450706563
7
+mtime: 1730092262
8
+commit: 0450706563e262c5728ff159241ec276fc359969
9