aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/Application.cpp7
-rw-r--r--xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp13
-rw-r--r--xbmc/interfaces/legacy/ListItem.h2
3 files changed, 20 insertions, 2 deletions
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 7ee1ccb577..d053d60cdd 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -2692,9 +2692,12 @@ bool CApplication::OnMessage(CGUIMessage& message)
m_itemCurrentFile, param);
// we don't want a busy dialog when switching channels
- if (!m_itemCurrentFile->IsLiveTV())
+ if (!m_itemCurrentFile->IsLiveTV() ||
+ (!m_appPlayer.IsPlayingVideo() && !m_appPlayer.IsPlayingAudio()))
{
- CGUIDialogBusy* dialog = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIDialogBusy>(WINDOW_DIALOG_BUSY);
+ CGUIDialogBusy* dialog =
+ CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIDialogBusy>(
+ WINDOW_DIALOG_BUSY);
if (dialog && !dialog->IsDialogRunning())
dialog->WaitOnEvent(m_playerEvent);
}
diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
index 22d2a69289..5bbb67bf87 100644
--- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
@@ -920,6 +920,19 @@ AVDictionary* CDVDDemuxFFmpeg::GetFFMpegOptionsFromInput()
av_dict_set(&options, "http_proxy", urlStream.str().c_str(), 0);
}
+ // rtsp options
+ if (url.IsProtocol("rtsp"))
+ {
+ CVariant transportProp{m_pInput->GetProperty("rtsp_transport")};
+ if (!transportProp.isNull() &&
+ (transportProp == "tcp" || transportProp == "udp" || transportProp == "udp_multicast"))
+ {
+ CLog::LogF(LOGDEBUG, "GetFFMpegOptionsFromInput() Forcing rtsp transport protocol to '{}'",
+ transportProp.asString());
+ av_dict_set(&options, "rtsp_transport", transportProp.asString().c_str(), 0);
+ }
+ }
+
// rtmp options
if (url.IsProtocol("rtmp") || url.IsProtocol("rtmpt") ||
url.IsProtocol("rtmpe") || url.IsProtocol("rtmpte") ||
diff --git a/xbmc/interfaces/legacy/ListItem.h b/xbmc/interfaces/legacy/ListItem.h
index 72813d7cf6..82513e0f45 100644
--- a/xbmc/interfaces/legacy/ListItem.h
+++ b/xbmc/interfaces/legacy/ListItem.h
@@ -1006,11 +1006,13 @@ namespace XBMCAddon
/// | TotalTime | float (7848.0) - Set the total time of the item in seconds
/// | OverrideInfotag | string - "true", "false" - When true will override all info from previous listitem
/// | ForceResolvePlugin | string - "true", "false" - When true ensures that a plugin will always receive callbacks to resolve paths (useful for playlist cases)
+ /// | rtsp_transport | string - "udp", "udp_multicast" or "tcp" - Allow to force the rtsp transport mode for rtsp streams
///
///-----------------------------------------------------------------------
/// @python_v20 OverrideInfotag property added
/// @python_v20 **ResumeTime** and **TotalTime** deprecated. Use **InfoTagVideo.setResumePoint()** instead.
/// @python_v20 ForceResolvePlugin property added
+ /// @python_v20 rtsp_transport property added
///
/// **Example:**
/// ~~~~~~~~~~~~~{.py}