aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorksooo <3226626+ksooo@users.noreply.github.com>2023-12-27 13:35:17 +0100
committerksooo <3226626+ksooo@users.noreply.github.com>2023-12-27 13:35:17 +0100
commit59aa086700ee6bc6c0d88ac72e0ae525e3126aca (patch)
tree6db431202ad6c0a9038763ca98ccb77c422d8b14
parent0ac3c88709d79268209c4f2a777ca04fcc1c40dd (diff)
[video] Fix no video information available when playing strm files, although they were added to the video library.
-rw-r--r--xbmc/application/Application.cpp5
-rw-r--r--xbmc/video/windows/GUIWindowVideoBase.cpp4
2 files changed, 6 insertions, 3 deletions
diff --git a/xbmc/application/Application.cpp b/xbmc/application/Application.cpp
index 0c195e01fa..720e473cc4 100644
--- a/xbmc/application/Application.cpp
+++ b/xbmc/application/Application.cpp
@@ -2394,8 +2394,9 @@ bool CApplication::PlayFile(CFileItem item, const std::string& player, bool bRes
if (videoInfoTagPath.find("removable://") == 0 || item.IsVideoDb())
path = videoInfoTagPath;
- if (!item.HasVideoInfoTag())
- dbs.LoadVideoInfo(path, *item.GetVideoInfoTag());
+ // Note that we need to load the tag from database also if the item already has a tag,
+ // because for example the (full) video info for strm files will be loaded here.
+ dbs.LoadVideoInfo(path, *item.GetVideoInfoTag());
if (item.HasProperty("savedplayerstate"))
{
diff --git a/xbmc/video/windows/GUIWindowVideoBase.cpp b/xbmc/video/windows/GUIWindowVideoBase.cpp
index b7f43a7132..788885cd64 100644
--- a/xbmc/video/windows/GUIWindowVideoBase.cpp
+++ b/xbmc/video/windows/GUIWindowVideoBase.cpp
@@ -1077,8 +1077,10 @@ bool CGUIWindowVideoBase::PlayItem(const std::shared_ptr<CFileItem>& pItem,
CServiceBroker::GetPlaylistPlayer().Play();
return true;
}
- else if (pItem->IsPlayList())
+ else if (pItem->IsPlayList() && !pItem->IsType(".strm"))
{
+ // Note: strm files being somehow special playlists need to be handled in OnPlay*Media
+
// load the playlist the old way
LoadPlayList(pItem->GetDynPath(), PLAYLIST::TYPE_VIDEO);
return true;