From be8e1e0d4ae56e474cbd540fe8fdc4764aac18f1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 29 Oct 2015 21:19:55 +0100 Subject: [PATCH] projects/WeTek_Play/patches/kodi: add some AML specific patches Signed-off-by: Stephan Raue --- ...ng-during-a-playback-of-a-video-with.patch | 26 ++++++++++++++ ...12-hide-meaningless-skips-from-users.patch | 23 ++++++++++++ .../1013-avoid-decoder-being-deadlocked.patch | 36 +++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch create mode 100644 projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch create mode 100644 projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch diff --git a/projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch b/projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch new file mode 100644 index 0000000000..21415b4ead --- /dev/null +++ b/projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch @@ -0,0 +1,26 @@ +From 7b1c6ca4cb5bf3310cbfe3b007063439be301b6b Mon Sep 17 00:00:00 2001 +From: Alex Deryskyba +Date: Mon, 2 Mar 2015 09:48:14 +0100 +Subject: [PATCH 18/26] [aml] Fix stuttering during a playback of a video with + 23.976 FPS + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp +index bf4c958..8d49de8 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp +@@ -1932,7 +1932,7 @@ void CAMLCodec::Process() + + double error = app_pts - (double)pts_video/PTS_FREQ; + double abs_error = fabs(error); +- if (abs_error > 0.125) ++ if (abs_error > 0) + { + //CLog::Log(LOGDEBUG, "CAMLCodec::Process pts diff = %f", error); + if (abs_error > 0.150) +-- +1.7.10.4 + diff --git a/projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch b/projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch new file mode 100644 index 0000000000..cb240a4801 --- /dev/null +++ b/projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch @@ -0,0 +1,23 @@ +From a19578679f63520b0d8e9f589b82699076aff6ed Mon Sep 17 00:00:00 2001 +From: "Chris \"Koying\" Browet" +Date: Fri, 19 Dec 2014 12:30:04 +0100 +Subject: [PATCH] FIX: [renderer] hide meaningless skips from users + +--- + xbmc/cores/VideoRenderers/RenderManager.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp +index 7f43949..01327f5 100644 +--- a/xbmc/cores/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoRenderers/RenderManager.cpp +@@ -1198,7 +1198,8 @@ void CXBMCRenderManager::PrepareNextRender() + while(m_queued.front() != idx) + { + requeue(m_discard, m_queued); +- m_QueueSkip++; ++ if (m_format != RENDER_FMT_BYPASS) // skips scares users ;) ++ m_QueueSkip++; + } + + m_presentstep = PRESENT_FLIP; diff --git a/projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch b/projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch new file mode 100644 index 0000000000..466a0a96eb --- /dev/null +++ b/projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch @@ -0,0 +1,36 @@ +From 6aab0376e7a4afdf5fbbbfa6c5394d302fb35a11 Mon Sep 17 00:00:00 2001 +From: Chris Browet +Date: Mon, 18 May 2015 14:28:02 +0200 +Subject: [PATCH] FIX: [aml] avoid decoder being deadlocked + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp +index 981ddd0..7046be3 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp +@@ -1855,7 +1855,8 @@ int CAMLCodec::Decode(uint8_t *pData, size_t iSize, double dts, double pts) + // loop until we write all into codec, am_pkt.isvalid + // will get set to zero once everything is consumed. + // PLAYER_SUCCESS means all is ok, not all bytes were written. +- while (am_private->am_pkt.isvalid) ++ int loop = 0; ++ while (am_private->am_pkt.isvalid && loop < 100) + { + // abort on any errors. + if (write_av_packet(am_private, &am_private->am_pkt) != PLAYER_SUCCESS) +@@ -1863,6 +1864,12 @@ int CAMLCodec::Decode(uint8_t *pData, size_t iSize, double dts, double pts) + + if (am_private->am_pkt.isvalid) + CLog::Log(LOGDEBUG, "CAMLCodec::Decode: write_av_packet looping"); ++ loop++; ++ } ++ if (loop == 100) ++ { ++ // Decoder got stuck; Reset ++ Reset(); + } + if (!m_dll_has_video_delay) + {