From d434c0e692f9859a9d0f05051a028163dbc847ab Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 30 Dec 2013 00:23:54 +0100 Subject: [PATCH] xbmc: update to xbmc-13.alpha-a9e8763, update FM patches Signed-off-by: Stephan Raue --- .../mediacenter/xbmc-theme-Confluence/meta | 2 +- packages/mediacenter/xbmc/package.mk | 2 +- ...mc-995.01-fernetmenta-fixes-a66a9b9.patch} | 1427 ++++++++--------- 3 files changed, 689 insertions(+), 742 deletions(-) rename packages/mediacenter/xbmc/patches/{xbmc-995.01-fernetmenta-fixes-6d5a751.patch => xbmc-995.01-fernetmenta-fixes-a66a9b9.patch} (94%) diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index a8ab7d81b4..8c3b5031e4 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/meta +++ b/packages/mediacenter/xbmc-theme-Confluence/meta @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="xbmc-theme-Confluence" -PKG_VERSION="13.alpha-5824572" +PKG_VERSION="13.alpha-a9e8763" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc/package.mk b/packages/mediacenter/xbmc/package.mk index 6a90052436..88dd519025 100644 --- a/packages/mediacenter/xbmc/package.mk +++ b/packages/mediacenter/xbmc/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="13.alpha-5824572" +PKG_VERSION="13.alpha-a9e8763" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta-fixes-6d5a751.patch b/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta-fixes-a66a9b9.patch similarity index 94% rename from packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta-fixes-6d5a751.patch rename to packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta-fixes-a66a9b9.patch index a5189f17ff..a9bd97b26a 100644 --- a/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta-fixes-6d5a751.patch +++ b/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta-fixes-a66a9b9.patch @@ -1,7 +1,7 @@ -From db011d25c429e827c5d1d2f2b8ccbcc544b1b17e Mon Sep 17 00:00:00 2001 +From cc60ad1599bf8e2d9f929a0b8992c37e28b4ea53 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:34:39 +0200 -Subject: [PATCH 01/94] videoplayer: adapt lateness detection and dropping to +Subject: [PATCH 01/90] videoplayer: adapt lateness detection and dropping to buffering --- @@ -582,10 +582,10 @@ index f8ad541..186e271 100644 1.8.5.1 -From 765694561cae31c523acdb919d98e3f1f26a3a11 Mon Sep 17 00:00:00 2001 +From 2dd1839dcf214943deb30c57ed7f31011f13886c Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Sep 2012 16:05:21 +0200 -Subject: [PATCH 02/94] video player: present correct pts to user for a/v sync +Subject: [PATCH 02/90] video player: present correct pts to user for a/v sync (after buffering in renderer) --- @@ -653,10 +653,10 @@ index 186e271..59c7f09 100644 1.8.5.1 -From 7a2d6e48ca9d09145386b74b5c845568bcfe61d9 Mon Sep 17 00:00:00 2001 +From 8ce634fcf620e03e689af7f995f8a1c4f69d783b Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 16 Feb 2013 18:25:53 +0100 -Subject: [PATCH 03/94] videoplayer: some rework and documentation +Subject: [PATCH 03/90] videoplayer: some rework and documentation --- .../dvdplayer/DVDCodecs/Video/DVDVideoCodec.h | 29 ++++++++++++++++++++-- @@ -767,10 +767,10 @@ index 4c3d0e8..7f6de3c 100644 1.8.5.1 -From db31547695a45dd8d401cbbdb3416140cd6b1c7c Mon Sep 17 00:00:00 2001 +From 57c8d83f7dc8300037f2fbea8de72aa42cbe9700 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 1 Jun 2013 11:21:19 +0200 -Subject: [PATCH 04/94] renderer: bump buffers to 5 +Subject: [PATCH 04/90] renderer: bump buffers to 5 --- xbmc/cores/VideoRenderers/BaseRenderer.h | 2 +- @@ -793,10 +793,10 @@ index 5a21fec..c131dd1 100644 1.8.5.1 -From c73d33e5454df1ab3eda9c0602dbfeff1de3fa47 Mon Sep 17 00:00:00 2001 +From ffbe058b1e9863f85b1a1a5746e2f0c6f95c7c97 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:41:31 +0200 -Subject: [PATCH 05/94] videoplayer: update frametime, it might change due to +Subject: [PATCH 05/90] videoplayer: update frametime, it might change due to fps detection --- @@ -820,10 +820,10 @@ index 7f6de3c..699a10a 100644 1.8.5.1 -From a5b35e7b940fef85163778a02a7a5c5c9e03ecd5 Mon Sep 17 00:00:00 2001 +From f3c3524370488a8b4241cb012f737d1803e24c9b Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:43:06 +0200 -Subject: [PATCH 06/94] videoplayer: give streams with invalid fps a chance for +Subject: [PATCH 06/90] videoplayer: give streams with invalid fps a chance for fps detection --- @@ -847,10 +847,10 @@ index 699a10a..9d1a920 100644 1.8.5.1 -From 3129210aa4590ade059fef758eec64c3437b636a Mon Sep 17 00:00:00 2001 +From 175fc6248ee9d1973dc41565c9331caf14fa4869 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:49:05 +0200 -Subject: [PATCH 07/94] dvdplayer: allow rewinding at end of stream, do a seek +Subject: [PATCH 07/90] dvdplayer: allow rewinding at end of stream, do a seek after rewind --- @@ -887,10 +887,10 @@ index a698b8f..a845c7e 100644 1.8.5.1 -From cda1ab8aa1b6c505b719b6930ddf32c28a90ea0e Mon Sep 17 00:00:00 2001 +From 9746105ce58566a8c98c4508e5d336d17e180697 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:22:05 +0200 -Subject: [PATCH 08/94] X11: ditch SDL for video and window events +Subject: [PATCH 08/90] X11: ditch SDL for video and window events --- xbmc/Application.cpp | 2 +- @@ -906,7 +906,7 @@ Subject: [PATCH 08/94] X11: ditch SDL for video and window events create mode 100644 xbmc/windowing/WinEventsX11.h diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 387f0d4..4c1cece 100644 +index 0b6ebef..1aa5e0f 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -857,7 +857,7 @@ bool CApplication::CreateGUI() @@ -2427,10 +2427,10 @@ index b1464d0..34b912f 100644 1.8.5.1 -From b095bc79c1fbc23f3e1aad602a7b3b58ffd02efc Mon Sep 17 00:00:00 2001 +From 09ca4434e809ffd55323ec19dc5e9cb229108bf4 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:24:22 +0200 -Subject: [PATCH 09/94] X11: Add xbmc icon +Subject: [PATCH 09/90] X11: Add xbmc icon --- xbmc/windowing/X11/WinSystemX11.cpp | 126 +++++++++++++++++++++++++++++++++++- @@ -2620,10 +2620,10 @@ index 34b912f..352e90e 100644 1.8.5.1 -From e40478d4f5346d8978600e8bd050f1521305d343 Mon Sep 17 00:00:00 2001 +From 1038908ae98b142dbb91d6eef54b9893196650ce Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 14:11:26 +0200 -Subject: [PATCH 10/94] X11: add SDL joystick until we have a better solution +Subject: [PATCH 10/90] X11: add SDL joystick until we have a better solution --- xbmc/windowing/WinEventsX11.cpp | 26 ++++++++++++++++++++++++++ @@ -2677,10 +2677,10 @@ index ad58aad..6f57a87 100644 1.8.5.1 -From 0a50bf41a8ad59daaf55b36a22e8857ac4a8e1dd Mon Sep 17 00:00:00 2001 +From 57c812481d9b5b198bda281f8321e3710ca7c96b Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 12:35:55 +0200 -Subject: [PATCH 11/94] X11: factor out code handling device reset notification +Subject: [PATCH 11/90] X11: factor out code handling device reset notification --- xbmc/windowing/X11/WinSystemX11.cpp | 22 ++++++++++++++-------- @@ -2743,10 +2743,10 @@ index 352e90e..3f91b9b 100644 1.8.5.1 -From 615292f0c83bc50cf23020a88f6c2ab933e7fb31 Mon Sep 17 00:00:00 2001 +From b1870ecdcf66cca195218db4a78f56f144d33463 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:02:00 +0200 -Subject: [PATCH 12/94] X11: move xrandr events to WinEventsX11 +Subject: [PATCH 12/90] X11: move xrandr events to WinEventsX11 --- xbmc/windowing/WinEventsX11.cpp | 42 +++++++++++++++++++++++++++++++++++++ @@ -2890,10 +2890,10 @@ index 304dac8..16b13aa 100644 1.8.5.1 -From 98d1541c52af9ee5c19ee0b1c69f54c148e6ba4a Mon Sep 17 00:00:00 2001 +From b1fe49b49b40ed974f6c11c2b1db92fe7f2684bf Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 12 Apr 2012 15:43:56 +0200 -Subject: [PATCH 13/94] xrandr: remove method RestoreState +Subject: [PATCH 13/90] xrandr: remove method RestoreState --- xbmc/windowing/X11/WinSystemX11.cpp | 13 +++++++++++-- @@ -2972,10 +2972,10 @@ index 0aec487..00b49dc 100644 1.8.5.1 -From 8d2fa52f2e5fc7cf2f10656d75ed3c2bf076bd23 Mon Sep 17 00:00:00 2001 +From c9f772bf89e05969b347d1410ce2b94b4af417e8 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 13:17:10 +0200 -Subject: [PATCH 14/94] xrandr: observe orientation +Subject: [PATCH 14/90] xrandr: observe orientation --- xbmc/windowing/X11/WinSystemX11.cpp | 89 ++++++++++++++++++++++++++++++------- @@ -3190,10 +3190,10 @@ index 00b49dc..508604d 100644 1.8.5.1 -From e8c0f749426c9021c048e19e711c49571d479032 Mon Sep 17 00:00:00 2001 +From 33f4a8a9797d9bf1c79391d74e9cba91ed56818a Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:54:15 +0200 -Subject: [PATCH 15/94] xrandr: allow getting info for multiple screen's +Subject: [PATCH 15/90] xrandr: allow getting info for multiple screen's Refactored by: Joakim Plate --- @@ -3368,10 +3368,10 @@ index 508604d..d37838a 100644 1.8.5.1 -From f1da8a0f24c890c857240bb00d61e60dbdfc47c4 Mon Sep 17 00:00:00 2001 +From 5fd7a0899667fc2c3ac619c3d1681dce67360546 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:44:00 +0200 -Subject: [PATCH 16/94] X11: fix multi-head setups +Subject: [PATCH 16/90] X11: fix multi-head setups --- language/English/strings.po | 4 +- @@ -3386,7 +3386,7 @@ Subject: [PATCH 16/94] X11: fix multi-head setups 9 files changed, 227 insertions(+), 113 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 504bd77..9104210 100755 +index 80c02aa..092e909 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -1019,7 +1019,9 @@ msgctxt "#245" @@ -3401,10 +3401,10 @@ index 504bd77..9104210 100755 msgctxt "#247" msgid "Scripts" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index ab1d267..3ee685c 100644 +index 799fe16..d447268 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2049,6 +2049,15 @@ +@@ -2054,6 +2054,15 @@
@@ -3420,7 +3420,7 @@ index ab1d267..3ee685c 100644 0 0 -@@ -2070,6 +2079,7 @@ +@@ -2075,6 +2084,7 @@ -1 @@ -3428,7 +3428,7 @@ index ab1d267..3ee685c 100644 -@@ -2087,6 +2097,7 @@ +@@ -2092,6 +2102,7 @@ -1 @@ -4130,10 +4130,10 @@ index 4175aab..94584ab 100644 1.8.5.1 -From af4a8960cd11cf76ac70ccb0040503cab02db008 Mon Sep 17 00:00:00 2001 +From eb01dad48070908970fe2ff93e891e6fd9c0e63a Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:36:32 +0200 -Subject: [PATCH 17/94] X11: remove all DefaultScreen and RootWindow macros +Subject: [PATCH 17/90] X11: remove all DefaultScreen and RootWindow macros --- xbmc/windowing/X11/WinSystemX11.cpp | 6 +++--- @@ -4201,10 +4201,10 @@ index 6383754..21e7dc5 100644 1.8.5.1 -From 7c5fed2c6721409e4b057239320e9fd0df0cbd40 Mon Sep 17 00:00:00 2001 +From 2c0cc098e1383080b89b2a88c9e2700fdc56d75e Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:45:22 +0200 -Subject: [PATCH 18/94] X11: remove all DefaultScreen and RootWindow macros +Subject: [PATCH 18/90] X11: remove all DefaultScreen and RootWindow macros (VideoRefClock) Note this is on a separate display connection. @@ -4276,10 +4276,10 @@ index 0b3950a..ca43b5a 100644 1.8.5.1 -From 9374198b2ceca9fa18d2fc2e68f4a5ac08436523 Mon Sep 17 00:00:00 2001 +From 2991af5fb9e9c4759cdd70aed66f4883ee57304b Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 20 Jun 2012 17:37:11 +0200 -Subject: [PATCH 19/94] X11: recreate gl context after output has changed +Subject: [PATCH 19/90] X11: recreate gl context after output has changed --- xbmc/windowing/X11/WinSystemX11.cpp | 24 ++++++++++++++---------- @@ -4430,10 +4430,10 @@ index 21e7dc5..8e68d5d 100644 1.8.5.1 -From e69d50eaea9b9a21b4159311411c6dcb2ef5bff0 Mon Sep 17 00:00:00 2001 +From 545132b296c61f81e5c0a67ea3f69b1ac55275e0 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:06:25 +0200 -Subject: [PATCH 20/94] X11: hook video reference clock in windowing +Subject: [PATCH 20/90] X11: hook video reference clock in windowing --- xbmc/video/VideoReferenceClock.cpp | 71 +++++++++++++++++++++++++++----------- @@ -4638,10 +4638,10 @@ index dd65a1b..afd71fc 100644 1.8.5.1 -From 0028325ed45447ee11b974a3daacb1be36cbc172 Mon Sep 17 00:00:00 2001 +From 527e1ce12c984e78e3761fff623df1354864498e Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 21 Jun 2012 17:26:51 +0200 -Subject: [PATCH 21/94] X11: fix video calibrations +Subject: [PATCH 21/90] X11: fix video calibrations --- xbmc/windowing/WinSystem.h | 1 + @@ -4733,10 +4733,10 @@ index 9666cc3..5b52d6c 100644 1.8.5.1 -From eedd6a3825ea8452d1500bab461dacaaa2391525 Mon Sep 17 00:00:00 2001 +From ee0ebdb914e9688ce91099ec11789b52706aaffe Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:00:26 +0200 -Subject: [PATCH 22/94] X11: deactivate screen saver on startup +Subject: [PATCH 22/90] X11: deactivate screen saver on startup --- xbmc/windowing/X11/WinSystemX11.cpp | 29 +++++++++++++++++++++++++++++ @@ -4806,10 +4806,10 @@ index 5b52d6c..b2bd5a0 100644 1.8.5.1 -From 5b424e867d1bdde5a134eeab815e235fe526924a Mon Sep 17 00:00:00 2001 +From 50a5c52df7db2eb9f1e4ef301c8c27a674fe53d4 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:10:09 +0200 -Subject: [PATCH 23/94] X11: change method of going full-screen +Subject: [PATCH 23/90] X11: change method of going full-screen --- xbmc/windowing/X11/WinSystemX11.cpp | 9 ++++++++- @@ -4853,10 +4853,10 @@ index b76b229..869baa8 100644 1.8.5.1 -From f9371ba0546944816ab31b7f7af7abdc272d6794 Mon Sep 17 00:00:00 2001 +From 900a2f80c02052643c9119fdba1a37aed0d1b13f Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Jun 2012 19:12:39 +0200 -Subject: [PATCH 24/94] X11: reset key repeat and key modifier on focus lost +Subject: [PATCH 24/90] X11: reset key repeat and key modifier on focus lost and gain --- @@ -4888,10 +4888,10 @@ index d98f12f..743aca9 100644 1.8.5.1 -From 9ff3e1d468922512d1a115fed409a9e5e0eab7d0 Mon Sep 17 00:00:00 2001 +From a7d520d411c29307d9f81aaa69ebdba2ab69bfce Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:18:46 +0200 -Subject: [PATCH 25/94] X11: replace custom utf8 to unicode with charset +Subject: [PATCH 25/90] X11: replace custom utf8 to unicode with charset convertor (squash to x11 events) --- @@ -5108,10 +5108,10 @@ index a412f32..9a8a912 100644 1.8.5.1 -From f35aae7302ffa01a348390ed796788295c169099 Mon Sep 17 00:00:00 2001 +From 5c2facf469cc09d6520b719fd61010c7b3a1527e Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:23:54 +0200 -Subject: [PATCH 26/94] X11: fixed invalid usage of sizeof() (squash into x11 +Subject: [PATCH 26/90] X11: fixed invalid usage of sizeof() (squash into x11 changes) --- @@ -5175,10 +5175,10 @@ index 9a8a912..c69169c 100644 1.8.5.1 -From 1550756ace0cb7aee0e965c0c9062c303266e5c1 Mon Sep 17 00:00:00 2001 +From 28a4ccf215b2247cbc175bd66b1ca2414ecae7e8 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 9 Jun 2012 18:23:53 +0200 -Subject: [PATCH 27/94] add missing keys to xbmc keytable +Subject: [PATCH 27/90] add missing keys to xbmc keytable --- xbmc/input/XBMC_keytable.cpp | 2 ++ @@ -5201,10 +5201,10 @@ index d57f4d3..b807897 100644 1.8.5.1 -From 3c5c6720c984a8613d7725e30603655fc2daf6da Mon Sep 17 00:00:00 2001 +From eefa892601e780e38d6f6590718fc459ababcc9a Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 16 Mar 2012 15:57:51 +0100 -Subject: [PATCH 28/94] videorefclock: temp deactivate of nv settings +Subject: [PATCH 28/90] videorefclock: temp deactivate of nv settings --- xbmc/video/VideoReferenceClock.cpp | 2 +- @@ -5227,10 +5227,10 @@ index 0ddf102..3ae7107 100644 1.8.5.1 -From 9cd286340d5ab507a0bfa8262745bafa614218fb Mon Sep 17 00:00:00 2001 +From a84af1a050e80c1e7ab65d5eb80a74caaef473aa Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 09:09:09 +0200 -Subject: [PATCH 29/94] videorefclock: ask graphics context for refresh rate +Subject: [PATCH 29/90] videorefclock: ask graphics context for refresh rate --- xbmc/video/VideoReferenceClock.cpp | 3 ++- @@ -5261,10 +5261,10 @@ index 3ae7107..27bebde 100644 1.8.5.1 -From 6e7195a151c77b38206f0326b4051d8bc0fe14ea Mon Sep 17 00:00:00 2001 +From 668b52790b8ef7c4bf8ac7db931b0ef3251814cb Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 9 Jul 2012 14:00:18 +0200 -Subject: [PATCH 30/94] X11: fix icon texture after +Subject: [PATCH 30/90] X11: fix icon texture after cc5ed3c2474084ebc0373a3046410e6f766e03f4 --- @@ -5372,10 +5372,10 @@ index 869baa8..bfe3797 100644 1.8.5.1 -From f2f1cc39132e099cebd87b32ea5579226faf2801 Mon Sep 17 00:00:00 2001 +From 3827cbc3ff50ee67cb7c925108da9634c6a2610d Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 10 Jul 2012 11:14:12 +0200 -Subject: [PATCH 31/94] X11: check for window manager +Subject: [PATCH 31/90] X11: check for window manager --- xbmc/windowing/X11/WinSystemX11.cpp | 74 ++++++++++++++++++++++++++++++++++++- @@ -5496,10 +5496,10 @@ index b2bd5a0..3e62cd8 100644 1.8.5.1 -From 4c92ee213261f94092da8ec12df41dffbecc0fd9 Mon Sep 17 00:00:00 2001 +From b0a2f65223b7d91a0db1c10f3969a2d6cfd868ce Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 12 Jul 2012 11:11:47 +0200 -Subject: [PATCH 32/94] X11: dont set window on xrandr if no mode available +Subject: [PATCH 32/90] X11: dont set window on xrandr if no mode available --- xbmc/windowing/X11/WinSystemX11.cpp | 11 ++++++----- @@ -5536,10 +5536,10 @@ index af82061..4f33c68 100644 1.8.5.1 -From 74f22936acb8dc51ba3337773382602a52406818 Mon Sep 17 00:00:00 2001 +From a61c5b92bbf6895d810d6b453cd1009e05c5e475 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 26 Jul 2012 09:34:28 +0200 -Subject: [PATCH 33/94] X11: fix crash after a resolution change on startup +Subject: [PATCH 33/90] X11: fix crash after a resolution change on startup --- xbmc/windowing/X11/WinSystemX11.cpp | 3 ++- @@ -5563,10 +5563,10 @@ index 4f33c68..bc4e963 100644 1.8.5.1 -From d6b09534044db8ab8616fa6515113ba018192dae Mon Sep 17 00:00:00 2001 +From 77692fda9e58207995fe276d2c7b1d908f9a2d31 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 15 Sep 2012 18:27:29 +0200 -Subject: [PATCH 34/94] X11: lock graphics context in NotifyXRREvent +Subject: [PATCH 34/90] X11: lock graphics context in NotifyXRREvent --- xbmc/windowing/X11/WinSystemX11.cpp | 2 ++ @@ -5589,10 +5589,10 @@ index bc4e963..57a8d20 100644 1.8.5.1 -From a2e2851342ab9308bf0da6e1114e680ad9204cd5 Mon Sep 17 00:00:00 2001 +From 31582fccfaf8e878ae295d1ed24a21018deed7bc Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 23 Aug 2012 19:39:49 +0200 -Subject: [PATCH 35/94] ffmpeg: add av_find_default_stream_index to interface +Subject: [PATCH 35/90] ffmpeg: add av_find_default_stream_index to interface --- lib/DllAvFormat.h | 4 ++++ @@ -5638,10 +5638,10 @@ index 0016c0b..3514856 100644 1.8.5.1 -From 9a4ef851e8452ac5ed087adb57f81b63a6de1720 Mon Sep 17 00:00:00 2001 +From b94213f827a2ce103d456fbaa8f0cf1ab811b2dc Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 16:06:39 +0200 -Subject: [PATCH 36/94] dvdplayer: observe pts counter overflow +Subject: [PATCH 36/90] dvdplayer: observe pts counter overflow --- .../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 198 ++++++++++++++++++++- @@ -5928,10 +5928,10 @@ index aef5ab1..35abbdf 100644 1.8.5.1 -From f6a01ac55df029aabe63a4b47f0cb3609fd53f27 Mon Sep 17 00:00:00 2001 +From bc70000f9395ccf749e5f976e8aeb0ac3b823297 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 13:02:10 +0200 -Subject: [PATCH 37/94] dvdplayer: avoid short screen flicker caused by +Subject: [PATCH 37/90] dvdplayer: avoid short screen flicker caused by unnecessary reconfigure of renderer --- @@ -5964,10 +5964,10 @@ index 9d1a920..9880bdb 100644 1.8.5.1 -From 961cbbed9dc4a3bc632a25399214bcc4aaab71b1 Mon Sep 17 00:00:00 2001 +From 1e0c4331afd4a19c5018d3e079feb88c8d2300c1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 12:05:50 +0200 -Subject: [PATCH 38/94] vdpau: advanced settings for auto deinterlacing +Subject: [PATCH 38/90] vdpau: advanced settings for auto deinterlacing --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++---- @@ -6033,10 +6033,10 @@ index 7d16957..bb70f3e 100644 1.8.5.1 -From f343cbeb7739b614d4ed94265e34abbf362dd20a Mon Sep 17 00:00:00 2001 +From f9a2270e3a9448bde5e604eb7741ec99319a1323 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 2 Nov 2012 13:20:03 +0100 -Subject: [PATCH 39/94] player: fix rewind +Subject: [PATCH 39/90] player: fix rewind --- xbmc/cores/dvdplayer/DVDMessage.h | 5 ++++- @@ -6251,10 +6251,10 @@ index 59c7f09..65dea76 100644 1.8.5.1 -From b7c5acad4aea929bd0f9775824e974a3c374019b Mon Sep 17 00:00:00 2001 +From 992caf7be29e5f479b5b483a06d31013a91c4b75 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 23 Nov 2012 17:41:12 +0100 -Subject: [PATCH 40/94] xrandr: fix query for multiple screens +Subject: [PATCH 40/90] xrandr: fix query for multiple screens --- xbmc/windowing/X11/XRandR.cpp | 10 ++++++---- @@ -6295,10 +6295,10 @@ index 4685413..e610150 100644 1.8.5.1 -From e54e321233ff166ecb989fb221823c848ab9df46 Mon Sep 17 00:00:00 2001 +From 559b87adb5487142e0c261d9bc4d38f17a914aef Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Dec 2012 15:46:55 +0100 -Subject: [PATCH 41/94] X11: add debug log to print out refresh after xrr event +Subject: [PATCH 41/90] X11: add debug log to print out refresh after xrr event --- xbmc/windowing/X11/WinSystemX11.cpp | 6 ++++++ @@ -6325,10 +6325,10 @@ index 57a8d20..a237dc0 100644 1.8.5.1 -From 66877b9ce74813f430b141925eb6a3ac148e268e Mon Sep 17 00:00:00 2001 +From 6b6c4c0f213ea4325e07ba6329c98f6b5cb8353d Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 11 Dec 2012 11:08:13 +0100 -Subject: [PATCH 42/94] X11: dont call XCloseDisplay on shutdown, it crashes +Subject: [PATCH 42/90] X11: dont call XCloseDisplay on shutdown, it crashes when powered doen by cec on ATI --- @@ -6353,10 +6353,10 @@ index a237dc0..ab660b1 100644 1.8.5.1 -From 3372fcfcd6e1af87afd944b403ff1f646ca2d5e2 Mon Sep 17 00:00:00 2001 +From 06f204882dbcf6a11a0d67e3dded950faf45f1cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= Date: Wed, 12 Dec 2012 19:49:47 +0100 -Subject: [PATCH 43/94] x11: support for multiple x screens +Subject: [PATCH 43/90] x11: support for multiple x screens --- xbmc/windowing/X11/XRandR.cpp | 2 +- @@ -6379,10 +6379,10 @@ index e610150..5c53574 100644 1.8.5.1 -From 8febf7cbf406830302f61491ebf451a53414b1d2 Mon Sep 17 00:00:00 2001 +From 5ded13e5b544bd39ccd627292f9910dba6db3b8a Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 24 Dec 2012 16:02:42 +0100 -Subject: [PATCH 44/94] pvr: increase changes counter of stream on stream +Subject: [PATCH 44/90] pvr: increase changes counter of stream on stream change, cosmetics after dd307930d39d92f145a01a16600cd00e01ec39be --- @@ -6416,10 +6416,10 @@ index e5f8234..96c9e89 100644 1.8.5.1 -From fe743a69a6ad944a4b5b96415c25a867c5f7378a Mon Sep 17 00:00:00 2001 +From 82cba9f3f4061874803f837e25b2a6f1835c8d8c Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 17 Jan 2013 16:03:22 +0100 -Subject: [PATCH 45/94] X11: add keymapping for XF86XK_Sleep +Subject: [PATCH 45/90] X11: add keymapping for XF86XK_Sleep --- xbmc/windowing/WinEventsX11.cpp | 1 + @@ -6441,10 +6441,10 @@ index a62521f..263cb5a 100644 1.8.5.1 -From 06120db67b563d698100165101921204e7f76616 Mon Sep 17 00:00:00 2001 +From 8bfc2f3cc1652d8734219d314398bd2f361d7097 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 21 Jan 2013 09:00:19 +0100 -Subject: [PATCH 46/94] X11: remove toggle full screen after resume +Subject: [PATCH 46/90] X11: remove toggle full screen after resume --- xbmc/powermanagement/PowerManager.cpp | 5 ----- @@ -6470,10 +6470,10 @@ index 590a887..35b5a21 100644 1.8.5.1 -From 4c7080f9954fa48330edb76374300b26cd14a090 Mon Sep 17 00:00:00 2001 +From c1ac6f12b90b6f8efe56b2bd7e4b3ac93c76c46b Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 23 Jan 2013 17:03:02 +0100 -Subject: [PATCH 47/94] xrandr: set screen on mode change command +Subject: [PATCH 47/90] xrandr: set screen on mode change command --- xbmc/windowing/X11/XRandR.cpp | 2 +- @@ -6496,10 +6496,10 @@ index 5c53574..4355ef7 100644 1.8.5.1 -From ef994cae3b3295ff2fd3f086152c333ea3a3f466 Mon Sep 17 00:00:00 2001 +From 4aee40ec675e47a41b404275473854628d37a92f Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 23 Jan 2013 17:03:39 +0100 -Subject: [PATCH 48/94] X11: recreate glx context when output changes +Subject: [PATCH 48/90] X11: recreate glx context when output changes --- xbmc/windowing/X11/WinSystemX11.cpp | 6 +++--- @@ -6550,10 +6550,10 @@ index 3e62cd8..2a1fb41 100644 1.8.5.1 -From 07f38b3f581c30e19ec79f80129991d4179a583b Mon Sep 17 00:00:00 2001 +From a9cdf8c2d2ca4c72f057f4deddb47be76141c012 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 14 Dec 2012 14:19:15 +0100 -Subject: [PATCH 49/94] pvr: do not show selection dialog for a single menu +Subject: [PATCH 49/90] pvr: do not show selection dialog for a single menu hook --- @@ -6591,10 +6591,10 @@ index 14c9cde..57b18a5 100644 1.8.5.1 -From cda5b629a3c8e2bb3b942cf7d75c9a6af3271a36 Mon Sep 17 00:00:00 2001 +From b2775b08807d687ec997e2cf27ab0efa319e2dfd Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 3 Feb 2013 08:17:16 +0100 -Subject: [PATCH 50/94] X11: use default screen parameters if no output +Subject: [PATCH 50/90] X11: use default screen parameters if no output connected --- @@ -6698,10 +6698,10 @@ index 4329a22..2adf8a0 100644 1.8.5.1 -From f5313fba45108d41db860eb17ced41452f4be4a2 Mon Sep 17 00:00:00 2001 +From f45f1462058dee07de75f6fabe71ddf53cedeff4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 23 Mar 2013 15:13:32 +0100 -Subject: [PATCH 51/94] X11: create parent window +Subject: [PATCH 51/90] X11: create parent window --- xbmc/windowing/X11/WinSystemX11.cpp | 69 +++++++++++++++++++++++-------------- @@ -6967,10 +6967,10 @@ index 2a1fb41..e8993f1 100644 1.8.5.1 -From 225cd8ba4ebe920c00f44bc328949e343b333149 Mon Sep 17 00:00:00 2001 +From f82996b5fa3c3cbc250e4e0bec22be4c924246c3 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 12:30:12 +0100 -Subject: [PATCH 52/94] X11: use system key repeat rate instead of hardcoded +Subject: [PATCH 52/90] X11: use system key repeat rate instead of hardcoded one, taken from 58fd64b194e38b73b5f3132744bab35e994e7441 --- @@ -7172,10 +7172,10 @@ index c69169c..6429291 100644 1.8.5.1 -From 58abfc211e02bfdd10a5d14c2ee81218cb40f5bb Mon Sep 17 00:00:00 2001 +From 5cce4a216899639aba5704a7a8c4d7802991198f Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 16:04:48 +0100 -Subject: [PATCH 53/94] linux: use CLOCK_MONOTONIC_RAW as this is not subject +Subject: [PATCH 53/90] linux: use CLOCK_MONOTONIC_RAW as this is not subject to NTP --- @@ -7213,10 +7213,10 @@ index c06b8c5..4390d2e 100644 1.8.5.1 -From 34a91d8d81900b59377514b175d32108c22516a9 Mon Sep 17 00:00:00 2001 +From c772efa2a43ceb40adf8adac9bae8cf1ffcefb5a Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 15:18:53 +0100 -Subject: [PATCH 54/94] OMXPlayer: some caching fixes for pvr +Subject: [PATCH 54/90] OMXPlayer: some caching fixes for pvr --- xbmc/cores/omxplayer/OMXPlayer.cpp | 3 ++- @@ -7240,17 +7240,17 @@ index 9cccaac..4168195 100644 1.8.5.1 -From 2900988f3f0b4fac2b3321ceea84580d5d8e4cdb Mon Sep 17 00:00:00 2001 +From 9ea2cf8a1f85ba5ae5d41ec6e49f85f0d59bdc8b Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 20:50:59 +0100 -Subject: [PATCH 55/94] fix incorrect display of fps when dr kicks in +Subject: [PATCH 55/90] fix incorrect display of fps when dr kicks in --- xbmc/Application.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 4c1cece..6b29a1c 100644 +index 1aa5e0f..1f04f7e 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2254,10 +2254,11 @@ void CApplication::Render() @@ -7270,10 +7270,10 @@ index 4c1cece..6b29a1c 100644 1.8.5.1 -From befb697e2464e17bb0e94f3cee5e42f15c3b6a7f Mon Sep 17 00:00:00 2001 +From 8723d7dc12e385d5e4d926ff1e40ba46d0c7f096 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 13 Apr 2013 08:32:06 +0200 -Subject: [PATCH 56/94] X11: fix mouse coverage +Subject: [PATCH 56/90] X11: fix mouse coverage --- xbmc/windowing/X11/WinSystemX11.cpp | 11 ++++++++--- @@ -7339,10 +7339,10 @@ index e8993f1..5cccfb7 100644 1.8.5.1 -From 446555aa8c84a0814ad49c37fa43e6f4e9809f5b Mon Sep 17 00:00:00 2001 +From cee10a23b3ec6642d4713bb1bc14fc3e89af7930 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 8 May 2013 13:14:58 +0200 -Subject: [PATCH 57/94] X11: fix incorrectly used screen num in desktop +Subject: [PATCH 57/90] X11: fix incorrectly used screen num in desktop resolution --- @@ -7377,10 +7377,10 @@ index 2acb36d..101ba98 100644 1.8.5.1 -From 2258844172b4d329f243b6d645f86c23adb3c887 Mon Sep 17 00:00:00 2001 +From 7f0b0faf60bd5d7b197537f46ab182d04b576e43 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 9 May 2013 12:07:09 +0200 -Subject: [PATCH 58/94] X11: do not overwrite user selected monitor with +Subject: [PATCH 58/90] X11: do not overwrite user selected monitor with fallback --- @@ -7505,10 +7505,10 @@ index 5cccfb7..1b658e2 100644 1.8.5.1 -From f1fccc585da02caf1d06fb25115cf36baed9a8b3 Mon Sep 17 00:00:00 2001 +From 6b0b5083be835698fab7abfe7638945803341fa6 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 12 May 2013 10:50:30 +0200 -Subject: [PATCH 59/94] xrandr: add turn on/off to wrapper +Subject: [PATCH 59/90] xrandr: add turn on/off to wrapper --- xbmc/windowing/X11/XRandR.cpp | 78 +++++++++++++++++++++++++++++++++++++++---- @@ -7674,10 +7674,10 @@ index d37838a..059062f 100644 1.8.5.1 -From a8000ef21df4a91e20392c1c2ba51a7f96b93cda Mon Sep 17 00:00:00 2001 +From 6b9b5f7d29aa419c7db9646cae3b2ff2c7b97ddd Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 19 May 2013 12:55:35 +0200 -Subject: [PATCH 60/94] xrandr: add GetPreferredMode to wrapper +Subject: [PATCH 60/90] xrandr: add GetPreferredMode to wrapper --- xbmc/windowing/X11/XRandR.cpp | 23 +++++++++++++++++++++++ @@ -7734,10 +7734,10 @@ index 059062f..ab7cc63 100644 1.8.5.1 -From a4356594cdadced42f11d20e1bf918450e94fcb0 Mon Sep 17 00:00:00 2001 +From a3ef9716e59322c4bba854a72230a15dc9e24551 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 11 May 2013 17:12:12 +0200 -Subject: [PATCH 61/94] X11: multi-head improvement - poll for desired output +Subject: [PATCH 61/90] X11: multi-head improvement - poll for desired output if we do not get an xrr event --- @@ -7752,7 +7752,7 @@ Subject: [PATCH 61/94] X11: multi-head improvement - poll for desired output 8 files changed, 105 insertions(+), 12 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 9104210..6e57f76 100755 +index 092e909..f142362 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -6464,7 +6464,7 @@ msgctxt "#14071" @@ -7779,10 +7779,10 @@ index 9104210..6e57f76 100755 #: xbmc/video/VideoDatabase.cpp msgctxt "#15012" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 3ee685c..2ceee30 100644 +index d447268..75e1e23 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2058,6 +2058,11 @@ +@@ -2063,6 +2063,11 @@ @@ -7794,7 +7794,7 @@ index 3ee685c..2ceee30 100644 0 0 -@@ -2110,6 +2115,7 @@ +@@ -2115,6 +2120,7 @@ @@ -8018,10 +8018,10 @@ index 62003f5..8525ede 100644 1.8.5.1 -From 0cfa09dfeac3489b29e0d0ba7d828ae301812593 Mon Sep 17 00:00:00 2001 +From 4084254ea30fdc7ab825ba63b52e9c21e1b8f020 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 15 May 2013 09:14:34 +0200 -Subject: [PATCH 62/94] X11: ignore mouse move event form other windows +Subject: [PATCH 62/90] X11: ignore mouse move event form other windows --- xbmc/windowing/WinEventsX11.cpp | 4 +++- @@ -8053,10 +8053,10 @@ index 908c8b6..938ad26 100644 1.8.5.1 -From 9a242f2f9606336ece5b28084460f16d29388c92 Mon Sep 17 00:00:00 2001 +From 8dc93fe587d548467a62e6d974457dd0807acced Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 11 Jun 2013 16:20:29 +0200 -Subject: [PATCH 63/94] renderer: allow some lateness within vblank interval +Subject: [PATCH 63/90] renderer: allow some lateness within vblank interval --- xbmc/cores/VideoRenderers/RenderManager.cpp | 12 ++++++++++-- @@ -8116,10 +8116,10 @@ index 949c652b..d84ff6c 100644 1.8.5.1 -From 7a7fa7c7491539148e4d06b4fa40fd79077bc5f9 Mon Sep 17 00:00:00 2001 +From 732426ec8aa649e06aef555f0772f271f59291f8 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 16 Jun 2013 13:22:58 +0200 -Subject: [PATCH 64/94] X11: another fix for mouse coverage +Subject: [PATCH 64/90] X11: another fix for mouse coverage --- xbmc/windowing/WinEventsX11.cpp | 6 ++++-- @@ -8152,10 +8152,10 @@ index 938ad26..e4ca56d 100644 1.8.5.1 -From 40b14d0e59b570bb31c3e1159391a6862c5ad680 Mon Sep 17 00:00:00 2001 +From f2a385149b90045927c918adac2ebbdbb0e0093c Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 5 Jul 2013 12:14:00 +0200 -Subject: [PATCH 65/94] X11: set windows class name +Subject: [PATCH 65/90] X11: set windows class name --- xbmc/windowing/X11/WinSystemX11.cpp | 9 ++++++++- @@ -8197,17 +8197,17 @@ index b3fe5102..df5fe9b 100644 1.8.5.1 -From beef0e02fdb8c3f44b31069f32f03c4bd5a9f6ca Mon Sep 17 00:00:00 2001 +From 8f8b67df7738cceaf5731436968e5c33395cd780 Mon Sep 17 00:00:00 2001 From: spiff Date: Tue, 16 Jul 2013 14:34:04 +0200 -Subject: [PATCH 66/94] fixed: typo +Subject: [PATCH 66/90] fixed: typo --- language/English/strings.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 6e57f76..1f374c8 100755 +index f142362..2371a62 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -6598,7 +6598,7 @@ msgstr "" @@ -8223,17 +8223,17 @@ index 6e57f76..1f374c8 100755 1.8.5.1 -From 95aa4e4806f82cfc123a7eded29dace324f08c50 Mon Sep 17 00:00:00 2001 +From 267f2ceb88feb17b834967e9694d73c0a9de6134 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 25 Jul 2013 17:18:13 +0200 -Subject: [PATCH 67/94] ActiveAE: slightly reduce buffer size +Subject: [PATCH 67/90] ActiveAE: slightly reduce buffer size --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 317d9e4..6a6b39a 100644 +index 843321f..037e50d 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -30,8 +30,8 @@ @@ -8251,10 +8251,10 @@ index 317d9e4..6a6b39a 100644 1.8.5.1 -From b1eb3f6878cc7ea62675eb05be678c2b955bd640 Mon Sep 17 00:00:00 2001 +From 14aec36042dc758d2a2bc6c6c23bd8392e27e873 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 4 Aug 2013 10:11:16 +0200 -Subject: [PATCH 68/94] Revert "vdpau: comment some features that will be added +Subject: [PATCH 68/90] Revert "vdpau: comment some features that will be added later" This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf. @@ -8310,10 +8310,10 @@ index 3292461..c04f161 100644 1.8.5.1 -From 592f40f52e9ba60869a9d5fdf96f38ba580990a8 Mon Sep 17 00:00:00 2001 +From 30175b0437ee8964a65f59e5960af9a2f0e87dfa Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 18:01:40 +0200 -Subject: [PATCH 69/94] X11: fix keysyms +Subject: [PATCH 69/90] X11: fix keysyms --- xbmc/windowing/WinEventsX11.cpp | 2 +- @@ -8336,10 +8336,10 @@ index e4ca56d..b20130c 100644 1.8.5.1 -From 969b0a6d9d7e1765f692d3515d4d1364d7d11696 Mon Sep 17 00:00:00 2001 +From cf9387053e7ad979bc4ca06cb7371f750dbbe59e Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 18:42:36 +0200 -Subject: [PATCH 70/94] X11: fix keysym for non-IM +Subject: [PATCH 70/90] X11: fix keysym for non-IM --- xbmc/windowing/WinEventsX11.cpp | 2 +- @@ -8362,10 +8362,10 @@ index b20130c..a38890c 100644 1.8.5.1 -From 78e80e85c9521fc602ca984a813a92fa07da8dd0 Mon Sep 17 00:00:00 2001 +From a0f7382461877ed5bf46776ab47103d0fc2d2a84 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 11:18:16 +0200 -Subject: [PATCH 71/94] add some missing multi media keys +Subject: [PATCH 71/90] add some missing multi media keys --- system/keymaps/keyboard.xml | 3 +++ @@ -8420,10 +8420,10 @@ index ee6bb69..364b45a 100644 1.8.5.1 -From ddb3f1991926ccf1b6114100568714f594082071 Mon Sep 17 00:00:00 2001 +From ed3b41943815121859025443a7b28c3f20b82493 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 15:53:45 +0200 -Subject: [PATCH 72/94] X11: squash multi +Subject: [PATCH 72/90] X11: squash multi --- xbmc/windowing/X11/WinSystemX11.cpp | 2 +- @@ -8446,10 +8446,10 @@ index df5fe9b..d8e04d6 100644 1.8.5.1 -From 34fcd901ff67e139d748a218f368d6d125c3bf36 Mon Sep 17 00:00:00 2001 +From 15fe4f0a4274e680853028d5d1291c50bc45b3ab Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 3 Sep 2013 20:46:17 +0200 -Subject: [PATCH 73/94] X11: do not poll default monitor +Subject: [PATCH 73/90] X11: do not poll default monitor --- xbmc/windowing/X11/WinSystemX11.cpp | 2 +- @@ -8472,10 +8472,10 @@ index d8e04d6..01f5272 100644 1.8.5.1 -From dc90934b76d7c44fe8b682532e2d74c1e75fe2e8 Mon Sep 17 00:00:00 2001 +From a52013d32501b9ae27aff73b63f14fcfead2b488 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 29 Oct 2013 20:57:28 +0100 -Subject: [PATCH 74/94] X11: fix broken monitor switching +Subject: [PATCH 74/90] X11: fix broken monitor switching --- system/settings/settings.xml | 1 - @@ -8483,10 +8483,10 @@ Subject: [PATCH 74/94] X11: fix broken monitor switching 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 2ceee30..9a2c3d6 100644 +index 75e1e23..4a969ab 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2102,7 +2102,6 @@ +@@ -2107,7 +2107,6 @@ -1 @@ -8578,10 +8578,10 @@ index 40bc3b3..1663836 100644 1.8.5.1 -From 38f6072b63183f6c4e287affe59748abb1770794 Mon Sep 17 00:00:00 2001 +From 7e650e8543858cf024d757875b7b7a050e3da74b Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 29 Oct 2013 20:57:59 +0100 -Subject: [PATCH 75/94] X11: remove polling for connected outputs, use xrr +Subject: [PATCH 75/90] X11: remove polling for connected outputs, use xrr events --- @@ -8882,10 +8882,10 @@ index 7ec5be4..14622cb 100644 1.8.5.1 -From a8d30953a0afa3137382f18e88821bb05d9ebf9b Mon Sep 17 00:00:00 2001 +From 002f2b9460307b456c83a130310c6e78545ef22f Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 31 Oct 2013 09:37:13 +0100 -Subject: [PATCH 76/94] X11: remove grabbing of keyboard and mouse +Subject: [PATCH 76/90] X11: remove grabbing of keyboard and mouse --- xbmc/windowing/WinEventsX11.cpp | 4 ---- @@ -9003,10 +9003,10 @@ index 14622cb..d1c8729 100644 1.8.5.1 -From dcf96d686d9425425d2af85c3170f689fc978d86 Mon Sep 17 00:00:00 2001 +From a47c2e5525273538f689ea576de0e4b7ba3261e6 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 31 Oct 2013 10:46:40 +0100 -Subject: [PATCH 77/94] X11: set ExposureMask on gl window, fixes not updated +Subject: [PATCH 77/90] X11: set ExposureMask on gl window, fixes not updated areas --- @@ -9032,10 +9032,10 @@ index 695b352..e55583c 100644 1.8.5.1 -From e3a9b778eec83c1ca9b4d0e78a3419eca458812f Mon Sep 17 00:00:00 2001 +From f0f4564dd6311d7fa2219184d9ca93dede507d3d Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 31 Oct 2013 11:25:19 +0100 -Subject: [PATCH 78/94] X11: drop shortcuts, have WM do this +Subject: [PATCH 78/90] X11: drop shortcuts, have WM do this --- xbmc/windowing/WinEventsX11.cpp | 21 --------------------- @@ -9097,20 +9097,20 @@ index 6429291..4334d21 100644 1.8.5.1 -From ef3e7b377dfa33a36f8549ec6ac50ae581b541bd Mon Sep 17 00:00:00 2001 +From 75d96fa30505779285fb4ad6111c9bba3ff943e3 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 7 Nov 2013 15:02:00 +0100 -Subject: [PATCH 79/94] X11: adapt to new settings +Subject: [PATCH 79/90] X11: adapt to new settings --- system/settings/settings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 9a2c3d6..cf29088 100644 +index 4a969ab..d2df28d 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2062,6 +2062,7 @@ +@@ -2067,6 +2067,7 @@ HAS_GLX 0 false @@ -9122,10 +9122,10 @@ index 9a2c3d6..cf29088 100644 1.8.5.1 -From ef5c4b6353acfb62f00991bc8b95037ade5147d2 Mon Sep 17 00:00:00 2001 +From cdd9e5706d0769273508e43c2a0ee52f452b5452 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 14 Nov 2013 09:28:24 +0100 -Subject: [PATCH 80/94] X11: adapt to changes in cstdstring +Subject: [PATCH 80/90] X11: adapt to changes in cstdstring --- xbmc/windowing/X11/WinSystemX11.cpp | 4 ++-- @@ -9173,10 +9173,10 @@ index 8525ede..c94f2e3 100644 1.8.5.1 -From abcbc4aa1b1cbd6e57e52175d756589617caa359 Mon Sep 17 00:00:00 2001 +From c81a823b3a9e04eb7f811e262a124b3ef31a6a8e Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 14 Nov 2013 18:50:57 +0100 -Subject: [PATCH 81/94] dvdplayer: fix failed to get stream message, lookup +Subject: [PATCH 81/90] dvdplayer: fix failed to get stream message, lookup streams the same way as getting the index --- @@ -9200,10 +9200,10 @@ index ad851e9..60475a3 100644 1.8.5.1 -From 741ad95b7059046d7f26a2d741669e031004bf5b Mon Sep 17 00:00:00 2001 +From 6d557af281e1aeb31f32797c7e69cf6f0b53c3d6 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 14 Nov 2013 19:22:01 +0100 -Subject: [PATCH 82/94] omxplayer: fix failed to get stream message +Subject: [PATCH 82/90] omxplayer: fix failed to get stream message --- xbmc/cores/omxplayer/OMXPlayer.cpp | 2 +- @@ -9226,10 +9226,10 @@ index 4168195..f48a30f 100644 1.8.5.1 -From 45831442c7620543d3a0cbdc16d54e9cd47d4959 Mon Sep 17 00:00:00 2001 +From 37defa9d4b6e6c5cf209bb667b01c8a0786869c6 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Mon, 18 Nov 2013 17:44:31 +0100 -Subject: [PATCH 83/94] ActiveAE: correct time of buffered samples by resample +Subject: [PATCH 83/90] ActiveAE: correct time of buffered samples by resample ratio --- @@ -9238,7 +9238,7 @@ Subject: [PATCH 83/94] ActiveAE: correct time of buffered samples by resample 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 6a6b39a..57a7d9a 100644 +index 037e50d..42a4b78 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -103,7 +103,7 @@ float CEngineStats::GetDelay(CActiveAEStream *stream) @@ -9266,10 +9266,10 @@ index 4a75f9e..78a2892 100644 1.8.5.1 -From 61587d0a8eda120f27b235371ea85efc58ce2443 Mon Sep 17 00:00:00 2001 +From 8d979f3ca3a59c76ae0a492d6be70e501d98990f Mon Sep 17 00:00:00 2001 From: Marcel Groothuis Date: Thu, 5 Dec 2013 22:02:50 +0100 -Subject: [PATCH 84/94] ffmpeg demuxer: faster channel change for PVR addons +Subject: [PATCH 84/90] ffmpeg demuxer: faster channel change for PVR addons without internal demuxing (such as MediaPortal, ArgusTV, MythTV, NextPVR) Credits: FernetMenta, Davilla, Popcornmix, Whaupt @@ -9630,10 +9630,10 @@ index ca689d0..f383563 100644 1.8.5.1 -From 78046c9565f50665ad97df6d4ec2b8149d182f1a Mon Sep 17 00:00:00 2001 +From d970a5969848922b22a55fca007ff5242011f281 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 14 Nov 2013 20:35:04 +0100 -Subject: [PATCH 85/94] ffmpeg demuxer: make sure we start mpegts video with an +Subject: [PATCH 85/90] ffmpeg demuxer: make sure we start mpegts video with an i-frame --- @@ -9717,10 +9717,10 @@ index acde9a8..9ec0877 100644 1.8.5.1 -From 91fdd84699ec189d27322f42bde3f2db85325410 Mon Sep 17 00:00:00 2001 +From 2f97ac1eae87c1c0cf1ac3b2df32949f8bdacf93 Mon Sep 17 00:00:00 2001 From: Wolfgang Haupt Date: Thu, 5 Dec 2013 22:11:57 +0100 -Subject: [PATCH 86/94] DVDFactoryDemuxer: skip streaminfo for udp tcp and +Subject: [PATCH 86/90] DVDFactoryDemuxer: skip streaminfo for udp tcp and pvr-channels --- @@ -9844,132 +9844,324 @@ index 146bf5c..e030b9d 100644 1.8.5.1 -From 787911c4d38347f500825ff8bd8e891711ad3358 Mon Sep 17 00:00:00 2001 +From 10840c6ffb3580cf390f5e9a30258d9e7b31b30c Mon Sep 17 00:00:00 2001 From: Rainer Hochecker -Date: Tue, 10 Dec 2013 13:48:55 +0100 -Subject: [PATCH 87/94] ActiveAE: suspend hdmi audio during change of refresh - rate +Date: Sun, 22 Dec 2013 14:52:29 +0100 +Subject: [PATCH 87/90] linux: add shared lib for sse4 operations --- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) + Makefile.in | 8 ++- + configure.in | 18 +++++++ + xbmc/DllPaths_generated.h.in | 3 ++ + xbmc/linux/sse4/CopyFrame.cpp | 115 ++++++++++++++++++++++++++++++++++++++++++ + xbmc/linux/sse4/DllLibSSE4.h | 43 ++++++++++++++++ + xbmc/linux/sse4/Makefile.in | 20 ++++++++ + 6 files changed, 206 insertions(+), 1 deletion(-) + create mode 100644 xbmc/linux/sse4/CopyFrame.cpp + create mode 100644 xbmc/linux/sse4/DllLibSSE4.h + create mode 100644 xbmc/linux/sse4/Makefile.in -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 57a7d9a..e2d6606 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -235,6 +235,8 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - case CActiveAEControlProtocol::KEEPCONFIG: - m_extKeepConfig = *(unsigned int*)msg->data; - return; -+ case CActiveAEControlProtocol::DISPLAYRESET: -+ return; - default: - break; - } -@@ -636,6 +638,17 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - break; - } - } -+ else if (port == NULL) // timeout -+ { -+ switch (signal) -+ { -+ case CActiveAEControlProtocol::TIMEOUT: -+ m_extTimeout = 1000; -+ return; -+ default: -+ break; -+ } -+ } - break; +diff --git a/Makefile.in b/Makefile.in +index 76936d4..0890432 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -323,6 +323,12 @@ CHECK_LIBADD=@WAYLAND_TEST_LIBS@ + endif + endif - case AE_TOP_CONFIGURED_IDLE: -@@ -2238,12 +2251,12 @@ void CActiveAE::KeepConfiguration(unsigned int millis) ++ifeq (@USE_SSE4@,1) ++LIBSSE4+=sse4 ++sse4 : force ++ $(MAKE) -C xbmc/linux/sse4 ++endif ++ + CHECK_PROGRAMS = xbmc-test - void CActiveAE::OnLostDevice() - { --// m_controlPort.SendOutMessage(CActiveAEControlProtocol::DISPLAYLOST); -+ m_controlPort.SendOutMessage(CActiveAEControlProtocol::DISPLAYLOST); - } + CLEAN_FILES += $(CHECK_PROGRAMS) $(CHECK_EXTENSIONS) +@@ -458,7 +464,7 @@ endif - void CActiveAE::OnResetDevice() - { --// m_controlPort.SendOutMessage(CActiveAEControlProtocol::DISPLAYRESET); -+ m_controlPort.SendOutMessage(CActiveAEControlProtocol::DISPLAYRESET); - } + codecs: papcodecs dvdpcodecs dvdpextcodecs - //----------------------------------------------------------------------------- --- -1.8.5.1 - - -From b722fe7867367bfe4892808eeb6e761c51e3e76b Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Mon, 23 Dec 2013 16:51:42 +0100 -Subject: [PATCH 88/94] ActiveAE: wait for suspend being completed on lost - device - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index e2d6606..98a0dd3 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -425,6 +425,7 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - m_state = AE_TOP_CONFIGURED_SUSPEND; - m_extDeferData = true; - } -+ msg->Reply(CActiveAEControlProtocol::ACC); - return; - case CActiveAEControlProtocol::PAUSESTREAM: - CActiveAEStream *stream; -@@ -2251,7 +2252,22 @@ void CActiveAE::KeepConfiguration(unsigned int millis) +-libs: libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH) ++libs: $(LIBSSE4) libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH) - void CActiveAE::OnLostDevice() - { -- m_controlPort.SendOutMessage(CActiveAEControlProtocol::DISPLAYLOST); -+ Message *reply; -+ if (m_controlPort.SendOutMessageSync(CActiveAEControlProtocol::DISPLAYLOST, -+ &reply, -+ 5000)) + externals: codecs libs visualizations screensavers libaddon pvraddons + +diff --git a/configure.in b/configure.in +index f277cac..74ed562 100644 +--- a/configure.in ++++ b/configure.in +@@ -875,6 +875,19 @@ elif test "$use_arch" = "arm"; then + fi + fi + ++use_sse4=no ++if test "$ARCH" = "x86_64-linux"; then ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="-msse4.1" ++ AC_COMPILE_IFELSE( ++ [AC_LANG_SOURCE([int foo;])], ++ [ use_sse4=yes ++ USE_SSE4=1], ++ [ use_sse=no ++ USE_SSE4=0]) ++ CFLAGS="$SAVE_CFLAGS" ++fi ++ + # Checks for library functions. + AC_FUNC_ALLOCA + AC_FUNC_CHOWN +@@ -2575,6 +2588,10 @@ if test "$use_codec_libstagefright" = "yes"; then + OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile" + fi + ++if test "$use_sse4" = "yes"; then ++OUTPUT_FILES="$OUTPUT_FILES xbmc/linux/sse4/Makefile" ++fi ++ + OUTPUT_FILES="$OUTPUT_FILES \ + xbmc/interfaces/python/Makefile \ + xbmc/interfaces/python/test/Makefile" +@@ -2649,6 +2666,7 @@ AC_SUBST(USE_ANDROID) + AC_SUBST(GTEST_CONFIGURED) + AC_SUBST(USE_DOXYGEN) + AC_SUBST(USE_PVR_ADDONS) ++AC_SUBST(USE_SSE4) + + # pushd and popd are not available in other shells besides bash, so implement + # our own pushd/popd functions +diff --git a/xbmc/DllPaths_generated.h.in b/xbmc/DllPaths_generated.h.in +index d35ea97..3bf8f96 100644 +--- a/xbmc/DllPaths_generated.h.in ++++ b/xbmc/DllPaths_generated.h.in +@@ -104,4 +104,7 @@ + /* xkbcommon */ + #define DLL_PATH_XKBCOMMON "@XKBCOMMON_LIBRARY_SONAME@" + ++/* sse4 */ ++#define DLL_PATH_LIBSSE4 "special://xbmcbin/system/libsse4-@ARCH@.so" ++ + #endif +diff --git a/xbmc/linux/sse4/CopyFrame.cpp b/xbmc/linux/sse4/CopyFrame.cpp +new file mode 100644 +index 0000000..6d23d83 +--- /dev/null ++++ b/xbmc/linux/sse4/CopyFrame.cpp +@@ -0,0 +1,115 @@ ++/* ++ * Copyright (C) 2005-2013 Team XBMC ++ * http://xbmc.org ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with XBMC; see the file COPYING. If not, see ++ * . ++ * ++ */ ++ ++#include "smmintrin.h" ++ ++#define CACHED_BUFFER_SIZE 4096 ++typedef unsigned int UINT; ++ ++extern "C" ++{ ++ ++/* ++ * http://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers ++ * COPIES VIDEO FRAMES FROM USWC MEMORY TO WB SYSTEM MEMORY VIA CACHED BUFFER ++ * ASSUMES PITCH IS A MULTIPLE OF 64B CACHE LINE SIZE, WIDTH MAY NOT BE ++ */ ++void copy_frame( void * pSrc, void * pDest, void * pCacheBlock, ++ UINT width, UINT height, UINT pitch ) ++{ ++ __m128i x0, x1, x2, x3; ++ __m128i *pLoad; ++ __m128i *pStore; ++ __m128i *pCache; ++ UINT x, y, yLoad, yStore; ++ UINT rowsPerBlock; ++ UINT width64; ++ UINT extraPitch; ++ ++ ++ rowsPerBlock = CACHED_BUFFER_SIZE / pitch; ++ width64 = (width + 63) & ~0x03f; ++ extraPitch = (pitch - width64) / 16; ++ ++ pLoad = (__m128i *)pSrc; ++ pStore = (__m128i *)pDest; ++ ++ // COPY THROUGH 4KB CACHED BUFFER ++ for( y = 0; y < height; y += rowsPerBlock ) + { -+ bool success = reply->signal == CActiveAEControlProtocol::ACC ? true : false; -+ reply->Release(); -+ if (!success) ++ // ROWS LEFT TO COPY AT END ++ if( y + rowsPerBlock > height ) ++ rowsPerBlock = height - y; ++ ++ pCache = (__m128i *)pCacheBlock; ++ ++ _mm_mfence(); ++ ++ // LOAD ROWS OF PITCH WIDTH INTO CACHED BLOCK ++ for( yLoad = 0; yLoad < rowsPerBlock; yLoad++ ) + { -+ CLog::Log(LOGERROR, "ActiveAE::%s - returned error", __FUNCTION__); ++ // COPY A ROW, CACHE LINE AT A TIME ++ for( x = 0; x < pitch; x +=64 ) ++ { ++ x0 = _mm_stream_load_si128( pLoad +0 ); ++ x1 = _mm_stream_load_si128( pLoad +1 ); ++ x2 = _mm_stream_load_si128( pLoad +2 ); ++ x3 = _mm_stream_load_si128( pLoad +3 ); ++ ++ _mm_store_si128( pCache +0, x0 ); ++ _mm_store_si128( pCache +1, x1 ); ++ _mm_store_si128( pCache +2, x2 ); ++ _mm_store_si128( pCache +3, x3 ); ++ ++ pCache += 4; ++ pLoad += 4; ++ } ++ } ++ ++ _mm_mfence(); ++ ++ pCache = (__m128i *)pCacheBlock; ++ ++ // STORE ROWS OF FRAME WIDTH FROM CACHED BLOCK ++ for( yStore = 0; yStore < rowsPerBlock; yStore++ ) ++ { ++ // copy a row, cache line at a time ++ for( x = 0; x < width64; x +=64 ) ++ { ++ x0 = _mm_load_si128( pCache ); ++ x1 = _mm_load_si128( pCache +1 ); ++ x2 = _mm_load_si128( pCache +2 ); ++ x3 = _mm_load_si128( pCache +3 ); ++ ++ _mm_stream_si128( pStore, x0 ); ++ _mm_stream_si128( pStore +1, x1 ); ++ _mm_stream_si128( pStore +2, x2 ); ++ _mm_stream_si128( pStore +3, x3 ); ++ ++ pCache += 4; ++ pStore += 4; ++ } ++ ++ pCache += extraPitch; ++ pStore += extraPitch; + } + } -+ else -+ { -+ CLog::Log(LOGERROR, "ActiveAE::%s - timed out", __FUNCTION__); -+ } - } - - void CActiveAE::OnResetDevice() ++} ++} +diff --git a/xbmc/linux/sse4/DllLibSSE4.h b/xbmc/linux/sse4/DllLibSSE4.h +new file mode 100644 +index 0000000..01424ac +--- /dev/null ++++ b/xbmc/linux/sse4/DllLibSSE4.h +@@ -0,0 +1,43 @@ ++#pragma once ++/* ++ * Copyright (C) 2005-2013 Team XBMC ++ * http://xbmc.org ++ * ++ * This Program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This Program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with XBMC; see the file COPYING. If not, see ++ * . ++ * ++ */ ++ ++#include "DynamicDll.h" ++ ++extern "C" { ++ ++} ++ ++class DllLibSSE4Interface ++{ ++public: ++ virtual ~DllLibSSE4Interface() {} ++ virtual void copy_frame(void * pSrc, void * pDest, void * pCacheBlock, UINT width, UINT height, UINT pitch) = 0; ++}; ++ ++class DllLibSSE4 : public DllDynamic, DllLibSSE4Interface ++{ ++ DECLARE_DLL_WRAPPER(DllLibSSE4, DLL_PATH_LIBSSE4) ++ DEFINE_METHOD6(void, copy_frame, (void *p1, void *p2, void *p3, UINT p4, UINT p5, UINT p6)) ++ ++ BEGIN_METHOD_RESOLVE() ++ RESOLVE_METHOD(copy_frame) ++ END_METHOD_RESOLVE() ++}; +diff --git a/xbmc/linux/sse4/Makefile.in b/xbmc/linux/sse4/Makefile.in +new file mode 100644 +index 0000000..45aa826 +--- /dev/null ++++ b/xbmc/linux/sse4/Makefile.in +@@ -0,0 +1,20 @@ ++ARCH=@ARCH@ ++DEFINES+= ++CXXFLAGS=-fPIC -msse4.1 ++LIBNAME=libsse4 ++OBJS=CopyFrame.o ++ ++LIB_SHARED=@abs_top_srcdir@/system/$(LIBNAME)-$(ARCH).so ++ ++all: $(LIB_SHARED) ++ ++$(LIB_SHARED): $(OBJS) ++ $(CXX) $(CFLAGS) $(LDFLAGS) -shared -g -o $(LIB_SHARED) $(OBJS) ++ ++CLEAN_FILES = \ ++ $(LIB_SHARED) \ ++ ++DISTCLEAN_FILES= \ ++ Makefile \ ++ ++include ../../../Makefile.include -- 1.8.5.1 -From f57f4dcdfd5ab86b430923c67bdab961fc18c322 Mon Sep 17 00:00:00 2001 +From 6c96b06b6c4f5da2f2d5a68c9cd2a430f420e842 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 19 Dec 2013 15:36:11 +0100 -Subject: [PATCH 89/94] vaapi: option to enable sw filters +Subject: [PATCH 88/90] vaapi: option to enable sw filters --- language/English/strings.po | 14 +- system/settings/settings.xml | 9 ++ - .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 35 +++-- - .../DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 2 + + xbmc/cores/VideoRenderers/RenderManager.cpp | 4 +- + xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp | 1 + + .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 76 ++++++++--- + .../DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 3 + xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 143 +++++++++++++++++++++ xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h | 30 +++++ - 6 files changed, 220 insertions(+), 13 deletions(-) + xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 34 ++--- + xbmc/cores/dvdplayer/DVDPlayerVideo.h | 1 + + 10 files changed, 274 insertions(+), 41 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 1f374c8..1237966 100755 +index 2371a62..80165e4 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -6001,7 +6001,12 @@ msgctxt "#13440" @@ -9986,7 +10178,7 @@ index 1f374c8..1237966 100755 #: system/settings/settings.xml msgctxt "#13500" -@@ -14698,7 +14703,12 @@ msgctxt "#36423" +@@ -14710,7 +14715,12 @@ msgctxt "#36423" msgid "Use ffmpeg frame multiple thread decoding when hardware decoding not working or disabled. (less reliable than default single thread mode)" msgstr "" @@ -10001,7 +10193,7 @@ index 1f374c8..1237966 100755 #: system/settings/settings.xml diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index cf29088..cf80cae 100644 +index d2df28d..af8032f 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -436,6 +436,15 @@ @@ -10020,11 +10212,56 @@ index cf29088..cf80cae 100644 HasDXVA2 2 +diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp +index 8dc8a91..c15f559 100644 +--- a/xbmc/cores/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoRenderers/RenderManager.cpp +@@ -986,10 +986,10 @@ EINTERLACEMETHOD CXBMCRenderManager::AutoInterlaceMethodInternal(EINTERLACEMETHO + if (mInt == VS_INTERLACEMETHOD_NONE) + return VS_INTERLACEMETHOD_NONE; + +- if(!m_pRenderer->Supports(mInt)) ++ if(m_pRenderer && !m_pRenderer->Supports(mInt)) + mInt = VS_INTERLACEMETHOD_AUTO; + +- if (mInt == VS_INTERLACEMETHOD_AUTO) ++ if (m_pRenderer && mInt == VS_INTERLACEMETHOD_AUTO) + return m_pRenderer->AutoInterlaceMethod(); + + return mInt; +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp +index 5443cb3..002c8e1 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp +@@ -456,6 +456,7 @@ struct EFormatMap { + , { PIX_FMT_YUV420P16, RENDER_FMT_YUV420P16 } + , { PIX_FMT_UYVY422, RENDER_FMT_UYVY422 } + , { PIX_FMT_YUYV422, RENDER_FMT_YUYV422 } ++, { PIX_FMT_NV12, RENDER_FMT_NV12 } + , { PIX_FMT_VAAPI_VLD, RENDER_FMT_VAAPI } + , { PIX_FMT_DXVA2_VLD, RENDER_FMT_DXVA } + , { PIX_FMT_NONE , RENDER_FMT_NONE } diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 43d3e70..743e002 100644 +index 43d3e70..526ce7f 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -387,7 +387,7 @@ unsigned int CDVDVideoCodecFFmpeg::SetFilters(unsigned int flags) +@@ -37,6 +37,7 @@ + #include "utils/log.h" + #include "boost/shared_ptr.hpp" + #include "threads/Atomics.h" ++#include "settings/MediaSettings.h" + + #ifndef TARGET_POSIX + #define RINT(x) ((x) >= 0 ? ((int)((x) + 0.5)) : ((int)((x) - 0.5))) +@@ -164,6 +165,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx + m_dts = DVD_NOPTS_VALUE; + m_started = false; + m_decoderPts = DVD_NOPTS_VALUE; ++ m_interlace = false; + } + + CDVDVideoCodecFFmpeg::~CDVDVideoCodecFFmpeg() +@@ -387,7 +389,7 @@ unsigned int CDVDVideoCodecFFmpeg::SetFilters(unsigned int flags) { m_filters_next.clear(); @@ -10033,7 +10270,7 @@ index 43d3e70..743e002 100644 return 0; if(flags & FILTER_ROTATE) -@@ -461,10 +461,10 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p +@@ -461,10 +463,10 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p if(section) lock = shared_ptr(new CSingleLock(*section)); @@ -10046,19 +10283,24 @@ index 43d3e70..743e002 100644 result = m_pHardware->Decode(m_pCodecContext, NULL); if(result) -@@ -519,11 +519,19 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p +@@ -519,19 +521,60 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p || m_pCodecContext->codec_id == AV_CODEC_ID_SVQ3) m_started = true; - if(m_pHardware == NULL) ++ m_interlace = m_pFrame->interlaced_frame; ++ + if(m_pHardware == NULL || m_pHardware->UseFilter()) { + if (m_pHardware) + { ++ m_pFrame->pkt_dts = pts_dtoi(m_dts); + int result = m_pHardware->Decode(m_pCodecContext, m_pFrame); + if (result == VC_BUFFER) + return result; + m_pHardware->MapFrame(m_pCodecContext, m_pFrame); ++ m_dts = pts_itod(m_pFrame->pkt_dts); ++ m_pFrame->pkt_dts = 0; + } + bool need_scale = std::find( m_formats.begin() @@ -10067,8 +10309,36 @@ index 43d3e70..743e002 100644 + , m_pFrame->format) == m_formats.end(); bool need_reopen = false; ++ ++ ++ // ask codec to do deinterlacing if possible ++ EDEINTERLACEMODE mDeintMode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; ++ EINTERLACEMETHOD mInt = g_renderManager.AutoInterlaceMethod(CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod); ++ ++ unsigned int mFilters = 0; ++ ++ if (mDeintMode != VS_DEINTERLACEMODE_OFF) ++ { ++ if (mDeintMode == VS_DEINTERLACEMODE_FORCE || ++ m_pFrame->interlaced_frame) ++ { ++ if (mInt == VS_INTERLACEMETHOD_DEINTERLACE) ++ mFilters = CDVDVideoCodec::FILTER_DEINTERLACE_ANY; ++ else if(mInt == VS_INTERLACEMETHOD_DEINTERLACE_HALF) ++ mFilters = CDVDVideoCodec::FILTER_DEINTERLACE_ANY | CDVDVideoCodec::FILTER_DEINTERLACE_HALFED; ++ ++ if (mDeintMode == VS_DEINTERLACEMODE_AUTO && mFilters) ++ mFilters |= CDVDVideoCodec::FILTER_DEINTERLACE_FLAGGED; ++ } ++ } ++ ++ if (!g_renderManager.Supports(RENDERFEATURE_ROTATION)) ++ mFilters |= CDVDVideoCodec::FILTER_ROTATE; ++ ++ SetFilters(mFilters); ++ if(!m_filters.Equals(m_filters_next)) -@@ -531,7 +539,7 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p + need_reopen = true; if(m_pFilterIn) { @@ -10077,7 +10347,7 @@ index 43d3e70..743e002 100644 || m_pFilterIn->outputs[0]->w != m_pCodecContext->width || m_pFilterIn->outputs[0]->h != m_pCodecContext->height) need_reopen = true; -@@ -548,7 +556,7 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p +@@ -548,7 +591,7 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p } int result; @@ -10086,19 +10356,7 @@ index 43d3e70..743e002 100644 result = m_pHardware->Decode(m_pCodecContext, m_pFrame); else if(m_pFilterGraph) result = FilterProcess(m_pFrame); -@@ -636,7 +644,10 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) - pDvdVideoPicture->stereo_mode[sizeof(pDvdVideoPicture->stereo_mode)-1] = '\0'; - } - -- pDvdVideoPicture->iRepeatPicture = 0.5 * m_pFrame->repeat_pict; -+ if (m_pFrame->repeat_pict >= 0) -+ pDvdVideoPicture->iRepeatPicture = 0.5 * m_pFrame->repeat_pict; -+ else -+ pDvdVideoPicture->iRepeatPicture = 0; - pDvdVideoPicture->iFlags = DVP_FLAG_ALLOCATED; - pDvdVideoPicture->iFlags |= m_pFrame->interlaced_frame ? DVP_FLAG_INTERLACED : 0; - pDvdVideoPicture->iFlags |= m_pFrame->top_field_first ? DVP_FLAG_TOP_FIELD_FIRST: 0; -@@ -644,6 +655,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) +@@ -644,6 +687,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) pDvdVideoPicture->chroma_position = m_pCodecContext->chroma_sample_location; pDvdVideoPicture->color_primaries = m_pCodecContext->color_primaries; pDvdVideoPicture->color_transfer = m_pCodecContext->color_trc; @@ -10106,7 +10364,20 @@ index 43d3e70..743e002 100644 if(m_pCodecContext->color_range == AVCOL_RANGE_JPEG || m_pCodecContext->pix_fmt == PIX_FMT_YUVJ420P) pDvdVideoPicture->color_range = 1; -@@ -698,7 +710,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) +@@ -667,7 +711,11 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) + pDvdVideoPicture->qscale_type = DVP_QSCALE_UNKNOWN; + } + +- pDvdVideoPicture->dts = m_dts; ++ if (pDvdVideoPicture->iRepeatPicture) ++ pDvdVideoPicture->dts = DVD_NOPTS_VALUE; ++ else ++ pDvdVideoPicture->dts = m_dts; ++ + m_dts = DVD_NOPTS_VALUE; + if (m_pFrame->reordered_opaque) + pDvdVideoPicture->pts = pts_itod(m_pFrame->reordered_opaque); +@@ -698,7 +746,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) bool CDVDVideoCodecFFmpeg::GetPicture(DVDVideoPicture* pDvdVideoPicture) { @@ -10115,7 +10386,7 @@ index 43d3e70..743e002 100644 return m_pHardware->GetPicture(m_pCodecContext, m_pFrame, pDvdVideoPicture); if(!GetPictureCommon(pDvdVideoPicture)) -@@ -723,6 +735,7 @@ bool CDVDVideoCodecFFmpeg::GetPicture(DVDVideoPicture* pDvdVideoPicture) +@@ -723,6 +771,7 @@ bool CDVDVideoCodecFFmpeg::GetPicture(DVDVideoPicture* pDvdVideoPicture) pix_fmt = (PixelFormat)m_pFrame->format; pDvdVideoPicture->format = CDVDCodecUtils::EFormatFromPixfmt(pix_fmt); @@ -10123,7 +10394,7 @@ index 43d3e70..743e002 100644 return true; } -@@ -737,7 +750,7 @@ int CDVDVideoCodecFFmpeg::FilterOpen(const CStdString& filters, bool scale) +@@ -737,7 +786,7 @@ int CDVDVideoCodecFFmpeg::FilterOpen(const CStdString& filters, bool scale) if (filters.empty() && !scale) return 0; @@ -10132,7 +10403,7 @@ index 43d3e70..743e002 100644 { CLog::Log(LOGWARNING, "CDVDVideoCodecFFmpeg::FilterOpen - skipped opening filters on hardware decode"); return 0; -@@ -755,7 +768,7 @@ int CDVDVideoCodecFFmpeg::FilterOpen(const CStdString& filters, bool scale) +@@ -755,7 +804,7 @@ int CDVDVideoCodecFFmpeg::FilterOpen(const CStdString& filters, bool scale) CStdString args = StringUtils::Format("%d:%d:%d:%d:%d:%d:%d", m_pCodecContext->width, m_pCodecContext->height, @@ -10141,8 +10412,20 @@ index 43d3e70..743e002 100644 m_pCodecContext->time_base.num, m_pCodecContext->time_base.den, m_pCodecContext->sample_aspect_ratio.num, +@@ -954,10 +1003,7 @@ bool CDVDVideoCodecFFmpeg::GetCodecStats(double &pts, int &skippedDeint, int &in + { + pts = m_decoderPts; + skippedDeint = m_skippedDeint; +- if (m_pFrame) +- interlaced = m_pFrame->interlaced_frame; +- else +- interlaced = 0; ++ interlaced = m_interlace; + return true; + } + diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h -index c0ce198..18a57ef 100644 +index c0ce198..4f88532 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h @@ -48,6 +48,8 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec @@ -10154,6 +10437,12 @@ index c0ce198..18a57ef 100644 }; CDVDVideoCodecFFmpeg(); +@@ -134,4 +136,5 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec + int m_skippedDeint; + bool m_requestSkipDeint; + int m_codecControlFlags; ++ bool m_interlace; + }; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp index 3facfce..e85101e 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp @@ -10419,386 +10708,19 @@ index a520e42..49d3117 100644 }; } --- -1.8.5.1 - - -From e1817ac4a1f7d03f617b1f13f3fe8cb01a426201 Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Sun, 22 Dec 2013 14:52:29 +0100 -Subject: [PATCH 90/94] linux: add shared lib for sse4 operations - ---- - Makefile.in | 6 +++ - configure.in | 18 +++++++ - xbmc/DllPaths_generated.h.in | 3 ++ - xbmc/linux/sse4/CopyFrame.cpp | 115 ++++++++++++++++++++++++++++++++++++++++++ - xbmc/linux/sse4/DllLibSSE4.h | 43 ++++++++++++++++ - xbmc/linux/sse4/Makefile.in | 20 ++++++++ - 6 files changed, 205 insertions(+) - create mode 100644 xbmc/linux/sse4/CopyFrame.cpp - create mode 100644 xbmc/linux/sse4/DllLibSSE4.h - create mode 100644 xbmc/linux/sse4/Makefile.in - -diff --git a/Makefile.in b/Makefile.in -index a14b3c5..a8bc1db 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -323,6 +323,12 @@ CHECK_LIBADD=@WAYLAND_TEST_LIBS@ - endif - endif - -+ifeq (@USE_SSE4@,1) -+FINAL_TARGETS+=sse4 -+sse4 : force -+ $(MAKE) -C xbmc/linux/sse4 -+endif -+ - CHECK_PROGRAMS = xbmc-test - - CLEAN_FILES += $(CHECK_PROGRAMS) $(CHECK_EXTENSIONS) -diff --git a/configure.in b/configure.in -index f277cac..74ed562 100644 ---- a/configure.in -+++ b/configure.in -@@ -875,6 +875,19 @@ elif test "$use_arch" = "arm"; then - fi - fi - -+use_sse4=no -+if test "$ARCH" = "x86_64-linux"; then -+ SAVE_CFLAGS="$CFLAGS" -+ CFLAGS="-msse4.1" -+ AC_COMPILE_IFELSE( -+ [AC_LANG_SOURCE([int foo;])], -+ [ use_sse4=yes -+ USE_SSE4=1], -+ [ use_sse=no -+ USE_SSE4=0]) -+ CFLAGS="$SAVE_CFLAGS" -+fi -+ - # Checks for library functions. - AC_FUNC_ALLOCA - AC_FUNC_CHOWN -@@ -2575,6 +2588,10 @@ if test "$use_codec_libstagefright" = "yes"; then - OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile" - fi - -+if test "$use_sse4" = "yes"; then -+OUTPUT_FILES="$OUTPUT_FILES xbmc/linux/sse4/Makefile" -+fi -+ - OUTPUT_FILES="$OUTPUT_FILES \ - xbmc/interfaces/python/Makefile \ - xbmc/interfaces/python/test/Makefile" -@@ -2649,6 +2666,7 @@ AC_SUBST(USE_ANDROID) - AC_SUBST(GTEST_CONFIGURED) - AC_SUBST(USE_DOXYGEN) - AC_SUBST(USE_PVR_ADDONS) -+AC_SUBST(USE_SSE4) - - # pushd and popd are not available in other shells besides bash, so implement - # our own pushd/popd functions -diff --git a/xbmc/DllPaths_generated.h.in b/xbmc/DllPaths_generated.h.in -index d35ea97..3bf8f96 100644 ---- a/xbmc/DllPaths_generated.h.in -+++ b/xbmc/DllPaths_generated.h.in -@@ -104,4 +104,7 @@ - /* xkbcommon */ - #define DLL_PATH_XKBCOMMON "@XKBCOMMON_LIBRARY_SONAME@" - -+/* sse4 */ -+#define DLL_PATH_LIBSSE4 "special://xbmcbin/system/libsse4-@ARCH@.so" -+ - #endif -diff --git a/xbmc/linux/sse4/CopyFrame.cpp b/xbmc/linux/sse4/CopyFrame.cpp -new file mode 100644 -index 0000000..6d23d83 ---- /dev/null -+++ b/xbmc/linux/sse4/CopyFrame.cpp -@@ -0,0 +1,115 @@ -+/* -+ * Copyright (C) 2005-2013 Team XBMC -+ * http://xbmc.org -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, see -+ * . -+ * -+ */ -+ -+#include "smmintrin.h" -+ -+#define CACHED_BUFFER_SIZE 4096 -+typedef unsigned int UINT; -+ -+extern "C" -+{ -+ -+/* -+ * http://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers -+ * COPIES VIDEO FRAMES FROM USWC MEMORY TO WB SYSTEM MEMORY VIA CACHED BUFFER -+ * ASSUMES PITCH IS A MULTIPLE OF 64B CACHE LINE SIZE, WIDTH MAY NOT BE -+ */ -+void copy_frame( void * pSrc, void * pDest, void * pCacheBlock, -+ UINT width, UINT height, UINT pitch ) -+{ -+ __m128i x0, x1, x2, x3; -+ __m128i *pLoad; -+ __m128i *pStore; -+ __m128i *pCache; -+ UINT x, y, yLoad, yStore; -+ UINT rowsPerBlock; -+ UINT width64; -+ UINT extraPitch; -+ -+ -+ rowsPerBlock = CACHED_BUFFER_SIZE / pitch; -+ width64 = (width + 63) & ~0x03f; -+ extraPitch = (pitch - width64) / 16; -+ -+ pLoad = (__m128i *)pSrc; -+ pStore = (__m128i *)pDest; -+ -+ // COPY THROUGH 4KB CACHED BUFFER -+ for( y = 0; y < height; y += rowsPerBlock ) -+ { -+ // ROWS LEFT TO COPY AT END -+ if( y + rowsPerBlock > height ) -+ rowsPerBlock = height - y; -+ -+ pCache = (__m128i *)pCacheBlock; -+ -+ _mm_mfence(); -+ -+ // LOAD ROWS OF PITCH WIDTH INTO CACHED BLOCK -+ for( yLoad = 0; yLoad < rowsPerBlock; yLoad++ ) -+ { -+ // COPY A ROW, CACHE LINE AT A TIME -+ for( x = 0; x < pitch; x +=64 ) -+ { -+ x0 = _mm_stream_load_si128( pLoad +0 ); -+ x1 = _mm_stream_load_si128( pLoad +1 ); -+ x2 = _mm_stream_load_si128( pLoad +2 ); -+ x3 = _mm_stream_load_si128( pLoad +3 ); -+ -+ _mm_store_si128( pCache +0, x0 ); -+ _mm_store_si128( pCache +1, x1 ); -+ _mm_store_si128( pCache +2, x2 ); -+ _mm_store_si128( pCache +3, x3 ); -+ -+ pCache += 4; -+ pLoad += 4; -+ } -+ } -+ -+ _mm_mfence(); -+ -+ pCache = (__m128i *)pCacheBlock; -+ -+ // STORE ROWS OF FRAME WIDTH FROM CACHED BLOCK -+ for( yStore = 0; yStore < rowsPerBlock; yStore++ ) -+ { -+ // copy a row, cache line at a time -+ for( x = 0; x < width64; x +=64 ) -+ { -+ x0 = _mm_load_si128( pCache ); -+ x1 = _mm_load_si128( pCache +1 ); -+ x2 = _mm_load_si128( pCache +2 ); -+ x3 = _mm_load_si128( pCache +3 ); -+ -+ _mm_stream_si128( pStore, x0 ); -+ _mm_stream_si128( pStore +1, x1 ); -+ _mm_stream_si128( pStore +2, x2 ); -+ _mm_stream_si128( pStore +3, x3 ); -+ -+ pCache += 4; -+ pStore += 4; -+ } -+ -+ pCache += extraPitch; -+ pStore += extraPitch; -+ } -+ } -+} -+} -diff --git a/xbmc/linux/sse4/DllLibSSE4.h b/xbmc/linux/sse4/DllLibSSE4.h -new file mode 100644 -index 0000000..01424ac ---- /dev/null -+++ b/xbmc/linux/sse4/DllLibSSE4.h -@@ -0,0 +1,43 @@ -+#pragma once -+/* -+ * Copyright (C) 2005-2013 Team XBMC -+ * http://xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, see -+ * . -+ * -+ */ -+ -+#include "DynamicDll.h" -+ -+extern "C" { -+ -+} -+ -+class DllLibSSE4Interface -+{ -+public: -+ virtual ~DllLibSSE4Interface() {} -+ virtual void copy_frame(void * pSrc, void * pDest, void * pCacheBlock, UINT width, UINT height, UINT pitch) = 0; -+}; -+ -+class DllLibSSE4 : public DllDynamic, DllLibSSE4Interface -+{ -+ DECLARE_DLL_WRAPPER(DllLibSSE4, DLL_PATH_LIBSSE4) -+ DEFINE_METHOD6(void, copy_frame, (void *p1, void *p2, void *p3, UINT p4, UINT p5, UINT p6)) -+ -+ BEGIN_METHOD_RESOLVE() -+ RESOLVE_METHOD(copy_frame) -+ END_METHOD_RESOLVE() -+}; -diff --git a/xbmc/linux/sse4/Makefile.in b/xbmc/linux/sse4/Makefile.in -new file mode 100644 -index 0000000..45aa826 ---- /dev/null -+++ b/xbmc/linux/sse4/Makefile.in -@@ -0,0 +1,20 @@ -+ARCH=@ARCH@ -+DEFINES+= -+CXXFLAGS=-fPIC -msse4.1 -+LIBNAME=libsse4 -+OBJS=CopyFrame.o -+ -+LIB_SHARED=@abs_top_srcdir@/system/$(LIBNAME)-$(ARCH).so -+ -+all: $(LIB_SHARED) -+ -+$(LIB_SHARED): $(OBJS) -+ $(CXX) $(CFLAGS) $(LDFLAGS) -shared -g -o $(LIB_SHARED) $(OBJS) -+ -+CLEAN_FILES = \ -+ $(LIB_SHARED) \ -+ -+DISTCLEAN_FILES= \ -+ Makefile \ -+ -+include ../../../Makefile.include --- -1.8.5.1 - - -From 112c97aad9c746a87e304de9240d97dd2793922a Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Tue, 24 Dec 2013 15:06:10 +0100 -Subject: [PATCH 91/94] vaapi squash me - ---- - xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp -index 5443cb3..002c8e1 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp -@@ -456,6 +456,7 @@ struct EFormatMap { - , { PIX_FMT_YUV420P16, RENDER_FMT_YUV420P16 } - , { PIX_FMT_UYVY422, RENDER_FMT_UYVY422 } - , { PIX_FMT_YUYV422, RENDER_FMT_YUYV422 } -+, { PIX_FMT_NV12, RENDER_FMT_NV12 } - , { PIX_FMT_VAAPI_VLD, RENDER_FMT_VAAPI } - , { PIX_FMT_DXVA2_VLD, RENDER_FMT_DXVA } - , { PIX_FMT_NONE , RENDER_FMT_NONE } --- -1.8.5.1 - - -From ecbbbb682f565babc70cc6d41eb3c463bf2f3301 Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Tue, 24 Dec 2013 15:49:16 +0100 -Subject: [PATCH 92/94] dvdplayer: move filter to video codec - ---- - .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 29 ++++++++++++++++++++++ - xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 24 ++---------------- - 2 files changed, 31 insertions(+), 22 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 743e002..1d3c928 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -37,6 +37,7 @@ - #include "utils/log.h" - #include "boost/shared_ptr.hpp" - #include "threads/Atomics.h" -+#include "settings/MediaSettings.h" - - #ifndef TARGET_POSIX - #define RINT(x) ((x) >= 0 ? ((int)((x) + 0.5)) : ((int)((x) - 0.5))) -@@ -534,6 +535,34 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p - , m_pFrame->format) == m_formats.end(); - - bool need_reopen = false; -+ -+ -+ // ask codec to do deinterlacing if possible -+ EDEINTERLACEMODE mDeintMode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; -+ EINTERLACEMETHOD mInt = g_renderManager.AutoInterlaceMethod(CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod); -+ -+ unsigned int mFilters = 0; -+ -+ if (mDeintMode != VS_DEINTERLACEMODE_OFF) -+ { -+ if (mDeintMode == VS_DEINTERLACEMODE_FORCE || -+ m_pFrame->interlaced_frame) -+ { -+ if (mInt == VS_INTERLACEMETHOD_DEINTERLACE) -+ mFilters = CDVDVideoCodec::FILTER_DEINTERLACE_ANY; -+ else if(mInt == VS_INTERLACEMETHOD_DEINTERLACE_HALF) -+ mFilters = CDVDVideoCodec::FILTER_DEINTERLACE_ANY | CDVDVideoCodec::FILTER_DEINTERLACE_HALFED; -+ -+ if (mDeintMode == VS_DEINTERLACEMODE_AUTO && mFilters) -+ mFilters |= CDVDVideoCodec::FILTER_DEINTERLACE_FLAGGED; -+ } -+ } -+ -+ if (!g_renderManager.Supports(RENDERFEATURE_ROTATION)) -+ mFilters |= CDVDVideoCodec::FILTER_ROTATE; -+ -+ SetFilters(mFilters); -+ - if(!m_filters.Equals(m_filters_next)) - need_reopen = true; - diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index 939f82f..6feed39 100644 +index 939f82f..01a18d2 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -@@ -553,28 +553,6 @@ void CDVDPlayerVideo::Process() +@@ -233,6 +233,7 @@ void CDVDPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) + m_bCalcFrameRate = CSettings::Get().GetBool("videoplayer.usedisplayasclock") || + CSettings::Get().GetInt("videoplayer.adjustrefreshrate") != ADJUST_REFRESHRATE_OFF; + ResetFrameRateCalc(); ++ m_bCalcSuccess = false; + + m_iDroppedRequest = 0; + m_iLateFrames = 0; +@@ -553,28 +554,6 @@ void CDVDPlayerVideo::Process() // decoder still needs to provide an empty image structure, with correct flags m_pVideoCodec->SetDropState(bRequestDrop); @@ -10827,7 +10749,7 @@ index 939f82f..6feed39 100644 int iDecoderState = m_pVideoCodec->Decode(pPacket->pData, pPacket->iSize, pPacket->dts, pPacket->pts); // buffer packets so we can recover should decoder flush for some reason -@@ -661,6 +639,8 @@ void CDVDPlayerVideo::Process() +@@ -661,6 +640,8 @@ void CDVDPlayerVideo::Process() //Deinterlace if codec said format was interlaced or if we have selected we want to deinterlace //this video @@ -10836,71 +10758,96 @@ index 939f82f..6feed39 100644 if ((mDeintMode == VS_DEINTERLACEMODE_AUTO && (picture.iFlags & DVP_FLAG_INTERLACED)) || mDeintMode == VS_DEINTERLACEMODE_FORCE) { if(mInt == VS_INTERLACEMETHOD_SW_BLEND) +@@ -703,7 +684,15 @@ void CDVDPlayerVideo::Process() + } + + if (picture.iRepeatPicture) ++ { ++ double pts; ++ int skipped, deint; ++ m_pVideoCodec->GetCodecStats(pts, skipped, deint); ++ picture.iDuration = frametime; ++ if (m_bCalcSuccess && deint) ++ picture.iDuration *= 2; + picture.iDuration *= picture.iRepeatPicture + 1; ++ } + + int iResult = OutputPicture(&picture, pts); + +@@ -1537,6 +1526,7 @@ void CDVDPlayerVideo::CalcFrameRate() + CLog::Log(LOGDEBUG,"%s framerate was:%f calculated:%f", __FUNCTION__, m_fFrameRate, m_fStableFrameRate / m_iFrameRateCount); + m_fFrameRate = m_fStableFrameRate / m_iFrameRateCount; + m_bFpsInvalid = false; ++ m_bCalcSuccess = true; + } + + //reset the stored framerates +diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.h b/xbmc/cores/dvdplayer/DVDPlayerVideo.h +index 65dea76..e29c5cc 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayerVideo.h ++++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.h +@@ -160,6 +160,7 @@ class CDVDPlayerVideo : public CThread + int m_iFrameRateErr; //how many frames we couldn't calculate the framerate, we give up after a while + int m_iFrameRateLength; //how many seconds we should measure the framerate + //this is increased exponentially from CDVDPlayerVideo::CalcFrameRate() ++ bool m_bCalcSuccess; + + bool m_bFpsInvalid; // needed to ignore fps (e.g. dvd stills) + -- 1.8.5.1 -From 75fb92c7a7b5c0960d9fa9a65fbe47f2c2bf2fa8 Mon Sep 17 00:00:00 2001 +From 2e11188a7c78468a2bc2fd4649a0a5833c3417f7 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker -Date: Tue, 24 Dec 2013 20:16:10 +0100 -Subject: [PATCH 93/94] sse4 squash me +Date: Sat, 28 Dec 2013 15:44:35 +0100 +Subject: [PATCH 89/90] dvdpalyer audio: fix delivering the packet in wrong + format --- - Makefile.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp | 3 +++ + 1 file changed, 3 insertions(+) -diff --git a/Makefile.in b/Makefile.in -index a8bc1db..2a44564 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -324,7 +324,7 @@ endif - endif - - ifeq (@USE_SSE4@,1) --FINAL_TARGETS+=sse4 -+LIBSSE4+=sse4 - sse4 : force - $(MAKE) -C xbmc/linux/sse4 - endif -@@ -464,7 +464,7 @@ endif - - codecs: papcodecs dvdpcodecs dvdpextcodecs - --libs: libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH) -+libs: $(LIBSSE4) libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH) - - externals: codecs libs visualizations screensavers libaddon pvraddons +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp +index 69992cc..9e31d6c 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp +@@ -117,6 +117,9 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options + m_pFrame1 = m_dllAvCodec.avcodec_alloc_frame(); + m_bOpenedCodec = true; + m_iSampleFormat = AV_SAMPLE_FMT_NONE; ++ ++ // check if conversion is needed ++ GetDataFormat(); + return true; + } -- 1.8.5.1 -From 6d5a751d3055f39b6cbe7e1035edea6423a03982 Mon Sep 17 00:00:00 2001 +From 77202cc3a62194935976f4f336f5922274dad250 Mon Sep 17 00:00:00 2001 From: fritsch -Date: Wed, 25 Dec 2013 20:38:32 +0100 -Subject: [PATCH 94/94] RenderManager: Fix segfault +Date: Sat, 28 Dec 2013 11:05:02 +0100 +Subject: [PATCH 90/90] VAAPI: Also try to enable sse4 on normal x86 arch --- - xbmc/cores/VideoRenderers/RenderManager.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp -index 8dc8a91..c15f559 100644 ---- a/xbmc/cores/VideoRenderers/RenderManager.cpp -+++ b/xbmc/cores/VideoRenderers/RenderManager.cpp -@@ -986,10 +986,10 @@ EINTERLACEMETHOD CXBMCRenderManager::AutoInterlaceMethodInternal(EINTERLACEMETHO - if (mInt == VS_INTERLACEMETHOD_NONE) - return VS_INTERLACEMETHOD_NONE; +diff --git a/configure.in b/configure.in +index 74ed562..7e7cafa 100644 +--- a/configure.in ++++ b/configure.in +@@ -876,7 +876,7 @@ elif test "$use_arch" = "arm"; then + fi -- if(!m_pRenderer->Supports(mInt)) -+ if(m_pRenderer && !m_pRenderer->Supports(mInt)) - mInt = VS_INTERLACEMETHOD_AUTO; - -- if (mInt == VS_INTERLACEMETHOD_AUTO) -+ if (m_pRenderer && mInt == VS_INTERLACEMETHOD_AUTO) - return m_pRenderer->AutoInterlaceMethod(); - - return mInt; + use_sse4=no +-if test "$ARCH" = "x86_64-linux"; then ++if test "$ARCH" = "x86_64-linux" || test "$ARCH" = "i486-linux"; then + SAVE_CFLAGS="$CFLAGS" + CFLAGS="-msse4.1" + AC_COMPILE_IFELSE( -- 1.8.5.1