diff options
-rw-r--r-- | xbmc/Application.cpp | 7 | ||||
-rw-r--r-- | xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 13 | ||||
-rw-r--r-- | xbmc/interfaces/legacy/ListItem.h | 2 |
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} |