Merge pull request #5014 from Montellese/binary_addons
authorSascha Montellese <sascha.montellese@gmail.com>
Fri, 1 Aug 2014 08:21:23 +0000 (10:21 +0200)
committerSascha Montellese <sascha.montellese@gmail.com>
Fri, 1 Aug 2014 08:21:23 +0000 (10:21 +0200)
cmake: common addons depends buildsystem

25 files changed:
addons/metadata.album.universal/addon.xml
addons/metadata.artists.universal/addon.xml
addons/metadata.common.allmusic.com/addon.xml
addons/metadata.common.amazon.de/addon.xml
addons/metadata.common.fanart.tv/addon.xml
addons/metadata.common.htbackdrops.com/addon.xml
addons/metadata.common.imdb.com/addon.xml
addons/metadata.common.last.fm/addon.xml
addons/metadata.common.musicbrainz.org/addon.xml
addons/metadata.common.theaudiodb.com/addon.xml
addons/metadata.common.themoviedb.org/addon.xml
addons/metadata.musicvideos.theaudiodb.com/addon.xml
addons/metadata.themoviedb.org/addon.xml
addons/skin.confluence/720p/MyPVRSearch.xml
addons/skin.confluence/720p/MyPVRTimers.xml
addons/skin.confluence/720p/MyWeather.xml
project/VS2010Express/XBMC.vcxproj
project/Win32BuildSetup/buildpvraddons.bat
tools/Linux/xbmc.sh.in
tools/depends/target/xbmc-pvr-addons/Makefile
version.txt
xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp
xbmc/cores/omxplayer/OMXVideo.cpp
xbmc/pvr/timers/PVRTimers.cpp
xbmc/pvr/windows/GUIWindowPVRBase.cpp

index 3a0527a..cf931d0 100644 (file)
@@ -5,11 +5,11 @@
        provider-name="Olympia, Team XBMC">
   <requires>
     <import addon="xbmc.metadata" version="2.1.0"/>
-    <import addon="metadata.common.allmusic.com" version="2.5.2"/>
-    <import addon="metadata.common.musicbrainz.org" version="1.2.3"/>
-    <import addon="metadata.common.fanart.tv" version="2.1.2"/>
-    <import addon="metadata.common.amazon.de" version="1.0.0"/>
-    <import addon="metadata.common.theaudiodb.com" version="1.7.0"/>
+    <import addon="metadata.common.allmusic.com" version="3.0.2"/>
+    <import addon="metadata.common.amazon.de" version="1.0.2"/>
+    <import addon="metadata.common.fanart.tv" version="3.1.0"/>
+    <import addon="metadata.common.musicbrainz.org" version="2.0.2"/>
+    <import addon="metadata.common.theaudiodb.com" version="1.7.3"/>
   </requires>
   <extension point="xbmc.metadata.scraper.albums"
              language="en"
index 555e98b..8098246 100644 (file)
@@ -5,11 +5,11 @@
        provider-name="Olympia, Team XBMC">
   <requires>
     <import addon="xbmc.metadata" version="2.1.0"/>
-    <import addon="metadata.common.allmusic.com" version="3.0.0"/>
-    <import addon="metadata.common.musicbrainz.org" version="1.3.0"/>
-    <import addon="metadata.common.fanart.tv" version="2.1.2"/>
-    <import addon="metadata.common.theaudiodb.com" version="1.5.0"/>
-    <import addon="metadata.common.htbackdrops.com" version="1.3.0"/>
+    <import addon="metadata.common.allmusic.com" version="3.0.2"/>
+    <import addon="metadata.common.fanart.tv" version="3.1.0"/>
+    <import addon="metadata.common.htbackdrops.com" version="1.3.2"/>
+    <import addon="metadata.common.musicbrainz.org" version="2.0.2"/>
+    <import addon="metadata.common.theaudiodb.com" version="1.7.3"/>
   </requires>
   <extension point="xbmc.metadata.scraper.artists"
              language="en"
index 94ad561..bfcb63c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.allmusic.com"
-       name="AllMusic"
+       name="AllMusic Scraper Library"
         version="3.0.2"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="allmusic.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на музикална инф. от AllMusic</summary>
     <summary lang="en">AllMusic Music Scraper Library</summary>
     <summary lang="de">Musik-Scraper für AllMusic.com</summary>
index dda6587..8b9eec1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.amazon.de"
-       name="Amazon.de"
+       name="Amazon.de Scraper Library"
        version="1.0.2"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="amazonde.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="en">amazon.de Scraper Library</summary>
     <description lang="en">Download Music information from amazon.de</description>
   </extension>
index 8f05b79..34e44e2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.fanart.tv"
-       name="fanart.tv"
+       name="fanart.tv Scraper Library"
        version="3.1.0"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="fanarttv.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на инф. от fanart.tv</summary>
     <summary lang="en">fanart.tv Scraper Library</summary>
     <summary lang="de">Scraper für Hintergründe von fanart.tv</summary>
index 06f8910..5afafdf 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.htbackdrops.com"
-       name="HTBackdrops"
+       name="HTBackdrops Scraper Library"
        version="1.3.2"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="htbackdrops.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на инф. от HTBackdrops</summary>
     <summary lang="en">HTBackdrops Scraper Library</summary>
     <summary lang="de">Scraper für Hintergründe von HTBackdrops</summary>
index 99fe531..d88bbbe 100644 (file)
@@ -10,7 +10,6 @@
              library="imdb.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на инф. от IMDB</summary>
     <summary lang="en">IMDB Scraper Library</summary>
     <summary lang="fi">IMDB elokuvatietojen lataaja</summary>
index ed1fb4a..951fb6d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.last.fm"
-       name="Last.FM"
+       name="Last.FM Scraper Library"
        version="1.6.1"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="lastfm.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на инф. от LastFM</summary>
     <summary lang="en">LastFM Scraper Library</summary>
     <summary lang="de">Musik-Scraper für LastFM</summary>
index bf8801c..1cc1b60 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.musicbrainz.org"
-       name="musicbrainz"
+       name="MusicBrainz Scraper Library"
         version="2.0.2"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="musicbrainz.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на музикална инф. от MusicBrainz</summary>
     <summary lang="en">MusicBrainz Music Scraper Library</summary>
     <summary lang="de">Musik-Scraper für musicbrainz.org</summary>
index 547db5b..1373f41 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="metadata.common.theaudiodb.com"
-       name="TheAudioDb Common Scraper Functions"
+       name="TheAudioDb Scraper Library"
        version="1.7.3"
        provider-name="Team XBMC">
   <requires>
@@ -10,7 +10,6 @@
              library="tadb.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на музикална инф. от TheAudioDb</summary>
     <summary lang="en">TheAudioDb Music Scraper Library</summary>
     <summary lang="de">Musik-Scraper für TheAudioDb.org</summary>
index 55f6e5b..2c5e13a 100644 (file)
@@ -10,7 +10,6 @@
              library="tmdb.xml"/>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <minversion>20000</minversion>
     <summary lang="bg">Библиотека за сваляне на инф. от TMDb</summary>
     <summary lang="en">TMDb Scraper Library</summary>
     <summary lang="es">Scraper de peliculas de TMDb</summary>
index 208140f..7c7b51a 100644 (file)
@@ -5,8 +5,8 @@
        provider-name="Team XBMC">
   <requires>
     <import addon="xbmc.metadata" version="2.1.0"/>
-    <import addon="metadata.common.theaudiodb.com" version="1.6.0"/>
-    <import addon="metadata.common.fanart.tv" version="2.1.2"/>
+    <import addon="metadata.common.fanart.tv" version="3.1.0"/>
+    <import addon="metadata.common.theaudiodb.com" version="1.7.3"/>
   </requires>
   <extension point="xbmc.metadata.scraper.musicvideos"
              language="en"
     <website></website>
     <source></source>
     <email></email>
-    <forum></forum>
+    <forum>http://forum.xbmc.org/showthread.php?tid=136105</forum>
     <license>GPL v2.0</license>
   </extension>
 </addon>
index 5de97d0..06f4dc8 100644 (file)
@@ -5,10 +5,10 @@
        provider-name="Team XBMC">
   <requires>
     <import addon="xbmc.metadata" version="2.1.0"/>
-    <import addon="metadata.common.themoviedb.org" version="2.8.0"/>
-    <import addon="metadata.common.hdtrailers.net" version="1.0.7"/>
-    <import addon="metadata.common.imdb.com" version="2.6.0"/>
-    <import addon="plugin.video.youtube" version="2.9.1" optional="true"/>
+    <import addon="metadata.common.imdb.com" version="2.7.8"/>
+    <import addon="metadata.common.hdtrailers.net" version="2.0.5"/>
+    <import addon="metadata.common.themoviedb.org" version="2.12.1"/>
+    <import addon="plugin.video.youtube" version="4.4.10" optional="true"/>
   </requires>
   <extension point="xbmc.metadata.scraper.movies"
              language="en"
index 53991b3..b3d6370 100644 (file)
                                        <texturesliderbarfocus border="0,14,0,14">ScrollBarV_bar_focus.png</texturesliderbarfocus>
                                        <textureslidernib>ScrollBarNib.png</textureslidernib>
                                        <textureslidernibfocus>ScrollBarNib.png</textureslidernibfocus>
-                                       <onleft>16</onleft>
+                                       <onleft>50</onleft>
                                        <onright>104</onright>
                                        <showonepage>false</showonepage>
                                        <orientation>vertical</orientation>
index 02a9cc7..8e55c95 100644 (file)
                                        <texturesliderbarfocus border="0,14,0,14">ScrollBarV_bar_focus.png</texturesliderbarfocus>
                                        <textureslidernib>ScrollBarNib.png</textureslidernib>
                                        <textureslidernibfocus>ScrollBarNib.png</textureslidernibfocus>
-                                       <onleft>11</onleft>
+                                       <onleft>50</onleft>
                                        <onright>103</onright>
                                        <showonepage>false</showonepage>
                                        <orientation>vertical</orientation>
index 663c73b..030686f 100644 (file)
                                        <control type="label">
                                                <description>current temp Value Units</description>
                                                <left>200</left>
-                                               <top>195</top>
+                                               <top>206</top>
                                                <width>100</width>
                                                <height>40</height>
                                                <font>font16</font>
                                                <align>left</align>
                                                <aligny>top</aligny>
-                                               <label>$INFO[System.TemperatureUnits]</label>
+                                               <label>[B]$INFO[System.TemperatureUnits][/B]</label>
                                                <textcolor>white</textcolor>
                                                <shadowcolor>black</shadowcolor>
                                        </control>
index 41af74d..d193c3e 100644 (file)
     <CustomBuild Include="..\..\version.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CALL ..\..\tools\windows\CompileInfo.bat</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating CompileInfo.cpp</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\xbmc\CompileInfo.cpp</Outputs>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\xbmc\CompileInfo.cpp;..\..\xbmc\win32\XBMC_PC.rc</Outputs>
       <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CALL ..\..\tools\windows\CompileInfo.bat</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating CompileInfo.cpp</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\xbmc\CompileInfo.cpp</Outputs>
index c3b8662..81380b2 100644 (file)
@@ -9,7 +9,7 @@ SET DEPS_DIR=..\BuildDependencies
 SET TMP_DIR=%DEPS_DIR%\tmp
 
 SET LIBNAME=xbmc-pvr-addons
-SET VERSION=36eba34cabddce47878872b199fd3f13aafb8125
+SET VERSION=1832e602ce6d6ce43e2abbb497879beb944ab225
 SET SOURCE=%LIBNAME%
 SET GIT_URL=git://github.com/opdenkamp/%LIBNAME%.git
 SET SOURCE_DIR=%TMP_DIR%\%SOURCE%
index db99670..14a082b 100644 (file)
@@ -39,6 +39,11 @@ do
     esac
 done
 
+command_exists()
+{
+  command -v $1 >/dev/null 2>&1
+}
+
 single_stacktrace()
 {
   # core filename is either "core.$PID" or "core"
@@ -68,7 +73,7 @@ print_crash_report()
   if [ -f /etc/os-release ]; then
          . /etc/os-release
          echo $NAME $VERSION >> $FILE
-  elif which lsb_release > /dev/null; then
+  elif command_exists lsb_release; then
     echo >> $FILE
     lsb_release -a 2> /dev/null | sed -e 's/^/    /' >> $FILE
   else
@@ -77,8 +82,8 @@ print_crash_report()
   echo "############## END SYSTEM INFO ##############" >> $FILE
   echo >> $FILE
   echo "############### STACK TRACE #################" >> $FILE
-  if which gdb >/dev/null 2>&1; then
-    if which systemd-coredumpctl &> /dev/null; then
+  if command_exists gdb; then
+    if command_exists systemd-coredumpctl; then
       systemd-coredumpctl dump -o core xbmc.bin &> /dev/null
     fi
     single_stacktrace "$PWD" 1
@@ -120,7 +125,7 @@ if [ $RET -ne 0 ]; then
   exit $RET
 fi
 
-if which gdb >/dev/null 2>&1; then
+if command_exists gdb; then
   # Output warning in case ulimit is unsupported by shell
   eval ulimit -c unlimited
   if [ ! $? = "0" ]; then
index 2d67f96..05353b6 100644 (file)
@@ -2,7 +2,7 @@ include ../../Makefile.include
 #DEPS= ../../Makefile.include Makefile
 
 LIBNAME=xbmc-pvr-addons
-VERSION=36eba34cabddce47878872b199fd3f13aafb8125
+VERSION=1832e602ce6d6ce43e2abbb497879beb944ab225
 GIT_DIR=$(TARBALLS_LOCATION)/$(LIBNAME).git
 BASE_URL=git://github.com/opdenkamp/$(LIBNAME).git
 DYLIB=$(PLATFORM)/addons/pvr.demo/.libs/libpvrdemo-addon.so
index 819927e..2cd0cab 100644 (file)
@@ -1,5 +1,5 @@
 VERSION_MAJOR 14
 VERSION_MINOR 0
-VERSION_TAG ALPHA1
-VERSION_CODE 139701
-ADDON_API 13.9.701
+VERSION_TAG ALPHA2
+VERSION_CODE 139702
+ADDON_API 13.9.702
index 19a9411..5a45653 100644 (file)
@@ -180,13 +180,15 @@ bool CAESinkPi::Initialize(AEAudioFormat &format, std::string &device)
     format.m_channelLayout = AE_CH_LAYOUT_2_0;
 
   // setup for a 50ms sink feed from SoftAE
-  if (format.m_dataFormat != AE_FMT_FLOAT && format.m_dataFormat != AE_FMT_S32LE)
+  if (format.m_dataFormat != AE_FMT_FLOATP && format.m_dataFormat != AE_FMT_FLOAT &&
+      format.m_dataFormat != AE_FMT_S32NE && format.m_dataFormat != AE_FMT_S32NEP && format.m_dataFormat != AE_FMT_S32LE &&
+      format.m_dataFormat != AE_FMT_S16NE && format.m_dataFormat != AE_FMT_S16NEP && format.m_dataFormat != AE_FMT_S16LE)
     format.m_dataFormat = AE_FMT_S16LE;
   unsigned int channels    = format.m_channelLayout.Count();
   unsigned int sample_size = CAEUtil::DataFormatToBits(format.m_dataFormat) >> 3;
   format.m_frameSize     = sample_size * channels;
   format.m_sampleRate    = std::max(8000U, std::min(192000U, format.m_sampleRate));
-  format.m_frames        = format.m_sampleRate * AUDIO_PLAYBUFFER;
+  format.m_frames        = format.m_sampleRate * AUDIO_PLAYBUFFER / NUM_OMX_BUFFERS;
   format.m_frameSamples  = format.m_frames * channels;
 
   SetAudioProps(m_passthrough, GetChannelMap(format, m_passthrough));
@@ -210,7 +212,13 @@ bool CAESinkPi::Initialize(AEAudioFormat &format, std::string &device)
   m_pcm_input.eEndian               = OMX_EndianLittle;
   m_pcm_input.bInterleaved          = OMX_TRUE;
   m_pcm_input.nBitPerSample         = sample_size * 8;
-  m_pcm_input.ePCMMode              = m_format.m_dataFormat == AE_FMT_FLOAT ? (OMX_AUDIO_PCMMODETYPE)0x8000 : OMX_AUDIO_PCMModeLinear;
+  // 0x8000 = float, 0x10000 = planar
+  uint32_t flags = 0;
+  if (m_format.m_dataFormat == AE_FMT_FLOAT || m_format.m_dataFormat == AE_FMT_FLOATP)
+   flags |= 0x8000;
+  if (AE_IS_PLANAR(m_format.m_dataFormat))
+   flags |= 0x10000;
+  m_pcm_input.ePCMMode              = flags == 0 ? OMX_AUDIO_PCMModeLinear : (OMX_AUDIO_PCMMODETYPE)flags;
   m_pcm_input.nChannels             = channels;
   m_pcm_input.nSamplingRate         = m_format.m_sampleRate;
 
@@ -232,7 +240,7 @@ bool CAESinkPi::Initialize(AEAudioFormat &format, std::string &device)
     CLog::Log(LOGERROR, "%s:%s - error get OMX_IndexParamPortDefinition (input) omx_err(0x%08x)", CLASSNAME, __func__, omx_err);
 
   port_param.nBufferCountActual = std::max((unsigned int)port_param.nBufferCountMin, (unsigned int)NUM_OMX_BUFFERS);
-  port_param.nBufferSize = m_format.m_frameSize * m_format.m_frames / port_param.nBufferCountActual;
+  port_param.nBufferSize = m_format.m_frameSize * m_format.m_frames;
 
   omx_err = m_omx_render.SetParameter(OMX_IndexParamPortDefinition, &port_param);
   if (omx_err != OMX_ErrorNone)
@@ -306,61 +314,52 @@ double CAESinkPi::GetCacheTotal()
 
 unsigned int CAESinkPi::AddPackets(uint8_t **data, unsigned int frames, unsigned int offset)
 {
-  unsigned int sent = 0;
-  uint8_t *buffer = data[0]+offset*m_format.m_frameSize;
-
-  if (!m_Initialized)
+  if (!m_Initialized || !frames)
     return frames;
 
   OMX_ERRORTYPE omx_err   = OMX_ErrorNone;
   OMX_BUFFERHEADERTYPE *omx_buffer = NULL;
-  while (sent < frames)
+
+  unsigned int channels    = m_format.m_channelLayout.Count();
+  unsigned int sample_size = CAEUtil::DataFormatToBits(m_format.m_dataFormat) >> 3;
+  const int planes = AE_IS_PLANAR(m_format.m_dataFormat) ? channels : 1;
+  const int chans  = AE_IS_PLANAR(m_format.m_dataFormat) ? 1 : channels;
+  const int pitch  = chans * sample_size;
+
+  AEDelayStatus status;
+  GetDelay(status);
+  double delay = status.GetDelay();
+  if (delay <= 0.0 && m_submitted)
+    CLog::Log(LOGNOTICE, "%s:%s Underrun (delay:%.2f frames:%d)", CLASSNAME, __func__, delay, frames);
+
+  omx_buffer = m_omx_render.GetInputBuffer(1000);
+  if (omx_buffer == NULL)
   {
-    AEDelayStatus status;
-    GetDelay(status);
-    double delay = status.GetDelay();
-    double ideal_submission_time = AUDIO_PLAYBUFFER - delay;
-    // ideal amount of audio we'd like submit (to make delay match AUDIO_PLAYBUFFER)
-    int timeout = 1000;
-    int ideal_submission_samples = ideal_submission_time / (m_sinkbuffer_sec_per_byte * m_format.m_frameSize);
-    // if we are almost full then sleep (to avoid repeatedly sending a few samples)
-    bool too_laggy = ideal_submission_time < 0.25 * AUDIO_PLAYBUFFER;
-    int sleeptime = (int)(AUDIO_PLAYBUFFER * 0.25 * 1000.0);
-    if (too_laggy)
-    {
-      Sleep(sleeptime);
-      continue;
-    }
-    omx_buffer = m_omx_render.GetInputBuffer(timeout);
-    if (omx_buffer == NULL)
-    {
-      CLog::Log(LOGERROR, "COMXAudio::Decode timeout");
-      break;
-    }
-
-    unsigned int space = omx_buffer->nAllocLen / m_format.m_frameSize;
-    unsigned int samples = std::min(std::min(space, (unsigned int)ideal_submission_samples), frames - sent);
-
-    omx_buffer->nFilledLen = samples * m_format.m_frameSize;
-    omx_buffer->nTimeStamp = ToOMXTime(0);
-    omx_buffer->nFlags = 0;
-    memcpy(omx_buffer->pBuffer, (uint8_t *)buffer + sent * m_format.m_frameSize, omx_buffer->nFilledLen);
-
-    sent += samples;
-
-    if (sent == frames)
-      omx_buffer->nFlags |= OMX_BUFFERFLAG_ENDOFFRAME;
-
-    if (delay <= 0.0 && m_submitted)
-      CLog::Log(LOGNOTICE, "%s:%s Underrun (delay:%.2f frames:%d)", CLASSNAME, __func__, delay, frames);
-
-    omx_err = m_omx_render.EmptyThisBuffer(omx_buffer);
-    if (omx_err != OMX_ErrorNone)
-      CLog::Log(LOGERROR, "%s:%s frames=%d err=%x", CLASSNAME, __func__, frames, omx_err);
-    m_submitted++;
+    CLog::Log(LOGERROR, "CAESinkPi::AddPackets timeout");
+    return 0;
   }
 
-  return sent;
+  omx_buffer->nFilledLen = frames * m_format.m_frameSize;
+  // must be true
+  assert(omx_buffer->nFilledLen <= omx_buffer->nAllocLen);
+  omx_buffer->nTimeStamp = ToOMXTime(0);
+  omx_buffer->nFlags = OMX_BUFFERFLAG_ENDOFFRAME;
+
+  if (omx_buffer->nFilledLen)
+  {
+    int planesize = omx_buffer->nFilledLen / planes;
+    for (int i=0; i < planes; i++)
+      memcpy((uint8_t *)omx_buffer->pBuffer + i * planesize, data[i] + offset * pitch, planesize);
+  }
+  omx_err = m_omx_render.EmptyThisBuffer(omx_buffer);
+  if (omx_err != OMX_ErrorNone)
+    CLog::Log(LOGERROR, "%s:%s frames=%d err=%x", CLASSNAME, __func__, frames, omx_err);
+  m_submitted++;
+  GetDelay(status);
+  delay = status.GetDelay();
+  if (delay > AUDIO_PLAYBUFFER)
+    Sleep((int)(1000.0f * (delay - AUDIO_PLAYBUFFER)));
+  return frames;
 }
 
 void CAESinkPi::Drain()
@@ -388,8 +387,13 @@ void CAESinkPi::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
   for (unsigned int i=0; i<sizeof PassthroughSampleRates/sizeof *PassthroughSampleRates; i++)
     m_info.m_sampleRates.push_back(PassthroughSampleRates[i]);
   m_info.m_dataFormats.push_back(AE_FMT_FLOAT);
+  m_info.m_dataFormats.push_back(AE_FMT_S32NE);
+  m_info.m_dataFormats.push_back(AE_FMT_S16NE);
   m_info.m_dataFormats.push_back(AE_FMT_S32LE);
   m_info.m_dataFormats.push_back(AE_FMT_S16LE);
+  m_info.m_dataFormats.push_back(AE_FMT_FLOATP);
+  m_info.m_dataFormats.push_back(AE_FMT_S32NEP);
+  m_info.m_dataFormats.push_back(AE_FMT_S16NEP);
   m_info.m_dataFormats.push_back(AE_FMT_AC3);
   m_info.m_dataFormats.push_back(AE_FMT_DTS);
   m_info.m_dataFormats.push_back(AE_FMT_EAC3);
@@ -410,6 +414,9 @@ void CAESinkPi::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
   m_info.m_dataFormats.push_back(AE_FMT_FLOAT);
   m_info.m_dataFormats.push_back(AE_FMT_S32LE);
   m_info.m_dataFormats.push_back(AE_FMT_S16LE);
+  m_info.m_dataFormats.push_back(AE_FMT_FLOATP);
+  m_info.m_dataFormats.push_back(AE_FMT_S32NEP);
+  m_info.m_dataFormats.push_back(AE_FMT_S16NEP);
 
   list.push_back(m_info);
 }
index 820ea44..b9256ea 100644 (file)
@@ -254,13 +254,33 @@ bool COMXVideo::PortSettingsChanged()
 
   if(m_deinterlace)
   {
+    bool advanced_deinterlace = port_image.format.video.nFrameWidth * port_image.format.video.nFrameHeight <= 576 * 720;
+
+    if (!advanced_deinterlace)
+    {
+      // Image_fx assumed 3 frames of context. simple deinterlace doesn't require this
+      OMX_PARAM_U32TYPE extra_buffers;
+      OMX_INIT_STRUCTURE(extra_buffers);
+      extra_buffers.nU32 = -2;
+
+      omx_err = m_omx_image_fx.SetParameter(OMX_IndexParamBrcmExtraBuffers, &extra_buffers);
+      if(omx_err != OMX_ErrorNone)
+      {
+        CLog::Log(LOGERROR, "%s::%s error OMX_IndexParamBrcmExtraBuffers omx_err(0x%08x)", CLASSNAME, __func__, omx_err);
+        return false;
+      }
+    }
+
     OMX_CONFIG_IMAGEFILTERPARAMSTYPE image_filter;
     OMX_INIT_STRUCTURE(image_filter);
 
     image_filter.nPortIndex = m_omx_image_fx.GetOutputPort();
     image_filter.nNumParams = 1;
     image_filter.nParams[0] = 3;
-    image_filter.eImageFilter = OMX_ImageFilterDeInterlaceAdvanced;
+    if (!advanced_deinterlace)
+      image_filter.eImageFilter = OMX_ImageFilterDeInterlaceFast;
+    else
+      image_filter.eImageFilter = OMX_ImageFilterDeInterlaceAdvanced;
 
     omx_err = m_omx_image_fx.SetConfig(OMX_IndexConfigCommonImageFilterParameters, &image_filter);
     if(omx_err != OMX_ErrorNone)
index 33f4fc5..a8dd8ef 100644 (file)
@@ -399,15 +399,12 @@ bool CPVRTimers::HasActiveTimers(void) const
 
 bool CPVRTimers::GetDirectory(const CStdString& strPath, CFileItemList &items) const
 {
-  CURL url(strPath);
-  CStdString fileName = url.GetFileName();
-  
-  vector<string> dirs = URIUtils::SplitPath(URIUtils::GetDirectory(fileName));
-  if(dirs.size() == 2 && dirs.at(0) == "timers")
+  vector<string> dirs = URIUtils::SplitPath(strPath);
+  if(dirs.size() == 3 && dirs.at(1) == "timers")
   {
-    bool bRadio = (dirs.at(1) == "radio");
-    CFileItemPtr item;
+    bool bRadio = (dirs.at(2) == "radio");
 
+    CFileItemPtr item;
     item.reset(new CFileItem("pvr://timers/add.timer", false));
     item->SetLabel(g_localizeStrings.Get(19026));
     item->SetLabelPreformated(true);
index c4a60a9..8164493 100644 (file)
@@ -673,6 +673,7 @@ bool CGUIWindowPVRBase::UpdateEpgForChannel(CFileItem *item)
 
 bool CGUIWindowPVRBase::Update(const std::string &strDirectory, bool updateFilterPath /* = true */)
 {
+  m_vecItems->SetPath(strDirectory);
   return CGUIMediaWindow::Update(strDirectory, updateFilterPath);
 }