Browse files

Merge branch 'master' into pvr-ppa

  • Loading branch information...
2 parents bee1ab5 + 758ebb5 commit 760c0c6bbfd6014d8d75bb443616953eef4468d3 @opdenkamp committed Oct 21, 2011
Showing with 3,324 additions and 9,673 deletions.
  1. +38 −215 Makefile.in
  2. +8 −6 Makefile.include.in
  3. +1 −1 README.ubuntu
  4. +378 −507 XBMC-ATV2.xcodeproj/project.pbxproj
  5. +536 −544 XBMC-IOS.xcodeproj/project.pbxproj
  6. +924 −665 XBMC.xcodeproj/project.pbxproj
  7. +4 −0 addons/pvr.hts/resources/language/Finnish/strings.xml
  8. +8 −0 addons/pvr.team-mediaportal.tvserver/resources/language/Finnish/strings.xml
  9. +1 −0 addons/pvr.vdr.vnsi/resources/language/Finnish/strings.xml
  10. +32 −8 addons/skin.confluence/720p/ViewsPVR.xml
  11. +1 −1 addons/skin.confluence/language/Finnish/strings.xml
  12. +0 −19 addons/webinterface.debug/addon.xml
  13. BIN addons/webinterface.debug/favicon.ico
  14. +0 −27 addons/webinterface.debug/index.html
  15. +0 −6,240 addons/webinterface.debug/js/jquery-1.4.2.js
  16. +0 −9 addons/webinterface.debug/js/testinvoker.js
  17. +58 −42 configure.in
  18. +4 −1 language/Chinese (Simple)/strings.xml
  19. +36 −0 language/Dutch/strings.xml
  20. +4 −3 language/English/strings.xml
  21. +11 −1 language/Finnish/strings.xml
  22. +0 −3 lib/DllLibbluray.h
  23. +1 −0 lib/ffmpeg/libavcodec/dxva2.h
  24. +8 −0 lib/ffmpeg/libavcodec/dxva2_h264.c
  25. +23 −3 lib/ffmpeg/libavcodec/dxva2_mpeg2.c
  26. +13 −8 lib/ffmpeg/libavcodec/dxva2_vc1.c
  27. +3 −1 lib/ffmpeg/libavcodec/h264.c
  28. +2 −0 lib/ffmpeg/libavcodec/h264.h
  29. +1 −1 lib/ffmpeg/libavformat/matroskadec.c
  30. +74 −0 lib/ffmpeg/patches/0051-dxva-mpeg2-Allocate-slices-array-dynamically-fixes-v.patch
  31. +74 −0 lib/ffmpeg/patches/0052-dxva-mpeg2-speed-up-slice-allocation.patch
  32. +59 −0 lib/ffmpeg/patches/0053-dxva-vc1-Take-BI-into-account-for-forward-and-backwa.patch
  33. +29 −0 lib/ffmpeg/patches/0054-dxva-vc1-Pass-overlapping-transforms-hint.patch
  34. +74 −0 lib/ffmpeg/patches/0055-dxva-h264-Fix-dxva-playback-of-streams-that-don-t-st.patch
  35. +25 −0 lib/ffmpeg/patches/0056-Changed-format-string-td-not-supported-by-our-MingW-.patch
  36. +1 −1 lib/libcec/Makefile
  37. +1 −1 project/VS2010Express/XBMC.vcxproj
  38. +2 −2 system/peripherals.xml
  39. +2 −2 tools/darwin/depends/Makefile.in
  40. +1 −1 tools/darwin/depends/libcec/Makefile
  41. +15 −42 xbmc/Application.cpp
  42. +1 −3 xbmc/Application.h
  43. +38 −16 xbmc/GUIInfoManager.cpp
  44. +6 −3 xbmc/GUIInfoManager.h
  45. +5 −0 xbmc/addons/Skin.cpp
  46. +1 −0 xbmc/addons/Skin.h
  47. +1 −1 xbmc/cores/VideoRenderers/VideoShaders/YUV2RGBShader.cpp
  48. +4 −3 xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.cpp
  49. +12 −5 xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
  50. +2 −1 xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
  51. +6 −5 xbmc/cores/dvdplayer/DVDPlayer.cpp
  52. +2 −1 xbmc/cores/paplayer/CodecFactory.cpp
  53. +72 −40 xbmc/dbwrappers/Database.cpp
  54. +5 −2 xbmc/dbwrappers/dataset.h
  55. +130 −77 xbmc/dbwrappers/mysqldataset.cpp
  56. +3 −0 xbmc/dbwrappers/mysqldataset.h
  57. +83 −30 xbmc/dbwrappers/sqlitedataset.cpp
  58. +10 −2 xbmc/dbwrappers/sqlitedataset.h
  59. +5 −2 xbmc/epg/EpgContainer.cpp
  60. +1 −1 xbmc/epg/EpgDatabase.cpp
  61. +1 −3 xbmc/guilib/DirtyRegionTracker.h
  62. +2 −2 xbmc/guilib/GUIButtonControl.cpp
  63. +24 −24 xbmc/guilib/GUIControlFactory.cpp
  64. +5 −5 xbmc/guilib/GUIControlFactory.h
  65. +1 −1 xbmc/guilib/GUIFadeLabelControl.cpp
  66. +1 −1 xbmc/guilib/GUIImage.cpp
  67. +19 −1 xbmc/guilib/GUIIncludes.cpp
  68. +6 −0 xbmc/guilib/GUIIncludes.h
  69. +21 −12 xbmc/guilib/GUIInfoTypes.cpp
  70. +4 −4 xbmc/guilib/GUIInfoTypes.h
  71. +1 −1 xbmc/guilib/GUILabelControl.cpp
  72. +3 −3 xbmc/guilib/GUIListItemLayout.cpp
  73. +5 −5 xbmc/guilib/GUIStaticItem.cpp
  74. +1 −1 xbmc/guilib/GUITextBox.cpp
  75. +1 −1 xbmc/guilib/GUIWindow.cpp
  76. +3 −0 xbmc/interfaces/Builtins.cpp
  77. +0 −568 xbmc/interfaces/DbusServer.cpp
  78. +0 −176 xbmc/interfaces/DbusServer.h
  79. +0 −10 xbmc/interfaces/Makefile.in
  80. +30 −32 xbmc/interfaces/info/SkinVariable.cpp
  81. +6 −2 xbmc/interfaces/info/SkinVariable.h
  82. +1 −0 xbmc/interfaces/json-rpc/SystemOperations.cpp
  83. +1 −0 xbmc/interfaces/json-rpc/XBMCOperations.cpp
  84. +7 −2 xbmc/music/MusicDatabase.cpp
  85. +2 −1 xbmc/network/AirTunesServer.cpp
  86. +0 −6 xbmc/network/Network.cpp
  87. +36 −0 xbmc/osx/atv2/XBMCAppliance.m
  88. +2 −4 xbmc/peripherals/PeripheralTypes.h
  89. +16 −3 xbmc/peripherals/Peripherals.cpp
  90. +3 −0 xbmc/peripherals/Peripherals.h
  91. +4 −10 xbmc/peripherals/bus/win32/PeripheralBusUSB.cpp
  92. +5 −5 xbmc/peripherals/devices/Peripheral.cpp
  93. +4 −4 xbmc/peripherals/devices/Peripheral.h
  94. +17 −0 xbmc/peripherals/devices/PeripheralCecAdapter.cpp
  95. +1 −1 xbmc/peripherals/devices/PeripheralHID.cpp
  96. +140 −118 xbmc/pvr/PVRGUIInfo.cpp
  97. +6 −4 xbmc/pvr/PVRGUIInfo.h
  98. +0 −20 xbmc/pvr/PVRManager.cpp
  99. +0 −12 xbmc/pvr/PVRManager.h
  100. +8 −6 xbmc/pvr/addons/PVRClients.cpp
  101. +33 −20 xbmc/pvr/channels/PVRChannelGroup.cpp
  102. +3 −0 xbmc/pvr/channels/PVRChannelGroups.cpp
  103. +5 −1 xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp
  104. +10 −0 xbmc/pvr/windows/GUIWindowPVR.cpp
  105. +8 −8 xbmc/pvr/windows/GUIWindowPVRChannels.cpp
  106. +2 −1 xbmc/pvr/windows/GUIWindowPVRChannels.h
  107. +2 −1 xbmc/pvr/windows/GUIWindowPVRGuide.cpp
  108. +2 −1 xbmc/pvr/windows/GUIWindowPVRGuide.h
  109. +4 −5 xbmc/pvr/windows/GUIWindowPVRRecordings.cpp
  110. +2 −1 xbmc/pvr/windows/GUIWindowPVRRecordings.h
  111. +3 −3 xbmc/pvr/windows/GUIWindowPVRTimers.cpp
  112. +2 −1 xbmc/pvr/windows/GUIWindowPVRTimers.h
  113. +2 −2 xbmc/settings/Settings.cpp
  114. +6 −2 xbmc/settings/VideoSettings.h
  115. +4 −2 xbmc/storage/MediaManager.cpp
  116. +0 −1 xbmc/system.h
  117. +1 −1 xbmc/utils/Splash.cpp
  118. +3 −24 xbmc/video/VideoDatabase.cpp
  119. +1 −0 xbmc/video/windows/GUIWindowVideoBase.cpp
  120. +3 −3 xbmc/windows/GUIMediaWindow.cpp
  121. +1 −1 xbmc/windows/GUIMediaWindow.h
  122. +1 −1 xbmc/windows/GUIWindowFileManager.cpp
View
253 Makefile.in
@@ -1,110 +1,4 @@
AUTOGENERATED_MAKEFILES=@OUTPUT_FILES@
-BIN_DIRS= \
- xbmc/guilib \
- lib/tinyXML \
- xbmc \
- xbmc/addons \
- xbmc/cdrip \
- xbmc/cores \
- xbmc/cores/DllLoader \
- xbmc/cores/DllLoader/exports \
- xbmc/cores/DllLoader/exports/util \
- xbmc/cores/dvdplayer \
- xbmc/cores/dvdplayer/DVDCodecs \
- xbmc/cores/dvdplayer/DVDCodecs/Audio \
- xbmc/cores/dvdplayer/DVDCodecs/Overlay \
- xbmc/cores/dvdplayer/DVDCodecs/Video \
- xbmc/cores/dvdplayer/DVDDemuxers/ \
- xbmc/cores/dvdplayer/DVDInputStreams/ \
- xbmc/cores/dvdplayer/DVDSubtitles/ \
- xbmc/cores/paplayer \
- xbmc/cores/AudioRenderers \
- xbmc/cores/VideoRenderers \
- xbmc/cores/VideoRenderers/VideoShaders \
- xbmc/cores/ExternalPlayer \
- xbmc/cores/playercorefactory \
- xbmc/epg \
- xbmc/filesystem \
- xbmc/filesystem/MusicDatabaseDirectory \
- xbmc/filesystem/VideoDatabaseDirectory \
- xbmc/dialogs \
- xbmc/music \
- xbmc/music/dialogs \
- xbmc/music/infoscanner \
- xbmc/music/karaoke \
- xbmc/music/tags \
- xbmc/music/windows \
- xbmc/pictures \
- xbmc/programs \
- xbmc/video \
- xbmc/video/dialogs \
- xbmc/video/windows \
- xbmc/windows \
- xbmc/network \
- xbmc/network/libscrobbler \
- xbmc/network/linux \
- xbmc/network/osx \
- xbmc/playlists \
- xbmc/powermanagement \
- xbmc/powermanagement/linux \
- xbmc/rendering \
- xbmc/storage \
- xbmc/storage/linux \
- xbmc/storage/osx \
- lib/libTcpSocket \
- lib/libhts \
- xbmc/interfaces \
- xbmc/interfaces/http-api \
- xbmc/interfaces/info \
- xbmc/interfaces/json-rpc \
- xbmc/interfaces/python \
- xbmc/interfaces/python/xbmcmodule \
- lib/libRTV \
- lib/libUPnP \
- lib/libXDAAP \
- xbmc/dbwrappers \
- lib/UnrarXLib \
- lib/libsquish \
- lib/SlingboxLib \
- xbmc/visualizations \
- xbmc/screensavers \
- xbmc/pvr \
- xbmc/pvr/addons \
- xbmc/pvr/channels \
- xbmc/pvr/dialogs \
- xbmc/pvr/recordings \
- xbmc/pvr/timers \
- xbmc/pvr/windows \
- xbmc/pvrclients \
- xbmc/utils \
- xbmc/settings \
- xbmc/linux \
- xbmc/input \
- xbmc/input/linux \
- xbmc/osx \
- xbmc/threads \
- xbmc/windowing \
- xbmc/peripherals \
- xbmc/peripherals/bus \
- xbmc/peripherals/devices \
- xbmc/peripherals/dialogs \
-
-ifeq (@USE_OPENGL@,1)
-BIN_DIRS += xbmc/rendering/gl
-endif
-ifeq (@USE_OPENGLES@,1)
-BIN_DIRS += xbmc/rendering/gles
-BIN_DIRS += xbmc/windowing/egl
-endif
-
-ifeq ($(findstring osx,@ARCH@),osx)
-BIN_DIRS += xbmc/network/osx
-BIN_DIRS += xbmc/storage/osx
-BIN_DIRS += xbmc/powermanagement/osx
-BIN_DIRS += xbmc/windowing/osx
-else
-BIN_DIRS += xbmc/windowing/X11
-endif
EC_DIRS= \
tools/EventClients
@@ -127,7 +21,6 @@ DVDPLAYER_ARCHIVES=xbmc/cores/dvdplayer/DVDPlayer.a \
DIRECTORY_ARCHIVES=$(DVDPLAYER_ARCHIVES) \
lib/SlingboxLib/SlingboxLib.a \
- lib/UnrarXLib/UnrarXLib.a \
lib/libRTV/librtv.a \
lib/libUPnP/libupnp.a \
lib/libXDAAP/libxdaap.a \
@@ -156,7 +49,6 @@ DIRECTORY_ARCHIVES=$(DVDPLAYER_ARCHIVES) \
xbmc/filesystem/filesystem.a \
xbmc/guilib/guilib.a \
xbmc/input/input.a \
- xbmc/input/linux/input_linux.a \
xbmc/interfaces/http-api/http-api.a \
xbmc/interfaces/info/info.a \
xbmc/interfaces/interfaces.a \
@@ -171,17 +63,13 @@ DIRECTORY_ARCHIVES=$(DVDPLAYER_ARCHIVES) \
xbmc/music/tags/musictags.a \
xbmc/music/windows/musicwindows.a \
xbmc/network/libscrobbler/scrobbler.a \
- xbmc/network/linux/network_linux.a \
xbmc/network/network.a \
- xbmc/osx/osx.a \
xbmc/peripherals/bus/peripheral-bus.a \
xbmc/peripherals/devices/peripheral-devices.a \
xbmc/peripherals/dialogs/peripheral-dialogs.a \
xbmc/peripherals/peripherals.a \
xbmc/pictures/pictures.a \
xbmc/playlists/playlists.a \
- xbmc/powermanagement/linux/powermanagement_linux.a \
- xbmc/powermanagement/osx/powermanagement.a \
xbmc/powermanagement/powermanagement.a \
xbmc/programs/programs.a \
xbmc/pvr/addons/pvraddons.a \
@@ -191,27 +79,49 @@ DIRECTORY_ARCHIVES=$(DVDPLAYER_ARCHIVES) \
xbmc/pvr/recordings/pvrrecordings.a \
xbmc/pvr/timers/pvrtimers.a \
xbmc/pvr/windows/pvrwindows.a \
- xbmc/pvrclients/pvrclient.a \
- xbmc/rendering/gl/rendering_gl.a \
- xbmc/rendering/gles/rendering_gles.a \
xbmc/rendering/rendering.a \
xbmc/settings/settings.a \
- xbmc/storage/linux/storage_linux.a \
- xbmc/storage/osx/storage.a \
xbmc/storage/storage.a \
xbmc/threads/threads.a \
xbmc/utils/utils.a \
xbmc/video/dialogs/videodialogs.a \
xbmc/video/video.a \
xbmc/video/windows/videowindows.a \
- xbmc/windowing/X11/windowing_X11.a \
- xbmc/windowing/egl/windowing_egl.a \
- xbmc/windowing/osx/windowing_osx.a \
xbmc/windowing/windowing.a \
xbmc/windows/windows.a \
xbmc/xbmc.a \
+ifeq (@USE_OPENGL@,1)
+DIRECTORY_ARCHIVES += xbmc/rendering/gl/rendering_gl.a
+endif
+
+ifeq (@USE_OPENGLES@,1)
+DIRECTORY_ARCHIVES += xbmc/rendering/gles/rendering_gles.a
+DIRECTORY_ARCHIVES += xbmc/windowing/egl/windowing_egl.a
+endif
+
+ifeq ($(findstring osx,@ARCH@),osx)
+DIRECTORY_ARCHIVES += xbmc/osx/osx.a
+DIRECTORY_ARCHIVES += xbmc/network/osx/network.a
+DIRECTORY_ARCHIVES += xbmc/network/linux/network_linux.a
+DIRECTORY_ARCHIVES += xbmc/powermanagement/osx/powermanagement.a
+DIRECTORY_ARCHIVES += xbmc/storage/osx/storage.a
+DIRECTORY_ARCHIVES += xbmc/windowing/osx/windowing_osx.a
+else
+DIRECTORY_ARCHIVES += xbmc/input/linux/input_linux.a
+DIRECTORY_ARCHIVES += xbmc/network/linux/network_linux.a
+DIRECTORY_ARCHIVES += xbmc/powermanagement/linux/powermanagement_linux.a
+DIRECTORY_ARCHIVES += xbmc/storage/linux/storage_linux.a
+DIRECTORY_ARCHIVES += xbmc/windowing/X11/windowing_X11.a
+endif
+
+ifeq (@HAVE_XBMC_NONFREE@,1)
+DIRECTORY_ARCHIVES += lib/UnrarXLib/UnrarXLib.a
+endif
+
+BIN_DIRS = $(dir $(DIRECTORY_ARCHIVES))
+
PAPCODECS_DIRS= \
lib/xbadpcm \
lib/nosefart \
@@ -331,7 +241,7 @@ xbmc/cores/paplayer/paplayer.a: papcodecs
$(DVDPLAYER_ARCHIVES) : dvdpcodecs
$(DIRECTORY_ARCHIVES): force
- @$(MAKE) -C $(@D)
+ @$(MAKE) $(if $(V),,-s) -C $(@D)
lib/libapetag/.libs/libapetag.a: force
$(MAKE) -C lib/libapetag
@@ -423,97 +333,8 @@ xcode_depends: \
lib/libXDAAP/libxdaap.a \
lib/SlingboxLib/SlingboxLib.a
-# platform independend objects
-OBJSXBMC= \
- xbmc/xbmc.a \
- xbmc/addons/addons.a \
- xbmc/cores/playercorefactory/playercorefactory.a \
- xbmc/cores/paplayer/paplayer.a \
- xbmc/cores/VideoRenderers/VideoRenderer.a \
- xbmc/cores/VideoRenderers/VideoShaders/VideoShaders.a \
- lib/tinyXML/tinyxml.a \
- xbmc/cores/cores.a \
- xbmc/interfaces/python/python.a \
- xbmc/cores/DllLoader/dllloader.a \
- $(DVDPLAYER_ARCHIVES) \
- xbmc/cores/AudioRenderers/audiorenderers.a \
- xbmc/cores/ExternalPlayer/ExternalPlayer.a \
- xbmc/epg/epg.a \
- xbmc/filesystem/filesystem.a \
- xbmc/filesystem/MusicDatabaseDirectory/musicdatabasedirectory.a \
- xbmc/filesystem/VideoDatabaseDirectory/videodatabasedirectory.a \
- xbmc/input/input.a \
- xbmc/dialogs/dialogs.a \
- xbmc/music/karaoke/karaoke.a \
- xbmc/music/music.a \
- xbmc/music/dialogs/musicdialogs.a \
- xbmc/music/infoscanner/musicscanner.a \
- xbmc/music/tags/musictags.a \
- xbmc/music/windows/musicwindows.a \
- xbmc/pvr/pvr.a \
- xbmc/pvr/channels/pvrchannels.a \
- xbmc/pvr/dialogs/pvrdialogs.a \
- xbmc/pvr/recordings/pvrrecordings.a \
- xbmc/pvr/timers/pvrtimers.a \
- xbmc/video/dialogs/videodialogs.a \
- xbmc/pictures/pictures.a \
- xbmc/playlists/playlists.a \
- xbmc/programs/programs.a \
- xbmc/powermanagement/powermanagement.a \
- xbmc/storage/storage.a \
- xbmc/threads/threads.a \
- xbmc/windows/windows.a \
- xbmc/interfaces/python/xbmcmodule/xbmcmodule.a \
- xbmc/network/libscrobbler/scrobbler.a \
- lib/libRTV/librtv.a \
- lib/libUPnP/libupnp.a \
- lib/libXDAAP/libxdaap.a \
- xbmc/interfaces/interfaces.a \
- xbmc/cdrip/cdrip.a \
- xbmc/interfaces/json-rpc/json-rpc.a \
- xbmc/interfaces/http-api/http-api.a \
- xbmc/interfaces/info/info.a \
- xbmc/dbwrappers/dbwrappers.a \
- lib/libsquish/libsquish.a \
- lib/SlingboxLib/SlingboxLib.a \
- lib/libapetag/.libs/libapetag.a \
- lib/libhts/libhts.a \
- lib/xbmc-dll-symbols/dll-symbols.a \
- xbmc/rendering/rendering.a \
- xbmc/windowing/windowing.a \
- lib/libTcpSocket/libTcpSocket.a \
- xbmc/peripherals/peripherals.a \
- xbmc/peripherals/bus/peripheral-bus.a \
- xbmc/peripherals/devices/peripheral-devices.a \
- xbmc/peripherals/dialogs/peripheral-dialogs.a
-
-ifeq (@USE_OPENGL@,1)
-OBJSXBMC += xbmc/rendering/gl/rendering_gl.a
-endif
-ifeq (@USE_OPENGLES@,1)
-OBJSXBMC += xbmc/rendering/gles/rendering_gles.a
-OBJSXBMC += xbmc/windowing/egl/windowing_egl.a
-endif
-
-ifeq (@HAVE_XBMC_NONFREE@,1)
-OBJSXBMC += lib/UnrarXLib/UnrarXLib.a
-endif
-
-# platform dependend objects
-ifeq ($(findstring osx,@ARCH@), osx)
-OBJSXBMC += xbmc/osx/osx.a
-OBJSXBMC += xbmc/network/osx/network.a
-OBJSXBMC += xbmc/network/linux/network_linux.a
-OBJSXBMC += xbmc/powermanagement/osx/powermanagement.a
-OBJSXBMC += xbmc/storage/osx/storage.a
-OBJSXBMC += xbmc/windowing/osx/windowing_osx.a
-else
-OBJSXBMC += xbmc/input/linux/input_linux.a
-OBJSXBMC += xbmc/network/linux/network_linux.a
-OBJSXBMC += xbmc/powermanagement/linux/powermanagement_linux.a
-OBJSXBMC += xbmc/storage/linux/storage_linux.a
-OBJSXBMC += xbmc/windowing/X11/windowing_X11.a
-endif
+OBJSXBMC =$(DIRECTORY_ARCHIVES)
+OBJSXBMC+=lib/libapetag/.libs/libapetag.a
DYNOBJSXBMC= \
xbmc/linux/linux.a \
@@ -528,21 +349,23 @@ DYNOBJSXBMC= \
xbmc/pvr/windows/pvrwindows.a \
xbmc/guilib/guilib.a # must be dynamic to avoid linker errors
+OBJSXBMC:=$(filter-out $(DYNOBJSXBMC), $(OBJSXBMC))
+
LIBS += @PYTHON_LDFLAGS@
xbmc.bin: $(OBJSXBMC) $(DYNOBJSXBMC)
ifeq ($(findstring osx,@ARCH@), osx)
- $(CXX) $(LDFLAGS) -o xbmc.bin -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(OBJSXBMC) $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(LDFLAGS) -o xbmc.bin -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(OBJSXBMC) $(LIBS) -rdynamic
else
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -o xbmc.bin -Wl,--whole-archive $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--no-whole-archive $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o xbmc.bin -Wl,--whole-archive $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--no-whole-archive $(LIBS) -rdynamic
endif
xbmc-xrandr: xbmc-xrandr.c
ifneq (1,@USE_XRANDR@)
# xbmc-xrandr.c gets picked up by the default make rules
@echo "excluding xbmc-xrandr"
else
- $(CC) $(CFLAGS) $(LDFLAGS) -o xbmc-xrandr xbmc-xrandr.c -lXrandr -lX11
+ $(SILENT_LD) $(CC) $(CFLAGS) $(LDFLAGS) -o xbmc-xrandr xbmc-xrandr.c -lXrandr -lX11
endif
tools/XBMCTex/XBMCTex:
View
14 Makefile.include.in
@@ -4,6 +4,7 @@ RM=rm -rf
SHELL=@SHELL@
ARCH=@ARCH@
abs_top_srcdir=@abs_top_srcdir@
+rel_top_srcdir=$(subst $(abspath $(abs_top_srcdir))/,,$(abspath $(CURDIR))/)
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
@@ -58,12 +59,13 @@ ifeq ($(ARCH), powerpc-osx)
endif
ifneq ($(V), 1)
- SILENT_CPP=@echo "CPP $@";
- SILENT_CC =@echo "CC $@";
- SILENT_S =@echo "S $@";
- SILENT_GCH=@echo "GCH $@";
- SILENT_MM =@echo "MM $@";
- SILENT_AR =@echo "AR $@";
+ SILENT_CPP=@echo "CPP $(rel_top_srcdir)$@";
+ SILENT_CC =@echo "CC $(rel_top_srcdir)$@";
+ SILENT_S =@echo "S $(rel_top_srcdir)$@";
+ SILENT_GCH=@echo "GCH $(rel_top_srcdir)$@";
+ SILENT_MM =@echo "MM $(rel_top_srcdir)$@";
+ SILENT_AR =@echo "AR $(rel_top_srcdir)$@";
+ SILENT_LD =@echo "LD $(rel_top_srcdir)$@";
endif
OBJS+=$(filter %.o,$(SRCS:.cpp=.o))
View
2 README.ubuntu
@@ -46,7 +46,7 @@ For Ubuntu (all versions >= 7.04):
# sudo apt-get install git-core make g++ gcc gawk pmount libtool nasm yasm automake cmake gperf zip unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound2-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libenca-dev libxt-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmpeg3-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs python-dev libyajl-dev libboost-thread-dev libplist-dev libusb-dev libudev-dev
-For Ubuntu Maverick (10.10):
+For >= 10.10:
# sudo apt-get install autopoint
On 8.10 and older versions, libcurl is outdated and thus XBMC will not compile properly.
View
885 XBMC-ATV2.xcodeproj/project.pbxproj
378 additions, 507 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
1,080 XBMC-IOS.xcodeproj/project.pbxproj
536 additions, 544 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
1,589 XBMC.xcodeproj/project.pbxproj
924 additions, 665 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
4 addons/pvr.hts/resources/language/Finnish/strings.xml
@@ -8,4 +8,8 @@
<string id="30004">Salasana</string>
<string id="30006">Yhteyden aikakatkaisu sekunneissa</string>
<string id="30007">Vastauksen aikakatkaisu sekunneissa</string>
+
+ <!-- notifications -->
+ <string id="30500">Yhteys katkaistu palvelimeen '%s'</string>
+ <string id="30501">Yhdistetty palvelimeen '%s'</string>
</strings>
View
8 addons/pvr.team-mediaportal.tvserver/resources/language/Finnish/strings.xml
@@ -14,4 +14,12 @@
<string id="30010">Odotusaika kanavan virittämisen jälkeen (ms)</string>
<string id="30011">Toista nauhoitukset suoraan (ei streamausta)</string>
<string id="30012">Mediaportal-nauhoitusten kansio</string>
+
+ <!-- category labels -->
+ <string id="30040">Yhteys</string>
+ <string id="30041">MediaPortal</string>
+
+ <!-- on-screen error messages -->
+ <string id="30050">TVServerXBMC:n versio v%s on liian vanha. Päivitä vähintään versioon v%s tai uudempaan!</string>
+ <string id="30051">TVServerXBMC:n versio on liian vanha. Päivitä vähintään versioon v%s tai uudempaan!</string>
</strings>
View
1 addons/pvr.vdr.vnsi/resources/language/Finnish/strings.xml
@@ -47,4 +47,5 @@
<string id="30043">Kanavahaku virhe</string>
<string id="30044">Yhteys VDR-palvelimeen menetetty</string>
<string id="30045">Yhteys VDR-palvelimeen palautettu</string>
+ <string id="30046">Luo kanavaryhmät automaattisesti palvelimella</string>
</strings>
View
40 addons/skin.confluence/720p/ViewsPVR.xml
@@ -831,24 +831,36 @@
<label>$INFO[ListItem.Label]</label>
</control>
</rulerlayout>
- <channellayout height="52" width="230">
+ <channellayout height="52" width="280">
<animation effect="fade" start="110" time="200">UnFocus</animation>
<control type="image" id="1">
<posx>0</posx>
<posy>0</posy>
- <width>220</width>
+ <width>270</width>
<height>52</height>
<texture border="5">button-nofocus.png</texture>
</control>
- <control type="image">
+ <control type="label">
<posx>5</posx>
+ <posy>5</posy>
+ <width>40</width>
+ <height>35</height>
+ <font>font12</font>
+ <align>left</align>
+ <aligny>center</aligny>
+ <textcolor>grey</textcolor>
+ <selectedcolor>grey</selectedcolor>
+ <info>ListItem.ChannelNumber</info>
+ </control>
+ <control type="image">
+ <posx>45</posx>
<posy>4</posy>
<width>45</width>
<height>44</height>
<texture>$INFO[ListItem.Icon]</texture>
</control>
<control type="label" id="1">
- <posx>54</posx>
+ <posx>94</posx>
<posy>0</posy>
<width>160</width>
<height>52</height>
@@ -859,24 +871,36 @@
<label>$INFO[ListItem.ChannelName]</label>
</control>
</channellayout>
- <focusedchannellayout height="52" width="230">
+ <focusedchannellayout height="52" width="280">
<animation effect="fade" start="110" time="200">OnFocus</animation>
<control type="image" id="1">
<posx>0</posx>
<posy>0</posy>
- <width>220</width>
+ <width>270</width>
<height>52</height>
<texture border="5">button-focus.png</texture>
</control>
- <control type="image">
+ <control type="label">
<posx>5</posx>
+ <posy>5</posy>
+ <width>40</width>
+ <height>35</height>
+ <font>font12</font>
+ <align>left</align>
+ <aligny>center</aligny>
+ <textcolor>grey</textcolor>
+ <selectedcolor>grey</selectedcolor>
+ <info>ListItem.ChannelNumber</info>
+ </control>
+ <control type="image">
+ <posx>45</posx>
<posy>4</posy>
<width>45</width>
<height>44</height>
<texture>$INFO[ListItem.Icon]</texture>
</control>
<control type="label" id="1">
- <posx>54</posx>
+ <posx>94</posx>
<posy>0</posy>
<width>160</width>
<height>52</height>
View
2 addons/skin.confluence/language/Finnish/strings.xml
@@ -177,7 +177,7 @@
<string id="31505">Poista ryhmä</string>
<string id="31506">Saatavilla olevat[CR]ryhmät</string>
<string id="31509">Kanavaryhmä</string>
- <string id="31510">Ajastus asetettu</string>
+ <string id="31510">Ajastettu</string>
<string id="31511">Kanavan valinnat</string>
<!-- Weather plugin -->
View
19 addons/webinterface.debug/addon.xml
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<addon
- id="webinterface.debug"
- version="1.0.0"
- name="JSONRPC Debug Interface"
- provider-name="Team XBMC">
- <requires>
- <import addon="xbmc.gui" version="2.11"/>
- </requires>
- <extension
- point="xbmc.gui.webinterface"/>
- <extension point="xbmc.addon.metadata">
- <summary lang="en">Team XBMC Debug Web Interface</summary>
- <summary lang="se">Team XBMC's debubwebbgränssnitt</summary>
- <description lang="en">Provides test harness and debug samples for the JSONRPC</description>
- <description lang="se">Tillhandahåller provutrustning och prover för JSONRPC</description>
- <platform>all</platform>
- </extension>
-</addon>
View
BIN addons/webinterface.debug/favicon.ico
Binary file not shown.
View
27 addons/webinterface.debug/index.html
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>XBMC - Debug Interface</title>
- <meta http-equiv="Content-Language" content="EN" />
- <meta http-equiv="Content-Type" content="UTF-8" />
- <link rel="icon" href="/favicon.ico" type="image/x-icon">
- <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
- <meta name="robots" content="NOINDEX, NOFOLLOW">
- <script type="text/javascript" src="/js/jquery-1.4.2.js"></script>
- <script type="text/javascript" src="/js/testinvoker.js"></script>
- </head>
- <body>
- <table>
- <tr>
- <th>Method</th>
- <th>Invoker</th>
- <th>Result</th>
- </tr>
- <tr>
- <td>AudioLibrary.GetGenres</td>
- <td><a href="#" onclick="call(GET_GENRES, 'audioLibraryGetGenresResult'); return false;">Invoke</a></td>
- <td id="audioLibraryGetGenresResult"></td>
- </tr>
- </table>
- </body>
-</html>
View
6,240 addons/webinterface.debug/js/jquery-1.4.2.js
0 additions, 6,240 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
9 addons/webinterface.debug/js/testinvoker.js
@@ -1,9 +0,0 @@
-var GET_GENRES = '{"jsonrpc\": \"2.0\", "method": "AudioLibrary.GetGenres", "id": 1}';
-
-function call(method, resultContainer) {
- jQuery.post('/jsonrpc?TestInvokerCall', method, function(data) {
- if (data) {
- $('#' + resultContainer).html(data);
- }
- }, 'html');
-}
View
100 configure.in
@@ -123,8 +123,10 @@ libudev_not_found="== Could not find libudev. Will use polling to check for devi
libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
+libusb_disabled_udev_found="== libusb disabled. =="
libcec_enabled="== libcec enabled. =="
libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
+libcec_disabled_missing_libs="== libcec disabled because both libudev and libusb are not available. CEC adapter support will not be available. =="
# External library message strings
external_libraries_enabled="== Use of all supported external libraries enabled. =="
@@ -155,6 +157,12 @@ AC_ARG_WITH([cpu],
[use_cpu=$withval],
[use_cpu=no])
+AC_ARG_ENABLE([neon],
+ [AS_HELP_STRING([--enable-neon],
+ [enable neon passing to ffmpeg (default is no)])],
+ [use_neon=$enableval],
+ [use_neon=no])
+
AC_ARG_ENABLE([optimizations],
[AS_HELP_STRING([--enable-optimizations],
[enable optimization (default is yes)])],
@@ -573,16 +581,20 @@ elif test "$use_arch" = "arm"; then
[AC_LANG_SOURCE([int foo;])],
[ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- FFMPEG_EXTRACFLAGS+=" -mtune=cortex-a9 -mfpu=vfpv3-d16"
+ FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
use_cpu=cortex-a9],
[ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
use_cpu=cortex-a8])
else
- # Compile for ARMv7a architecture, CortexA8 cpu and NEON coprocessor
- CFLAGS+=" -Wa,-march=armv7a -mcpu=cortex-a8 -mfpu=neon -mvectorize-with-neon-quad"
- CXXFLAGS+=" -Wa,-march=armv7a -mcpu=cortex-a8 -mfpu=neon -mvectorize-with-neon-quad"
- FFMPEG_EXTRACFLAGS+=" -mfpu=neon"
+ # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
+ CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
+ CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
+ if test "$use_neon" = "yes"; then
+ CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
+ CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
+ FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
+ fi
fi
fi
@@ -1095,67 +1107,69 @@ else
PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
elif test "$use_libudev" = "yes" ; then
PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
+ else
+ AC_MSG_NOTICE($libudev_disabled)
fi
+
if test "x$use_libudev" != "xno"; then
USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
- else
- AC_MSG_NOTICE($libudev_disabled)
fi
fi
# libusb
USE_LIBUSB=0
-if test "$host_vendor" = "apple" ; then
+
+# if libudev is available, we don't need libusb
+if test "x$use_libudev" != "xno"; then
use_libusb="no"
- AC_MSG_NOTICE($libusb_disabled)
+ AC_MSG_NOTICE($libusb_disabled_udev_found)
else
- # we can use either libudev or libusb but not both.
- if test "x$use_libusb" != "xno" && "x$use_libudev" == "xno"; then
- if test "$host_vendor" = "apple" ; then
- use_libusb="no"
- AC_MSG_NOTICE($libusb_disabled)
+ if test "$host_vendor" = "apple" ; then
+ use_libusb="no"
+ AC_MSG_NOTICE($libusb_disabled)
+ else
+ if test "$use_libusb" = "auto"; then
+ PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
+ elif test "$use_libusb" = "yes"; then
+ PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
else
- if test "$use_libusb" = "auto"; then
- PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
- elif test "$use_libusb" = "yes"; then
- PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
- fi
+ AC_MSG_NOTICE($libusb_disabled)
fi
+
if test "x$use_libusb" != "xno"; then
USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
- else
- AC_MSG_NOTICE($libusb_disabled)
fi
- else
- use_libusb="no"
fi
fi
# libcec
USE_LIBCEC=0
if test "x$use_libcec" != "xno"; then
- # libcec is dyloaded, so we need to check for its headers and link any depends.
- PKG_CHECK_MODULES([CEC],[libcec = 0.7.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
- if test "x$use_libcec" != "xno" && test "$host_vendor" != "apple"; then
- # libcec has libudev as depends under linux and we also need usb headers.
- PKG_CHECK_MODULES([USB],[libusb],,[use_libcec="no";AC_MSG_RESULT($libusb_not_found)])
- PKG_CHECK_MODULES([UDEV],[libudev],,[use_libcec="no";AC_MSG_RESULT($libudev_not_found)])
+ # libcec needs libudev or libusb under linux, or the device will never be detected.
+ if test "$host_vendor" != "apple" && test "$use_libusb" = "no" && test "$use_libudev" = "no"; then
+ if test "x$use_libcec" != "xauto"; then
+ AC_MSG_ERROR($libcec_disabled_missing_libs)
+ else
+ use_libcec="no"
+ AC_MSG_NOTICE($libcec_disabled_missing_libs)
+ fi
fi
+
+ # libcec is dyloaded, so we need to check for its headers and link any depends.
if test "x$use_libcec" != "xno"; then
- if test "$host_vendor" != "apple"; then
- # if linux, bring in usb and udev cflags but only udev as lib.
- INCLUDES="$INCLUDES $USB_CFLAGS $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
- USE_LIBUDEV=1;AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
+ PKG_CHECK_MODULES([CEC],[libcec = 0.7.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
+
+ if test "x$use_libcec" != "xno"; then
+ INCLUDES="$INCLUDES $CEC_CFLAGS"
+ USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
+ XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
+ AC_MSG_NOTICE($libcec_enabled)
+ else
+ use_libcec="no"
+ AC_MSG_NOTICE($libcec_disabled)
fi
- INCLUDES="$INCLUDES $CEC_CFLAGS"
- USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
- XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
- AC_MSG_NOTICE($libcec_enabled)
- else
- use_libcec="no"
- AC_MSG_NOTICE($libcec_disabled)
fi
else
use_libcec="no"
@@ -1882,7 +1896,7 @@ OUTPUT_FILES="Makefile \
xbmc/peripherals/devices/Makefile"
if test "$use_skin_touched" = "yes"; then
-OUTPUT_FILES+=" addons/skin.touched/media/Makefile"
+OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
fi
# Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
@@ -1998,11 +2012,12 @@ XB_CONFIG_MODULE([lib/ffmpeg], [
`if test "$use_arch" != "no"; then echo --enable-cross-compile; fi` \
`if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
`if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
+ `if test "$use_arch" = "arm"; then echo --enable-pic; fi`\
+ `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
--target-os=$(tolower $(uname -s)) \
--disable-amd3dnow \
--disable-armv5te \
--disable-armv6t2 \
- `if test "$use_arch" != "yes"; then echo --enable-neon; fi`\
--disable-static \
`if test "$use_debug" = "no"; then echo --disable-debug; fi` \
--disable-muxers \
@@ -2043,6 +2058,7 @@ XB_CONFIG_MODULE([lib/ffmpeg], [
`if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
`if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
`if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
+ `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
--target-os=$(tolower $(uname -s)) \
--disable-muxers \
--enable-muxer=spdif \
View
5 language/Chinese (Simple)/strings.xml
@@ -2372,12 +2372,15 @@
<string id="36004">按“user”键指令</string>
<string id="36005">启用指令模式切换</string>
<string id="36006">无法打开适配器</string>
- <string id="36007">启动XBMC时开启设备</string>
+ <string id="36007">启动XBMC时开启电视</string>
<string id="36008">退出XBMC时关闭设备</string>
<string id="36009">激活屏幕保护程序时设备进入待机状态</string>
<string id="36010">退出XBMC时设为禁用资源</string>
<string id="36011">未检测到 CEC 端口。需人工设置。</string>
<string id="36012">未检测到 CEC 适配器。</string>
<string id="36013">不支持的 libcec 界面版本。%d 高于 XBMC 支持的版本(%d)</string>
<string id="36014">电视关闭时本计算机进入待机状态</string>
+ <string id="36015">HDMI 端口号</string>
+ <string id="36016">XBMC 已连接</string>
+ <string id="36017">发现适配器,但 libcec 不可用</string>
</strings>
View
36 language/Dutch/strings.xml
@@ -2855,5 +2855,41 @@
<string id="34201">Kan volgende item niet vinden om af te spelen</string>
<string id="34202">Kan vorige item niet vinden om af te spelen</string>
+
+ <string id="35000">Randapparatuur</string>
+
+ <string id="35001">Generiek HID apparaat</string>
+ <string id="35002">Generieke netwerk adapter</string>
+ <string id="35003">Generieke schijf</string>
+ <string id="35004">Er zijn geen instellingen beschikbaar&#10;voor dit apparaat.</string>
+ <string id="35005">Nieuw apparaat geconfigureerd</string>
+ <string id="35006">Apparaat verwijderd</string>
+ <string id="35007">Keymap voor dit apparaat</string>
+ <string id="35008">Keymap ingeschakeld</string>
+
+ <string id="35500">Locatie</string>
+ <string id="35501">Klasse</string>
+ <string id="35502">Naam</string>
+ <string id="35503">Fabrikant</string>
+ <string id="35504">Product ID</string>
+
+ <string id="36000">Pulse-Eight CEC adapter</string>
+ <string id="36001">Pulse-Eight Nyxboard</string>
+ <string id="36002">Wissel naar toetsenbord commando</string>
+ <string id="36003">Wissel naar afstandbediening commando</string>
+ <string id="36004">Druk op "user" knop commando</string>
+ <string id="36005">Schakel commando's in bij het wisselen van kant</string>
+ <string id="36006">Kon de adapter niet openen</string>
+ <string id="36007">Schakel de TV in bij het opstarten van XBMC</string>
+ <string id="36008">Schakel apparatuur uit bij het stoppen van XBMC</string>
+ <string id="36009">Schakel app. uit zolang de schermbeveiliging actief is</string>
+ <string id="36010">Markeer als inactieve bron bij het stoppen van XBMC</string>
+ <string id="36011">Kon de CEC poort niet detecteren. Stel het manueel in.</string>
+ <string id="36012">Kon de CEC adapter niet detecteren.</string>
+ <string id="36013">Versie %d van de libcec interface version wordt niet ondersteund door XBMC (> %d)</string>
+ <string id="36014">Zet XBMC in standby wanneer de TV uitgeschakeld wordt</string>
+ <string id="36015">HDMI poort nummer</string>
+ <string id="36016">XBMC verbonden</string>
+ <string id="36017">Adapter gevonden, maar libcec is niet beschikbaar</string>
</strings>
View
7 language/English/strings.xml
@@ -1536,8 +1536,8 @@
<string id="16322">Spline36</string>
<string id="16323">Spline36 optimized</string>
- <string id="16324">Auto - ION Optimized</string>
- <string id="16325">Software Blend</string>
+ <string id="16324">Software Blend</string>
+ <string id="16325">Auto - ION Optimized</string>
<string id="16400">Post-processing</string>
@@ -2819,7 +2819,7 @@
<string id="36004">Press "user" button command</string>
<string id="36005">Enable switch side commands</string>
<string id="36006">Could not open the adapter</string>
- <string id="36007">Power on devices when starting XBMC</string>
+ <string id="36007">Power on the TV when starting XBMC</string>
<string id="36008">Power off devices when stopping XBMC</string>
<string id="36009">Put devices in standby mode when activating screensaver</string>
<string id="36010">Set as inactive source when stopping XBMC</string>
@@ -2829,4 +2829,5 @@
<string id="36014">Put this PC in standby mode when the TV is switched off</string>
<string id="36015">HDMI port number</string>
<string id="36016">XBMC connected</string>
+ <string id="36017">Adapter found, but libcec is not available</string>
</strings>
View
12 language/Finnish/strings.xml
@@ -1622,7 +1622,7 @@
<string id="19070">Ohjelmatietojen haun aikakatkaisu</string>
<string id="19071">Ohjelmatietojen päivitysväli</string>
<string id="19072">Älä tallenna ohjelmatietoja tietokantaan</string>
- <string id="19073">Vaihda kanavaa jos toisto ei ala</string>
+ <string id="19073">Viivytä kanavanvaihtoa</string>
<string id="19074">Käytössä:</string>
<string id="19075">Nimi:</string>
<string id="19076">Kansio:</string>
@@ -1781,6 +1781,16 @@
<string id="19231">Käytä taustaosien kanavajärjestystä</string>
<string id="19232">Tyhjennä hakutulokset</string>
<string id="19233">Näytä ilmoitus ajastustietojen päivityksen yhteydessä</string>
+ <string id="19234">Käytä taustaosan kanavanumeroita (vain 1 PVR-lisäosa kerrallaan)</string>
+ <string id="19235">PVR-hallinta käynnistyy</string>
+ <string id="19236">tuodaan kanavat</string>
+ <string id="19237">tuodaan ajastukset</string>
+ <string id="19238">tuodaan nauhoitukset</string>
+ <string id="19239">käynnistetään taustasäikeet</string>
+ <string id="19240">Ei käytössä olevia PVR-lisäosia</string>
+ <string id="19241">PVR-hallinta on otettu käyttöön ilman yhtään</string>
+ <string id="19242">käytössä olevaa PVR-lisäosaa. Ota käyttöön vähintään</string>
+ <string id="19243">yksi lisäosa mikäli haluat käyttää PVR toimintoja.</string>
<string id="19499">Muu/Tuntematon</string>
<string id="19500">Elokuva/Draama</string>
View
3 lib/DllLibbluray.h
@@ -135,9 +135,6 @@ class DllLibbluray : public DllDynamic, DllLibblurayInterface
RESOLVE_METHOD_RENAME(bd_tell_time, bd_tell_time)
RESOLVE_METHOD_RENAME(bd_register_file, bd_register_file)
RESOLVE_METHOD_RENAME(bd_register_dir, bd_register_dir)
- RESOLVE_METHOD(bd_set_debug_handler)
- RESOLVE_METHOD(bd_set_debug_mask)
- RESOLVE_METHOD(bd_get_debug_mask)
#ifndef HAVE_LIBBLURAY_NOLOGCONTROL
RESOLVE_METHOD(bd_set_debug_handler)
RESOLVE_METHOD(bd_set_debug_mask)
View
1 lib/ffmpeg/libavcodec/dxva2.h
@@ -65,6 +65,7 @@ struct dxva_context {
* Private to the FFmpeg AVHWAccel implementation
*/
unsigned report_id;
+ unsigned last_slice_count;
};
#endif /* AVCODEC_DXVA_H */
View
8 lib/ffmpeg/libavcodec/dxva2_h264.c
@@ -430,6 +430,14 @@ static int end_frame(AVCodecContext *avctx)
if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0)
return -1;
+
+ // Wait for an I-frame before start decoding. Workaround for ATI UVD and UVD+ GPUs
+ if (!h->got_first_iframe) {
+ if (!(ctx_pic->pp.wBitFields & (1 << 15)))
+ return -1;
+ h->got_first_iframe = 1;
+ }
+
return ff_dxva2_common_end_frame(avctx, s,
&ctx_pic->pp, sizeof(ctx_pic->pp),
&ctx_pic->qm, sizeof(ctx_pic->qm),
View
26 lib/ffmpeg/libavcodec/dxva2_mpeg2.c
@@ -22,12 +22,12 @@
#include "dxva2_internal.h"
-#define MAX_SLICES (SLICE_MAX_START_CODE - SLICE_MIN_START_CODE + 1)
struct dxva2_picture_context {
DXVA_PictureParameters pp;
DXVA_QmatrixData qm;
unsigned slice_count;
- DXVA_SliceInfo slice[MAX_SLICES];
+ DXVA_SliceInfo *slice;
+ unsigned int slice_alloc;
const uint8_t *bitstream;
unsigned bitstream_size;
@@ -220,8 +220,20 @@ static int start_frame(AVCodecContext *avctx,
fill_quantization_matrices(avctx, ctx, s, &ctx_pic->qm);
ctx_pic->slice_count = 0;
+ ctx_pic->slice = NULL;
+ ctx_pic->slice_alloc = 0;
ctx_pic->bitstream_size = 0;
ctx_pic->bitstream = NULL;
+
+ if (ctx->last_slice_count > 0)
+ {
+ ctx_pic->slice = av_fast_realloc(NULL,
+ &ctx_pic->slice_alloc,
+ ctx->last_slice_count * sizeof(DXVA_SliceInfo));
+ if (!ctx_pic->slice)
+ return -1;
+ }
+
return 0;
}
@@ -232,9 +244,14 @@ static int decode_slice(AVCodecContext *avctx,
struct dxva2_picture_context *ctx_pic =
s->current_picture_ptr->hwaccel_picture_private;
unsigned position;
+ DXVA_SliceInfo* slice;
- if (ctx_pic->slice_count >= MAX_SLICES)
+ slice = av_fast_realloc(ctx_pic->slice,
+ &ctx_pic->slice_alloc,
+ (ctx_pic->slice_count + 1) * sizeof(DXVA_SliceInfo));
+ if (!slice)
return -1;
+ ctx_pic->slice = slice;
if (!ctx_pic->bitstream)
ctx_pic->bitstream = buffer;
@@ -251,13 +268,16 @@ static int end_frame(AVCodecContext *avctx)
struct MpegEncContext *s = avctx->priv_data;
struct dxva2_picture_context *ctx_pic =
s->current_picture_ptr->hwaccel_picture_private;
+ struct dxva_context *ctx = avctx->hwaccel_context;
if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0)
return -1;
return ff_dxva2_common_end_frame(avctx, s,
&ctx_pic->pp, sizeof(ctx_pic->pp),
&ctx_pic->qm, sizeof(ctx_pic->qm),
commit_bitstream_and_slice_buffer);
+ av_freep(ctx_pic->slice);
+ ctx->last_slice_count = ctx_pic->slice_count;
}
AVHWAccel ff_mpeg2_dxva2_hwaccel = {
View
21 lib/ffmpeg/libavcodec/dxva2_vc1.c
@@ -38,15 +38,17 @@ static void fill_picture_parameters(AVCodecContext *avctx,
{
const MpegEncContext *s = &v->s;
const Picture *current_picture = s->current_picture_ptr;
+ BYTE bPicIntra = s->pict_type == FF_I_TYPE || v->bi_type == 1;
+ BYTE bPicBackwardPrediction = s->pict_type == FF_B_TYPE && v->bi_type == 0;
memset(pp, 0, sizeof(*pp));
pp->wDecodedPictureIndex =
pp->wDeblockedPictureIndex = ff_dxva2_get_surface_index(ctx, current_picture);
- if (s->pict_type != FF_I_TYPE)
- pp->wForwardRefPictureIndex = ff_dxva2_get_surface_index(ctx, &s->last_picture);
- else
+ if (bPicIntra)
pp->wForwardRefPictureIndex = 0xffff;
- if (s->pict_type == FF_B_TYPE)
+ else
+ pp->wForwardRefPictureIndex = ff_dxva2_get_surface_index(ctx, &s->last_picture);
+ if (bPicBackwardPrediction)
pp->wBackwardRefPictureIndex = ff_dxva2_get_surface_index(ctx, &s->next_picture);
else
pp->wBackwardRefPictureIndex = 0xffff;
@@ -69,8 +71,8 @@ static void fill_picture_parameters(AVCodecContext *avctx,
if (s->picture_structure & PICT_BOTTOM_FIELD)
pp->bPicStructure |= 0x02;
pp->bSecondField = v->interlace && v->fcm != 0x03 && !s->first_field;
- pp->bPicIntra = s->pict_type == FF_I_TYPE;
- pp->bPicBackwardPrediction = s->pict_type == FF_B_TYPE;
+ pp->bPicIntra = bPicIntra;
+ pp->bPicBackwardPrediction = bPicBackwardPrediction;
pp->bBidirectionalAveragingMode = (1 << 7) |
((ctx->cfg->ConfigIntraResidUnsigned != 0) << 6) |
((ctx->cfg->ConfigResidDiffAccelerator != 0) << 5) |
@@ -101,14 +103,17 @@ static void fill_picture_parameters(AVCodecContext *avctx,
(v->rangered << 3) |
(s->max_b_frames );
pp->bPicExtrapolation = (!v->interlace || v->fcm == 0x00) ? 1 : 2;
- pp->bPicDeblocked = ((v->profile != PROFILE_ADVANCED && v->rangeredfrm) << 5) |
+ pp->bPicDeblocked = ((v->overlap == 1 &&
+ pp->bPicBackwardPrediction == 0 &&
+ ctx->cfg->ConfigResidDiffHost == 0) << 6) |
+ ((v->profile != PROFILE_ADVANCED && v->rangeredfrm) << 5) |
(s->loop_filter << 1);
pp->bPicDeblockConfined = (v->postprocflag << 7) |
(v->broadcast << 6) |
(v->interlace << 5) |
(v->tfcntrflag << 4) |
(v->finterpflag << 3) |
- ((s->pict_type != FF_B_TYPE) << 2) |
+ ((s->pict_type != FF_B_TYPE) << 2) | //includes BI
(v->psf << 1) |
(v->extended_dmv );
if (s->pict_type != FF_I_TYPE)
View
4 lib/ffmpeg/libavcodec/h264.c
@@ -1479,6 +1479,7 @@ static void flush_dpb(AVCodecContext *avctx){
h->delayed_pic[i]->reference= 0;
h->delayed_pic[i]= NULL;
}
+ h->got_first_iframe = 0;
h->outputed_poc= INT_MIN;
h->prev_interlaced_frame = 1;
idr(h);
@@ -1848,6 +1849,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
return -1;
s->first_field = 0;
h->prev_interlaced_frame = 1;
+ h->got_first_iframe = 0;
init_scan_tables(h);
ff_h264_alloc_tables(h);
@@ -2566,7 +2568,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg){
return 0;
}
if( ret < 0 || h->cabac.bytestream > h->cabac.bytestream_end + 2) {
- av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d, bytestream (%td)\n", s->mb_x, s->mb_y, h->cabac.bytestream_end - h->cabac.bytestream);
+ av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d, bytestream (%u)\n", s->mb_x, s->mb_y, h->cabac.bytestream_end - h->cabac.bytestream);
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask);
return -1;
}
View
2 lib/ffmpeg/libavcodec/h264.h
@@ -587,6 +587,8 @@ typedef struct H264Context{
int luma_weight_flag[2]; ///< 7.4.3.2 luma_weight_lX_flag
int chroma_weight_flag[2]; ///< 7.4.3.2 chroma_weight_lX_flag
+ int got_first_iframe;
+
// Timestamp stuff
int sei_buffering_period_present; ///< Buffering period SEI flag
int initial_cpb_removal_delay[32]; ///< Initial timestamps for CPBs
View
2 lib/ffmpeg/libavformat/matroskadec.c
@@ -1220,7 +1220,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
for (i=0; i < matroska->tracks.nb_elem; i++) {
MatroskaTrack *track = &tracks[i];
enum CodecID codec_id = CODEC_ID_NONE;
- EbmlList *encodings_list = &tracks->encodings;
+ EbmlList *encodings_list = &track->encodings;
MatroskaTrackEncoding *encodings = encodings_list->elem;
uint8_t *extradata = NULL;
int extradata_size = 0;
View
74 lib/ffmpeg/patches/0051-dxva-mpeg2-Allocate-slices-array-dynamically-fixes-v.patch
@@ -0,0 +1,74 @@
+From 87abcf002b55c8a26b6640ee55a56d3b79dd4740 Mon Sep 17 00:00:00 2001
+From: CrystalP <CrystalP@xbmc.org>
+Date: Wed, 5 Oct 2011 12:38:30 -0400
+Subject: [PATCH 1/6] dxva-mpeg2 Allocate slices array dynamically - fixes videos with > 175 slices.
+ They used to result in images with a black bottom.
+
+sample on team ftp samples/PR471/too_many_slices.ts
+
+Inspired by the vaapi code to reallocate the slices array for each new slice.
+Could be more efficient if the array could be preserved for all frames and
+freed only at the end of the video, but there doesn't seem to be anywhere
+appropriate to free the memory at the end.
+
+Alternative is to allocate the proper size straight away for a new frame,
+instead of realloc'ing for each slice.
+---
+ lib/ffmpeg/libavcodec/dxva2_mpeg2.c | 14 +++++++++++---
+ 1 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/lib/ffmpeg/libavcodec/dxva2_mpeg2.c b/lib/ffmpeg/libavcodec/dxva2_mpeg2.c
+index 780542a..9ac2d17 100644
+--- a/lib/ffmpeg/libavcodec/dxva2_mpeg2.c
++++ b/lib/ffmpeg/libavcodec/dxva2_mpeg2.c
+@@ -22,12 +22,12 @@
+
+ #include "dxva2_internal.h"
+
+-#define MAX_SLICES (SLICE_MAX_START_CODE - SLICE_MIN_START_CODE + 1)
+ struct dxva2_picture_context {
+ DXVA_PictureParameters pp;
+ DXVA_QmatrixData qm;
+ unsigned slice_count;
+- DXVA_SliceInfo slice[MAX_SLICES];
++ DXVA_SliceInfo *slice;
++ unsigned int slice_alloc;
+
+ const uint8_t *bitstream;
+ unsigned bitstream_size;
+@@ -220,6 +220,8 @@ static int start_frame(AVCodecContext *avctx,
+ fill_quantization_matrices(avctx, ctx, s, &ctx_pic->qm);
+
+ ctx_pic->slice_count = 0;
++ ctx_pic->slice = NULL;
++ ctx_pic->slice_alloc = 0;
+ ctx_pic->bitstream_size = 0;
+ ctx_pic->bitstream = NULL;
+ return 0;
+@@ -232,9 +234,14 @@ static int decode_slice(AVCodecContext *avctx,
+ struct dxva2_picture_context *ctx_pic =
+ s->current_picture_ptr->hwaccel_picture_private;
+ unsigned position;
++ DXVA_SliceInfo* slice;
+
+- if (ctx_pic->slice_count >= MAX_SLICES)
++ slice = av_fast_realloc(ctx_pic->slice,
++ &ctx_pic->slice_alloc,
++ (ctx_pic->slice_count + 1) * sizeof(DXVA_SliceInfo));
++ if (!slice)
+ return -1;
++ ctx_pic->slice = slice;
+
+ if (!ctx_pic->bitstream)
+ ctx_pic->bitstream = buffer;
+@@ -258,6 +265,7 @@ static int end_frame(AVCodecContext *avctx)
+ &ctx_pic->pp, sizeof(ctx_pic->pp),
+ &ctx_pic->qm, sizeof(ctx_pic->qm),
+ commit_bitstream_and_slice_buffer);
++ av_freep(ctx_pic->slice);
+ }
+
+ AVHWAccel ff_mpeg2_dxva2_hwaccel = {
+--
+1.7.3.1.msysgit.0
+
View
74 lib/ffmpeg/patches/0052-dxva-mpeg2-speed-up-slice-allocation.patch
@@ -0,0 +1,74 @@
+From 191bc00c62691c4e365ae8b56ed36a9002295961 Mon Sep 17 00:00:00 2001
+From: CrystalP <CrystalP@xbmc.org>
+Date: Mon, 10 Oct 2011 19:42:50 -0400
+Subject: [PATCH 2/6] dxva-mpeg2 speed up slice allocation
+
+The number of slices is not very likely to change from frame to frame, so
+at the beginning of a new frame, allocate memory for the amount of slices of
+the previous frame. Saves a lot of reallocation, for some TV capture samples
+there are over 200 slices.
+
+There wasn't anywhere really appropriate to store last_slice_count (needs to
+live from first frame to last frame), so this is likely to cause discussion to
+merge upstream.
+Adding members to dxva_context breaks ABI, which we don't care too much about
+since on Windows we don't support external ffmpeg.
+dxva mpeg2 code also has access to MpegEncContext, but adding there would
+likely break ABI as well.
+---
+ lib/ffmpeg/libavcodec/dxva2.h | 1 +
+ lib/ffmpeg/libavcodec/dxva2_mpeg2.c | 12 ++++++++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+diff --git a/lib/ffmpeg/libavcodec/dxva2.h b/lib/ffmpeg/libavcodec/dxva2.h
+index 6eb494b..12dce47 100644
+--- a/lib/ffmpeg/libavcodec/dxva2.h
++++ b/lib/ffmpeg/libavcodec/dxva2.h
+@@ -65,6 +65,7 @@ struct dxva_context {
+ * Private to the FFmpeg AVHWAccel implementation
+ */
+ unsigned report_id;
++ unsigned last_slice_count;
+ };
+
+ #endif /* AVCODEC_DXVA_H */
+diff --git a/lib/ffmpeg/libavcodec/dxva2_mpeg2.c b/lib/ffmpeg/libavcodec/dxva2_mpeg2.c
+index 9ac2d17..2482c2f 100644
+--- a/lib/ffmpeg/libavcodec/dxva2_mpeg2.c
++++ b/lib/ffmpeg/libavcodec/dxva2_mpeg2.c
+@@ -224,6 +224,16 @@ static int start_frame(AVCodecContext *avctx,
+ ctx_pic->slice_alloc = 0;
+ ctx_pic->bitstream_size = 0;
+ ctx_pic->bitstream = NULL;
++
++ if (ctx->last_slice_count > 0)
++ {
++ ctx_pic->slice = av_fast_realloc(NULL,
++ &ctx_pic->slice_alloc,
++ ctx->last_slice_count * sizeof(DXVA_SliceInfo));
++ if (!ctx_pic->slice)
++ return -1;
++ }
++
+ return 0;
+ }
+
+@@ -258,6 +268,7 @@ static int end_frame(AVCodecContext *avctx)
+ struct MpegEncContext *s = avctx->priv_data;
+ struct dxva2_picture_context *ctx_pic =
+ s->current_picture_ptr->hwaccel_picture_private;
++ struct dxva_context *ctx = avctx->hwaccel_context;
+
+ if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0)
+ return -1;
+@@ -266,6 +277,7 @@ static int end_frame(AVCodecContext *avctx)
+ &ctx_pic->qm, sizeof(ctx_pic->qm),
+ commit_bitstream_and_slice_buffer);
+ av_freep(ctx_pic->slice);
++ ctx->last_slice_count = ctx_pic->slice_count;
+ }
+
+ AVHWAccel ff_mpeg2_dxva2_hwaccel = {
+--
+1.7.3.1.msysgit.0
+
View
59 lib/ffmpeg/patches/0053-dxva-vc1-Take-BI-into-account-for-forward-and-backwa.patch
@@ -0,0 +1,59 @@
+From 9afd569e13e9c0a823e11f4dd68ba9cb5e3ad3f1 Mon Sep 17 00:00:00 2001
+From: CrystalP <CrystalP@xbmc.org>
+Date: Wed, 5 Oct 2011 12:53:38 -0400
+Subject: [PATCH 3/6] dxva-vc1 Take BI into account for forward and backward pictures
+
+See ticket #11643, sample on team ftp, samples/11643/vc-1 test.wmv
+---
+ lib/ffmpeg/libavcodec/dxva2_vc1.c | 16 +++++++++-------
+ 1 files changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/lib/ffmpeg/libavcodec/dxva2_vc1.c b/lib/ffmpeg/libavcodec/dxva2_vc1.c
+index 2b9a690..86cdf2f 100644
+--- a/lib/ffmpeg/libavcodec/dxva2_vc1.c
++++ b/lib/ffmpeg/libavcodec/dxva2_vc1.c
+@@ -38,15 +38,17 @@ static void fill_picture_parameters(AVCodecContext *avctx,
+ {
+ const MpegEncContext *s = &v->s;
+ const Picture *current_picture = s->current_picture_ptr;
++ BYTE bPicIntra = s->pict_type == FF_I_TYPE || v->bi_type == 1;
++ BYTE bPicBackwardPrediction = s->pict_type == FF_B_TYPE && v->bi_type == 0;
+
+ memset(pp, 0, sizeof(*pp));
+ pp->wDecodedPictureIndex =
+ pp->wDeblockedPictureIndex = ff_dxva2_get_surface_index(ctx, current_picture);
+- if (s->pict_type != FF_I_TYPE)
+- pp->wForwardRefPictureIndex = ff_dxva2_get_surface_index(ctx, &s->last_picture);
+- else
++ if (bPicIntra)
+ pp->wForwardRefPictureIndex = 0xffff;
+- if (s->pict_type == FF_B_TYPE)
++ else
++ pp->wForwardRefPictureIndex = ff_dxva2_get_surface_index(ctx, &s->last_picture);
++ if (bPicBackwardPrediction)
+ pp->wBackwardRefPictureIndex = ff_dxva2_get_surface_index(ctx, &s->next_picture);
+ else
+ pp->wBackwardRefPictureIndex = 0xffff;
+@@ -69,8 +71,8 @@ static void fill_picture_parameters(AVCodecContext *avctx,
+ if (s->picture_structure & PICT_BOTTOM_FIELD)
+ pp->bPicStructure |= 0x02;
+ pp->bSecondField = v->interlace && v->fcm != 0x03 && !s->first_field;
+- pp->bPicIntra = s->pict_type == FF_I_TYPE;
+- pp->bPicBackwardPrediction = s->pict_type == FF_B_TYPE;
++ pp->bPicIntra = bPicIntra;
++ pp->bPicBackwardPrediction = bPicBackwardPrediction;
+ pp->bBidirectionalAveragingMode = (1 << 7) |
+ ((ctx->cfg->ConfigIntraResidUnsigned != 0) << 6) |
+ ((ctx->cfg->ConfigResidDiffAccelerator != 0) << 5) |
+@@ -108,7 +110,7 @@ static void fill_picture_parameters(AVCodecContext *avctx,
+ (v->interlace << 5) |
+ (v->tfcntrflag << 4) |
+ (v->finterpflag << 3) |
+- ((s->pict_type != FF_B_TYPE) << 2) |
++ ((s->pict_type != FF_B_TYPE) << 2) | //includes BI
+ (v->psf << 1) |
+ (v->extended_dmv );
+ if (s->pict_type != FF_I_TYPE)
+--
+1.7.3.1.msysgit.0
+
View
29 lib/ffmpeg/patches/0054-dxva-vc1-Pass-overlapping-transforms-hint.patch
@@ -0,0 +1,29 @@
+From 537d5999337500cac1c521f45de0a921b9aab5ac Mon Sep 17 00:00:00 2001
+From: CrystalP <CrystalP@xbmc.org>
+Date: Thu, 6 Oct 2011 20:23:31 -0400
+Subject: [PATCH 4/6] dxva-vc1 Pass overlapping transforms hint
+
+see ticket #11643
+---
+ lib/ffmpeg/libavcodec/dxva2_vc1.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/lib/ffmpeg/libavcodec/dxva2_vc1.c b/lib/ffmpeg/libavcodec/dxva2_vc1.c
+index 86cdf2f..eca587a 100644
+--- a/lib/ffmpeg/libavcodec/dxva2_vc1.c
++++ b/lib/ffmpeg/libavcodec/dxva2_vc1.c
+@@ -103,7 +103,10 @@ static void fill_picture_parameters(AVCodecContext *avctx,
+ (v->rangered << 3) |
+ (s->max_b_frames );
+ pp->bPicExtrapolation = (!v->interlace || v->fcm == 0x00) ? 1 : 2;
+- pp->bPicDeblocked = ((v->profile != PROFILE_ADVANCED && v->rangeredfrm) << 5) |
++ pp->bPicDeblocked = ((v->overlap == 1 &&
++ pp->bPicBackwardPrediction == 0 &&
++ ctx->cfg->ConfigResidDiffHost == 0) << 6) |
++ ((v->profile != PROFILE_ADVANCED && v->rangeredfrm) << 5) |
+ (s->loop_filter << 1);
+ pp->bPicDeblockConfined = (v->postprocflag << 7) |
+ (v->broadcast << 6) |
+--
+1.7.3.1.msysgit.0
+
View
74 lib/ffmpeg/patches/0055-dxva-h264-Fix-dxva-playback-of-streams-that-don-t-st.patch
@@ -0,0 +1,74 @@
+From 6328fc9c25a19f1cba3fae56eeff1eaf69ec6d50 Mon Sep 17 00:00:00 2001
+From: CrystalP <CrystalP@xbmc.org>
+Date: Wed, 5 Oct 2011 13:13:25 -0400
+Subject: [PATCH 5/6] dxva-h264 Fix dxva playback of streams that don't start with an I-Frame.
+
+GPUs with ATI UVDa and UVD+ have trouble when decoding doesn't start on an
+I-Frame, and they don't recover on later I-Frames.
+
+The variable to track the first I-Frame is in H264Context so that it can be
+reset by code in h264 when initializing the context or flushing.
+
+credits isidrogar, see ticket #11772.
+sample on team ftp, samples/11772/CSI_ New York - TV3 - 2008-09-16_1.ts
+---
+ lib/ffmpeg/libavcodec/dxva2_h264.c | 8 ++++++++
+ lib/ffmpeg/libavcodec/h264.c | 2 ++
+ lib/ffmpeg/libavcodec/h264.h | 2 ++
+ 3 files changed, 12 insertions(+), 0 deletions(-)
+
+diff --git a/lib/ffmpeg/libavcodec/dxva2_h264.c b/lib/ffmpeg/libavcodec/dxva2_h264.c
+index 4e3370c..2954b89 100644
+--- a/lib/ffmpeg/libavcodec/dxva2_h264.c
++++ b/lib/ffmpeg/libavcodec/dxva2_h264.c
+@@ -430,6 +430,14 @@ static int end_frame(AVCodecContext *avctx)
+
+ if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0)
+ return -1;
++
++ // Wait for an I-frame before start decoding. Workaround for ATI UVD and UVD+ GPUs
++ if (!h->got_first_iframe) {
++ if (!(ctx_pic->pp.wBitFields & (1 << 15)))
++ return -1;
++ h->got_first_iframe = 1;
++ }
++
+ return ff_dxva2_common_end_frame(avctx, s,
+ &ctx_pic->pp, sizeof(ctx_pic->pp),
+ &ctx_pic->qm, sizeof(ctx_pic->qm),
+diff --git a/lib/ffmpeg/libavcodec/h264.c b/lib/ffmpeg/libavcodec/h264.c
+index b84430a..a4d35ae 100644
+--- a/lib/ffmpeg/libavcodec/h264.c
++++ b/lib/ffmpeg/libavcodec/h264.c
+@@ -1479,6 +1479,7 @@ static void flush_dpb(AVCodecContext *avctx){
+ h->delayed_pic[i]->reference= 0;
+ h->delayed_pic[i]= NULL;
+ }
++ h->got_first_iframe = 0;
+ h->outputed_poc= INT_MIN;
+ h->prev_interlaced_frame = 1;
+ idr(h);
+@@ -1848,6 +1849,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
+ return -1;
+ s->first_field = 0;
+ h->prev_interlaced_frame = 1;
++ h->got_first_iframe = 0;
+
+ init_scan_tables(h);
+ ff_h264_alloc_tables(h);
+diff --git a/lib/ffmpeg/libavcodec/h264.h b/lib/ffmpeg/libavcodec/h264.h
+index b403968..bdca237 100644
+--- a/lib/ffmpeg/libavcodec/h264.h
++++ b/lib/ffmpeg/libavcodec/h264.h
+@@ -587,6 +587,8 @@ typedef struct H264Context{
+ int luma_weight_flag[2]; ///< 7.4.3.2 luma_weight_lX_flag
+ int chroma_weight_flag[2]; ///< 7.4.3.2 chroma_weight_lX_flag
+
++ int got_first_iframe;
++
+ // Timestamp stuff
+ int sei_buffering_period_present; ///< Buffering period SEI flag
+ int initial_cpb_removal_delay[32]; ///< Initial timestamps for CPBs
+--
+1.7.3.1.msysgit.0
+
View
25 lib/ffmpeg/patches/0056-Changed-format-string-td-not-supported-by-our-MingW-.patch
@@ -0,0 +1,25 @@
+From a584fbd0039270ae30ce08603ef6e819c61c908a Mon Sep 17 00:00:00 2001
+From: CrystalP <CrystalP@xbmc.org>
+Date: Thu, 6 Oct 2011 13:25:28 -0400
+Subject: [PATCH 6/6] Changed format string - %td not supported by our MingW environment.
+
+---
+ lib/ffmpeg/libavcodec/h264.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/lib/ffmpeg/libavcodec/h264.c b/lib/ffmpeg/libavcodec/h264.c
+index a4d35ae..31d43df 100644
+--- a/lib/ffmpeg/libavcodec/h264.c
++++ b/lib/ffmpeg/libavcodec/h264.c
+@@ -2568,7 +2568,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg){
+ return 0;
+ }
+ if( ret < 0 || h->cabac.bytestream > h->cabac.bytestream_end + 2) {
+- av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d, bytestream (%td)\n", s->mb_x, s->mb_y, h->cabac.bytestream_end - h->cabac.bytestream);
++ av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding MB %d %d, bytestream (%u)\n", s->mb_x, s->mb_y, h->cabac.bytestream_end - h->cabac.bytestream);
+ ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_ERROR|DC_ERROR|MV_ERROR)&part_mask);
+ return -1;
+ }
+--
+1.7.3.1.msysgit.0
+
View
2 lib/libcec/Makefile
@@ -7,7 +7,7 @@
# lib name, version
LIBNAME=libcec
-VERSION=0.6
+VERSION=0.7
SOURCE=$(LIBNAME)-$(VERSION)
# download location and format
View
2 project/VS2010Express/XBMC.vcxproj
@@ -239,7 +239,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\win32\;..\..\xbmc\cores\dvdplayer;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;HAVE_LIBCEC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
View
4 system/peripherals.xml
@@ -1,14 +1,14 @@
<peripherals>
<peripheral vendor="1915" product="003B" bus="usb" name="Motorola Nyxboard Hybrid" mapTo="nyxboard">
- <setting key="keymap_enabled" type="bool" value="1" label="35008" configurable="0" />
+ <setting key="keymap_enabled" type="bool" value="0" label="35008" />
<setting key="keymap" value="Motorola Nyxboard Hybrid" label="35007" configurable="0" />
<setting key="enable_flip_commands" type="bool" value="1" label="36005" />
<setting key="flip_keyboard" value="XBMC.VideoLibrary.Search" label="36002" />
<setting key="flip_remote" value="Dialog.Close(virtualkeyboard)" label="36003" />
<setting key="key_user" value="" label="36004" />
</peripheral>
<peripheral vendor="22B8" product="003B" bus="usb" name="Motorola Nyxboard Hybrid" mapTo="nyxboard">
- <setting key="keymap_enabled" type="bool" value="1" label="35008" configurable="0" />
+ <setting key="keymap_enabled" type="bool" value="0" label="35008" />
<setting key="keymap" value="Motorola Nyxboard Hybrid" label="35007" configurable="0" />
<setting key="enable_flip_commands" type="bool" value="1" label="36005" />
<setting key="flip_keyboard" value="XBMC.VideoLibrary.Search" label="36002" />
View
4 tools/darwin/depends/Makefile.in
@@ -12,12 +12,12 @@ SUBDIRS := \
libGLEW libsdl libsdl_mixer libsdl_image \
libmicrohttpd libmodplug libbluray libyajl \
libgpg-error libgcrypt afpfs-ng \
- libplist libshairport \
+ libplist libshairport libcec \
samba python26 distribute distutilscross \
mysqlclient boost \
ifeq ($(DARWIN), ios)
- EXCLUDED = libusb libcrystalhd libGLEW libsdl libsdl_mixer libsdl_image
+ EXCLUDED = libcec libcrystalhd libGLEW libsdl libsdl_mixer libsdl_image
else
EXCLUDED = Backrow
endif
View
2 tools/darwin/depends/libcec/Makefile
@@ -2,7 +2,7 @@ include ../Makefile.include
# lib name, version
LIBNAME=libcec
-VERSION=0.6
+VERSION=0.7
SOURCE=$(LIBNAME)-$(VERSION)
ARCHIVE=$(SOURCE).tar.gz
View
57 xbmc/Application.cpp
@@ -129,8 +129,8 @@
#ifdef HAS_EVENT_SERVER
#include "network/EventServer.h"
#endif
-#ifdef HAS_DBUS_SERVER
-#include "interfaces/DbusServer.h"
+#ifdef HAS_DBUS
+#include <dbus/dbus.h>
#endif
#ifdef HAS_HTTPAPI
#include "interfaces/http-api/XBMChttp.h"
@@ -326,9 +326,6 @@ using namespace MUSIC_INFO;
#ifdef HAS_EVENT_SERVER
using namespace EVENTSERVER;
#endif
-#ifdef HAS_DBUS_SERVER
-using namespace DBUSSERVER;
-#endif
#ifdef HAS_JSONRPC
using namespace JSONRPC;
#endif
@@ -1249,6 +1246,10 @@ bool CApplication::Initialize()
CCrystalHD::GetInstance();
#endif
+#ifdef HAS_JSONRPC
+ CJSONRPC::Initialize();
+#endif
+
CAddonMgr::Get().StartServices(false);
CLog::Log(LOGNOTICE, "initialize done");
@@ -1339,7 +1340,7 @@ void CApplication::StartAirplayServer()
txt["features"] = "0x77";
txt["model"] = "AppleTV2,1";
txt["srcvers"] = "101.28";
- CZeroconf::GetInstance()->PublishService("servers.airplay", "_airplay._tcp", "XBMC", listenPort, txt);
+ CZeroconf::GetInstance()->PublishService("servers.airplay", "_airplay._tcp", g_infoManager.GetLabel(SYSTEM_FRIENDLY_NAME), listenPort, txt);
}
}
#endif
@@ -1374,8 +1375,6 @@ bool CApplication::StartJSONRPCServer()
#ifdef HAS_JSONRPC
if (g_guiSettings.GetBool("services.esenabled"))
{
- CJSONRPC::Initialize();
-
if (CTCPServer::StartServer(g_advancedSettings.m_jsonTcpPort, g_guiSettings.GetBool("services.esallinterfaces")))
{
std::map<std::string, std::string> txt;
@@ -1484,34 +1483,6 @@ void CApplication::RefreshEventServer()
#endif
}
-void CApplication::StartDbusServer()
-{
-#ifdef HAS_DBUS_SERVER
- CDbusServer* serverDbus = CDbusServer::GetInstance();
- if (!serverDbus)
- {
- CLog::Log(LOGERROR, "DS: Out of memory");
- return;
- }
- CLog::Log(LOGNOTICE, "DS: Starting dbus server");
- serverDbus->StartServer( this );
-#endif
-}
-
-bool CApplication::StopDbusServer(bool bWait)
-{
-#ifdef HAS_DBUS_SERVER
- CDbusServer* serverDbus = CDbusServer::GetInstance();
- if (!serverDbus)
- {
- CLog::Log(LOGERROR, "DS: Out of memory");
- return false;
- }
- CDbusServer::GetInstance()->StopServer(bWait);
-#endif
- return true;
-}
-
void CApplication::StartUPnPRenderer()
{
#ifdef HAS_UPNP
@@ -3298,9 +3269,6 @@ bool CApplication::Cleanup()
#ifdef HAS_EVENT_SERVER
CEventServer::RemoveInstance();
#endif
-#ifdef HAS_DBUS_SERVER
- CDbusServer::RemoveInstance();
-#endif
DllLoaderContainer::Clear();
g_playlistPlayer.Clear();
g_settings.Clear();
@@ -3524,7 +3492,12 @@ bool CApplication::PlayMedia(const CFileItem& item, int iPlaylist)
{
if (iPlaylist != PLAYLIST_NONE)
- return ProcessAndStartPlaylist(item.GetPath(), *pPlayList, iPlaylist);
+ {
+ int track=0;
+ if (item.HasProperty("playlist_starting_track"))
+ track = item.GetProperty("playlist_starting_track").asInteger();
+ return ProcessAndStartPlaylist(item.GetPath(), *pPlayList, iPlaylist, track);
+ }
else
{
CLog::Log(LOGWARNING, "CApplication::PlayMedia called to play a playlist %s but no idea which playlist to use, playing first item", item.GetPath().c_str());
@@ -5411,7 +5384,7 @@ void CApplication::CheckPlayingProgress()
}
}
-bool CApplication::ProcessAndStartPlaylist(const CStdString& strPlayList, CPlayList& playlist, int iPlaylist)
+bool CApplication::ProcessAndStartPlaylist(const CStdString& strPlayList, CPlayList& playlist, int iPlaylist, int track)
{
CLog::Log(LOGDEBUG,"CApplication::ProcessAndStartPlaylist(%s, %i)",strPlayList.c_str(), iPlaylist);
@@ -5440,7 +5413,7 @@ bool CApplication::ProcessAndStartPlaylist(const CStdString& strPlayList, CPlayL
// start playing it
g_playlistPlayer.SetCurrentPlaylist(iPlaylist);
g_playlistPlayer.Reset();
- g_playlistPlayer.Play();
+ g_playlistPlayer.Play(track);
return true;
}
return false;
View
4 xbmc/Application.h
@@ -114,8 +114,6 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs
bool StartEventServer();
bool StopEventServer(bool bWait, bool promptuser);
void RefreshEventServer();
- void StartDbusServer();
- bool StopDbusServer(bool bWait);
void StartZeroconf();
void StopZeroconf();
void DimLCDOnPlayback(bool dim);
@@ -140,7 +138,7 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs
virtual void OnPlayBackSpeedChanged(int iSpeed);
bool PlayMedia(const CFileItem& item, int iPlaylist = PLAYLIST_MUSIC);
bool PlayMediaSync(const CFileItem& item, int iPlaylist = PLAYLIST_MUSIC);
- bool ProcessAndStartPlaylist(const CStdString& strPlayList, PLAYLIST::CPlayList& playlist, int iPlaylist);
+ bool ProcessAndStartPlaylist(const CStdString& strPlayList, PLAYLIST::CPlayList& playlist, int iPlaylist, int track=0);
bool PlayFile(const CFileItem& item, bool bRestart = false);
void SaveFileState();
void UpdateFileState();
View
54 xbmc/GUIInfoManager.cpp
@@ -1071,7 +1071,10 @@ int CGUIInfoManager::TranslateSingleString(const CStdString &strCondition)
CStdString platform = info[2].name;
if (platform == "linux") return SYSTEM_PLATFORM_LINUX;
else if (platform == "windows") return SYSTEM_PLATFORM_WINDOWS;
- else if (platform == "osx") return SYSTEM_PLATFORM_OSX;
+ else if (platform == "osx") return SYSTEM_PLATFORM_OSX;
+ else if (platform == "osx") return SYSTEM_PLATFORM_DARWIN_OSX;
+ else if (platform == "ios") return SYSTEM_PLATFORM_DARWIN_IOS;
+ else if (platform == "atv2") return SYSTEM_PLATFORM_DARWIN_ATV2;
}
if (info[0].name == "musicplayer")
{ // TODO: these two don't allow duration(foo) and also don't allow more than this number of levels...
@@ -1144,7 +1147,7 @@ TIME_FORMAT CGUIInfoManager::TranslateTimeFormat(const CStdString &format)
CStdString CGUIInfoManager::GetLabel(int info, int contextWindow)
{
if (info >= CONDITIONAL_LABEL_START && info <= CONDITIONAL_LABEL_END)
- return GetSkinVariableString(info, contextWindow, false);
+ return GetSkinVariableString(info, false);
CStdString strLabel;
if (info >= MULTI_INFO_START && info <= MULTI_INFO_END)
@@ -2009,7 +2012,26 @@ bool CGUIInfoManager::GetBool(int condition1, int contextWindow, const CGUIListI
bReturn = false;
#endif
else if (condition == SYSTEM_PLATFORM_OSX)
-#ifdef __APPLE__
+ // TODO: rename SYSTEM_PLATFORM_OSX to SYSTEM_PLATFORM_DARWIN after eden release.
+#ifdef TARGET_OS_DARWIN
+ bReturn = true;
+#else
+ bReturn = false;
+#endif
+ else if (condition == SYSTEM_PLATFORM_DARWIN_OSX)
+#ifdef TARGET_DARWIN_OSX
+ bReturn = true;
+#else
+ bReturn = false;
+#endif
+ else if (condition == SYSTEM_PLATFORM_DARWIN_IOS)
+#ifdef TARGET_DARWIN_IOS
+ bReturn = true;
+#else
+ bReturn = false;
+#endif
+ else if (condition == SYSTEM_PLATFORM_DARWIN_ATV2)
+#ifdef TARGET_DARWIN_IOS_ATV2
bReturn = true;
#else
bReturn = false;
@@ -2949,7 +2971,7 @@ CStdString CGUIInfoManager::GetMultiInfoLabel(const GUIInfo &info, int contextWi
CStdString CGUIInfoManager::GetImage(int info, int contextWindow)
{
if (info >= CONDITIONAL_LABEL_START && info <= CONDITIONAL_LABEL_END)
- return GetSkinVariableString(info, contextWindow, true);
+ return GetSkinVariableString(info, true);
if (info >= MULTI_INFO_START && info <= MULTI_INFO_END)
{
@@ -4055,7 +4077,7 @@ CStdString CGUIInfoManager::GetItemLabel(const CFileItem *item, int info)
if (!item) return "";
if (info >= CONDITIONAL_LABEL_START && info <= CONDITIONAL_LABEL_END)
- return GetSkinVariableString(info, 0, false, item);
+ return GetSkinVariableString(info, false, item);
if (info >= LISTITEM_PROPERTY_START && info - LISTITEM_PROPERTY_START < (int)m_listitemProperties.size())
{ // grab the property
@@ -4606,7 +4628,7 @@ CStdString CGUIInfoManager::GetItemLabel(const CFileItem *item, int info)
CStdString CGUIInfoManager::GetItemImage(const CFileItem *item, int info)
{
if (info >= CONDITIONAL_LABEL_START && info <= CONDITIONAL_LABEL_END)
- return GetSkinVariableString(info, 0, true, item);
+ return GetSkinVariableString(info, true, item);
switch (info)
{
@@ -4991,35 +5013,35 @@ bool CGUIInfoManager::GetLibraryBool(int condition)
return false;
}
-int CGUIInfoManager::RegisterSkinVariableString(const CSkinVariableString& info)
+int CGUIInfoManager::RegisterSkinVariableString(const CSkinVariableString* info)
{
- CSingleLock lock(m_critInfo);
- int id = TranslateSkinVariableString(info.GetName());
- if (id != 0)
- return id;
+ if (!info)
+ return 0;
- m_skinVariableStrings.push_back(info);
+ CSingleLock lock(m_critInfo);
+ m_skinVariableStrings.push_back(*info);
+ delete info;
return CONDITIONAL_LABEL_START + m_skinVariableStrings.size() - 1;
}
-int CGUIInfoManager::TranslateSkinVariableString(const CStdString& name)
+int CGUIInfoManager::TranslateSkinVariableString(const CStdString& name, int context)
{
for (vector<CSkinVariableString>::const_iterator it = m_skinVariableStrings.begin();
it != m_skinVariableStrings.end(); ++it)
{
- if (it->GetName().Equals(name))
+ if (it->GetName().Equals(name) && it->GetContext() == context)
return it - m_skinVariableStrings.begin() + CONDITIONAL_LABEL_START;
}
return 0;
}
-CStdString CGUIInfoManager::GetSkinVariableString(int info, int contextWindow,
+CStdString CGUIInfoManager::GetSkinVariableString(int info,
bool preferImage /*= false*/,
const CGUIListItem *item /*= NULL*/)
{
info -= CONDITIONAL_LABEL_START;
if (info >= 0 && info < (int)m_skinVariableStrings.size())
- return m_skinVariableStrings[info].GetValue(contextWindow, preferImage, item);
+ return m_skinVariableStrings[info].GetValue(preferImage, item);
return "";
}
View
9 xbmc/GUIInfoManager.h
@@ -404,6 +404,9 @@ namespace INFO
#define SYSTEM_PLATFORM_LINUX 741
#define SYSTEM_PLATFORM_WINDOWS 742
#define SYSTEM_PLATFORM_OSX 743
+#define SYSTEM_PLATFORM_DARWIN_OSX 744