Merge pull request #3824 from FernetMenta/aefixes
authorPeter Frühberger <Peter.Fruehberger@gmail.com>
Sat, 14 Dec 2013 15:28:25 +0000 (07:28 -0800)
committerPeter Frühberger <Peter.Fruehberger@gmail.com>
Sat, 14 Dec 2013 15:28:25 +0000 (07:28 -0800)
ActiveAE fixes

xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.h
xbmc/cores/VideoRenderers/BaseRenderer.cpp
xbmc/cores/VideoRenderers/WinRenderer.cpp
xbmc/filesystem/CurlFile.cpp
xbmc/filesystem/CurlFile.h
xbmc/network/upnp/UPnPInternal.cpp

index 66056ed..a488b92 100644 (file)
@@ -1474,7 +1474,7 @@ void CActiveAE::DrainSink()
   }
 }
 
-bool CActiveAE::IsSinkCompatible(const AEAudioFormat format, const std::string &device)
+bool CActiveAE::IsSinkCompatible(const AEAudioFormat &format, const std::string &device)
 {
   bool compatible = false;
   SinkConfig config;
index 5960f21..20c8591 100644 (file)
@@ -250,7 +250,7 @@ protected:
   bool InitSink();
   void DrainSink();
   void UnconfigureSink();
-  bool IsSinkCompatible(const AEAudioFormat format, const std::string &device);
+  bool IsSinkCompatible(const AEAudioFormat &format, const std::string &device);
   void Start();
   void Dispose();
   void LoadSettings();
index d175e7d..a592e69 100644 (file)
@@ -76,7 +76,7 @@ void CActiveAESink::Dispose()
   }
 }
 
-bool CActiveAESink::IsCompatible(const AEAudioFormat format, const std::string &device)
+bool CActiveAESink::IsCompatible(const AEAudioFormat &format, const std::string &device)
 {
   if (!m_sink)
     return false;
index 7752a8a..807567d 100644 (file)
@@ -101,7 +101,7 @@ protected:
   void GetDeviceFriendlyName(std::string &device);
   void OpenSink();
   void ReturnBuffers();
-  bool IsCompatible(const AEAudioFormat format, const std::string &device);
+  bool IsCompatible(const AEAudioFormat &format, const std::string &device);
 
   unsigned int OutputSamples(CSampleBuffer* samples);
   void ConvertInit(CSampleBuffer* samples);
index 40a2a80..9814f53 100644 (file)
@@ -57,6 +57,8 @@ CBaseRenderer::CBaseRenderer()
 
   m_RenderUpdateCallBackFn = NULL;
   m_RenderUpdateCallBackCtx = NULL;
+  m_RenderFeaturesCallBackFn = NULL;
+  m_RenderFeaturesCallBackCtx = NULL;
 }
 
 CBaseRenderer::~CBaseRenderer()
index 525027d..7c4ac0d 100644 (file)
@@ -93,6 +93,7 @@ CWinRenderer::CWinRenderer()
   m_clearColour = 0;
   m_format = RENDER_FMT_NONE;
   m_processor = NULL;
+  m_neededBuffers = 0;
 }
 
 CWinRenderer::~CWinRenderer()
index 2197c44..aee94c4 100644 (file)
@@ -772,6 +772,8 @@ void CCurlFile::ParseAndCorrectUrl(CURL &url2)
           m_seekable = false;
         else if (name.Equals("Accept-Charset"))
           SetAcceptCharset(value);
+        else if (name.Equals("HttpProxy"))
+          SetStreamProxy(value, PROXY_HTTP);
         else
           SetRequestHeader(name, value);
       }
@@ -784,6 +786,17 @@ void CCurlFile::ParseAndCorrectUrl(CURL &url2)
     m_url = url2.Get();
 }
 
+void CCurlFile::SetStreamProxy(const CStdString &proxy, ProxyType type)
+{
+  CURL url(proxy);
+  m_proxy = url.GetWithoutUserDetails();
+  m_proxyuserpass = url.GetUserName();
+  if (!url.GetPassWord().empty())
+    m_proxyuserpass += ":" + url.GetPassWord();
+  m_proxytype = type;
+  CLog::Log(LOGDEBUG, "Overriding proxy from URL parameter: %s, type %d", m_proxy.c_str(), proxyType2CUrlProxyType[m_proxytype]);
+}
+
 bool CCurlFile::Post(const CStdString& strURL, const CStdString& strPostData, CStdString& strHTML)
 {
   m_postdata = strPostData;
index e16c255..ead7662 100644 (file)
@@ -74,6 +74,7 @@ namespace XFILE
       void SetProxy(CStdString &proxy)                           { m_proxy = proxy; }
       void SetProxyUserPass(CStdString &proxyuserpass)           { m_proxyuserpass = proxyuserpass; }
       void SetProxyType(ProxyType proxytype)                     { m_proxytype = proxytype; }
+      void SetStreamProxy(const CStdString &proxy, ProxyType type);
       void SetCustomRequest(CStdString &request)                 { m_customrequest = request; }
       void UseOldHttpVersion(bool bUse)                          { m_useOldHttpVersion = bUse; }
       void SetContentEncoding(CStdString encoding)               { m_contentencoding = encoding; }
index 4e3100d..96acecb 100644 (file)
@@ -631,7 +631,7 @@ PopulateTagFromObject(CVideoInfoTag&         tag,
                       PLT_MediaItemResource* resource /* = NULL */)
 {
     CDateTime date;
-    date.SetFromDateString((const char*)object.m_Date);
+    date.SetFromW3CDate((const char*)object.m_Date);
 
     if(!object.m_Recorded.program_title.IsEmpty())
     {