From 898b47406650b39d01e3da3f2cfc7b2ecd2447bf Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 2 May 2014 14:54:27 +0200 Subject: [PATCH] xbmc-master: update FM patch Signed-off-by: Stephan Raue --- ...h => xbmc-master-995.01-fernetmenta.patch} | 344 ++++++++++-------- 1 file changed, 196 insertions(+), 148 deletions(-) rename packages/mediacenter/xbmc-master/patches/{xbmc-master-995.01-fernetmenta-fixes-40dad6e.patch => xbmc-master-995.01-fernetmenta.patch} (93%) diff --git a/packages/mediacenter/xbmc-master/patches/xbmc-master-995.01-fernetmenta-fixes-40dad6e.patch b/packages/mediacenter/xbmc-master/patches/xbmc-master-995.01-fernetmenta.patch similarity index 93% rename from packages/mediacenter/xbmc-master/patches/xbmc-master-995.01-fernetmenta-fixes-40dad6e.patch rename to packages/mediacenter/xbmc-master/patches/xbmc-master-995.01-fernetmenta.patch index 5ec3bbe576..3fe8f2d1ca 100644 --- a/packages/mediacenter/xbmc-master/patches/xbmc-master-995.01-fernetmenta-fixes-40dad6e.patch +++ b/packages/mediacenter/xbmc-master/patches/xbmc-master-995.01-fernetmenta.patch @@ -1,7 +1,7 @@ -From 8b2e394a1d9b4b0a3942ae1d2f76aaa20916119e Mon Sep 17 00:00:00 2001 +From 9ab9c627f63078aa198c86dc29411f36ce7f8ff1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:34:39 +0200 -Subject: [PATCH 01/31] videoplayer: adapt lateness detection and dropping to +Subject: [PATCH 01/30] videoplayer: adapt lateness detection and dropping to buffering --- @@ -584,10 +584,10 @@ index f8ad541..186e271 100644 1.9.1 -From e39d9892089539a7b18bb3fe1191865ea45190ba Mon Sep 17 00:00:00 2001 +From 8a6227c0661401600c276a73e3ad5dc4c08fea89 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Sep 2012 16:05:21 +0200 -Subject: [PATCH 02/31] video player: present correct pts to user for a/v sync +Subject: [PATCH 02/30] video player: present correct pts to user for a/v sync (after buffering in renderer) --- @@ -655,10 +655,10 @@ index 186e271..59c7f09 100644 1.9.1 -From 0570c7ff2c7179228fc9a27f7b3ccfac94b7bdfb Mon Sep 17 00:00:00 2001 +From 056680ce851e00ffe2f9ceffe6775ad7d59872b5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 16 Feb 2013 18:25:53 +0100 -Subject: [PATCH 03/31] videoplayer: some rework and documentation +Subject: [PATCH 03/30] videoplayer: some rework and documentation --- .../dvdplayer/DVDCodecs/Video/DVDVideoCodec.h | 28 ++++++++++++++++++++-- @@ -768,10 +768,10 @@ index 1d29b6f..ee07f30 100644 1.9.1 -From 381675ecca0d1fb63fd8aa9f6ec739e5c18ee4f8 Mon Sep 17 00:00:00 2001 +From ad8a1def3f5d317b00a7aed6d0857d5e525257dd Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 1 Jun 2013 11:21:19 +0200 -Subject: [PATCH 04/31] renderer: bump buffers to 5 +Subject: [PATCH 04/30] renderer: bump buffers to 5 --- xbmc/cores/VideoRenderers/BaseRenderer.h | 2 +- @@ -794,10 +794,10 @@ index dc2712a..9edfbd4 100644 1.9.1 -From 35ba3c519542ad7b02b592bb2c2c9ff8a05719ce Mon Sep 17 00:00:00 2001 +From c785c3aa9634deee616f6048d9a31406178bc64f Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:41:31 +0200 -Subject: [PATCH 05/31] videoplayer: update frametime, it might change due to +Subject: [PATCH 05/30] videoplayer: update frametime, it might change due to fps detection --- @@ -821,10 +821,10 @@ index ee07f30..b3175cd 100644 1.9.1 -From f12924d8f83c0dffb4275a7a56846f82a57aed2b Mon Sep 17 00:00:00 2001 +From 05e2699c87bf92ece23ffccefaa92a3ed0d23c90 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:43:06 +0200 -Subject: [PATCH 06/31] videoplayer: give streams with invalid fps a chance for +Subject: [PATCH 06/30] videoplayer: give streams with invalid fps a chance for fps detection --- @@ -848,10 +848,10 @@ index b3175cd..9c36bdb 100644 1.9.1 -From 56524c7db6419b70dff776dab252bcf0d6c9a457 Mon Sep 17 00:00:00 2001 +From a91f302ef87ae3cf159b0115637bc9a714281994 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:49:05 +0200 -Subject: [PATCH 07/31] dvdplayer: allow rewinding at end of stream, do a seek +Subject: [PATCH 07/30] dvdplayer: allow rewinding at end of stream, do a seek after rewind --- @@ -888,10 +888,10 @@ index 3f2e0df..097af37 100644 1.9.1 -From 52736a2ab8fc4264c02a1712449db2a91df95f1e Mon Sep 17 00:00:00 2001 +From 827fb89744264491d5ad5e00ca02390c34433fdc Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 16:06:39 +0200 -Subject: [PATCH 08/31] dvdplayer: observe pts counter overflow +Subject: [PATCH 08/30] dvdplayer: observe pts counter overflow --- .../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 197 ++++++++++++++++++++- @@ -899,7 +899,7 @@ Subject: [PATCH 08/31] dvdplayer: observe pts counter overflow 2 files changed, 200 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 872c81f..eda7dc9 100644 +index 411ff02..33a3ea1 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -18,7 +18,6 @@ @@ -918,7 +918,7 @@ index 872c81f..eda7dc9 100644 #include "stdint.h" #endif #include "DVDDemuxFFmpeg.h" -@@ -417,6 +417,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) +@@ -427,6 +427,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) CreateStreams(); @@ -928,7 +928,7 @@ index 872c81f..eda7dc9 100644 return true; } -@@ -558,6 +561,12 @@ double CDVDDemuxFFmpeg::ConvertTimestamp(int64_t pts, int den, int num) +@@ -568,6 +571,12 @@ double CDVDDemuxFFmpeg::ConvertTimestamp(int64_t pts, int den, int num) if (pts == (int64_t)AV_NOPTS_VALUE) return DVD_NOPTS_VALUE; @@ -941,7 +941,7 @@ index 872c81f..eda7dc9 100644 // do calculations in floats as they can easily overflow otherwise // we don't care for having a completly exact timestamp anyway double timestamp = (double)pts * num / den; -@@ -697,6 +706,24 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -707,6 +716,24 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() m_pkt.pkt.pts = AV_NOPTS_VALUE; } @@ -966,7 +966,7 @@ index 872c81f..eda7dc9 100644 // copy contents into our own packet pPacket->iSize = m_pkt.pkt.size; -@@ -830,7 +857,16 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) +@@ -840,7 +867,16 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) ret = av_seek_frame(m_pFormatContext, -1, seek_pts, backwords ? AVSEEK_FLAG_BACKWARD : 0); if(ret >= 0) @@ -983,7 +983,7 @@ index 872c81f..eda7dc9 100644 } if(m_iCurrentPts == DVD_NOPTS_VALUE) -@@ -849,6 +885,165 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) +@@ -859,6 +895,165 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) return (ret >= 0); } @@ -1174,10 +1174,10 @@ index 44e101c..3b0f615 100644 1.9.1 -From b73d59d45e8c2f0b882cde7e549a82aee59f82ac Mon Sep 17 00:00:00 2001 +From 8d1d8ad97251676ab67f32f6141ab4b63399912d Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 13:02:10 +0200 -Subject: [PATCH 09/31] dvdplayer: avoid short screen flicker caused by +Subject: [PATCH 09/30] dvdplayer: avoid short screen flicker caused by unnecessary reconfigure of renderer --- @@ -1210,10 +1210,10 @@ index 9c36bdb..322a581 100644 1.9.1 -From 11c8f418d34212924278702cf6355ca6ed11496e Mon Sep 17 00:00:00 2001 +From 7f13866c50c6966e4353bd3f50f94e76bfffccc3 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 12:05:50 +0200 -Subject: [PATCH 10/31] vdpau: advanced settings for auto deinterlacing +Subject: [PATCH 10/30] vdpau: advanced settings for auto deinterlacing --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++---- @@ -1279,10 +1279,10 @@ index 3b417a6..7075f05 100644 1.9.1 -From 4da96e30c0b33a844c203ccc68ac52c027cad150 Mon Sep 17 00:00:00 2001 +From bc6f2e1d7ad1c10e936f64a09ca88c9b450dd672 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 2 Nov 2012 13:20:03 +0100 -Subject: [PATCH 11/31] player: fix rewind +Subject: [PATCH 11/30] player: fix rewind --- xbmc/cores/dvdplayer/DVDMessage.h | 5 ++++- @@ -1497,10 +1497,10 @@ index 59c7f09..65dea76 100644 1.9.1 -From d7de75d7c04355b6bbc834b2c4d12ce3fa3234b7 Mon Sep 17 00:00:00 2001 +From 3a57088506df57b4a5c63cc58145e4fc8750d752 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 24 Dec 2012 16:02:42 +0100 -Subject: [PATCH 12/31] pvr: increase changes counter of stream on stream +Subject: [PATCH 12/30] pvr: increase changes counter of stream on stream change, cosmetics after dd307930d39d92f145a01a16600cd00e01ec39be --- @@ -1534,10 +1534,10 @@ index 6c8e6db..95cc18f 100644 1.9.1 -From 4cc882624c5d58b3f9f3922b1887a6e07c708a40 Mon Sep 17 00:00:00 2001 +From 84205eccef6aee0a03cb480a49cd0c805906bef0 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 14 Dec 2012 14:19:15 +0100 -Subject: [PATCH 13/31] pvr: do not show selection dialog for a single menu +Subject: [PATCH 13/30] pvr: do not show selection dialog for a single menu hook --- @@ -1575,40 +1575,46 @@ index 14c9cde..57b18a5 100644 1.9.1 -From d606020220c81523be3e5170ab1b64ee647a7168 Mon Sep 17 00:00:00 2001 +From 1d301eec900759c716f7b92862530b12c4ecb9ed Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 16:04:48 +0100 -Subject: [PATCH 14/31] linux: use CLOCK_MONOTONIC_RAW as this is not subject +Subject: [PATCH 14/30] linux: use CLOCK_MONOTONIC_RAW as this is not subject to NTP --- - xbmc/threads/SystemClock.cpp | 2 +- - xbmc/utils/TimeUtils.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + xbmc/threads/SystemClock.cpp | 4 ++++ + xbmc/utils/TimeUtils.cpp | 4 ++++ + 2 files changed, 8 insertions(+) diff --git a/xbmc/threads/SystemClock.cpp b/xbmc/threads/SystemClock.cpp -index 657a154..35e3abf 100644 +index 657a154..e7580ba 100644 --- a/xbmc/threads/SystemClock.cpp +++ b/xbmc/threads/SystemClock.cpp -@@ -43,7 +43,7 @@ namespace XbmcThreads +@@ -43,7 +43,11 @@ namespace XbmcThreads now_time = (uint64_t)timeGetTime(); #else struct timespec ts = {}; -- clock_gettime(CLOCK_MONOTONIC, &ts); ++#ifdef CLOCK_MONOTONIC_RAW + clock_gettime(CLOCK_MONOTONIC_RAW, &ts); ++#else + clock_gettime(CLOCK_MONOTONIC, &ts); ++#endif // CLOCK_MONOTONIC_RAW now_time = (ts.tv_sec * 1000) + (ts.tv_nsec / 1000000); #endif if (!start_time_set) diff --git a/xbmc/utils/TimeUtils.cpp b/xbmc/utils/TimeUtils.cpp -index c06b8c5..4390d2e 100644 +index c06b8c5..7eb953d 100644 --- a/xbmc/utils/TimeUtils.cpp +++ b/xbmc/utils/TimeUtils.cpp -@@ -43,7 +43,7 @@ int64_t CurrentHostCounter(void) +@@ -43,7 +43,11 @@ int64_t CurrentHostCounter(void) return( (int64_t)PerformanceCount.QuadPart ); #else struct timespec now; -- clock_gettime(CLOCK_MONOTONIC, &now); ++#ifdef CLOCK_MONOTONIC_RAW + clock_gettime(CLOCK_MONOTONIC_RAW, &now); ++#else + clock_gettime(CLOCK_MONOTONIC, &now); ++#endif // CLOCK_MONOTONIC_RAW return( ((int64_t)now.tv_sec * 1000000000L) + now.tv_nsec ); #endif } @@ -1616,10 +1622,10 @@ index c06b8c5..4390d2e 100644 1.9.1 -From 5959ff6e728f22c6cc6086cb5e39a0c58fefa07b Mon Sep 17 00:00:00 2001 +From d98d7e1ebdb7edfb9bd646019def36e88f7fef40 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 15:18:53 +0100 -Subject: [PATCH 15/31] OMXPlayer: some caching fixes for pvr +Subject: [PATCH 15/30] OMXPlayer: some caching fixes for pvr --- xbmc/cores/omxplayer/OMXPlayer.cpp | 3 ++- @@ -1643,17 +1649,17 @@ index 502df4a..c8579a2 100644 1.9.1 -From 79db06b63ec9bbb30ce0bb8027808d2c0967fa4f Mon Sep 17 00:00:00 2001 +From 0aea7d3018163a00b42df5824b4223ea33c569f1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 20:50:59 +0100 -Subject: [PATCH 16/31] fix incorrect display of fps when dr kicks in +Subject: [PATCH 16/30] 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 79bfa63..d863c6b 100644 +index 42607dc..c133663 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2331,10 +2331,11 @@ void CApplication::Render() @@ -1673,10 +1679,10 @@ index 79bfa63..d863c6b 100644 1.9.1 -From f5d25c94791473ff296257e1bb7b35be267bc7d2 Mon Sep 17 00:00:00 2001 +From e9308bb44a229062ce1df03d326f4a30b0793db5 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 11 Jun 2013 16:20:29 +0200 -Subject: [PATCH 17/31] renderer: allow some lateness within vblank interval +Subject: [PATCH 17/30] renderer: allow some lateness within vblank interval --- xbmc/cores/VideoRenderers/RenderManager.cpp | 12 ++++++++++-- @@ -1736,17 +1742,17 @@ index 949c652b..d84ff6c 100644 1.9.1 -From 04dfa8be7362e22e339a8f23df47230b841388bc Mon Sep 17 00:00:00 2001 +From 86cc71987837ad77025e5b49f04063929a9cbe4e Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 25 Jul 2013 17:18:13 +0200 -Subject: [PATCH 18/31] ActiveAE: slightly reduce buffer size +Subject: [PATCH 18/30] 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 27c237b..a01f77c 100644 +index 4bd2c32..4350ac8 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -30,8 +30,8 @@ using namespace ActiveAE; @@ -1764,10 +1770,10 @@ index 27c237b..a01f77c 100644 1.9.1 -From f7370bcc07fb1cd8ab03baa9fff133569c5b8668 Mon Sep 17 00:00:00 2001 +From 8fd5dcb98ea869a82eba92ada598e0c7037aaf44 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 4 Aug 2013 10:11:16 +0200 -Subject: [PATCH 19/31] Revert "vdpau: comment some features that will be added +Subject: [PATCH 19/30] Revert "vdpau: comment some features that will be added later" This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf. @@ -1823,10 +1829,10 @@ index 9c962ae..485c5d3 100644 1.9.1 -From 90335f7140d075a7c182767bd205c78eec93063a Mon Sep 17 00:00:00 2001 +From f507d9f789433eb8e82788d25930f14240de25d0 Mon Sep 17 00:00:00 2001 From: Marcel Groothuis Date: Thu, 5 Dec 2013 22:02:50 +0100 -Subject: [PATCH 21/31] ffmpeg demuxer: faster channel change for PVR addons +Subject: [PATCH 20/30] ffmpeg demuxer: faster channel change for PVR addons without internal demuxing (such as MediaPortal, ArgusTV, MythTV, NextPVR) Credits: FernetMenta, Davilla, Popcornmix, Whaupt @@ -1837,7 +1843,7 @@ Subject: [PATCH 21/31] ffmpeg demuxer: faster channel change for PVR addons 3 files changed, 139 insertions(+), 22 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index eda7dc9..6266fba 100644 +index 33a3ea1..4616a6d 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -52,6 +52,8 @@ @@ -1879,7 +1885,7 @@ index eda7dc9..6266fba 100644 if( m_pInput->GetContent().length() > 0 ) { std::string content = m_pInput->GetContent(); -@@ -378,13 +380,12 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) +@@ -388,13 +390,12 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) m_bMatroska = strncmp(m_pFormatContext->iformat->name, "matroska", 8) == 0; // for "matroska.webm" m_bAVI = strcmp(m_pFormatContext->iformat->name, "avi") == 0; @@ -1895,7 +1901,7 @@ index eda7dc9..6266fba 100644 CLog::Log(LOGDEBUG, "%s - avformat_find_stream_info starting", __FUNCTION__); int iErr = avformat_find_stream_info(m_pFormatContext, NULL); if (iErr < 0) -@@ -404,6 +405,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) +@@ -414,6 +415,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) } CLog::Log(LOGDEBUG, "%s - av_find_stream_info finished", __FUNCTION__); } @@ -1905,7 +1911,7 @@ index eda7dc9..6266fba 100644 // reset any timeout m_timeout.SetInfinite(); -@@ -457,7 +461,7 @@ void CDVDDemuxFFmpeg::Reset() +@@ -467,7 +471,7 @@ void CDVDDemuxFFmpeg::Reset() { CDVDInputStream* pInputStream = m_pInput; Dispose(); @@ -1914,7 +1920,7 @@ index eda7dc9..6266fba 100644 } void CDVDDemuxFFmpeg::Flush() -@@ -652,25 +656,32 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -662,25 +666,32 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() } else { @@ -1957,7 +1963,7 @@ index eda7dc9..6266fba 100644 if (pPacket) { -@@ -1611,3 +1622,101 @@ bool CDVDDemuxFFmpeg::IsProgramChange() +@@ -1621,3 +1632,101 @@ bool CDVDDemuxFFmpeg::IsProgramChange() } return false; } @@ -2140,10 +2146,10 @@ index ca689d0..f383563 100644 1.9.1 -From 8aaaf75e93f67c6a1edca07ccc6116204676db7e Mon Sep 17 00:00:00 2001 +From ff1c95948a2feb97b714f975c1ec46bb2a73836c Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 14 Nov 2013 20:35:04 +0100 -Subject: [PATCH 22/31] ffmpeg demuxer: make sure we start mpegts video with an +Subject: [PATCH 21/30] ffmpeg demuxer: make sure we start mpegts video with an i-frame --- @@ -2152,10 +2158,10 @@ Subject: [PATCH 22/31] ffmpeg demuxer: make sure we start mpegts video with an 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 6266fba..c6472b8 100644 +index 4616a6d..b2401fc 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -376,6 +376,13 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) +@@ -386,6 +386,13 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0) m_pFormatContext->max_analyze_duration = 500000; @@ -2169,7 +2175,7 @@ index 6266fba..c6472b8 100644 // we need to know if this is matroska or avi later m_bMatroska = strncmp(m_pFormatContext->iformat->name, "matroska", 8) == 0; // for "matroska.webm" m_bAVI = strcmp(m_pFormatContext->iformat->name, "avi") == 0; -@@ -404,6 +411,12 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) +@@ -414,6 +421,12 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) } } CLog::Log(LOGDEBUG, "%s - av_find_stream_info finished", __FUNCTION__); @@ -2182,7 +2188,7 @@ index 6266fba..c6472b8 100644 } else m_program = 0; -@@ -1658,7 +1671,7 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPacket *pkt) +@@ -1668,7 +1681,7 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPacket *pkt) } // for video we need a decoder to get desired information into codec context @@ -2191,7 +2197,7 @@ index 6266fba..c6472b8 100644 (!st->codec->width || st->codec->pix_fmt == PIX_FMT_NONE)) { // open a decoder, it will be cleared down by ffmpeg on closing the stream -@@ -1720,3 +1733,19 @@ bool CDVDDemuxFFmpeg::IsVideoReady() +@@ -1730,3 +1743,19 @@ bool CDVDDemuxFFmpeg::IsVideoReady() } return true; } @@ -2227,10 +2233,10 @@ index 083182e..26ee264 100644 1.9.1 -From b1a69aca87ab81242602fbbff061b9be2a32fefe Mon Sep 17 00:00:00 2001 +From e4b926317f94da822655617f90895ff6ec76c3e1 Mon Sep 17 00:00:00 2001 From: Wolfgang Haupt Date: Thu, 5 Dec 2013 22:11:57 +0100 -Subject: [PATCH 23/31] DVDFactoryDemuxer: skip streaminfo for udp tcp and +Subject: [PATCH 22/30] DVDFactoryDemuxer: skip streaminfo for udp tcp and pvr-channels --- @@ -2354,20 +2360,20 @@ index b94e94c..b45630f 100644 1.9.1 -From e73bfd14cbcfe83c21110b19e08d6f52f41f81e7 Mon Sep 17 00:00:00 2001 +From ca39086aa377763796ee634d86969a0af6516bc1 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 28 Jan 2014 08:43:29 +0100 -Subject: [PATCH 24/31] squash fast switch +Subject: [PATCH 23/30] squash fast switch --- .../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index c6472b8..63f1372 100644 +index b2401fc..6eedf1f7 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1710,15 +1710,19 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPacket *pkt) +@@ -1720,15 +1720,19 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPacket *pkt) bool CDVDDemuxFFmpeg::IsVideoReady() { AVStream *st; @@ -2390,7 +2396,7 @@ index c6472b8..63f1372 100644 } } else -@@ -1726,12 +1730,15 @@ bool CDVDDemuxFFmpeg::IsVideoReady() +@@ -1736,12 +1740,15 @@ bool CDVDDemuxFFmpeg::IsVideoReady() for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) { st = m_pFormatContext->streams[i]; @@ -2410,7 +2416,7 @@ index c6472b8..63f1372 100644 } void CDVDDemuxFFmpeg::ResetVideoStreams() -@@ -1743,7 +1750,7 @@ void CDVDDemuxFFmpeg::ResetVideoStreams() +@@ -1753,7 +1760,7 @@ void CDVDDemuxFFmpeg::ResetVideoStreams() if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { if (st->codec->extradata) @@ -2423,10 +2429,10 @@ index c6472b8..63f1372 100644 1.9.1 -From 62afa1ee0982f4c68ce5a885220576f5751af81a Mon Sep 17 00:00:00 2001 +From 95f5612000b79f805b4e8342ed1f3250eb17b76a Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 13 Apr 2014 10:52:26 +0200 -Subject: [PATCH 25/31] squash fast channel +Subject: [PATCH 24/30] squash fast channel --- xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 13 ++++++++++--- @@ -2434,7 +2440,7 @@ Subject: [PATCH 25/31] squash fast channel 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 63f1372..0e4be8e 100644 +index 6eedf1f7..90618e8 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -156,6 +156,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() @@ -2445,7 +2451,7 @@ index 63f1372..0e4be8e 100644 } CDVDDemuxFFmpeg::~CDVDDemuxFFmpeg() -@@ -376,11 +377,10 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) +@@ -386,11 +387,10 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0) m_pFormatContext->max_analyze_duration = 500000; @@ -2458,7 +2464,7 @@ index 63f1372..0e4be8e 100644 } // we need to know if this is matroska or avi later -@@ -412,14 +412,17 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) +@@ -422,14 +422,17 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo) } CLog::Log(LOGDEBUG, "%s - av_find_stream_info finished", __FUNCTION__); @@ -2477,7 +2483,7 @@ index 63f1372..0e4be8e 100644 // reset any timeout m_timeout.SetInfinite(); -@@ -1711,6 +1714,10 @@ bool CDVDDemuxFFmpeg::IsVideoReady() +@@ -1721,6 +1724,10 @@ bool CDVDDemuxFFmpeg::IsVideoReady() { AVStream *st; bool hasVideo = false; @@ -2503,10 +2509,10 @@ index 26ee264..322a3b8 100644 1.9.1 -From 6a8561267a785e169a01ecda71ac9676744f2bbd Mon Sep 17 00:00:00 2001 +From cf700a9420c35c07950ebcbe494d07cfb71471aa Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 22 Dec 2013 14:52:29 +0100 -Subject: [PATCH 26/31] linux: add shared lib for sse4 operations +Subject: [PATCH 25/30] linux: add shared lib for sse4 operations --- Makefile.in | 8 ++- @@ -2521,7 +2527,7 @@ Subject: [PATCH 26/31] linux: add shared lib for sse4 operations create mode 100644 xbmc/linux/sse4/Makefile.in diff --git a/Makefile.in b/Makefile.in -index 002bb23..78211b3 100644 +index a91a38b..2d2c187 100644 --- a/Makefile.in +++ b/Makefile.in @@ -311,6 +311,12 @@ CHECK_LIBADD=@WAYLAND_TEST_LIBS@ @@ -2547,7 +2553,7 @@ index 002bb23..78211b3 100644 externals: codecs libs visualizations screensavers libaddon pvraddons diff --git a/configure.in b/configure.in -index 3fcb178..9140b25 100644 +index af674d8..0b532d5 100644 --- a/configure.in +++ b/configure.in @@ -827,6 +827,19 @@ elif test "$use_arch" = "arm"; then @@ -2570,7 +2576,7 @@ index 3fcb178..9140b25 100644 # Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_CHOWN -@@ -2598,6 +2611,10 @@ if test "$use_codec_libstagefright" = "yes"; then +@@ -2596,6 +2609,10 @@ if test "$use_codec_libstagefright" = "yes"; then OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile" fi @@ -2581,7 +2587,7 @@ index 3fcb178..9140b25 100644 OUTPUT_FILES="$OUTPUT_FILES \ xbmc/interfaces/python/Makefile \ xbmc/interfaces/python/test/Makefile" -@@ -2676,6 +2693,7 @@ AC_SUBST(USE_ANDROID) +@@ -2673,6 +2690,7 @@ AC_SUBST(USE_ANDROID) AC_SUBST(GTEST_CONFIGURED) AC_SUBST(USE_DOXYGEN) AC_SUBST(USE_PVR_ADDONS) @@ -2590,10 +2596,10 @@ index 3fcb178..9140b25 100644 # 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 8e81555..dd6e0ed 100644 +index 8c0b453..668b4a4 100644 --- a/xbmc/DllPaths_generated.h.in +++ b/xbmc/DllPaths_generated.h.in -@@ -94,4 +94,7 @@ +@@ -93,4 +93,7 @@ /* xkbcommon */ #define DLL_PATH_XKBCOMMON "@XKBCOMMON_LIBRARY_SONAME@" @@ -2801,10 +2807,10 @@ index 0000000..45aa826 1.9.1 -From 2e6de7059eabe3c19d50d4dd171f4fa0842acffe Mon Sep 17 00:00:00 2001 +From 7bac41adfaac4f20008ea4ca7d45927b87cc3d67 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 19 Dec 2013 15:36:11 +0100 -Subject: [PATCH 27/31] vaapi: option to enable sw filters +Subject: [PATCH 26/30] vaapi: option to enable sw filters --- language/English/strings.po | 17 ++- @@ -3450,63 +3456,20 @@ index 9c5469b..b30e450 100644 1.9.1 -From 6d4f961cdac4c91aa8288dc35a618f735eb8868a Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Fri, 24 Jan 2014 18:29:33 +0100 -Subject: [PATCH 28/31] dvdplayer: flush ffmpeg after hw decoder returned an - error - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index f308c09..830ce60 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -458,7 +458,12 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p - result = m_pHardware->Decode(m_pCodecContext, NULL); - - if(result) -+ { -+ if (result & VC_ERROR) -+ avcodec_flush_buffers(m_pCodecContext); -+ - return result; -+ } - } - - if(m_pFilterGraph) -@@ -580,7 +585,11 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p - - int result; - if(m_pHardware && !m_pHardware->UseFilter()) -+ { - result = m_pHardware->Decode(m_pCodecContext, m_pFrame); -+ if (result & VC_ERROR) -+ avcodec_flush_buffers(m_pCodecContext); -+ } - else if(m_pFilterGraph) - result = FilterProcess(m_pFrame); - else --- -1.9.1 - - -From bce0b976b37a99b3acddc2b1368f984c5c3bf712 Mon Sep 17 00:00:00 2001 +From 5b5c312c9a49f54cf53b0e67e9de00abe612db8f Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 28 Jan 2014 10:05:26 +0100 -Subject: [PATCH 29/31] xbmc pr 3080 +Subject: [PATCH 27/30] xbmc pr 3080 --- .../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 830ce60..8715afb 100644 +index f308c09..4bc3b76 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -482,6 +482,14 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p +@@ -477,6 +477,14 @@ int CDVDVideoCodecFFmpeg::Decode(uint8_t* pData, int iSize, double dts, double p av_init_packet(&avpkt); avpkt.data = pData; avpkt.size = iSize; @@ -3521,7 +3484,7 @@ index 830ce60..8715afb 100644 /* We lie, but this flag is only used by pngdec.c. * Setting it correctly would allow CorePNG decoding. */ avpkt.flags = AV_PKT_FLAG_KEY; -@@ -702,8 +710,10 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) +@@ -693,8 +701,10 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) pDvdVideoPicture->dts = m_dts; m_dts = DVD_NOPTS_VALUE; @@ -3538,20 +3501,20 @@ index 830ce60..8715afb 100644 1.9.1 -From c0100ee3de95343854714e52635291d58150da74 Mon Sep 17 00:00:00 2001 +From 2783a6e973bacfb17e088e717ea33a11948ad64e Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 28 Jan 2014 17:24:58 +0100 -Subject: [PATCH 30/31] set preatpicture if pts is equal to last frame +Subject: [PATCH 28/30] set preatpicture if pts is equal to last frame --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 8715afb..dec00d5 100644 +index 4bc3b76..755b7aa 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -713,7 +713,15 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) +@@ -704,7 +704,15 @@ bool CDVDVideoCodecFFmpeg::GetPictureCommon(DVDVideoPicture* pDvdVideoPicture) int64_t bpts = av_frame_get_best_effort_timestamp(m_pFrame); if(bpts != AV_NOPTS_VALUE) @@ -3571,10 +3534,10 @@ index 8715afb..dec00d5 100644 1.9.1 -From 40dad6e6f9c1a96ac4e2f337e348b03f1e029bd3 Mon Sep 17 00:00:00 2001 +From 80c9b818dfc0bf082ef3df6225f4683a76d68f99 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 11 Feb 2014 18:15:06 +0100 -Subject: [PATCH 31/31] ActiveAE: add some debug logging +Subject: [PATCH 29/30] ActiveAE: add some debug logging --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp | 6 ++++++ @@ -3601,3 +3564,88 @@ index 0287e73..6904cb9 100644 -- 1.9.1 + +From e2648a3ffcdb9a8eb954923f2993ae3127197b64 Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Fri, 2 May 2014 07:37:26 +0200 +Subject: [PATCH 30/30] VDPAU: improve error handling + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 15 +++++++++++++-- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 1 + + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 485c5d3..671dcc3 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -933,6 +933,7 @@ bool CDecoder::ConfigVDPAU(AVCodecContext* avctx, int ref_frames) + + m_inMsgEvent.Reset(); + m_vdpauConfigured = true; ++ m_ErrorCount = 0; + return true; + } + +@@ -1051,7 +1052,9 @@ int CDecoder::Render(struct AVCodecContext *s, struct AVFrame *src, + vdp->m_bufferStats.Get(decoded, processed, rend); + vdp_st = vdp->m_vdpauConfig.context->GetProcs().vdp_decoder_render(vdp->m_vdpauConfig.vdpDecoder, + surf, info, buffers_used, buffers); +- vdp->CheckStatus(vdp_st, __LINE__); ++ if (vdp->CheckStatus(vdp_st, __LINE__)) ++ return -1; ++ + uint64_t diff = CurrentHostCounter() - startTime; + if (diff*1000/CurrentHostFrequency() > 30) + CLog::Log(LOGDEBUG, "CVDPAU::DrawSlice - VdpDecoderRender long decoding: %d ms, dec: %d, proc: %d, rend: %d", (int)((diff*1000)/CurrentHostFrequency()), decoded, processed, rend); +@@ -1238,6 +1241,8 @@ bool CDecoder::CheckStatus(VdpStatus vdp_st, int line) + { + CLog::Log(LOGERROR, " (VDPAU) Error: %s(%d) at %s:%d\n", m_vdpauConfig.context->GetProcs().vdp_get_error_string(vdp_st), vdp_st, __FILE__, line); + ++ m_ErrorCount++; ++ + if(m_DisplayState == VDPAU_OPEN) + { + if (vdp_st == VDP_STATUS_DISPLAY_PREEMPTED) +@@ -1245,12 +1250,13 @@ bool CDecoder::CheckStatus(VdpStatus vdp_st, int line) + m_DisplayEvent.Reset(); + m_DisplayState = VDPAU_LOST; + } +- else ++ else if (m_ErrorCount > 2) + m_DisplayState = VDPAU_ERROR; + } + + return true; + } ++ m_ErrorCount = 0; + return false; + } + +@@ -2925,6 +2931,11 @@ bool COutput::Init() + bool COutput::Uninit() + { + m_mixer.Dispose(); ++ glFlush(); ++ while(ProcessSyncPicture()) ++ { ++ Sleep(10); ++ } + GLUnmapSurfaces(); + ReleaseBufferPool(); + DestroyGlxContext(); +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +index 18bb05d..4d046c1 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -608,6 +608,7 @@ class CDecoder + } m_DisplayState; + CCriticalSection m_DecoderSection; + CEvent m_DisplayEvent; ++ int m_ErrorCount; + + ThreadIdentifier m_decoderThread; + bool m_vdpauConfigured; +-- +1.9.1 +