mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
xbmc-master: update FM patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
4a668d2f16
commit
898b474066
@ -1,7 +1,7 @@
|
||||
From 8b2e394a1d9b4b0a3942ae1d2f76aaa20916119e Mon Sep 17 00:00:00 2001
|
||||
From 9ab9c627f63078aa198c86dc29411f36ce7f8ff1 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <margro.xbmc@gmail.com>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <w.haupt@at-visions.com>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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 <fernetmenta@online.de>
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user