diff --git a/projects/RPi/patches/kodi/kodi-001-newclock4.patch b/projects/RPi/patches/kodi/kodi-001-newclock4.patch index c4f9bde026..b4bf0ed322 100644 --- a/projects/RPi/patches/kodi/kodi-001-newclock4.patch +++ b/projects/RPi/patches/kodi/kodi-001-newclock4.patch @@ -1,7 +1,7 @@ -From c25bd83d26b0f3f9d73f51488700d58cd49071f5 Mon Sep 17 00:00:00 2001 +From 1dcd04b174f31a8163ff66a648014a4e721af793 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 01/93] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/96] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -25,10 +25,10 @@ index e7cfcdd..20b99ad 100644 g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From c6a2e3aa3c692d349167894f8a91bef261aa98db Mon Sep 17 00:00:00 2001 +From 7488227c3099e0bc646a63ed370e3bd72a7c40df Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 02/93] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 02/96] [ffmpeg] Speed up wtv index creation The index creation is O(N^2) with number of entries (typically thousands). On a Pi this can take more than 60 seconds to execute for a recording of a few hours. @@ -114,10 +114,10 @@ index 0000000..4ac5636 + } + } -From eabdd68d5eabc55e8b45a3125ec8cdce8d17a8f6 Mon Sep 17 00:00:00 2001 +From 5116901918bb718694906bbe731df901a33e356b Mon Sep 17 00:00:00 2001 From: Jonathan Marshall Date: Sat, 2 Nov 2013 23:49:17 +1300 -Subject: [PATCH 03/93] adds GetTvShowSeasons +Subject: [PATCH 03/96] adds GetTvShowSeasons --- xbmc/video/VideoDatabase.cpp | 30 ++++++++++++++++++++++++------ @@ -125,10 +125,10 @@ Subject: [PATCH 03/93] adds GetTvShowSeasons 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp -index dd77e99..9e54a34 100644 +index 21391dd..0249ed6 100644 --- a/xbmc/video/VideoDatabase.cpp +++ b/xbmc/video/VideoDatabase.cpp -@@ -4209,7 +4209,7 @@ bool CVideoDatabase::RemoveArtForItem(int mediaId, const MediaType &mediaType, c +@@ -4213,7 +4213,7 @@ bool CVideoDatabase::RemoveArtForItem(int mediaId, const MediaType &mediaType, c return result; } @@ -137,7 +137,7 @@ index dd77e99..9e54a34 100644 { try { -@@ -4220,19 +4220,37 @@ bool CVideoDatabase::GetTvShowSeasonArt(int showId, map +@@ -4224,19 +4224,37 @@ bool CVideoDatabase::GetTvShowSeasonArt(int showId, map CStdString sql = PrepareSQL("select idSeason,season from seasons where idShow=%i", showId); m_pDS2->query(sql.c_str()); @@ -193,10 +193,10 @@ index 78259ed..cbb26b7 100644 bool GetArtTypes(const MediaType &mediaType, std::vector &artTypes); -From e3caa27dbd95c11d899ce9a824eefb1273721b97 Mon Sep 17 00:00:00 2001 +From eb300fcaab79f877d913e2d38fb15cdd97858fc6 Mon Sep 17 00:00:00 2001 From: Jonathan Marshall Date: Sat, 2 Nov 2013 23:50:10 +1300 -Subject: [PATCH 04/93] move AddSeason() public. +Subject: [PATCH 04/96] move AddSeason() public. --- xbmc/video/VideoDatabase.h | 2 +- @@ -223,10 +223,10 @@ index cbb26b7..1a79c00 100644 /*! \brief Adds a path to the tvshow link table. \param idShow the id of the show. -From 3ab75c04099cb3885f5cf11ea77e56eb0970033f Mon Sep 17 00:00:00 2001 +From 69ed0c95572c3371d2f6d45cfc27610656e6002f Mon Sep 17 00:00:00 2001 From: Jonathan Marshall Date: Sat, 2 Nov 2013 23:48:24 +1300 -Subject: [PATCH 05/93] adds GetArt function to (video) scraper, allowing art +Subject: [PATCH 05/96] adds GetArt function to (video) scraper, allowing art to be fetched given the video identifier. --- @@ -341,10 +341,10 @@ index 22ac229..75bc341 100644 enum LOOKUP_STATE { DO_NOTHING = 0, FIND_MOVIE = 1, -From 3923486c0a7bda7eac3ba71963e7a2c119bfb5c8 Mon Sep 17 00:00:00 2001 +From e56fe6d246ef40dca634d78f393279e361c90e9f Mon Sep 17 00:00:00 2001 From: Jonathan Marshall Date: Sat, 2 Nov 2013 23:53:14 +1300 -Subject: [PATCH 06/93] refresh season art if a new season is found that isn't +Subject: [PATCH 06/96] refresh season art if a new season is found that isn't recorded in the database yet. Fixes #14339 --- @@ -353,10 +353,10 @@ Subject: [PATCH 06/93] refresh season art if a new season is found that isn't 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp -index b4a2672..0d0ad66 100644 +index cb6a4fe..fe1355c 100644 --- a/xbmc/video/VideoInfoScanner.cpp +++ b/xbmc/video/VideoInfoScanner.cpp -@@ -1375,6 +1375,10 @@ namespace VIDEO +@@ -1405,6 +1405,10 @@ namespace VIDEO pDlgProgress->Progress(); } @@ -367,7 +367,7 @@ index b4a2672..0d0ad66 100644 EPISODELIST episodes; bool hasEpisodeGuide = false; -@@ -1423,6 +1427,8 @@ namespace VIDEO +@@ -1453,6 +1457,8 @@ namespace VIDEO } if (AddVideo(&item, CONTENT_TVSHOWS, file->isFolder, true, &showInfo) < 0) return INFO_ERROR; @@ -376,7 +376,7 @@ index b4a2672..0d0ad66 100644 continue; } -@@ -1552,6 +1558,8 @@ namespace VIDEO +@@ -1582,6 +1588,8 @@ namespace VIDEO if (AddVideo(&item, CONTENT_TVSHOWS, file->isFolder, useLocal, &showInfo) < 0) return INFO_ERROR; @@ -385,7 +385,7 @@ index b4a2672..0d0ad66 100644 } else { -@@ -1560,9 +1568,27 @@ namespace VIDEO +@@ -1590,9 +1598,27 @@ namespace VIDEO file->cDate.GetAsLocalizedDate().c_str(), file->strTitle.c_str()); } } @@ -413,7 +413,7 @@ index b4a2672..0d0ad66 100644 CStdString CVideoInfoScanner::GetnfoFile(CFileItem *item, bool bGrabAny) const { CStdString nfoFile; -@@ -1827,6 +1853,11 @@ namespace VIDEO +@@ -1857,6 +1883,11 @@ namespace VIDEO } for (int season = -1; season <= maxSeasons; season++) { @@ -425,7 +425,7 @@ index b4a2672..0d0ad66 100644 map art; if (useLocal) { -@@ -1880,7 +1911,7 @@ namespace VIDEO +@@ -1910,7 +1941,7 @@ namespace VIDEO art.insert(make_pair(artTypes.front(), image)); } @@ -435,10 +435,10 @@ index b4a2672..0d0ad66 100644 } diff --git a/xbmc/video/VideoInfoScanner.h b/xbmc/video/VideoInfoScanner.h -index 92883e7..47d5ed4 100644 +index 28bd2bf..a0f9d53 100644 --- a/xbmc/video/VideoInfoScanner.h +++ b/xbmc/video/VideoInfoScanner.h -@@ -231,6 +231,8 @@ namespace VIDEO +@@ -232,6 +232,8 @@ namespace VIDEO */ INFO_RET OnProcessSeriesFolder(EPISODELIST& files, const ADDON::ScraperPtr &scraper, bool useLocal, const CVideoInfoTag& showInfo, CGUIDialogProgress* pDlgProgress = NULL); @@ -448,10 +448,10 @@ index 92883e7..47d5ed4 100644 bool ProcessItemByVideoInfoTag(const CFileItem *item, EPISODELIST &episodeList); -From 542f9440944a95adaa5d3ad47dcbe9a133a402ec Mon Sep 17 00:00:00 2001 +From 1b57e14b00d8fc755c66f646e4bfaebf9beb927d Mon Sep 17 00:00:00 2001 From: Jonathan Marshall Date: Sat, 2 Nov 2013 23:53:34 +1300 -Subject: [PATCH 07/93] REMOVEME: updated thetvdb.com scraper to support art +Subject: [PATCH 07/96] REMOVEME: updated thetvdb.com scraper to support art updates --- @@ -559,10 +559,10 @@ index f27e4fc..bdf329f 100644 -From afd8f16ebb039189aa44d9d4a5afc5121bfc5280 Mon Sep 17 00:00:00 2001 +From 93085d1cd4ca39f8be362d187a289dcfdbb259e2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH 08/93] [omx] Report decoded image name +Subject: [PATCH 08/96] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -581,10 +581,10 @@ index aa413b9..22ec3f0 100644 else { -From 8a13458b476409f8e9bca467e23c12f2ded7afee Mon Sep 17 00:00:00 2001 +From f89c0a65973a566e379dabcac04762832892fade Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 09/93] logging: Add microsecond timer to log messages +Subject: [PATCH 09/96] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -637,10 +637,10 @@ index 3443f12..31c4a99 100644 levelNames[logLevel]) + strData; -From 52db813b34c18d3c15ee0dfe3bcc4b2e6d4a78c0 Mon Sep 17 00:00:00 2001 +From 4ff7155455ee7a1cf9275bd3d27a284fa234e45f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 10/93] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 10/96] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -663,10 +663,10 @@ index d30cbab..b268819 100644 info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From 45046b28ea79e6ff3627f9739f82838055130b28 Mon Sep 17 00:00:00 2001 +From 5fd202bab729d160ab5779c2eb200ea67ad075c4 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 11 Dec 2013 17:21:54 +0000 -Subject: [PATCH 11/93] Move the reference-counting of Begin and End calls from +Subject: [PATCH 11/96] Move the reference-counting of Begin and End calls from DX and GL source files into GUIFontTTF.cpp. --- @@ -1054,10 +1054,10 @@ index c0bb53a..735fb3a 100644 protected: virtual CBaseTexture* ReallocTexture(unsigned int& newHeight); -From 578b15ece3b509974833f3651851ffd36dff239f Mon Sep 17 00:00:00 2001 +From ca22488f5a32a225db672440d82893bb088be3ee Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 11 Dec 2013 18:47:54 +0000 -Subject: [PATCH 12/93] Convert CGUIFontTTFBase::m_vertex to be managed as a +Subject: [PATCH 12/96] Convert CGUIFontTTFBase::m_vertex to be managed as a std::vector. Also retired CGUIFontTTFBase::m_vertex_count and @@ -1237,10 +1237,10 @@ index 97853fd..b76c6a5 100644 *vertices++ = m_vertex[i]; *vertices++ = m_vertex[i+1]; -From e484cdf5dcd6ffc025224cc5402ece2ce6e1c1c2 Mon Sep 17 00:00:00 2001 +From 12198bab6856d78b607f82b19937eac181b57bf5 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 16 Dec 2013 18:58:12 +0000 -Subject: [PATCH 13/93] CGUIFontTTFBase::RenderCharacter can now append to +Subject: [PATCH 13/96] CGUIFontTTFBase::RenderCharacter can now append to arbitrary vectors of vertices rather than only CGUIFontTTFBase::m_vertex --- @@ -1313,10 +1313,10 @@ index 5675725..a5d44f4 100644 virtual CBaseTexture* ReallocTexture(unsigned int& newHeight) = 0; -From 5fd54d0bb10b6fe87e752d732e02b6abd68ab227 Mon Sep 17 00:00:00 2001 +From 65fb71707aa53ca65b292bf0b1eec353aea9fdf2 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 17:18:38 +0000 -Subject: [PATCH 14/93] Add a cache of font glyph bounding box vertices. +Subject: [PATCH 14/96] Add a cache of font glyph bounding box vertices. This is implemented as a template because ultimately we will key on different parameters and store values of different types, depending upon whether we @@ -2076,10 +2076,10 @@ index f351c99..9036ba9 100644 + return !operator==(a, b); +} -From 023ba93116b5257ba8fcc312cf88860b9eeb691b Mon Sep 17 00:00:00 2001 +From ea7126fb078553f5b59fcea3852a92bb80172aa1 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 23 Jan 2014 22:24:17 +0000 -Subject: [PATCH 15/93] Lay the groundwork for hardware clipping. +Subject: [PATCH 15/96] Lay the groundwork for hardware clipping. For glScissor() to replace CGraphicContext::ClipRect, a necessary condition is that no shear or rotation is introduced between the coordinate systems @@ -2341,10 +2341,10 @@ index 98e398a..81ee49e 100644 virtual void ResetScissors(); -From 566320bf51a1d9c32d26888e2c7ca376fa7a45a9 Mon Sep 17 00:00:00 2001 +From 08f270e8885178bbae7bc9846e3829aa2cc70c97 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 23 Jan 2014 16:42:22 +0000 -Subject: [PATCH 16/93] Increase font cache hit rate by keying on the +Subject: [PATCH 16/96] Increase font cache hit rate by keying on the fractional part of m_originX and m_originY *after* they have been through the graphics context's transformation matrix, plus the scale/rotation elements of the matrix, rather than the origin in the original frame of reference plus @@ -2545,10 +2545,10 @@ index 3b93672..258dffa 100644 private: virtual bool FirstBegin() = 0; -From aabc9ab602630f055641623b6a4ae447d5ff321a Mon Sep 17 00:00:00 2001 +From d9433a16456d61e0bc23ff0a81d87c498f2b32af Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 8 Jan 2014 12:16:33 +0000 -Subject: [PATCH 17/93] Rewrite of scrolling text code. +Subject: [PATCH 17/96] Rewrite of scrolling text code. No longer shuffles the string round to minimise the number of characters before the clipping rectangle; this doesn't save much on rendering time but @@ -2864,10 +2864,10 @@ index 2cda726..fbc579e 100644 private: void Process(); -From ad13a68337cd1f30a571fd35700cd0db5b4f49b2 Mon Sep 17 00:00:00 2001 +From fc0c3a461137da8bd1d923d4dfbcab2843ad1975 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 27 Jan 2014 23:21:10 +0000 -Subject: [PATCH 18/93] Move the application of the translation offsets into +Subject: [PATCH 18/96] Move the application of the translation offsets into the GLES code. Still all pure software at this stage. Main change is in the data types at @@ -3061,10 +3061,10 @@ index 9935ea4..18c9358 100644 memset(newTexture->GetPixels(), 0, m_textureHeight * newTexture->GetPitch()); if (m_texture) -From d1cbefa0ef6e03ee1c36ece18f7fef20320c5cf6 Mon Sep 17 00:00:00 2001 +From d98cfe3761c73b677f6bdb59313cead3063f67a9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 15:28:06 +0000 -Subject: [PATCH 19/93] Rather than applying the translation offsets to the +Subject: [PATCH 19/96] Rather than applying the translation offsets to the vertices, now applies them to the model view matrix from the top of the matrix stack and pushes it over to OpenGL. The vertices themselves are still all held client-side. @@ -3208,10 +3208,10 @@ index 81ee49e..d2f9cd1 100644 protected: virtual void SetVSyncImpl(bool enable) = 0; -From a978367d1d49edd4eb43fadb726750da72c97584 Mon Sep 17 00:00:00 2001 +From 615511a2410d0f386601c7d2f975f9afd676b418 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 29 Jan 2014 13:21:19 +0000 -Subject: [PATCH 20/93] Enable hardware clipping. +Subject: [PATCH 20/96] Enable hardware clipping. --- xbmc/guilib/GUIFontTTF.cpp | 4 ++-- @@ -3283,10 +3283,10 @@ index ea08bf4..b63e337 100644 glUniformMatrix4fv(modelLoc, 1, GL_FALSE, g_matrices.GetMatrix(MM_MODELVIEW)); } -From 8ace52ff2b373f690827a822056417ec0e540078 Mon Sep 17 00:00:00 2001 +From 4c00aacaa47c62887fa7d89eb009e1cc5f9df9e5 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 15:32:51 +0000 -Subject: [PATCH 21/93] Move the vertex data across to a vertex buffer object +Subject: [PATCH 21/96] Move the vertex data across to a vertex buffer object just prior to drawing. --- @@ -3337,10 +3337,10 @@ index b63e337..b00055d 100644 // Disable the attributes used by this shader -From 41cb7f92ec56d02627d12d350e6b9640ec3910fe Mon Sep 17 00:00:00 2001 +From f20be94d26de731653a6a582623e6eacc9794460 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 16:04:04 +0000 -Subject: [PATCH 22/93] Move vertex data into an OpenGL VBO when the font cache +Subject: [PATCH 22/96] Move vertex data into an OpenGL VBO when the font cache entry is populated. The font cache now stores the "name" (handle) of the VBO, rather than a vector @@ -3613,10 +3613,10 @@ index 735fb3a..6102c90 100644 protected: virtual CBaseTexture* ReallocTexture(unsigned int& newHeight); -From 5adb387af44a62694268e4fdda0f0810bff13860 Mon Sep 17 00:00:00 2001 +From 87cb51e81e740f8aceb4560ede19c2d042552175 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 1 Nov 2014 22:15:13 +0000 -Subject: [PATCH 23/93] Switch from glDrawArrays() to glDrawElements(). +Subject: [PATCH 23/96] Switch from glDrawArrays() to glDrawElements(). This involves setting up a static VBO containing the indexes necessary to convert from quads to triangles on the fly in the GPU. @@ -3837,10 +3837,10 @@ index d2a94c9..7b6097a 100644 if (m_display != EGL_NO_DISPLAY) -From 09a29474b173ccb73a0410dd32289ef69d87ddcc Mon Sep 17 00:00:00 2001 +From 51b6785e45e6cab22f356a810492955aec36fde8 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 24/93] Improved file buffering in CArchive +Subject: [PATCH 24/96] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -3900,10 +3900,10 @@ index 6ed0f8f..8506d95 100644 } else -From de568e2203c61397d8bb13b4f530f0608f8b2d39 Mon Sep 17 00:00:00 2001 +From 590c47eb844a19c8ce68cf22d41415f870b0a6fa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 10 Sep 2014 22:07:21 +0100 -Subject: [PATCH 25/93] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 25/96] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 4 ++++ @@ -3925,10 +3925,10 @@ index f139433..4183a2b 100644 { // If dvd is an mpeg2 and hint.stills -From 67e9cbc39d6d343f5070978adfca64f87661dc9e Mon Sep 17 00:00:00 2001 +From f98edd332fe330c185d9a49bcd2c0ca0680128a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 26/93] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 26/96] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -3949,10 +3949,10 @@ index c5309fe..ee63a70 100644 CDVDInputStream::IMenus* pMenus = dynamic_cast(m_pInputStream); -From 1bd2916867ef8f820d485765d6734a85efa8673f Mon Sep 17 00:00:00 2001 +From 1b1ef70c09dea2b56fb6c7d54b98ea2ce06954aa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 2 Nov 2014 20:10:08 +0000 -Subject: [PATCH 27/93] [dvdplayervideo] Make variables more local +Subject: [PATCH 27/96] [dvdplayervideo] Make variables more local --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 14 +++++++------- @@ -4005,10 +4005,10 @@ index e47f85c..e42f8ff 100644 { if (m_bAllowDrop) -From c018fd93f66b5387b3a38d693aa4dd7288e5c474 Mon Sep 17 00:00:00 2001 +From 2aa771478a55b22cc80baf8cd20916da30fb6fb4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 16:44:52 +0000 -Subject: [PATCH 28/93] [dvdplayervideo] Move packet handling into separate +Subject: [PATCH 28/96] [dvdplayervideo] Move packet handling into separate function --- @@ -4577,10 +4577,10 @@ index 4e1b3d6..a1606f7 100644 CDVDMessageQueue m_messageQueue; CDVDMessageQueue& m_messageParent; -From e08114c1f4368925f39f4bfe81db5438145e96dd Mon Sep 17 00:00:00 2001 +From 34b1dbc41a3892b8915225d5dac79eb2c64a38bd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 16:49:48 +0000 -Subject: [PATCH 29/93] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 29/96] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -4602,10 +4602,10 @@ index 7ee8638..c22ea9f 100644 continue; } -From 59bfc5035a207417dede46b074e2a35812ad2021 Mon Sep 17 00:00:00 2001 +From 23fb5512d6e14e331ba07460f882c1a6cde62777 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 30/93] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 30/96] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -4658,10 +4658,10 @@ index ac838ce..605318c9 100644 unsigned int iDisplayWidth = width; unsigned int iDisplayHeight = height; -From a835457e3f780834e17926491941ae12beeb4d2c Mon Sep 17 00:00:00 2001 +From d1c9ca9931e4b3eab3797f4c29ff6dc5debae4c0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:00:52 +0100 -Subject: [PATCH 31/93] [graphics] Don't set stereo mode based on resolution +Subject: [PATCH 31/96] [graphics] Don't set stereo mode based on resolution The resolution change should follow stereo mode --- @@ -4719,10 +4719,10 @@ index 3cb5587..fe6ebf4 100644 m_iScreenWidth = info_mod.iWidth; -From 41374f49db0b860aff61d9cea3e38aa1b4619d5a Mon Sep 17 00:00:00 2001 +From db73e060d84417d8d185da37e6fc812b1400909c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 32/93] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 32/96] [graphics] Allow switching to a more suitable 3D resolution --- @@ -4808,10 +4808,10 @@ index 2904c1b..8d3774f 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From 6ca25a020d6fc0cf1df97131973171d150398f53 Mon Sep 17 00:00:00 2001 +From 348aafe315666d38081bc9031e85db8cec09def1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 33/93] [3D] Support switching to 3D resolutions +Subject: [PATCH 33/96] [3D] Support switching to 3D resolutions Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes. Also remove the old code that treated 3D modes differently when assigning a score. @@ -4893,10 +4893,10 @@ index 83c3adb..8076e76 100644 return current; } -From 5906e43bcefb5ea2afb3556c1f9bdf0d772f3c06 Mon Sep 17 00:00:00 2001 +From 2db406a38711131fe9d5bdfc7ba558b7acde8267 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 34/93] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 34/96] [graphics] Make pixel ratio for 3d modes consistent Note: Use the stored stereo flags from lists of resolutions. Use current stereo mode for current resolution. @@ -5099,10 +5099,10 @@ index c58c28a..bf1e589 100644 AddUniqueResolution(res2, resolutions); -From 9e496ef84fc6cf11e0f235a9c34c18dec903145b Mon Sep 17 00:00:00 2001 +From f0ed72517d83dbdeb82b63ac4092ca0ea1608420 Mon Sep 17 00:00:00 2001 From: da-anda Date: Sun, 17 Aug 2014 21:09:59 +0200 -Subject: [PATCH 35/93] handle stereoscopic mode of videos in mixed playlists +Subject: [PATCH 35/96] handle stereoscopic mode of videos in mixed playlists --- language/English/strings.po | 2 +- @@ -5110,10 +5110,10 @@ Subject: [PATCH 35/93] handle stereoscopic mode of videos in mixed playlists 2 files changed, 49 insertions(+), 29 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 388aa9f..d9a263d 100755 +index ca03c3c..695fab9 100755 --- a/language/English/strings.po +++ b/language/English/strings.po -@@ -15780,7 +15780,7 @@ msgstr "" +@@ -15784,7 +15784,7 @@ msgstr "" #. Description of setting "Videos -> Playback -> Disable stereoscopic mode when playback is stopped" with label #36526 #: system/settings/settings.xml msgctxt "#36538" @@ -5270,10 +5270,10 @@ index 35ba597..b013942 100644 case 2: // Mono SetStereoMode( RENDER_STEREO_MODE_MONO ); -From 6b36268961ff10f4850e502a8fe68760c0437d03 Mon Sep 17 00:00:00 2001 +From 0add99cbc1180cb9a7c8b78d28c305061c52e2ce Mon Sep 17 00:00:00 2001 From: da-anda Date: Sat, 16 Aug 2014 11:20:54 +0200 -Subject: [PATCH 36/93] remember user selected 3D modes between videos until +Subject: [PATCH 36/96] remember user selected 3D modes between videos until playback ended --- @@ -5490,10 +5490,10 @@ index c1dfb93..cb54bd0 100644 -From 44b97926bcd7db9051bb73a1b464b7d6eb01069f Mon Sep 17 00:00:00 2001 +From 70a5778c0ea356b53491d4a910299705b945157d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 37/93] filesystem: Make support of browsing into archives +Subject: [PATCH 37/96] filesystem: Make support of browsing into archives optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. @@ -5509,10 +5509,10 @@ Add a settings option to enable this feature and default to disabled on Pi 4 files changed, 28 insertions(+) diff --git a/language/English/strings.po b/language/English/strings.po -index d9a263d..fcfa70e 100755 +index 695fab9..c441aae 100755 --- a/language/English/strings.po +++ b/language/English/strings.po -@@ -16111,4 +16111,13 @@ msgstr "" +@@ -16115,4 +16115,13 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -5547,7 +5547,7 @@ index f572eed..f3c8a01 100644 diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 90d0fab..a18d889 100644 +index 367542d..0db66a2 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -226,6 +226,11 @@ @@ -5593,10 +5593,10 @@ index 2fd8777..3b294cd 100644 // read the name of the playlist in -From 86d02a58207289183c76d6a0ef8c905a595a6d54 Mon Sep 17 00:00:00 2001 +From 89fac6b9755fa8bde9f7957463f4a54753ef3ed9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 39/93] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 39/96] [rbp] Make cachemembuffersize default depend on memory size --- @@ -5653,10 +5653,10 @@ index f4c309b..bf78194 100644 // as multiply of the default data read rate -From 04ff366197afd8c89e5eb8316abd3536d7f339d8 Mon Sep 17 00:00:00 2001 +From 3d1b963b43eeca8e6b80d56cd547d50c1a8f1f71 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 16 Jun 2014 19:06:00 +0100 -Subject: [PATCH 41/93] [experimental] Disable quiet-noise generation +Subject: [PATCH 41/96] [experimental] Disable quiet-noise generation --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 2 ++ @@ -5683,10 +5683,10 @@ index b391ff3..463a89c 100644 void CActiveAESink::SetSilenceTimer() -From d15b00745b67aaa1085ef186e9fc3d732b4a1e88 Mon Sep 17 00:00:00 2001 +From 483f260c5f09f787662a7033bf87127c14402213 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 42/93] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 42/96] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -5708,10 +5708,10 @@ index 6902f83..50c5f97 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From ba69c598a6b6f9184ff3d725b2417ba6f3dffbcd Mon Sep 17 00:00:00 2001 +From 4e58aa0ae923a9ca27519fb4d072b760d960d559 Mon Sep 17 00:00:00 2001 From: macrule Date: Thu, 11 Apr 2013 18:24:42 +0200 -Subject: [PATCH 43/93] Added some vc_tv_* functions that were missing in +Subject: [PATCH 43/96] Added some vc_tv_* functions that were missing in DllBCM. --- @@ -5746,10 +5746,10 @@ index b92fdb8..9c7e293 100644 HDMI_INTERLACED_T scan_mode, EDID_MODE_MATCH_FLAG_T match_flags) { return ::vc_tv_hdmi_power_on_best(width, height, frame_rate, scan_mode, match_flags); }; -From 94e762d804aea4ac109e04681457ab7081308657 Mon Sep 17 00:00:00 2001 +From f5bb1ce961c940809f7626de770920b80271ef5e Mon Sep 17 00:00:00 2001 From: macrule Date: Thu, 11 Apr 2013 18:29:03 +0200 -Subject: [PATCH 44/93] Added private utility function to map a float display +Subject: [PATCH 44/96] Added private utility function to map a float display aspect, to the respective SDTV_ASPECT_* enum value. --- @@ -5787,10 +5787,10 @@ index bf1e589..518a87d 100644 bool CEGLNativeTypeRaspberryPI::ProbeResolutions(std::vector &resolutions) -From 736289e927072841bce14493190a1452afba9d61 Mon Sep 17 00:00:00 2001 +From 7345f954582dcb3391b218191f66f931e32e5a78 Mon Sep 17 00:00:00 2001 From: macrule Date: Thu, 11 Apr 2013 19:50:58 +0200 -Subject: [PATCH 45/93] Changed SDTV resolutions to be treated similarly to +Subject: [PATCH 45/96] Changed SDTV resolutions to be treated similarly to HDMI resolutions in SetNativeResolution. This means that the SDTV interface is powered up and set to the right mode. @@ -5887,10 +5887,10 @@ index 59401f5..a0acb1a 100644 int m_width; int m_height; -From b5e3a7337fb964203726b79e4597104be46837ec Mon Sep 17 00:00:00 2001 +From eccd1201a03d8a65859877cb6d421f5de6b96b33 Mon Sep 17 00:00:00 2001 From: macrule Date: Thu, 11 Apr 2013 19:54:59 +0200 -Subject: [PATCH 46/93] Added methods SuspendVideoOutput() and +Subject: [PATCH 46/96] Added methods SuspendVideoOutput() and ResumeVideoOutput() to CRBP class, which can be used to power down the Raspberry PI's video interface, and restore it at a later point. @@ -5954,10 +5954,10 @@ index 9dc39d5..ca36082 100644 CEGLNativeTypeRaspberryPI::CEGLNativeTypeRaspberryPI() { -From ea33aee7e67876170a79c2ee56fdafd8b82366fe Mon Sep 17 00:00:00 2001 +From fb7d81685bfb5517dc1474409847f712615a15a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 11 Aug 2013 15:03:36 +0100 -Subject: [PATCH 47/93] PowerManager (and its IPowerSyscall instance) now gets +Subject: [PATCH 47/96] PowerManager (and its IPowerSyscall instance) now gets called from CApplication::OnKey() and can process and suppress key presses. This is a requirement to implement a virtual sleep state. @@ -5969,7 +5969,7 @@ Subject: [PATCH 47/93] PowerManager (and its IPowerSyscall instance) now gets 4 files changed, 23 insertions(+) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index ec53704..c68dbc7 100644 +index e0d40c9..e9ac3b4 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2360,6 +2360,13 @@ bool CApplication::OnKey(const CKey& key) @@ -6050,10 +6050,10 @@ index 0b1f10a..e42b143 100644 void OnSleep(); void OnWake(); -From 92e94eb840739452973cfaf1cc4c1c9887ec164e Mon Sep 17 00:00:00 2001 +From edbe819e292a53ae64c5265b6810bf95ea3282e6 Mon Sep 17 00:00:00 2001 From: macrule Date: Wed, 17 Apr 2013 13:23:01 +0200 -Subject: [PATCH 48/93] Added CPowerSyscallVirtualSleep class, which acts as a +Subject: [PATCH 48/96] Added CPowerSyscallVirtualSleep class, which acts as a base class for devices that have no native standby mode, and need to fake it in some way. @@ -6229,10 +6229,10 @@ index 0000000..ef6e682 + +#endif // _POWER_SYSCALL_VIRTUAL_SLEEP_H_ -From 37a27d99395613344acba85241168b9b0b94e895 Mon Sep 17 00:00:00 2001 +From 1bdfd1945cbc8a0fb6ad09cfafbcb6ed8487167b Mon Sep 17 00:00:00 2001 From: macrule Date: Wed, 17 Apr 2013 13:24:22 +0200 -Subject: [PATCH 49/93] Added power management support for the Raspberry Pi. +Subject: [PATCH 49/96] Added power management support for the Raspberry Pi. Since it doesn't support true standby, we fake it by turning video on or off, and ignoring remote inputs during the standby phase. @@ -6378,10 +6378,10 @@ index 0000000..fd1d67c + +#endif // _RASPBERRY_PI_POWER_SYSCALL_H_ -From 174610a60199d91cc847f7461350f107fff7ca45 Mon Sep 17 00:00:00 2001 +From 4ed5d263b8e1d331aeef1dadfcf8688dde31fadf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Mar 2014 16:16:29 +0000 -Subject: [PATCH 50/93] [power] hack - don't kill lirc or cec +Subject: [PATCH 50/96] [power] hack - don't kill lirc or cec --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 37 +++++++++++++++++++++++ @@ -6465,10 +6465,10 @@ index df8ba06..b99eb44 100644 CBuiltins::Execute("LIRC.Start"); #endif -From b2836c04645a3945a3dd9550fcd4aae15b4a6903 Mon Sep 17 00:00:00 2001 +From 494f44c44310c2f783f16323b3f01070f4cb5849 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Mar 2014 16:47:54 +0000 -Subject: [PATCH 51/93] [power] hack - wake on any action +Subject: [PATCH 51/96] [power] hack - wake on any action --- xbmc/powermanagement/PowerSyscallVirtualSleep.cpp | 6 +++--- @@ -6497,10 +6497,10 @@ index 6a1e47b..a717a09 100644 if(VirtualWake()) { -From e534beb4334ff431c946ef0db40efb12156779b0 Mon Sep 17 00:00:00 2001 +From 247cd1701a37fd76ecab4d2c11a29a942dec80ff Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Mar 2014 17:30:07 +0000 -Subject: [PATCH 52/93] [power] hack - Make suspend toggle suspend state +Subject: [PATCH 52/96] [power] hack - Make suspend toggle suspend state --- xbmc/powermanagement/PowerSyscallVirtualSleep.cpp | 5 +++++ @@ -6523,10 +6523,10 @@ index a717a09..d39c3ed 100644 return false; } -From f98710e0b01769bb1243b01305817ad4a2cedc64 Mon Sep 17 00:00:00 2001 +From 8aae78a30fee45f1675b9d6899f1b1834f8d2acd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Mar 2014 19:33:44 +0000 -Subject: [PATCH 53/93] [power] Add back in powerdown and reboot +Subject: [PATCH 53/96] [power] Add back in powerdown and reboot --- .../linux/RaspberryPIPowerSyscall.cpp | 34 ++++++++++++++++++++++ @@ -6604,10 +6604,10 @@ index fd1d67c..062132e 100644 virtual bool CanReboot() { return true; } -From d4976d1c67b0624612c03f3b89e142ce0ceaa424 Mon Sep 17 00:00:00 2001 +From 6a8f0127487ed53330baa321e6a54d251117b2cc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 26 Apr 2014 17:27:52 +0100 -Subject: [PATCH 54/93] [cec] Don't suspend pi on tv switch off - it can't wake +Subject: [PATCH 54/96] [cec] Don't suspend pi on tv switch off - it can't wake up --- @@ -6628,10 +6628,10 @@ index a67dc2f..680863e 100644 -From 4ecaa5409bfae91d62cec4f78059e33eab1933ac Mon Sep 17 00:00:00 2001 +From 2a0f32c16713d730ef906851b4aa00f97a1494cc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Jun 2014 00:01:05 +0100 -Subject: [PATCH 55/93] [rbp] Resume video output on startup +Subject: [PATCH 55/96] [rbp] Resume video output on startup --- xbmc/linux/RBP.cpp | 3 +++ @@ -6652,10 +6652,10 @@ index cb87b77..34866f6 100644 m_omx_image_init = true; return true; -From 745982e9aea4be85ba5478e94947560fd6861ecc Mon Sep 17 00:00:00 2001 +From b77755c72dfba5fa80bff5ba4a794063928ebfca Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 Aug 2014 21:01:42 +0100 -Subject: [PATCH 56/93] omxrender: Hacks to reduce GUI rendering rate when +Subject: [PATCH 56/96] omxrender: Hacks to reduce GUI rendering rate when playing video --- @@ -6665,10 +6665,10 @@ Subject: [PATCH 56/93] omxrender: Hacks to reduce GUI rendering rate when 3 files changed, 60 insertions(+) diff --git a/language/English/strings.po b/language/English/strings.po -index fcfa70e..5a5ae4a 100755 +index c441aae..68dba96 100755 --- a/language/English/strings.po +++ b/language/English/strings.po -@@ -16121,3 +16121,30 @@ msgstr "" +@@ -16125,3 +16125,30 @@ msgstr "" msgctxt "#38021" msgid "Allow viewing and playing files in archives (e.g. zip, rar)" msgstr "" @@ -6727,7 +6727,7 @@ index f3c8a01..2996c29 100644 diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index c68dbc7..48f4c79 100644 +index e9ac3b4..6cb07d4 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2207,6 +2207,23 @@ void CApplication::Render() @@ -6755,10 +6755,10 @@ index c68dbc7..48f4c79 100644 int vsync_mode = CSettings::Get().GetInt("videoscreen.vsync"); -From 83d0883a121944e89a789ebac06c78140c3bbf68 Mon Sep 17 00:00:00 2001 +From 8c4e3bea088b7d761f29684f574886dad7b513db Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 57/93] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 57/96] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -6787,10 +6787,10 @@ index ca36082..1529045 100644 SetResolutionString(m_desktopRes); -From 9a7b10e2de6ca6d4c0495ba7982bba83fe2446c1 Mon Sep 17 00:00:00 2001 +From c90e973785a015e544549a3fef0283d9409e6bff Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 58/93] Disable textbox autoscrolling while on screensaver. +Subject: [PATCH 58/96] Disable textbox autoscrolling while on screensaver. SQUASH: only if dim or black --- @@ -6800,10 +6800,10 @@ SQUASH: only if dim or black 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 48f4c79..21039d8 100644 +index 6cb07d4..9ccdbbc 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5858,3 +5858,10 @@ void CApplication::CloseNetworkShares() +@@ -5878,3 +5878,10 @@ void CApplication::CloseNetworkShares() CSFTPSessionManager::DisconnectAllSessions(); #endif } @@ -6815,10 +6815,10 @@ index 48f4c79..21039d8 100644 + return ""; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index 23fd4cf..fd8908a 100644 +index 0a332ff..15efc90 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -374,6 +374,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs +@@ -380,6 +380,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs void SetLoggingIn(bool loggingIn) { m_loggingIn = loggingIn; } @@ -6851,10 +6851,10 @@ index b7ef051..e149418 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 4419e858f2983b459b248b310abdfec2902469f1 Mon Sep 17 00:00:00 2001 +From 3a822606cbfa74e51a2362bf56386d211d4dbe4a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 18 Sep 2014 14:24:56 +0100 -Subject: [PATCH 59/93] [omxplayer] Only enable audio clock master when A/V +Subject: [PATCH 59/96] [omxplayer] Only enable audio clock master when A/V sync method is set to audio clock --- @@ -6885,10 +6885,10 @@ index 549700c..db0886e 100644 OMX_CONFIG_BOOLEANTYPE configBool; OMX_INIT_STRUCTURE(configBool); -From e40240dc5294774604644551ef1d31b3551c63a4 Mon Sep 17 00:00:00 2001 +From ef38257ea07b2de6ceb3b15ba04f3a6b01885206 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 60/93] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 60/96] [dvdplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -6907,10 +6907,10 @@ Needed updated firmware 7 files changed, 76 insertions(+), 3 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 5a5ae4a..d067367 100755 +index 68dba96..b2edda4 100755 --- a/language/English/strings.po +++ b/language/English/strings.po -@@ -16148,3 +16148,8 @@ msgstr "" +@@ -16152,3 +16152,8 @@ msgstr "" msgctxt "#38005" msgid "24 fps" msgstr "" @@ -7086,25 +7086,27 @@ index f947acc..606c24f 100644 void SuspendVideoOutput(); void ResumeVideoOutput(); -From f9bd54aa55985e216619d2996d7967c7a3fbe284 Mon Sep 17 00:00:00 2001 +From d11547514d4ef8e45c92ee1e5f9a080514d80537 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:27:04 +0100 -Subject: [PATCH 61/93] [omxplayer] Don't sync up to passthrough audio packets +Subject: [PATCH 61/96] [omxplayer] Don't sync up to passthrough audio packets - let GPU handle it This code was just broken. When sync is lost it attempts to identify how many bytes to skip to regain sync, but does nothing with that skip count - just drops the whole frame. +It also stops EAC3 from being passed through. + The GPU has similar sync detection code which does avoid dropping the whole frame, so just pass the packets through and let GPU deal with it. --- - xbmc/cores/omxplayer/OMXAudio.cpp | 179 -------------------------------------- - xbmc/cores/omxplayer/OMXAudio.h | 3 - - 2 files changed, 182 deletions(-) + xbmc/cores/omxplayer/OMXAudio.cpp | 205 -------------------------------------- + xbmc/cores/omxplayer/OMXAudio.h | 5 - + 2 files changed, 210 deletions(-) diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp -index db0886e..d402384 100644 +index db0886e..7c07b57 100644 --- a/xbmc/cores/omxplayer/OMXAudio.cpp +++ b/xbmc/cores/omxplayer/OMXAudio.cpp @@ -55,11 +55,6 @@ using namespace std; @@ -7164,11 +7166,37 @@ index db0886e..d402384 100644 unsigned pitch = (m_Passthrough || m_HWDecode) ? 1:(m_BitsPerSample >> 3) * m_InputChannels; unsigned int demuxer_samples = len / pitch; unsigned int demuxer_samples_sent = 0; -@@ -1644,160 +1622,3 @@ void COMXAudio::PrintDTS(OMX_AUDIO_PARAM_DTSTYPE *dtsparam) +@@ -1618,186 +1596,3 @@ void COMXAudio::PrintPCM(OMX_AUDIO_PARAM_PCMMODETYPE *pcm, std::string direction - PrintChannels(dtsparam->eChannelMapping); + PrintChannels(pcm->eChannelMapping); } - +-void COMXAudio::PrintDDP(OMX_AUDIO_PARAM_DDPTYPE *ddparm) +-{ +- CLog::Log(LOGDEBUG, "ddparm->nPortIndex : %d\n", (int)ddparm->nPortIndex); +- CLog::Log(LOGDEBUG, "ddparm->nChannels : %d\n", (int)ddparm->nChannels); +- CLog::Log(LOGDEBUG, "ddparm->nBitRate : %d\n", (int)ddparm->nBitRate); +- CLog::Log(LOGDEBUG, "ddparm->nSampleRate : %d\n", (int)ddparm->nSampleRate); +- CLog::Log(LOGDEBUG, "ddparm->eBitStreamId : %d\n", (int)ddparm->eBitStreamId); +- CLog::Log(LOGDEBUG, "ddparm->eBitStreamMode : %d\n", (int)ddparm->eBitStreamMode); +- CLog::Log(LOGDEBUG, "ddparm->eDolbySurroundMode : %d\n", (int)ddparm->eDolbySurroundMode); +- +- PrintChannels(ddparm->eChannelMapping); +-} +- +-void COMXAudio::PrintDTS(OMX_AUDIO_PARAM_DTSTYPE *dtsparam) +-{ +- CLog::Log(LOGDEBUG, "dtsparam->nPortIndex : %d\n", (int)dtsparam->nPortIndex); +- CLog::Log(LOGDEBUG, "dtsparam->nChannels : %d\n", (int)dtsparam->nChannels); +- CLog::Log(LOGDEBUG, "dtsparam->nBitRate : %d\n", (int)dtsparam->nBitRate); +- CLog::Log(LOGDEBUG, "dtsparam->nSampleRate : %d\n", (int)dtsparam->nSampleRate); +- CLog::Log(LOGDEBUG, "dtsparam->nFormat : 0x%08x\n", (int)dtsparam->nFormat); +- CLog::Log(LOGDEBUG, "dtsparam->nDtsType : %d\n", (int)dtsparam->nDtsType); +- CLog::Log(LOGDEBUG, "dtsparam->nDtsFrameSizeBytes : %d\n", (int)dtsparam->nDtsFrameSizeBytes); +- +- PrintChannels(dtsparam->eChannelMapping); +-} +- -/* ========================== SYNC FUNCTIONS ========================== */ -unsigned int COMXAudio::SyncDTS(BYTE* pData, unsigned int iSize) -{ @@ -7326,19 +7354,21 @@ index db0886e..d402384 100644 - return iSize; -} diff --git a/xbmc/cores/omxplayer/OMXAudio.h b/xbmc/cores/omxplayer/OMXAudio.h -index 7cf10ad..f014364 100644 +index 7cf10ad..3ff959f 100644 --- a/xbmc/cores/omxplayer/OMXAudio.h +++ b/xbmc/cores/omxplayer/OMXAudio.h -@@ -89,8 +89,6 @@ class COMXAudio +@@ -87,10 +87,6 @@ class COMXAudio + + static void PrintChannels(OMX_AUDIO_CHANNELTYPE eChannelMapping[]); void PrintPCM(OMX_AUDIO_PARAM_PCMMODETYPE *pcm, std::string direction); - void PrintDDP(OMX_AUDIO_PARAM_DDPTYPE *ddparm); - void PrintDTS(OMX_AUDIO_PARAM_DTSTYPE *dtsparam); +- void PrintDDP(OMX_AUDIO_PARAM_DDPTYPE *ddparm); +- void PrintDTS(OMX_AUDIO_PARAM_DTSTYPE *dtsparam); - unsigned int SyncDTS(BYTE* pData, unsigned int iSize); - unsigned int SyncAC3(BYTE* pData, unsigned int iSize); void UpdateAttenuation(); bool BadState() const { return !m_Initialized; }; -@@ -119,7 +117,6 @@ class COMXAudio +@@ -119,7 +115,6 @@ class COMXAudio OMXClock *m_av_clock; bool m_settings_changed; bool m_setStartTime; @@ -7347,10 +7377,10 @@ index 7cf10ad..f014364 100644 OMX_AUDIO_CODINGTYPE m_eEncoding; uint8_t *m_extradata; -From b76e77b6226e5b486ba59b2c0e27f514e2bf11c0 Mon Sep 17 00:00:00 2001 +From e291eaf1767734a93db4fd768a98d137e6e79428 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 62/93] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 62/96] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -7374,10 +7404,10 @@ index ee63a70..de859e0 100644 } -From e0793096bcf2353572702ef0c5a09488e6c2f03f Mon Sep 17 00:00:00 2001 +From 5c8937a3a907bfbd15af502215f9eb6f4d89863a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 28 Sep 2014 19:28:17 +0100 -Subject: [PATCH 63/93] [mmalcodec] Introduce a preroll period to buffer up +Subject: [PATCH 63/96] [mmalcodec] Introduce a preroll period to buffer up frames on startup --- @@ -7511,10 +7541,10 @@ index b4aa571..4f81bbd 100644 MMAL_COMPONENT_T *m_dec; MMAL_PORT_T *m_dec_input; -From 07a96a4203f52a4e8f56466d6d0f5671166a96ff Mon Sep 17 00:00:00 2001 +From d051a66742a60572acae0f74e63ddf7ce17da765 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 11 Apr 2014 16:12:27 +0100 -Subject: [PATCH 64/93] [omxplayer] Add ability to log more timestamp info in +Subject: [PATCH 64/96] [omxplayer] Add ability to log more timestamp info in extra debug settings --- @@ -7527,7 +7557,7 @@ Subject: [PATCH 64/93] [omxplayer] Add ability to log more timestamp info in 6 files changed, 25 insertions(+), 13 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index d067367..11ed0a6 100755 +index b2edda4..9bd7c06 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -2892,6 +2892,11 @@ msgctxt "#680" @@ -7665,10 +7695,10 @@ index bf78194..c68ac95 100644 void CAdvancedSettings::setExtraLogLevel(const std::vector &components) -From 7b3d22291f15c45cc691ba1b905f2f6c3fcac72c Mon Sep 17 00:00:00 2001 +From e8f86be6623ee23071b9f324154c98db2b8ca6ab Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 23:13:55 +0100 -Subject: [PATCH 65/93] [omxplayer] Add ability to dump out audio/video data +Subject: [PATCH 65/96] [omxplayer] Add ability to dump out audio/video data for later debugging --- @@ -7680,7 +7710,7 @@ Subject: [PATCH 65/93] [omxplayer] Add ability to dump out audio/video data 5 files changed, 112 insertions(+) diff --git a/language/English/strings.po b/language/English/strings.po -index 11ed0a6..e10fea7 100755 +index 9bd7c06..510fc26 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -2897,6 +2897,16 @@ msgctxt "#697" @@ -7714,7 +7744,7 @@ index a3b6ba6..f01c83b 100644 #include "utils/params_check_macros.h" diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp -index d402384..b5e86ae 100644 +index 7c07b57..db03668 100644 --- a/xbmc/cores/omxplayer/OMXAudio.cpp +++ b/xbmc/cores/omxplayer/OMXAudio.cpp @@ -55,6 +55,49 @@ using namespace std; @@ -7910,10 +7940,10 @@ index c68ac95..852c70d 100644 void CAdvancedSettings::setExtraLogLevel(const std::vector &components) -From a44e75ec7a1bdbe6825c3d0fca3dac26aee2d8d8 Mon Sep 17 00:00:00 2001 +From 2966410c4842e5f261f85665b5f1d516389875b6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 66/93] [audio] Add settings option to boost centre channel +Subject: [PATCH 66/96] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -7931,10 +7961,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 45 insertions(+) diff --git a/language/English/strings.po b/language/English/strings.po -index e10fea7..a3b745d 100755 +index 510fc26..8929aaf 100755 --- a/language/English/strings.po +++ b/language/English/strings.po -@@ -16168,3 +16168,17 @@ msgstr "" +@@ -16172,3 +16172,17 @@ msgstr "" msgctxt "#38006" msgid "Adjust PLL" msgstr "" @@ -7953,7 +7983,7 @@ index e10fea7..a3b745d 100755 +msgctxt "#38009" +msgid "%i dB" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index a18d889..e5f08c7 100644 +index 0db66a2..dbddcb6 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -2451,6 +2451,18 @@ @@ -8018,7 +8048,7 @@ index 96f79b7..84505bf 100644 if (remapLayout) { diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp -index b5e86ae..00bae83 100644 +index db03668..6be2b76 100644 --- a/xbmc/cores/omxplayer/OMXAudio.cpp +++ b/xbmc/cores/omxplayer/OMXAudio.cpp @@ -676,6 +676,12 @@ bool COMXAudio::Initialize(AEAudioFormat format, OMXClock *clock, CDVDStreamInfo @@ -8035,10 +8065,10 @@ index b5e86ae..00bae83 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From f8417b01c94584acdb3eb2037983bb22036e18aa Mon Sep 17 00:00:00 2001 +From 837b70ed442c257381dfc13ea1b76b72448894db Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 3 Oct 2014 18:38:07 +0100 -Subject: [PATCH 67/93] [omxcore] Skip out of flush on error +Subject: [PATCH 67/96] [omxcore] Skip out of flush on error --- xbmc/linux/OMXCore.cpp | 4 ++-- @@ -8067,10 +8097,10 @@ index 4ae29ba..4caa304 100644 OMX_ERRORTYPE omx_err = OMX_ErrorNone; -From 8dfa48f87cfb1db9da2c7f67b84502327dfec406 Mon Sep 17 00:00:00 2001 +From f324a56e90af8ba33ecb245136d6b074d060d60c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 3 Oct 2014 18:40:06 +0100 -Subject: [PATCH 68/93] [SinkPi] Handle multichannel layout more like OMXAudio +Subject: [PATCH 68/96] [SinkPi] Handle multichannel layout more like OMXAudio --- xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp | 14 +++++++------- @@ -8129,10 +8159,10 @@ index 89684e4..fd9a03d 100644 m_format = format; m_sinkbuffer_sec_per_byte = 1.0 / (double)(m_format.m_frameSize * m_format.m_sampleRate); -From 5c0be3d496cdf4cc53e209920e4d0d14e72e14a4 Mon Sep 17 00:00:00 2001 +From 719c9193b2b8077d6803275c7d3c1cc97125da57 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 5 Oct 2014 14:05:25 +0100 -Subject: [PATCH 69/93] [PiSink] Allow audio output latency to be set in +Subject: [PATCH 69/96] [PiSink] Allow audio output latency to be set in settings --- @@ -8143,10 +8173,10 @@ Subject: [PATCH 69/93] [PiSink] Allow audio output latency to be set in 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index a3b745d..207df3a 100755 +index 8929aaf..307d01f 100755 --- a/language/English/strings.po +++ b/language/English/strings.po -@@ -16182,3 +16182,18 @@ msgstr "" +@@ -16186,3 +16186,18 @@ msgstr "" #: system/settings/settings.xml msgctxt "#38009" msgid "%i dB" @@ -8260,10 +8290,10 @@ index 5c57999..cac5051 100644 bool m_Initialized; uint32_t m_submitted; -From a6e42a951c6bd07c70fb06ee4129e2530a360bb2 Mon Sep 17 00:00:00 2001 +From f2ab85ab33018fcbc391115abeb37541cc4e11eb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 18 Aug 2014 19:09:32 +0100 -Subject: [PATCH 70/93] rbp: Use new dispmanx function for vsync callbacks +Subject: [PATCH 70/96] rbp: Use new dispmanx function for vsync callbacks --- xbmc/linux/RBP.cpp | 85 ++++++++++++++----------- @@ -8475,10 +8505,10 @@ index 1529045..b6bf1fc 100644 } DLOG("CEGLNativeTypeRaspberryPI::DestroyDispmaxWindow\n"); -From 00cd18ff22710d5a3f31e4efaf3c67c73b7710f6 Mon Sep 17 00:00:00 2001 +From e141008d3da2117da5261b1a97bdda0ed55df9b7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Aug 2014 17:56:45 +0100 -Subject: [PATCH 71/93] Revert "rbp: Use new dispmanx function for vsync +Subject: [PATCH 71/96] Revert "rbp: Use new dispmanx function for vsync callbacks" This reverts commit afbf8fbceaa6649fb4a6bbd9a1cee6087590412b. @@ -8692,10 +8722,10 @@ index b6bf1fc..1529045 100644 } DLOG("CEGLNativeTypeRaspberryPI::DestroyDispmaxWindow\n"); -From ddc959222f77f794667278d4935ce4d9bd812978 Mon Sep 17 00:00:00 2001 +From 51f1cc6adcb1b4b4082c6a43374796a231eaeb99 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 72/93] [rbp] Default extract thumbnails to false +Subject: [PATCH 72/96] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -8726,10 +8756,10 @@ index b8e6e59..40be71e 100644
-From c21c65bcc502754df2a1b80c484271fd4e9658b1 Mon Sep 17 00:00:00 2001 +From 0dec1f3df677a61b55961ed7850030813b6352af Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 17:16:54 +0000 -Subject: [PATCH 74/93] Revert "[omxplayer] Add ability to dump out audio/video +Subject: [PATCH 74/96] Revert "[omxplayer] Add ability to dump out audio/video data for later debugging" This reverts commit 417416bd29d00f1b42c77488d06e9e6840b8c4f4. @@ -8742,7 +8772,7 @@ This reverts commit 417416bd29d00f1b42c77488d06e9e6840b8c4f4. 5 files changed, 112 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 385ad73..d1ad46f 100755 +index 1cacffe..e77eba6 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -2897,16 +2897,6 @@ msgctxt "#697" @@ -8776,7 +8806,7 @@ index f01c83b..a3b6ba6 100644 #include "utils/params_check_macros.h" diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp -index 00bae83..f17df87 100644 +index 6be2b76..ef4c3d4 100644 --- a/xbmc/cores/omxplayer/OMXAudio.cpp +++ b/xbmc/cores/omxplayer/OMXAudio.cpp @@ -55,49 +55,6 @@ using namespace std; @@ -8972,10 +9002,10 @@ index 852c70d..c68ac95 100644 void CAdvancedSettings::setExtraLogLevel(const std::vector &components) -From 134a87f74011f0631e5d9a5a0bb8617dbdaf49a4 Mon Sep 17 00:00:00 2001 +From 6dcbf24482fe425caa850bb8f95ca317efd5ebd2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 23:13:55 +0100 -Subject: [PATCH 75/93] [omxplayer] Add ability to dump out audio/video data +Subject: [PATCH 75/96] [omxplayer] Add ability to dump out audio/video data for later debugging --- @@ -8986,7 +9016,7 @@ Subject: [PATCH 75/93] [omxplayer] Add ability to dump out audio/video data 4 files changed, 79 insertions(+) diff --git a/language/English/strings.po b/language/English/strings.po -index d1ad46f..385ad73 100755 +index e77eba6..1cacffe 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -2897,6 +2897,16 @@ msgctxt "#697" @@ -9124,10 +9154,10 @@ index c68ac95..852c70d 100644 void CAdvancedSettings::setExtraLogLevel(const std::vector &components) -From 9770ae35cc24e9c76fd03cf48b985bd3d24f9938 Mon Sep 17 00:00:00 2001 +From bf0242c861e97a2305732797ab5e1e17f8025aa9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Nov 2014 18:14:23 +0000 -Subject: [PATCH 78/93] [resamplepi] Try to report the same numbers as ffmpeg +Subject: [PATCH 78/96] [resamplepi] Try to report the same numbers as ffmpeg --- .../cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp | 11 ++++++----- @@ -9178,19 +9208,19 @@ index 84505bf..2b5bef2 100644 CLog::Log(LOGINFO, "%s::%s = %d", CLASSNAME, __func__, ret); #endif -From b3cfe38fdef756be18e4d7573438726d0252708f Mon Sep 17 00:00:00 2001 +From 53c0e5beca8d8d6d7cb8d7db6a962548f18d32f1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Nov 2014 20:49:30 +0000 -Subject: [PATCH 79/93] [dvdplayer] New scheme for PLL adjustment for video +Subject: [PATCH 79/96] [dvdplayer] New scheme for PLL adjustment for video clock --- - xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 45 +++++++++++++++------------------ + xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 40 +++++++++++++-------------------- xbmc/cores/dvdplayer/DVDPlayerAudio.h | 2 ++ - 2 files changed, 23 insertions(+), 24 deletions(-) + 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -index 5e9a6d3..806aa1b 100644 +index 5e9a6d3..3e6d0ee 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp @@ -113,7 +113,9 @@ CDVDPlayerAudio::CDVDPlayerAudio(CDVDClock* pClock, CDVDMessageQueue& parent) @@ -9204,29 +9234,24 @@ index 5e9a6d3..806aa1b 100644 m_synctype = SYNC_DISCON; m_setsynctype = SYNC_DISCON; m_prevsynctype = -1; -@@ -192,6 +194,10 @@ void CDVDPlayerAudio::OpenStream( CDVDStreamInfo &hints, CDVDAudioCodec* codec ) +@@ -192,6 +194,8 @@ void CDVDPlayerAudio::OpenStream( CDVDStreamInfo &hints, CDVDAudioCodec* codec ) m_error = 0; m_errors.Flush(); + m_plladjust = 1.0; -+#if defined(TARGET_RASPBERRY_PI) -+ m_last_plladjust = g_RBP.AdjustHDMIClock(m_plladjust); -+#endif ++ m_last_plladjust = 1.0; m_integral = 0; m_prevskipped = false; m_syncclock = true; -@@ -234,7 +240,9 @@ void CDVDPlayerAudio::CloseStream(bool bWaitForBuffers) +@@ -234,7 +238,6 @@ void CDVDPlayerAudio::CloseStream(bool bWaitForBuffers) // uninit queue m_messageQueue.End(); - -+#if defined(TARGET_RASPBERRY_PI) -+ g_RBP.AdjustHDMIClock(1.0); -+#endif CLog::Log(LOGNOTICE, "Deleting audio codec"); if (m_pAudioCodec) { -@@ -475,9 +483,11 @@ void CDVDPlayerAudio::UpdatePlayerInfo() +@@ -475,9 +478,11 @@ void CDVDPlayerAudio::UpdatePlayerInfo() //print the inverse of the resample ratio, since that makes more sense //if the resample ratio is 0.5, then we're playing twice as fast if (m_synctype == SYNC_RESAMPLE) @@ -9240,7 +9265,7 @@ index 5e9a6d3..806aa1b 100644 s << ", att:" << fixed << setprecision(1) << log(GetCurrentAttenuation()) * 20.0f << " dB"; -@@ -651,6 +661,7 @@ void CDVDPlayerAudio::HandleSyncError(double duration) +@@ -651,6 +656,7 @@ void CDVDPlayerAudio::HandleSyncError(double duration) m_pClock->Update(clock+error, absolute, 0.0, "CDVDPlayerAudio::HandleSyncError1"); m_errors.Flush(); m_error = 0; @@ -9248,7 +9273,7 @@ index 5e9a6d3..806aa1b 100644 m_syncclock = false; return; -@@ -704,32 +715,18 @@ void CDVDPlayerAudio::HandleSyncError(double duration) +@@ -704,32 +710,18 @@ void CDVDPlayerAudio::HandleSyncError(double duration) proportional = m_error / DVD_TIME_BASE / proportionaldiv; } m_resampleratio = 1.0 / m_pClock->GetClockSpeed() + proportional + m_integral; @@ -9301,10 +9326,10 @@ index 02c64a0..37bf4bd 100644 struct SInfo { -From 39c78f921ce65d18078b301d73d917029492f46c Mon Sep 17 00:00:00 2001 +From 1eb3ba3c3ee3c6f6d920ecc68e8e168a85f9c196 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 12 Nov 2014 16:52:15 +0000 -Subject: [PATCH 80/93] MMAL: Use Component Logging +Subject: [PATCH 80/96] MMAL: Use Component Logging --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 5 ++--- @@ -9327,10 +9352,10 @@ index 5d65f4e..6742e0e 100644 m_speed = iSpeed; } -From 0f41124101913efeb5523475b4d57f03a5d173ec Mon Sep 17 00:00:00 2001 +From ed488363b57222a9bfece7c3375f3d043c097972 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:01:26 +0000 -Subject: [PATCH 81/93] squash: stills: avoid deferencing null packet +Subject: [PATCH 81/96] squash: stills: avoid deferencing null packet --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 9 +++++++-- @@ -9364,10 +9389,10 @@ index c22ea9f..af369c0 100644 // reset the request, the following while loop may break before // setting the flag to a new value -From c7552c924f39a590227b7ebf5f68c3ab23e54174 Mon Sep 17 00:00:00 2001 +From 3dec8a0a0b2a3ad1c458068b58c2470cec3f14e1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 82/93] [dvdplayer] Add lock for player creation +Subject: [PATCH 82/96] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -9413,10 +9438,10 @@ index ef64076..7ea6ea6 100644 + CCriticalSection m_players_lock; }; -From aaf2abd84adb86d76bac29b657efc7a6659e7a6e Mon Sep 17 00:00:00 2001 +From dafa705e90a068fe458693d2713a71823fbae982 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 17:14:58 +0000 -Subject: [PATCH 83/93] [omxplayer] Fix for out of sync after trickplay +Subject: [PATCH 83/96] [omxplayer] Fix for out of sync after trickplay --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 36 ++++++++++++++++++------------------ @@ -9477,10 +9502,10 @@ index a102012..6f5fc57 100644 else if (pMsg->IsType(CDVDMsg::PLAYER_CHANNEL_SELECT_NUMBER) && m_messenger.GetPacketCount(CDVDMsg::PLAYER_CHANNEL_SELECT_NUMBER) == 0) { -From 9a861ec3cb5f914374261ebff79f0c7f5467077d Mon Sep 17 00:00:00 2001 +From b14c066dcbd7da98f0ac6b56418d80d4d98e5fea Mon Sep 17 00:00:00 2001 From: arnova Date: Wed, 12 Nov 2014 18:30:54 +0100 -Subject: [PATCH 84/93] changed: Have CurlFile return m_bufferSize as chunksize +Subject: [PATCH 84/96] changed: Have CurlFile return m_bufferSize as chunksize --- xbmc/filesystem/CurlFile.h | 1 + @@ -9499,10 +9524,10 @@ index 1cc7bc3..2e32367 100644 bool Post(const std::string& strURL, const std::string& strPostData, std::string& strHTML); bool Get(const std::string& strURL, std::string& strHTML); -From 333824c1e43dbea80e90e06a16c4373f482dcb9f Mon Sep 17 00:00:00 2001 +From 177238bc70cb05dabf33ccb9db5911f22c98e3ab Mon Sep 17 00:00:00 2001 From: arnova Date: Thu, 13 Nov 2014 18:34:03 +0100 -Subject: [PATCH 85/93] changed: Rename confusing CSimpleDoubleCache class to +Subject: [PATCH 85/96] changed: Rename confusing CSimpleDoubleCache class to CDoubleCache --- @@ -9660,10 +9685,10 @@ index 50fe9b4..886621f 100644 m_seekPossible = 0; m_cacheFull = false; -From 44dadf435af3562a9bd663e602dea2fc43be9395 Mon Sep 17 00:00:00 2001 +From a268664b3d4932945acfc9424f7f4ef0f9a4b50e Mon Sep 17 00:00:00 2001 From: arnova Date: Tue, 11 Nov 2014 13:31:42 +0100 -Subject: [PATCH 86/93] fixed: FileCache-full logic was wrong + implement +Subject: [PATCH 86/96] fixed: FileCache-full logic was wrong + implement CanWriteToCache() function --- @@ -9865,10 +9890,10 @@ index 5574a5b..0031de3 100644 virtual int ReadFromCache(char *pBuffer, size_t iMaxSize) ; virtual int64_t WaitForData(unsigned int iMinAvail, unsigned int iMillis) ; -From f78976eeac3f103b29d3eef2b38ff92b8c337c9d Mon Sep 17 00:00:00 2001 +From dc17e5b3e51b0a7f930ab503efabccee07119fa7 Mon Sep 17 00:00:00 2001 From: arnova Date: Wed, 12 Nov 2014 19:26:29 +0100 -Subject: [PATCH 87/93] fixed: Don't keep reading source when cache is full +Subject: [PATCH 87/96] fixed: Don't keep reading source when cache is full (fixes #15500) --- @@ -9926,10 +9951,10 @@ index f1c2d6d..849f4b3 100644 int iTotalWrite=0; while (!m_bStop && (iTotalWrite < iRead)) -From 66be7b9ae0b2aa8e318f8113b215ff501da47a80 Mon Sep 17 00:00:00 2001 +From 73b8411ce9bd7002780ab810e1cdb64956229543 Mon Sep 17 00:00:00 2001 From: arnova Date: Wed, 12 Nov 2014 21:22:40 +0100 -Subject: [PATCH 88/93] changed: Use m_StateInput else dvdplayer osd info is 8 +Subject: [PATCH 88/96] changed: Use m_StateInput else dvdplayer osd info is 8 seconds delayed --- @@ -9969,10 +9994,10 @@ index 6f5fc57..4f15056 100644 strGeneralInfo = StringUtils::Format("C( ad:% 6.3f, a/v:% 6.3f%s, dcpu:%2i%% acpu:%2i%% vcpu:%2i%%%s )" -From dfe711619e8733365ced01ff2a113fa6e14ee7b3 Mon Sep 17 00:00:00 2001 +From a14b255858341d2275d708010d463dfa8718c355 Mon Sep 17 00:00:00 2001 From: arnova Date: Sun, 16 Nov 2014 15:35:20 +0100 -Subject: [PATCH 89/93] fixed: Calling WaitForData with full cache caused it to +Subject: [PATCH 89/96] fixed: Calling WaitForData with full cache caused it to always block the max. of 5 seconds --- @@ -9996,337 +10021,10 @@ index 1268095..f201c26 100644 WaitForData((size_t)(pos - m_cur), 5000); lock.Enter(); -From 7988110c81f8e7a11a09168132a8dab4c96aeebb Mon Sep 17 00:00:00 2001 -From: Memphiz -Date: Mon, 17 Nov 2014 09:13:36 +0100 -Subject: [PATCH 90/93] - fix premature close of pipe. It should only be closed - if refcount is zero - ---- - xbmc/filesystem/PipesManager.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/filesystem/PipesManager.cpp b/xbmc/filesystem/PipesManager.cpp -index 7389abf..e84fb08 100644 ---- a/xbmc/filesystem/PipesManager.cpp -+++ b/xbmc/filesystem/PipesManager.cpp -@@ -318,9 +318,9 @@ void PipesManager::ClosePipe(XFILE::Pipe *pipe) - return ; - - pipe->DecRef(); -- pipe->Close(); - if (pipe->RefCount() == 0) - { -+ pipe->Close(); - m_pipes.erase(pipe->GetName()); - delete pipe; - } - -From c3331217710cf0f350afa28c0551f272a3fc193c Mon Sep 17 00:00:00 2001 -From: montellese -Date: Sun, 16 Nov 2014 14:16:10 +0100 -Subject: [PATCH 91/93] video library: add the possibility to clean the - database in the background - ---- - xbmc/Application.cpp | 8 +++++++- - xbmc/settings/MediaSettings.cpp | 2 +- - xbmc/video/VideoInfoScanner.cpp | 36 ++++++++++++++++++++++++++++++++---- - xbmc/video/VideoInfoScanner.h | 1 + - 4 files changed, 41 insertions(+), 6 deletions(-) - -diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 21039d8..908d036 100644 ---- a/xbmc/Application.cpp -+++ b/xbmc/Application.cpp -@@ -5652,7 +5652,13 @@ void CApplication::StartVideoCleanup(bool userInitiated /* = true */) - if (m_videoInfoScanner->IsScanning()) - return; - -- m_videoInfoScanner->CleanDatabase(NULL, NULL, userInitiated); -+ if (userInitiated) -+ m_videoInfoScanner->CleanDatabase(NULL, NULL, true); -+ else -+ { -+ m_videoInfoScanner->ShowDialog(false); -+ m_videoInfoScanner->StartCleanDatabase(); -+ } - } - - void CApplication::StartVideoScan(const CStdString &strDirectory, bool userInitiated /* = true */, bool scanAll /* = false */) -diff --git a/xbmc/settings/MediaSettings.cpp b/xbmc/settings/MediaSettings.cpp -index 57d6ab4..6b29fe7 100644 ---- a/xbmc/settings/MediaSettings.cpp -+++ b/xbmc/settings/MediaSettings.cpp -@@ -336,7 +336,7 @@ void CMediaSettings::OnSettingAction(const CSetting *setting) - else if (settingId == "videolibrary.cleanup") - { - if (CGUIDialogYesNo::ShowAndGetInput(313, 333, 0, 0)) -- g_application.StartVideoCleanup(); -+ g_application.StartVideoCleanup(true); - } - else if (settingId == "videolibrary.export") - CBuiltins::Execute("exportlibrary(video)"); -diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp -index 0d0ad66..3eda0e0 100644 ---- a/xbmc/video/VideoInfoScanner.cpp -+++ b/xbmc/video/VideoInfoScanner.cpp -@@ -78,10 +78,6 @@ namespace VIDEO - { - try - { -- unsigned int tick = XbmcThreads::SystemClockMillis(); -- -- m_database.Open(); -- - if (m_showDialog && !CSettings::Get().GetBool("videolibrary.backgroundupdate")) - { - CGUIDialogExtendedProgressBar* dialog = -@@ -90,6 +86,24 @@ namespace VIDEO - m_handle = dialog->GetHandle(g_localizeStrings.Get(314)); - } - -+ // check if we only need to perform a cleaning -+ if (m_bClean && m_pathsToScan.empty()) -+ { -+ CleanDatabase(m_handle, NULL, false); -+ -+ if (m_handle) -+ m_handle->MarkFinished(); -+ m_handle = NULL; -+ -+ m_bRunning = false; -+ -+ return; -+ } -+ -+ unsigned int tick = XbmcThreads::SystemClockMillis(); -+ -+ m_database.Open(); -+ - m_bCanInterrupt = true; - - CLog::Log(LOGNOTICE, "VideoInfoScanner: Starting scan .."); -@@ -193,6 +207,20 @@ namespace VIDEO - m_bRunning = true; - } - -+ void CVideoInfoScanner::StartCleanDatabase() -+ { -+ m_strStartDir.clear(); -+ m_scanAll = false; -+ m_pathsToScan.clear(); -+ m_pathsToClean.clear(); -+ -+ m_bClean = true; -+ -+ StopThread(); -+ Create(); -+ m_bRunning = true; -+ } -+ - bool CVideoInfoScanner::IsScanning() - { - return m_bRunning; -diff --git a/xbmc/video/VideoInfoScanner.h b/xbmc/video/VideoInfoScanner.h -index 47d5ed4..a0f9d53 100644 ---- a/xbmc/video/VideoInfoScanner.h -+++ b/xbmc/video/VideoInfoScanner.h -@@ -59,6 +59,7 @@ namespace VIDEO - \param scanAll whether to scan everything not already scanned (regardless of whether the user normally doesn't want a folder scanned.) Defaults to false. - */ - void Start(const CStdString& strDirectory, bool scanAll = false); -+ void StartCleanDatabase(); - bool IsScanning(); - void CleanDatabase(CGUIDialogProgressBarHandle* handle=NULL, const std::set* paths=NULL, bool showProgress=true); - void Stop(); - -From 1e15299ce38a645b285578733cf4e71976e8020d Mon Sep 17 00:00:00 2001 -From: montellese -Date: Sun, 16 Nov 2014 15:58:00 +0100 -Subject: [PATCH 92/93] music library: add the possibility to clean the - database in the background - ---- - xbmc/Application.cpp | 14 +++++++++++ - xbmc/Application.h | 6 +++++ - xbmc/interfaces/Builtins.cpp | 8 +----- - xbmc/music/infoscanner/MusicInfoScanner.cpp | 38 ++++++++++++++++++++++++++++- - xbmc/music/infoscanner/MusicInfoScanner.h | 3 +++ - xbmc/settings/MediaSettings.cpp | 5 ++-- - 6 files changed, 63 insertions(+), 11 deletions(-) - -diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 908d036..9ccdbbc 100644 ---- a/xbmc/Application.cpp -+++ b/xbmc/Application.cpp -@@ -5671,6 +5671,20 @@ void CApplication::StartVideoScan(const CStdString &strDirectory, bool userIniti - m_videoInfoScanner->Start(strDirectory,scanAll); - } - -+void CApplication::StartMusicCleanup(bool userInitiated /* = true */) -+{ -+ if (m_musicInfoScanner->IsScanning()) -+ return; -+ -+ if (userInitiated) -+ m_musicInfoScanner->CleanDatabase(true); -+ else -+ { -+ m_musicInfoScanner->ShowDialog(false); -+ m_musicInfoScanner->StartCleanDatabase(); -+ } -+} -+ - void CApplication::StartMusicScan(const CStdString &strDirectory, bool userInitiated /* = true */, int flags /* = 0 */) - { - if (m_musicInfoScanner->IsScanning()) -diff --git a/xbmc/Application.h b/xbmc/Application.h -index fd8908a..15efc90 100644 ---- a/xbmc/Application.h -+++ b/xbmc/Application.h -@@ -260,6 +260,12 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs - void StartVideoScan(const CStdString &path, bool userInitiated = true, bool scanAll = false); - - /*! -+ \brief Starts a music library cleanup. -+ \param userInitiated Whether the action was initiated by the user (either via GUI or any other method) or not. It is meant to hide or show dialogs. -+ */ -+ void StartMusicCleanup(bool userInitiated = true); -+ -+ /*! - \brief Starts a music library update. - \param path The path to scan or "" (empty string) for a global scan. - \param userInitiated Whether the action was initiated by the user (either via GUI or any other method) or not. It is meant to hide or show dialogs. -diff --git a/xbmc/interfaces/Builtins.cpp b/xbmc/interfaces/Builtins.cpp -index ba3052c..d99f047 100644 ---- a/xbmc/interfaces/Builtins.cpp -+++ b/xbmc/interfaces/Builtins.cpp -@@ -1470,13 +1470,7 @@ int CBuiltins::Execute(const std::string& execString) - else if (StringUtils::EqualsNoCase(params[0], "music")) - { - if (!g_application.IsMusicScanning()) -- { -- CMusicDatabase musicdatabase; -- -- musicdatabase.Open(); -- musicdatabase.Cleanup(userInitiated); -- musicdatabase.Close(); -- } -+ g_application.StartMusicCleanup(userInitiated); - else - CLog::Log(LOGERROR, "CleanLibrary is not possible while scanning for media info"); - } -diff --git a/xbmc/music/infoscanner/MusicInfoScanner.cpp b/xbmc/music/infoscanner/MusicInfoScanner.cpp -index 5e39b73..38fe565 100644 ---- a/xbmc/music/infoscanner/MusicInfoScanner.cpp -+++ b/xbmc/music/infoscanner/MusicInfoScanner.cpp -@@ -82,6 +82,14 @@ void CMusicInfoScanner::Process() - ANNOUNCEMENT::CAnnouncementManager::Get().Announce(ANNOUNCEMENT::AudioLibrary, "xbmc", "OnScanStarted"); - try - { -+ if (m_bClean) -+ { -+ CleanDatabase(false); -+ m_bRunning = false; -+ -+ return; -+ } -+ - unsigned int tick = XbmcThreads::SystemClockMillis(); - - m_musicDatabase.Open(); -@@ -94,6 +102,8 @@ void CMusicInfoScanner::Process() - m_handle = dialog->GetHandle(g_localizeStrings.Get(314)); - } - -+ m_bClean = g_advancedSettings.m_bMusicLibraryCleanOnUpdate; -+ - m_bCanInterrupt = true; - - if (m_scanType == 0) // load info from files -@@ -267,7 +277,21 @@ void CMusicInfoScanner::Start(const CStdString& strDirectory, int flags) - } - else - m_pathsToScan.insert(strDirectory); -- m_bClean = g_advancedSettings.m_bMusicLibraryCleanOnUpdate; -+ m_bClean = false; -+ -+ m_scanType = 0; -+ Create(); -+ m_bRunning = true; -+} -+ -+void CMusicInfoScanner::StartCleanDatabase() -+{ -+ m_fileCountReader.StopThread(); -+ StopThread(); -+ m_pathsToScan.clear(); -+ m_seenPaths.clear(); -+ m_flags = SCAN_BACKGROUND; -+ m_bClean = true; - - m_scanType = 0; - Create(); -@@ -375,6 +399,18 @@ void CMusicInfoScanner::Stop() - StopThread(false); - } - -+void CMusicInfoScanner::CleanDatabase(bool showProgress /* = true */) -+{ -+ CMusicDatabase musicdatabase; -+ if (!musicdatabase.Open()) -+ return; -+ -+ musicdatabase.Cleanup(showProgress); -+ musicdatabase.Close(); -+ -+ CUtil::DeleteMusicDatabaseDirectoryCache(); -+} -+ - static void OnDirectoryScanned(const CStdString& strDirectory) - { - CGUIMessage msg(GUI_MSG_DIRECTORY_SCANNED, 0, 0, 0); -diff --git a/xbmc/music/infoscanner/MusicInfoScanner.h b/xbmc/music/infoscanner/MusicInfoScanner.h -index b7bfd1f..658d01c 100644 ---- a/xbmc/music/infoscanner/MusicInfoScanner.h -+++ b/xbmc/music/infoscanner/MusicInfoScanner.h -@@ -55,11 +55,14 @@ class CMusicInfoScanner : CThread, public IRunnable - virtual ~CMusicInfoScanner(); - - void Start(const CStdString& strDirectory, int flags); -+ void StartCleanDatabase(); - void FetchAlbumInfo(const CStdString& strDirectory, bool refresh=false); - void FetchArtistInfo(const CStdString& strDirectory, bool refresh=false); - bool IsScanning(); - void Stop(); - -+ void CleanDatabase(bool showProgress = true); -+ - //! \brief Set whether or not to show a progress dialog - void ShowDialog(bool show) { m_showDialog = show; } - -diff --git a/xbmc/settings/MediaSettings.cpp b/xbmc/settings/MediaSettings.cpp -index 6b29fe7..973edba 100644 ---- a/xbmc/settings/MediaSettings.cpp -+++ b/xbmc/settings/MediaSettings.cpp -@@ -314,9 +314,8 @@ void CMediaSettings::OnSettingAction(const CSetting *setting) - } - else if (settingId == "musiclibrary.cleanup") - { -- CMusicDatabase musicdatabase; -- musicdatabase.Clean(); -- CUtil::DeleteMusicDatabaseDirectoryCache(); -+ if (CGUIDialogYesNo::ShowAndGetInput(313, 333, 0, 0)) -+ g_application.StartMusicCleanup(true); - } - else if (settingId == "musiclibrary.export") - CBuiltins::Execute("exportlibrary(music)"); - -From 1edd176c5dfbcfa2369127c6814602812d9e3071 Mon Sep 17 00:00:00 2001 +From a7ed8aa54cbb498cb2ec70b861b969f4627d40ed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 18 Nov 2014 18:53:42 +0000 -Subject: [PATCH 93/93] [omxplayer] Fix for EAC3 passthrough +Subject: [PATCH 90/96] [omxplayer] Fix for EAC3 passthrough The Pi firmware supports EAC3 passthrough okay, but we weren't correctly enabling support. See: https://github.com/OpenELEC/OpenELEC.tv/issues/3302 @@ -10336,7 +10034,7 @@ See: https://github.com/OpenELEC/OpenELEC.tv/issues/3302 2 files changed, 6 insertions(+) diff --git a/xbmc/cores/omxplayer/OMXAudio.h b/xbmc/cores/omxplayer/OMXAudio.h -index f014364..c7cf65e 100644 +index 3ff959f..569cb09 100644 --- a/xbmc/cores/omxplayer/OMXAudio.h +++ b/xbmc/cores/omxplayer/OMXAudio.h @@ -48,6 +48,7 @@ extern "C" { @@ -10363,3 +10061,415 @@ index f2bb9a2..d305a07 100644 if(hints.codec == AV_CODEC_ID_DTS && CAEFactory::SupportsRaw(AE_FMT_DTS, hints.samplerate) && !CSettings::Get().GetBool("audiooutput.dualaudio")) { dataFormat = AE_FMT_DTS; + +From a46ca6afdb5d9220bc1836a0e313c747040b3ebb Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 19 Nov 2014 13:29:43 +0000 +Subject: [PATCH 91/96] [dvdplayeraudio] Add advancedsetting for configuring + max pll adjustment + +--- + xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 8 +++++--- + xbmc/settings/AdvancedSettings.cpp | 2 ++ + xbmc/settings/AdvancedSettings.h | 1 + + 3 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +index 3e6d0ee..a1b6f4d 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp ++++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +@@ -25,6 +25,7 @@ + #include "DVDCodecs/DVDCodecs.h" + #include "DVDCodecs/DVDFactoryCodec.h" + #include "settings/Settings.h" ++#include "settings/AdvancedSettings.h" + #include "video/VideoReferenceClock.h" + #include "utils/log.h" + #include "utils/TimeUtils.h" +@@ -715,10 +716,11 @@ void CDVDPlayerAudio::HandleSyncError(double duration) + else if (m_synctype == SYNC_PLLADJUST) + { + #if defined(TARGET_RASPBERRY_PI) +- double e = std::max(std::min(m_error, DVD_MSEC_TO_TIME(10)), -DVD_MSEC_TO_TIME(10)); +- m_plladjust = 1.0 + e * 1.5e-8; ++ double e = std::max(std::min(m_error / DVD_MSEC_TO_TIME(10), 1.0), -1.0); ++ double adjust = g_advancedSettings.m_maxPllAdjust * 1e-6; ++ m_plladjust = 1.0 + e * adjust; + m_last_plladjust = g_RBP.AdjustHDMIClock(m_plladjust); +- CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s pll:%.5f (%.5f) error:%.6f e:%.6f", __FUNCTION__, m_plladjust, m_last_plladjust, m_error, e * 1.5e-8 ); ++ CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s pll:%.5f (%.5f) error:%.6f e:%.6f a:%f", __FUNCTION__, m_plladjust, m_last_plladjust, m_error, e * adjust, adjust ); + #endif + } + m_last_error = m_error; +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index 852c70d..4c29c57 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -108,6 +108,7 @@ void CAdvancedSettings::Initialize() + + m_audioHeadRoom = 0; + m_ac3Gain = 12.0f; ++ m_maxPllAdjust = 300; + m_audioApplyDrc = true; + m_dvdplayerIgnoreDTSinWAV = false; + +@@ -479,6 +480,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) + if (pElement) + { + XMLUtils::GetFloat(pElement, "ac3downmixgain", m_ac3Gain, -96.0f, 96.0f); ++ XMLUtils::GetInt(pElement, "maxplladjust", m_maxPllAdjust, 0, 1000000); + XMLUtils::GetInt(pElement, "headroom", m_audioHeadRoom, 0, 12); + XMLUtils::GetString(pElement, "defaultplayer", m_audioDefaultPlayer); + // 101 on purpose - can be used to never automark as watched +diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h +index 7df586e..6d25b81 100644 +--- a/xbmc/settings/AdvancedSettings.h ++++ b/xbmc/settings/AdvancedSettings.h +@@ -137,6 +137,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler + + int m_audioHeadRoom; + float m_ac3Gain; ++ int m_maxPllAdjust; + CStdString m_audioDefaultPlayer; + float m_audioPlayCountMinimumPercent; + bool m_dvdplayerIgnoreDTSinWAV; + +From e8b7dfc741095035b0b32b51a0aa6f595df24fcf Mon Sep 17 00:00:00 2001 +From: Rainer Hochecker +Date: Wed, 19 Nov 2014 14:22:01 +0100 +Subject: [PATCH 92/96] dvdplayer: fix audio error at beginning of playback + +--- + xbmc/cores/dvdplayer/DVDAudio.cpp | 90 ++++++--------------------------- + xbmc/cores/dvdplayer/DVDAudio.h | 18 +------ + xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 + + xbmc/cores/dvdplayer/DVDPlayerAudio.h | 1 - + 4 files changed, 19 insertions(+), 92 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDAudio.cpp b/xbmc/cores/dvdplayer/DVDAudio.cpp +index 6514030..e1f8474 100644 +--- a/xbmc/cores/dvdplayer/DVDAudio.cpp ++++ b/xbmc/cores/dvdplayer/DVDAudio.cpp +@@ -31,66 +31,6 @@ + using namespace std; + + +-CPTSOutputQueue::CPTSOutputQueue() +-{ +- Flush(); +-} +- +-void CPTSOutputQueue::Add(double pts, double delay, double duration, double timestamp) +-{ +- CSingleLock lock(m_sync); +- +- // don't accept a re-add, since that would cause time moving back +- double last = m_queue.empty() ? m_current.pts : m_queue.back().pts; +- if(last == pts) +- return; +- +- TPTSItem item; +- item.pts = pts; +- item.timestamp = timestamp + delay; +- item.duration = duration; +- +- // first one is applied directly +- if(m_queue.empty() && m_current.pts == DVD_NOPTS_VALUE) +- m_current = item; +- else +- m_queue.push(item); +- +- // call function to make sure the queue +- // doesn't grow should nobody call it +- Current(timestamp); +-} +-void CPTSOutputQueue::Flush() +-{ +- CSingleLock lock(m_sync); +- +- while( !m_queue.empty() ) m_queue.pop(); +- m_current.pts = DVD_NOPTS_VALUE; +- m_current.timestamp = 0.0; +- m_current.duration = 0.0; +-} +- +-double CPTSOutputQueue::Current(double timestamp) +-{ +- CSingleLock lock(m_sync); +- +- if(!m_queue.empty() && m_current.pts == DVD_NOPTS_VALUE) +- { +- m_current = m_queue.front(); +- m_queue.pop(); +- } +- +- while( !m_queue.empty() && timestamp >= m_queue.front().timestamp ) +- { +- m_current = m_queue.front(); +- m_queue.pop(); +- } +- +- if( m_current.timestamp == 0 ) return m_current.pts; +- +- return m_current.pts + min(m_current.duration, (timestamp - m_current.timestamp)); +-} +- + CDVDAudio::CDVDAudio(volatile bool &bStop) + : m_bStop(bStop) + { +@@ -160,13 +100,16 @@ void CDVDAudio::Destroy() + m_iBitsPerSample = 0; + m_bPassthrough = false; + m_bPaused = true; +- m_time.Flush(); ++ m_playingPts = DVD_NOPTS_VALUE; + } + + unsigned int CDVDAudio::AddPackets(const DVDAudioFrame &audioframe) + { + CSingleLock lock (m_critSection); + ++ m_playingPts = audioframe.pts - GetDelay(); ++ m_timeOfPts = CDVDClock::GetAbsoluteClock(); ++ + if(!m_pAudioStream) + return 0; + +@@ -198,11 +141,6 @@ unsigned int CDVDAudio::AddPackets(const DVDAudioFrame &audioframe) + lock.Enter(); + } while (!m_bStop); + +- double time_added = DVD_SEC_TO_TIME(m_SecondsPerByte * audioframe.nb_frames * audioframe.framesize); +- double delay = GetDelay(); +- double timestamp = CDVDClock::GetAbsoluteClock(); +- m_time.Add(audioframe.pts, delay - time_added, audioframe.duration, timestamp); +- + return total - frames; + } + +@@ -246,8 +184,9 @@ float CDVDAudio::GetCurrentAttenuation() + void CDVDAudio::Pause() + { + CSingleLock lock (m_critSection); +- if (m_pAudioStream) m_pAudioStream->Pause(); +- m_time.Flush(); ++ if (m_pAudioStream) ++ m_pAudioStream->Pause(); ++ m_playingPts = DVD_NOPTS_VALUE; + } + + void CDVDAudio::Resume() +@@ -275,7 +214,7 @@ void CDVDAudio::Flush() + { + m_pAudioStream->Flush(); + } +- m_time.Flush(); ++ m_playingPts = DVD_NOPTS_VALUE; + } + + bool CDVDAudio::IsValidFormat(const DVDAudioFrame &audioframe) +@@ -325,14 +264,15 @@ double CDVDAudio::GetCacheTotal() + + void CDVDAudio::SetPlayingPts(double pts) + { +- CSingleLock lock (m_critSection); +- m_time.Flush(); +- double delay = GetDelay(); +- double timestamp = CDVDClock::GetAbsoluteClock(); +- m_time.Add(pts, delay, 0, timestamp); ++ CSingleLock lock(m_critSection); ++ m_playingPts = pts - GetDelay(); ++ m_timeOfPts = CDVDClock::GetAbsoluteClock(); + } + + double CDVDAudio::GetPlayingPts() + { +- return m_time.Current(CDVDClock::GetAbsoluteClock()); ++ if (m_playingPts == DVD_NOPTS_VALUE) ++ return 0.0; ++ ++ return m_playingPts + CDVDClock::GetAbsoluteClock() - m_timeOfPts; + } +diff --git a/xbmc/cores/dvdplayer/DVDAudio.h b/xbmc/cores/dvdplayer/DVDAudio.h +index 629fb32..057a40a 100644 +--- a/xbmc/cores/dvdplayer/DVDAudio.h ++++ b/xbmc/cores/dvdplayer/DVDAudio.h +@@ -36,21 +36,6 @@ extern "C" { + + typedef struct stDVDAudioFrame DVDAudioFrame; + +-class CPTSOutputQueue +-{ +-private: +- typedef struct {double pts; double timestamp; double duration;} TPTSItem; +- TPTSItem m_current; +- std::queue m_queue; +- CCriticalSection m_sync; +- +-public: +- CPTSOutputQueue(); +- void Add(double pts, double delay, double duration, double timestamp); +- void Flush(); +- double Current(double timestamp); +-}; +- + class CSingleLock; + + class CDVDAudio +@@ -82,7 +67,8 @@ class CDVDAudio + + IAEStream *m_pAudioStream; + protected: +- CPTSOutputQueue m_time; ++ double m_playingPts; ++ double m_timeOfPts; + CCriticalSection m_critSection; + + int m_iBitrate; +diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +index a1b6f4d..36f70e8 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp ++++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +@@ -650,6 +650,8 @@ void CDVDPlayerAudio::HandleSyncError(double duration) + double error = m_dvdAudio.GetPlayingPts() - clock; + EMasterClock master = m_pClock->GetMaster(); + ++ CLog::Log(LOGNOTICE, "---------------- error: %f", error/1000); ++ + if( (fabs(error) > DVD_MSEC_TO_TIME(100) || m_syncclock) + && (master == MASTER_CLOCK_AUDIO + || master == MASTER_CLOCK_AUDIO_VIDEOREF) ) +diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.h b/xbmc/cores/dvdplayer/DVDPlayerAudio.h +index 37bf4bd..f9f19bc 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.h ++++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.h +@@ -134,7 +134,6 @@ class CDVDPlayerAudio : public CThread, public IDVDStreamPlayerAudio + // holds stream information for current playing stream + CDVDStreamInfo m_streaminfo; + +- CPTSOutputQueue m_ptsOutput; + CPTSInputQueue m_ptsInput; + + double GetCurrentPts() { CSingleLock lock(m_info_section); return m_info.pts; } + +From 4441290e4181111b8eb37938dae87cd36cf6c0dc Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 19 Nov 2014 16:00:24 +0000 +Subject: [PATCH 93/96] [dvdplayer] Fix for video ref clock not being enabled + when requested + +The point in the code where g_VideoReferenceClock.GetRefreshRate() is read may return -1 when HDMI refresh is changing, +resulting in video ref clock being disabled. Use videoplayer.usedisplayasclock instead +--- + xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp +index 4f15056..dbc97b3 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp ++++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp +@@ -3391,7 +3391,7 @@ void CDVDPlayer::UpdateClockMaster() + EMasterClock clock; + if(m_CurrentAudio.id >= 0) + { +- if(m_CurrentVideo.id >= 0 && g_VideoReferenceClock.GetRefreshRate() > 0) ++ if(m_CurrentVideo.id >= 0 && CSettings::Get().GetBool("videoplayer.usedisplayasclock")) + clock = MASTER_CLOCK_AUDIO_VIDEOREF; + else + clock = MASTER_CLOCK_AUDIO; + +From 90841f742586c83834ecde613c5df800e816c682 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 19 Nov 2014 17:35:44 +0000 +Subject: [PATCH 94/96] [mmalrender] Skip some log message in bypass mode + +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index 03a05de..c0ff30d 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -298,6 +298,9 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) + + void CMMALRenderer::ReleaseBuffer(int idx) + { ++ if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) ++ return; ++ + #if defined(MMAL_DEBUG_VERBOSE) + CLog::Log(LOGDEBUG, "%s::%s - %d", CLASSNAME, __func__, idx); + #endif +@@ -366,13 +369,13 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + + void CMMALRenderer::FlipPage(int source) + { ++ if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) ++ return; ++ + #if defined(MMAL_DEBUG_VERBOSE) + CLog::Log(LOGDEBUG, "%s::%s - %d", CLASSNAME, __func__, source); + #endif + +- if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) +- return; +- + YUVBUFFER *buffer = &m_buffers[source]; + // we only want to upload frames once + if (buffer->flipindex++) + +From b1b3b79b2dfd39574fb9fe6dcbc3c2e4cf7077cc Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 19 Nov 2014 20:36:56 +0000 +Subject: [PATCH 95/96] scraper: Fix for losing infotags when artwork grab + fails suggested by menakite + +--- + xbmc/addons/Scraper.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/xbmc/addons/Scraper.cpp b/xbmc/addons/Scraper.cpp +index 36865ac..d430f15 100644 +--- a/xbmc/addons/Scraper.cpp ++++ b/xbmc/addons/Scraper.cpp +@@ -931,7 +931,6 @@ bool CScraper::GetArt(XFILE::CCurlFile &fcurl, const std::string &id, CVideoInfo + "(file: '%s', content: '%s', version: '%s')", __FUNCTION__, id.c_str(), Name().c_str(), Path().c_str(), + ADDON::TranslateContent(Content()).c_str(), Version().asString().c_str()); + +- video.Reset(); + vector vcsIn; + CScraperUrl scurl; + vcsIn.push_back(id); +@@ -956,6 +955,8 @@ bool CScraper::GetArt(XFILE::CCurlFile &fcurl, const std::string &id, CVideoInfo + CLog::Log(LOGERROR, "%s: Invalid XML file (want
)", __FUNCTION__); + continue; + } ++ if (!fRet) ++ video.Reset(); + video.Load(pxeDetails, true/*fChain*/); + fRet = true; // but don't exit in case of chaining + } + +From a815b2f685515f3669f33d842421dbaad278def8 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 19 Nov 2014 20:57:10 +0000 +Subject: [PATCH 96/96] [dvdplayeraudio] Remove logging message + +--- + xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +index 36f70e8..fcd2e88 100644 +--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp ++++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +@@ -650,7 +650,7 @@ void CDVDPlayerAudio::HandleSyncError(double duration) + double error = m_dvdAudio.GetPlayingPts() - clock; + EMasterClock master = m_pClock->GetMaster(); + +- CLog::Log(LOGNOTICE, "---------------- error: %f", error/1000); ++ //CLog::Log(LOGNOTICE, "---------------- error: %f playingpts:%f clock:%f", error/1000, m_dvdAudio.GetPlayingPts()*1e-6, clock*1e-6); + + if( (fabs(error) > DVD_MSEC_TO_TIME(100) || m_syncclock) + && (master == MASTER_CLOCK_AUDIO