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
@@ -1064,9 +1064,13 @@
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
@@ -5,6 +5,11 @@
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
@@ -115,14 +115,14 @@
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
@@ -27,6 +27,7 @@
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
@@ -389,7 +389,7 @@
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
@@ -156,7 +156,7 @@
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
@@ -203,7 +203,7 @@
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
@@ -272,7 +272,16 @@
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
@@ -282,7 +291,6 @@
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
@@ -325,6 +333,7 @@
28
     m_taskbarWidget.reset();
29
 #endif
30
     m_interfaceWindowHandler.reset();
31
+    m_mainCtx = nullptr;
32
 }
33
 
34
 void CompositorVideo::commonIntfDestroy()
35
@@ -376,6 +385,6 @@
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
@@ -187,7 +187,6 @@
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
@@ -106,6 +106,8 @@
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
@@ -213,19 +215,18 @@
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
@@ -303,6 +304,7 @@
33
 
34
 void CompositorDirectComposition::unloadGUI()
35
 {
36
+    m_acrylicSurface.reset();
37
     m_interfaceWindowHandler.reset();
38
     m_quickView.reset();
39
     commonGUIDestroy();
40
@@ -393,7 +395,7 @@
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
@@ -34,7 +34,6 @@
2
 
3
 class MainCtx;
4
 class WinTaskbarWidget;
5
-
6
 class QQuickView;
7
 
8
 class IDCompositionVisual;
9
@@ -43,6 +42,8 @@
10
 
11
 namespace vlc {
12
 
13
+class CompositorDCompositionAcrylicSurface;
14
+
15
 class CompositorDirectComposition : public CompositorVideo
16
 {
17
     Q_OBJECT
18
@@ -96,7 +97,7 @@
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
@@ -209,7 +209,7 @@
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
@@ -211,7 +211,7 @@
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
@@ -100,7 +100,7 @@
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
@@ -7,7 +7,7 @@
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
@@ -64,7 +64,7 @@
2
 
3
     hoverEnabled: true
4
 
5
-    verticalPadding: VLCStyle.playlistDelegate_verticalPadding
6
+    verticalPadding: VLCStyle.margin_xxxsmall
7
 
8
     leftPadding: VLCStyle.margin_normal
9
 
10
@@ -200,29 +200,25 @@
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
@@ -1145,17 +1145,18 @@
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
@@ -232,8 +232,6 @@
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
@@ -229,9 +229,15 @@
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
@@ -129,24 +129,24 @@
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
@@ -1662,7 +1662,12 @@
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
@@ -94,10 +94,7 @@
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
@@ -460,21 +457,19 @@
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
@@ -533,8 +528,8 @@
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
@@ -1,4 +1,4 @@
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