[vlc-commits] [Git][videolan/vlc][master] 2 commits: services_discovery: fix podcast

Steve Lhomme (@robUx4) gitlab at videolan.org
Sat May 23 20:56:23 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
20f5209f by Wassim Lalaoui at 2026-05-23T20:44:14+00:00
services_discovery: fix podcast

- - - - -
4f465d43 by Wassim Lalaoui at 2026-05-23T20:44:14+00:00
qt: fix playlist not considered as "browsable"

- - - - -


5 changed files:

- modules/gui/qt/network/qml/BrowseDeviceView.qml
- modules/gui/qt/network/qml/BrowseTreeDisplay.qml
- modules/gui/qt/network/qml/NetworkGridItem.qml
- modules/gui/qt/network/qml/NetworkThumbnailItem.qml
- modules/services_discovery/podcast.c


Changes:

=====================================
modules/gui/qt/network/qml/BrowseDeviceView.qml
=====================================
@@ -140,7 +140,9 @@ FocusScope {
 
         const type = data.type
 
-        if (type === NetworkMediaModel.TYPE_DIRECTORY || type === NetworkMediaModel.TYPE_NODE)
+        if (type === NetworkMediaModel.TYPE_DIRECTORY
+                || type === NetworkMediaModel.TYPE_NODE
+                || type === NetworkMediaModel.TYPE_PLAYLIST)
             browse(data.tree, Qt.TabFocusReason)
         else
             playAt(index);
@@ -155,7 +157,9 @@ FocusScope {
     function onDoubleClicked(model, index) {
         const type = model.type
 
-        if (type === NetworkMediaModel.TYPE_NODE || type === NetworkMediaModel.TYPE_DIRECTORY)
+        if (type === NetworkMediaModel.TYPE_NODE
+                || type === NetworkMediaModel.TYPE_DIRECTORY
+                || type === NetworkMediaModel.TYPE_PLAYLIST)
             browse(model.tree, Qt.MouseFocusReason)
         else
             playAt(index);


=====================================
modules/gui/qt/network/qml/BrowseTreeDisplay.qml
=====================================
@@ -90,7 +90,8 @@ MainViewLoader {
         } else {
             const data = model.getDataAt(index)
             if (data.type === NetworkMediaModel.TYPE_DIRECTORY
-                    || data.type === NetworkMediaModel.TYPE_NODE)  {
+                    || data.type === NetworkMediaModel.TYPE_NODE
+                    || data.type === NetworkMediaModel.TYPE_PLAYLIST)  {
                 browse(data.tree, Qt.TabFocusReason)
             } else {
                 playAt(index)
@@ -187,7 +188,9 @@ MainViewLoader {
                 }
 
                 onItemDoubleClicked: {
-                    if (model.type === NetworkMediaModel.TYPE_NODE || model.type === NetworkMediaModel.TYPE_DIRECTORY)
+                    if (model.type === NetworkMediaModel.TYPE_NODE
+                            || model.type === NetworkMediaModel.TYPE_DIRECTORY
+                            || model.type === NetworkMediaModel.TYPE_PLAYLIST)
                         browse(model.tree, Qt.MouseFocusReason)
                     else
                         playAt(index)


=====================================
modules/gui/qt/network/qml/NetworkGridItem.qml
=====================================
@@ -37,6 +37,7 @@ Widgets.GridItem {
         switch (model.type) {
             case NetworkMediaModel.TYPE_NODE:
             case NetworkMediaModel.TYPE_DIRECTORY:
+            case NetworkMediaModel.TYPE_PLAYLIST:
                 return false
             default:
                 return implicitPlayCoverShowPlay
@@ -69,7 +70,9 @@ Widgets.GridItem {
         const mrl = model.mrl?.toString() || ""
         const type = model.type
 
-        if ((type === NetworkMediaModel.TYPE_NODE || type === NetworkMediaModel.TYPE_DIRECTORY)
+        if ((type === NetworkMediaModel.TYPE_NODE
+            || type === NetworkMediaModel.TYPE_DIRECTORY
+            || type === NetworkMediaModel.TYPE_PLAYLIST)
             && (mrl === "vlc://nop"))
             return defaultTxt
 


=====================================
modules/gui/qt/network/qml/NetworkThumbnailItem.qml
=====================================
@@ -34,6 +34,7 @@ Widgets.TableRowDelegate {
                                            && !!rowModel
                                            && (rowModel.type !== NetworkMediaModel.TYPE_NODE)
                                            && (rowModel.type !== NetworkMediaModel.TYPE_DIRECTORY)
+                                           && (rowModel.type !== NetworkMediaModel.TYPE_PLAYLIST)
 
     property alias artworkTextureProvider: cover.textureProvider
 


=====================================
modules/services_discovery/podcast.c
=====================================
@@ -107,7 +107,7 @@ static void SaveUrls( services_discovery_t *p_sd );
  *****************************************************************************/
 static int Open( vlc_object_t *p_this )
 {
-    if( strcmp( vlc_object_typename(vlc_object_parent(p_this)), "playlist" ) )
+    if( strcmp( vlc_object_typename(vlc_object_parent(p_this)), "media-source-provider" ) )
         return VLC_EGENERIC; /* FIXME: support LibVLC SD too! */
 
     services_discovery_t *p_sd = ( services_discovery_t* )p_this;
@@ -180,8 +180,7 @@ static void *Run( void *data )
     services_discovery_t *p_sd = data;
     services_discovery_sys_t *p_sys  = p_sd->p_sys;
 
-    char *psz_urls = var_GetNonEmptyString( vlc_object_parent(p_sd),
-                                            "podcast-urls" );
+    char *psz_urls = var_InheritString( p_sd, "podcast-urls" );
     ParseUrls( p_sd, psz_urls );
     free( psz_urls );
 
@@ -251,8 +250,7 @@ static void ParseUrls( services_discovery_t *p_sd, char *psz_urls )
             TAB_APPEND( i_new_urls, ppsz_new_urls, strdup( psz_urls ) );
 
             input_item_t *p_input;
-            p_input = input_item_New( psz_urls, psz_urls );
-            input_item_AddOption( p_input, "demux=directory", VLC_INPUT_OPTION_TRUSTED );
+            p_input = input_item_NewDirectory( psz_urls, psz_urls, ITEM_NET );
 
             TAB_APPEND( i_new_items, pp_new_items, p_input );
             services_discovery_AddItem( p_sd, p_input );
@@ -315,8 +313,8 @@ static void ParseRequest( services_discovery_t *p_sd, char *psz_request )
                         strdup( psz_request ) );
 
             input_item_t *p_input;
-            p_input = input_item_New( psz_request, psz_request );
-            input_item_AddOption( p_input, "demux=directory", VLC_INPUT_OPTION_TRUSTED );
+            p_input = input_item_NewDirectory( psz_request, psz_request,
+                                               ITEM_NET );
 
             TAB_APPEND( p_sys->i_items, p_sys->pp_items, p_input );
             services_discovery_AddItem( p_sd, p_input );



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/d0be77cd2c944e944220a04b2588bad08dbe627e...4f465d43d84c53469c493737402bd2a44a2b6fb6

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/d0be77cd2c944e944220a04b2588bad08dbe627e...4f465d43d84c53469c493737402bd2a44a2b6fb6
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list