diff --git a/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta.patch b/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta.patch index 53fe002020..2d986efdcc 100644 --- a/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta.patch +++ b/packages/mediacenter/xbmc/patches/xbmc-995.01-fernetmenta.patch @@ -1,7 +1,7 @@ -From 70133bf136174bf3c818968f5375c72840292f6e Mon Sep 17 00:00:00 2001 +From ab3ed171e0f2d3539455b8479b72204b0b935145 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:34:39 +0200 -Subject: [PATCH 01/27] videoplayer: adapt lateness detection and dropping to +Subject: [PATCH 01/31] videoplayer: adapt lateness detection and dropping to buffering --- @@ -646,10 +646,10 @@ index 37a37c4..be14832 100644 2.0.4 -From 86e4f2c78fc0475d19b5b1fe2825940b0a7f5196 Mon Sep 17 00:00:00 2001 +From 487e9680440879f01fe0732325748aa519164419 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Sep 2012 16:05:21 +0200 -Subject: [PATCH 02/27] video player: present correct pts to user for a/v sync +Subject: [PATCH 02/31] video player: present correct pts to user for a/v sync (after buffering in renderer) --- @@ -701,10 +701,10 @@ index be14832..ad99987 100644 2.0.4 -From 5464634530899d3aa6d09896973de14f27803c66 Mon Sep 17 00:00:00 2001 +From c5368ddfb731ef967e3dbc635d325285e4368bed Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 1 Jun 2013 11:21:19 +0200 -Subject: [PATCH 03/27] renderer: bump buffers to 5 +Subject: [PATCH 03/31] renderer: bump buffers to 5 --- xbmc/cores/VideoRenderers/BaseRenderer.h | 2 +- @@ -727,10 +727,10 @@ index fb41ccf..f5e5677 100644 2.0.4 -From 9e1ee4811b9e3b6fd1e3fe2982f6622ee619bb79 Mon Sep 17 00:00:00 2001 +From dcba98d63da19d9a620da5a66a90711289344afd Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:41:31 +0200 -Subject: [PATCH 04/27] videoplayer: update frametime, it might change due to +Subject: [PATCH 04/31] videoplayer: update frametime, it might change due to fps detection --- @@ -754,10 +754,10 @@ index 1e70fca..5761270 100644 2.0.4 -From 7bc57e1e4b7a9b50dc2fce152abb5586fe615cb8 Mon Sep 17 00:00:00 2001 +From de6543284447f8185c4df494e3e48df71eb16349 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:43:06 +0200 -Subject: [PATCH 05/27] videoplayer: give streams with invalid fps a chance for +Subject: [PATCH 05/31] videoplayer: give streams with invalid fps a chance for fps detection --- @@ -781,10 +781,10 @@ index 5761270..e8d855f 100644 2.0.4 -From 27bf5d17b0bd4890d7f25c8381ff32740b8dffd5 Mon Sep 17 00:00:00 2001 +From 0598187613227e589871a06df9a6637df4b8ef59 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:49:05 +0200 -Subject: [PATCH 06/27] dvdplayer: allow rewinding at end of stream, do a seek +Subject: [PATCH 06/31] dvdplayer: allow rewinding at end of stream, do a seek after rewind --- @@ -821,10 +821,10 @@ index 8de1e96..19e90f5 100644 2.0.4 -From 08fb3a8634c2a644e9059aaf0fc5257ad237f558 Mon Sep 17 00:00:00 2001 +From 9b5fcc9f82be2d8a93b3fbedbf8709a72e82ec96 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 16:06:39 +0200 -Subject: [PATCH 07/27] dvdplayer: observe pts counter overflow +Subject: [PATCH 07/31] dvdplayer: observe pts counter overflow --- .../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 197 ++++++++++++++++++++- @@ -1107,10 +1107,10 @@ index 08eb3df..dd89584 100644 2.0.4 -From 4169f8e73a7663a1709eb8a7770359e527046d2d Mon Sep 17 00:00:00 2001 +From 430589bc82a13e4b457b84862fed5d80c2c9c8e5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 13:02:10 +0200 -Subject: [PATCH 08/27] dvdplayer: avoid short screen flicker caused by +Subject: [PATCH 08/31] dvdplayer: avoid short screen flicker caused by unnecessary reconfigure of renderer --- @@ -1143,10 +1143,10 @@ index e8d855f..5bff37e 100644 2.0.4 -From 21d1f62dad833faf01100a31e4ecc2a3eae98488 Mon Sep 17 00:00:00 2001 +From df1c231838244764acbf84142261d5f67f6f89b0 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 12:05:50 +0200 -Subject: [PATCH 09/27] vdpau: advanced settings for auto deinterlacing +Subject: [PATCH 09/31] vdpau: advanced settings for auto deinterlacing --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++---- @@ -1212,10 +1212,10 @@ index 7e50a63..980138e 100644 2.0.4 -From 63db87d23949258ffebbd75780f62c9b0e93d840 Mon Sep 17 00:00:00 2001 +From d320919872492797709fc2226eccddae470d53dc Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 2 Nov 2012 13:20:03 +0100 -Subject: [PATCH 10/27] player: fix rewind +Subject: [PATCH 10/31] player: fix rewind --- xbmc/cores/dvdplayer/DVDMessage.h | 5 ++++- @@ -1430,10 +1430,10 @@ index ad99987..4d2b2c7 100644 2.0.4 -From 2ff037346ebe6fa3e88c9dfc87e86366a1215fe5 Mon Sep 17 00:00:00 2001 +From 53c0dbd9f211b6b2d9934a9c4e2a26da265fcc01 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 15:18:53 +0100 -Subject: [PATCH 11/27] OMXPlayer: some caching fixes for pvr +Subject: [PATCH 11/31] OMXPlayer: some caching fixes for pvr --- xbmc/cores/omxplayer/OMXPlayer.cpp | 3 ++- @@ -1457,10 +1457,10 @@ index 53fe37d..182314f 100644 2.0.4 -From 0cb3e855ba5bf266800638bff95673ba07d66ce0 Mon Sep 17 00:00:00 2001 +From 6b4eb294ef8c3d13736cbdec6093c4d5d6ace4b7 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 20:50:59 +0100 -Subject: [PATCH 12/27] fix incorrect display of fps when dr kicks in +Subject: [PATCH 12/31] fix incorrect display of fps when dr kicks in --- xbmc/Application.cpp | 3 ++- @@ -1487,10 +1487,10 @@ index 479b54a..6ef5bdb 100644 2.0.4 -From ca506bac9c8d77fba0bf3baaf819c06510347855 Mon Sep 17 00:00:00 2001 +From 51aac4a2916cd7fdd2da52cb71dbbd4e47c0b8db Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 25 Jul 2013 17:18:13 +0200 -Subject: [PATCH 13/27] ActiveAE: slightly reduce buffer size +Subject: [PATCH 13/31] ActiveAE: slightly reduce buffer size --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 4 ++-- @@ -1515,10 +1515,10 @@ index fe5e893..c98c73b 100644 2.0.4 -From 443859e498d3d2037d61cd465ae4694406c40350 Mon Sep 17 00:00:00 2001 +From 0cec3ff65e750280264d058c3d9e75c6e76a8419 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 4 Aug 2013 10:11:16 +0200 -Subject: [PATCH 14/27] Revert "vdpau: comment some features that will be added +Subject: [PATCH 14/31] Revert "vdpau: comment some features that will be added later" This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf. @@ -1574,10 +1574,10 @@ index 1845198..2bfea1a 100644 2.0.4 -From b50aafc6c1f7e8d6a345cd98a4b5aae527838c1d Mon Sep 17 00:00:00 2001 +From f93e7631df21c85ad5c512de3247562115ed9ee2 Mon Sep 17 00:00:00 2001 From: Marcel Groothuis Date: Thu, 5 Dec 2013 22:02:50 +0100 -Subject: [PATCH 15/27] ffmpeg demuxer: faster channel change for PVR addons +Subject: [PATCH 15/31] ffmpeg demuxer: faster channel change for PVR addons without internal demuxing (such as MediaPortal, ArgusTV, MythTV, NextPVR) Credits: FernetMenta, Davilla, Popcornmix, Whaupt @@ -1937,10 +1937,10 @@ index ca689d0..f383563 100644 2.0.4 -From 4185f173f2510099f3236521ddc473a1b04c3c1b Mon Sep 17 00:00:00 2001 +From d6b8a9eaed29fe9e7cc52fcd3e337a374f86187c Mon Sep 17 00:00:00 2001 From: Wolfgang Haupt Date: Thu, 5 Dec 2013 22:11:57 +0100 -Subject: [PATCH 16/27] DVDFactoryDemuxer: skip streaminfo for udp tcp and +Subject: [PATCH 16/31] DVDFactoryDemuxer: skip streaminfo for udp tcp and pvr-channels --- @@ -2064,10 +2064,10 @@ index 667f6d3..0094709 100644 2.0.4 -From 4ca1fb51808a11555862a5fec00b8e133e7c9bd3 Mon Sep 17 00:00:00 2001 +From fa733c748a2a9259dc8032614df4182f8ed8125c Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 18 Jul 2014 10:39:07 +0200 -Subject: [PATCH 17/27] fast channel switch, make sure extradata is decoded +Subject: [PATCH 17/31] fast channel switch, make sure extradata is decoded --- xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 3 ++- @@ -2091,10 +2091,10 @@ index c01bc11..d38bfab 100644 2.0.4 -From 4a55e426e089da56d299bb2b2fd5cc21933856d5 Mon Sep 17 00:00:00 2001 +From 5bb5b183f8969475db282ff90a8d5382920f4546 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 23 Jul 2014 15:07:37 +0200 -Subject: [PATCH 18/27] ffmpeg demuxer: allow a stream change if pat/pmt was +Subject: [PATCH 18/31] ffmpeg demuxer: allow a stream change if pat/pmt was not seen on open --- @@ -2157,10 +2157,10 @@ index d38bfab..2332b1b 100644 2.0.4 -From d1a4921fd94a103872ba36e3b0b5bc8a819d6ba1 Mon Sep 17 00:00:00 2001 +From 75f483190ef00aed904023a1dce5c803d228804c Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 22 Dec 2013 14:52:29 +0100 -Subject: [PATCH 19/27] linux: add shared lib for sse4 operations +Subject: [PATCH 19/31] linux: add shared lib for sse4 operations --- Makefile.in | 8 ++- @@ -2455,10 +2455,10 @@ index 0000000..45aa826 2.0.4 -From d556061cc85aa4c3b064bcda63346715ddbb4bd5 Mon Sep 17 00:00:00 2001 +From 955cd049218bfa250cb4331af4e96cc3e5f647af Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 28 Jan 2014 10:05:26 +0100 -Subject: [PATCH 20/27] xbmc pr 3080 +Subject: [PATCH 20/31] xbmc pr 3080 --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 8 ++++++++ @@ -2487,10 +2487,10 @@ index 6920db2..d72e256 100644 2.0.4 -From c4052186723660e1d15f5286bc1881bcc033a8d9 Mon Sep 17 00:00:00 2001 +From ea66a597e55c5e96aa50e5f6c1ad3e116ea73f94 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 11 Feb 2014 18:15:06 +0100 -Subject: [PATCH 21/27] ActiveAE: add some debug logging +Subject: [PATCH 21/31] ActiveAE: add some debug logging --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp | 6 ++++++ @@ -2518,10 +2518,10 @@ index ec10397..3b67fc0 100644 2.0.4 -From bec0650784571cace17c909e4e2929c2e65793cd Mon Sep 17 00:00:00 2001 +From cb2f5af4e3804880785a5670857541dfce5795a0 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 13 Jun 2014 14:37:16 +0200 -Subject: [PATCH 22/27] VAAPI: rewrite with VPP and ffmpeg filter +Subject: [PATCH 22/31] VAAPI: rewrite with VPP and ffmpeg filter --- configure.in | 16 +- @@ -7287,10 +7287,10 @@ index 760eda5..965f297 100644 2.0.4 -From 75b770fe37e7b2423ad538255a76b7cd313912f2 Mon Sep 17 00:00:00 2001 +From cb2fc4c71d8582e83bafd036eed14ee8cbc4550a Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 26 Jul 2014 09:54:06 +0200 -Subject: [PATCH 23/27] ffmpeg: adapt depreciated attribute +Subject: [PATCH 23/31] ffmpeg: adapt depreciated attribute max_analyze_duration --- @@ -7314,10 +7314,10 @@ index 2332b1b..edaa006 100644 2.0.4 -From 479b5b0e385754c4a9db77ff2afc57a1efb2abc8 Mon Sep 17 00:00:00 2001 +From 98f504310e967283db7b50ae5ca6d77aadfa4091 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 16 Aug 2014 20:45:37 +0200 -Subject: [PATCH 24/27] ALSA: remove log spam by adding not ELD listed +Subject: [PATCH 24/31] ALSA: remove log spam by adding not ELD listed passthrough formats after the pcm formats --- @@ -7378,10 +7378,10 @@ index 8dee4bc..b7411b8 100644 2.0.4 -From 380775a77d1de1ec145d98b4fe387b2688de89b2 Mon Sep 17 00:00:00 2001 +From be2aee8d283033f876438e1b24b39f1cc1d45a06 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Aug 2014 00:53:17 +0100 -Subject: [PATCH 25/27] [dvdplayer] Allow UpdateCorrection to handle audio and +Subject: [PATCH 25/31] [dvdplayer] Allow UpdateCorrection to handle audio and video jumping asynchronously --- @@ -7453,10 +7453,10 @@ index 68d68a1..fdc25af 100644 2.0.4 -From 80152007eb8c364d610c32ee51217f69fc97017c Mon Sep 17 00:00:00 2001 +From bb47c72dd0ed6aaced0a8980c15835b8737303c7 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 20 Aug 2014 20:33:57 +0200 -Subject: [PATCH 27/27] VAAPI: fixes +Subject: [PATCH 26/31] VAAPI: fixes --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 5 ++++- @@ -7488,3 +7488,414 @@ index 9aec0c9..913063c 100644 -- 2.0.4 + +From b2723c955373788b3e410fe4cc68d508c54e12a4 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sat, 23 Aug 2014 11:42:31 +0200 +Subject: [PATCH 27/31] dvdplayer: rename codec ctrl flags + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h | 14 ++++++++------ + .../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++---- + xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 4 ++-- + 4 files changed, 15 insertions(+), 13 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h +index 69ff8c9..22b9b99 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h +@@ -136,9 +136,9 @@ struct DVDVideoUserData + #define DVP_FLAG_NOSKIP 0x00000010 // indicate this picture should never be dropped + #define DVP_FLAG_DROPPED 0x00000020 // indicate that this picture has been dropped in decoder stage, will have no data + +-#define DVP_FLAG_DROPDEINT 0x00000040 // indicate that this picture was requested to have been dropped in deint stage +-#define DVP_FLAG_NO_POSTPROC 0x00000100 // see GetCodecStats +-#define DVP_FLAG_DRAIN 0x00000200 // see GetCodecStats ++#define DVD_CODEC_CTRL_SKIPDEINT 0x01000000 // indicate that this picture was requested to have been dropped in deint stage ++#define DVD_CODEC_CTRL_NO_POSTPROC 0x02000000 // see GetCodecStats ++#define DVD_CODEC_CTRL_DRAIN 0x04000000 // see GetCodecStats + + // DVP_FLAG 0x00000100 - 0x00000f00 is in use by libmpeg2! + +@@ -312,10 +312,12 @@ class CDVDVideoCodec + /** + * Codec can be informed by player with the following flags: + * +- * DVP_FLAG_NO_POSTPROC : if speed is not normal the codec can switch off +- * postprocessing and de-interlacing ++ * DVD_CODEC_CTRL_NO_POSTPROC : ++ * if speed is not normal the codec can switch off ++ * postprocessing and de-interlacing + * +- * DVP_FLAG_DRAIN : codecs may do postprocessing and de-interlacing. ++ * DVD_CODEC_CTRL_DRAIN : ++ * codecs may do postprocessing and de-interlacing. + * If video buffers in RenderManager are about to run dry, + * this is signaled to codec. Codec can wait for post-proc + * to be finished instead of returning empty and getting another +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index a4ebcd8..65edae0 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -682,7 +682,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) + + if (m_requestSkipDeint) + { +- pDvdVideoPicture->iFlags |= DVP_FLAG_DROPDEINT; ++ pDvdVideoPicture->iFlags |= DVD_CODEC_CTRL_SKIPDEINT; + m_skippedDeint = 1; + } + else +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 2bfea1a..165f103 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -1085,7 +1085,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) + m_bufferStats.IncDecoded(); + m_vdpauOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic)); + +- m_codecControl = pic.DVDPic.iFlags & (DVP_FLAG_DRAIN | DVP_FLAG_NO_POSTPROC); ++ m_codecControl = pic.DVDPic.iFlags & (DVD_CODEC_CTRL_DRAIN | DVD_CODEC_CTRL_NO_POSTPROC); + } + + int retval = 0; +@@ -2281,7 +2281,7 @@ void CMixer::InitCycle() + int flags; + uint64_t latency; + m_config.stats->GetParams(latency, flags); +- if (flags & DVP_FLAG_NO_POSTPROC) ++ if (flags & DVD_CODEC_CTRL_NO_POSTPROC) + SetPostProcFeatures(false); + else + SetPostProcFeatures(true); +@@ -2293,7 +2293,7 @@ void CMixer::InitCycle() + bool interlaced = m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_INTERLACED; + m_SeenInterlaceFlag |= interlaced; + +- if (!(flags & DVP_FLAG_NO_POSTPROC) && ++ if (!(flags & DVD_CODEC_CTRL_NO_POSTPROC) && + (mode == VS_DEINTERLACEMODE_FORCE || + (mode == VS_DEINTERLACEMODE_AUTO && interlaced))) + { +@@ -2315,7 +2315,7 @@ void CMixer::InitCycle() + m_config.stats->SetCanSkipDeint(true); + } + +- if (m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_DROPDEINT) ++ if (m_mixerInput[1].DVDPic.iFlags & DVD_CODEC_CTRL_SKIPDEINT) + { + m_mixersteps = 1; + } +diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +index f9a45e8..755f0a1 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp ++++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +@@ -524,9 +524,9 @@ void CDVDPlayerVideo::Process() + } + int codecControl = 0; + if (iDropDirective & EOS_BUFFER_LEVEL) +- codecControl |= DVP_FLAG_DRAIN; ++ codecControl |= DVD_CODEC_CTRL_DRAIN; + if (m_speed > DVD_PLAYSPEED_NORMAL) +- codecControl |= DVP_FLAG_NO_POSTPROC; ++ codecControl |= DVD_CODEC_CTRL_NO_POSTPROC; + m_pVideoCodec->SetCodecControl(codecControl); + if (iDropDirective & EOS_DROPPED) + { +-- +2.0.4 + + +From 30fd6e3b6c87c4126a05c1e674c38db7c6c8ec61 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sat, 23 Aug 2014 12:21:43 +0200 +Subject: [PATCH 28/31] VAAPI: implement codec control flags + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +index 913063c..d1e9654 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +@@ -706,7 +706,7 @@ int CDecoder::Decode(AVCodecContext* avctx, AVFrame* pFrame) + m_bufferStats.IncDecoded(); + m_vaapiOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic)); + +-// m_codecControl = pic.DVDPic.iFlags & (DVP_FLAG_DRAIN | DVP_FLAG_NO_POSTPROC); ++ m_codecControl = pic.DVDPic.iFlags & (DVD_CODEC_CTRL_DRAIN | DVD_CODEC_CTRL_NO_POSTPROC); + } + + int retval = 0; +@@ -1651,8 +1651,8 @@ bool COutput::HasWork() + void COutput::InitCycle() + { + uint64_t latency; +- int speed; +- m_config.stats->GetParams(latency, speed); ++ int flags; ++ m_config.stats->GetParams(latency, flags); + + m_config.stats->SetCanSkipDeint(false); + +@@ -1660,7 +1660,8 @@ void COutput::InitCycle() + EINTERLACEMETHOD method = CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod; + bool interlaced = m_currentPicture.DVDPic.iFlags & DVP_FLAG_INTERLACED; + +- if ((mode == VS_DEINTERLACEMODE_FORCE || ++ if (!(flags & DVD_CODEC_CTRL_NO_POSTPROC) && ++ (mode == VS_DEINTERLACEMODE_FORCE || + (mode == VS_DEINTERLACEMODE_AUTO && interlaced))) + { + if((method == VS_INTERLACEMETHOD_AUTO && interlaced) +@@ -2481,6 +2482,7 @@ bool CVppPostproc::AddPicture(CVaapiDecodedPicture &pic) + m_decodedPics.push_front(pic); + m_frameCount++; + m_step = 0; ++ m_config.stats->SetCanSkipDeint(true); + } + + bool CVppPostproc::Filter(CVaapiProcessedPicture &outPic) +@@ -2524,6 +2526,13 @@ bool CVppPostproc::Filter(CVaapiProcessedPicture &outPic) + } + outPic.DVDPic = it->DVDPic; + ++ // skip deinterlacing cycle if requested ++ if (m_step == 1 && (outPic.DVDPic.iFlags & DVD_CODEC_CTRL_SKIPDEINT)) ++ { ++ Advance(); ++ return false; ++ } ++ + // vpp deinterlacing + VAProcFilterParameterBufferDeinterlacing *filterParams; + VABufferID pipelineBuf; +-- +2.0.4 + + +From fea09af18ef403b4656ec1c3b1e0ee088a0d83db Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Fri, 22 Aug 2014 17:12:24 +0200 +Subject: [PATCH 29/31] pvr: fix deadlock caused by pollling channel group name + +--- + xbmc/GUIInfoManager.cpp | 2 +- + xbmc/pvr/PVRGUIInfo.cpp | 7 +++++++ + xbmc/pvr/PVRGUIInfo.h | 6 ++++++ + xbmc/pvr/PVRManager.cpp | 5 +++++ + xbmc/pvr/PVRManager.h | 6 ++++++ + 5 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/xbmc/GUIInfoManager.cpp b/xbmc/GUIInfoManager.cpp +index 617faa6..c262c1b 100644 +--- a/xbmc/GUIInfoManager.cpp ++++ b/xbmc/GUIInfoManager.cpp +@@ -3829,7 +3829,7 @@ CStdString CGUIInfoManager::GetVideoLabel(int item) + case VIDEOPLAYER_CHANNEL_GROUP: + { + if (tag && !tag->IsRadio()) +- return g_PVRManager.GetPlayingGroup(false)->GroupName(); ++ return g_PVRManager.GetPlayingTVGroupName(); + } + } + } +diff --git a/xbmc/pvr/PVRGUIInfo.cpp b/xbmc/pvr/PVRGUIInfo.cpp +index 1487282..4c6cfdb 100644 +--- a/xbmc/pvr/PVRGUIInfo.cpp ++++ b/xbmc/pvr/PVRGUIInfo.cpp +@@ -258,6 +258,7 @@ void CPVRGUIInfo::UpdateMisc(void) + bool bIsPlayingEncryptedStream = bStarted && g_PVRClients->IsEncrypted(); + bool bHasTVChannels = bStarted && g_PVRChannelGroups->GetGroupAllTV()->HasChannels(); + bool bHasRadioChannels = bStarted && g_PVRChannelGroups->GetGroupAllRadio()->HasChannels(); ++ std::string strPlayingTVGroup = (bStarted && bIsPlayingTV) ? g_PVRManager.GetPlayingGroup(false)->GroupName() : ""; + + /* safe to fetch these unlocked, since they're updated from the same thread as this one */ + bool bHasNonRecordingTimers = bStarted && m_iTimerAmount - m_iRecordingTimerAmount > 0; +@@ -272,6 +273,7 @@ void CPVRGUIInfo::UpdateMisc(void) + m_bIsPlayingEncryptedStream = bIsPlayingEncryptedStream; + m_bHasTVChannels = bHasTVChannels; + m_bHasRadioChannels = bHasRadioChannels; ++ m_strPlayingTVGroup = strPlayingTVGroup; + } + + bool CPVRGUIInfo::TranslateCharInfo(DWORD dwInfo, std::string &strValue) const +@@ -898,3 +900,8 @@ void CPVRGUIInfo::UpdatePlayingTag(void) + m_iDuration = recording.GetDuration() * 1000; + } + } ++ ++std::string CPVRGUIInfo::GetPlayingTVGroup() ++{ ++ return m_strPlayingTVGroup; ++} +diff --git a/xbmc/pvr/PVRGUIInfo.h b/xbmc/pvr/PVRGUIInfo.h +index 0d1500e..c8f8f43 100644 +--- a/xbmc/pvr/PVRGUIInfo.h ++++ b/xbmc/pvr/PVRGUIInfo.h +@@ -77,6 +77,11 @@ namespace PVR + + bool GetPlayingTag(EPG::CEpgInfoTag &tag) const; + ++ /*! ++ * @brief Get playing TV group. ++ */ ++ std::string GetPlayingTVGroup(); ++ + private: + void ResetProperties(void); + void ClearQualityInfo(PVR_SIGNAL_STATUS &qualityInfo); +@@ -162,6 +167,7 @@ namespace PVR + bool m_bIsPlayingEncryptedStream; + bool m_bHasTVChannels; + bool m_bHasRadioChannels; ++ std::string m_strPlayingTVGroup; + //@} + + PVR_SIGNAL_STATUS m_qualityInfo; /*!< stream quality information */ +diff --git a/xbmc/pvr/PVRManager.cpp b/xbmc/pvr/PVRManager.cpp +index dc5a85e..ee7770f 100644 +--- a/xbmc/pvr/PVRManager.cpp ++++ b/xbmc/pvr/PVRManager.cpp +@@ -1614,3 +1614,8 @@ bool CPVRManager::CreateChannelEpgs(void) + m_bEpgsCreated = m_channelGroups->CreateChannelEpgs(); + return m_bEpgsCreated; + } ++ ++std::string CPVRManager::GetPlayingTVGroupName() ++{ ++ return IsStarted() && m_guiInfo ? m_guiInfo->GetPlayingTVGroup() : ""; ++} +diff --git a/xbmc/pvr/PVRManager.h b/xbmc/pvr/PVRManager.h +index 67ff282..652e5e5 100644 +--- a/xbmc/pvr/PVRManager.h ++++ b/xbmc/pvr/PVRManager.h +@@ -548,6 +548,12 @@ namespace PVR + */ + bool CreateChannelEpgs(void); + ++ /*! ++ * @brief get the name of the channel group of the current playing channel ++ * @return name of channel if tv channel is playing ++ */ ++ std::string GetPlayingTVGroupName(); ++ + protected: + /*! + * @brief PVR update and control thread. +-- +2.0.4 + + +From 36718552e55e53199ec1f916a7e3e36d515f2a02 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sun, 24 Aug 2014 14:03:04 +0200 +Subject: [PATCH 30/31] X11: fix window placement on multi-monitor setups + +--- + xbmc/windowing/X11/WinSystemX11.cpp | 17 ++++++----------- + 1 file changed, 6 insertions(+), 11 deletions(-) + +diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp +index 60761ec..281e0d8 100644 +--- a/xbmc/windowing/X11/WinSystemX11.cpp ++++ b/xbmc/windowing/X11/WinSystemX11.cpp +@@ -776,8 +776,6 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std: + bool mouseActive = false; + float mouseX = 0; + float mouseY = 0; +- int x0 = 0; +- int y0 = 0; + + if (m_mainWindow && ((m_bFullScreen != fullscreen) || m_currentOutput.compare(output) != 0 || m_windowDirty)) + { +@@ -825,6 +823,8 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std: + Colormap cmap; + XSetWindowAttributes swa; + XVisualInfo *vi; ++ int x0 = 0; ++ int y0 = 0; + + XOutput *out = g_xrandr.GetOutput(output); + if (!out) +@@ -942,19 +942,14 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const std: + Atom wmDeleteMessage = XInternAtom(m_dpy, "WM_DELETE_WINDOW", False); + XSetWMProtocols(m_dpy, m_mainWindow, &wmDeleteMessage, 1); + } +- XMapRaised(m_dpy, m_glWindow); +- XMapRaised(m_dpy, m_mainWindow); + +- if (fullscreen) +- XMoveWindow(m_dpy, m_mainWindow, x0, y0); ++ // placement of window may follow mouse ++ XWarpPointer(m_dpy, None, m_mainWindow, 0, 0, 0, 0, mouseX*width, mouseY*height); + ++ XMapRaised(m_dpy, m_glWindow); ++ XMapRaised(m_dpy, m_mainWindow); + XSync(m_dpy,TRUE); + +- if (changeWindow && mouseActive) +- { +- XWarpPointer(m_dpy, None, m_mainWindow, 0, 0, 0, 0, mouseX*width, mouseY*height); +- } +- + CDirtyRegionList dr; + RefreshGlxContext(m_currentOutput.compare(output) != 0); + XSync(m_dpy, FALSE); +-- +2.0.4 + + +From b9aebeb781cc718099e8daf87cb4ea365d6a97e7 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Sun, 24 Aug 2014 14:40:00 +0200 +Subject: [PATCH 31/31] VAAPI: fix buffer handing + +--- + xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 3 +++ + xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 5 ++++- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +index 1dcc33e..767e15a 100644 +--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp ++++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +@@ -1125,7 +1125,10 @@ void CLinuxRendererGL::UnInit() + + // YV12 textures + for (int i = 0; i < NUM_BUFFERS; ++i) ++ { + (this->*m_textureDelete)(i); ++ DeleteVAAPITexture(i); ++ } + + // cleanup framebuffer object if it was in use + m_fbo.fbo.Cleanup(); +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +index d1e9654..2b60f0e 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +@@ -659,7 +659,8 @@ int CDecoder::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags) + } + pic->buf[0] = buffer; + +- pic->reordered_opaque= avctx->reordered_opaque; ++ pic->reordered_opaque = avctx->reordered_opaque; ++ va->Acquire(); + return 0; + } + +@@ -672,6 +673,8 @@ void CDecoder::FFReleaseBuffer(uint8_t *data) + + surf = (VASurfaceID)(uintptr_t)data; + m_videoSurfaces.ClearReference(surf); ++ ++ IHardwareDecoder::Release(); + } + + int CDecoder::Decode(AVCodecContext* avctx, AVFrame* pFrame) +-- +2.0.4 +