From ee9b7467f2a5da9106a11bc9dc7a855d0df82c54 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 13 Mar 2015 19:15:45 +0100 Subject: [PATCH] projects/RPi*/patches/kodi: update RPi support patch Signed-off-by: Stephan Raue --- .../kodi/kodi-001-helix_rpb_backports.patch | 720 ++++++++++++++---- .../kodi/kodi-001-helix_rpb_backports.patch | 720 ++++++++++++++---- 2 files changed, 1164 insertions(+), 276 deletions(-) diff --git a/projects/RPi/patches/kodi/kodi-001-helix_rpb_backports.patch b/projects/RPi/patches/kodi/kodi-001-helix_rpb_backports.patch index c35a3b0983..f83caae856 100644 --- a/projects/RPi/patches/kodi/kodi-001-helix_rpb_backports.patch +++ b/projects/RPi/patches/kodi/kodi-001-helix_rpb_backports.patch @@ -1,7 +1,7 @@ -From dde30eb9bfceb3e1160778da78f9454f4a420c60 Mon Sep 17 00:00:00 2001 +From f23ab1d1d44d079e1b717443fae9d203adb94010 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 01/61] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/70] [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 ec789b4201894bb0853901c8dfdb47cbf4050f4d Mon Sep 17 00:00:00 2001 +From 2b03dcb437676c2c1dd6f3140c35fc59dc25c0fe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 02/61] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 02/70] [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 a386d39840eab40ee600b0e4a013d8460c73aac0 Mon Sep 17 00:00:00 2001 +From 7ab9100836aa39a979f228d1c65c764d6a4a236a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH 03/61] [omx] Report decoded image name +Subject: [PATCH 03/70] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -136,10 +136,10 @@ index aa413b9..22ec3f0 100644 else { -From 66aca8521dba22df0f955c60e44f31e15e52c503 Mon Sep 17 00:00:00 2001 +From b44ea5962fc3c4bf3db0ea0e85f190dea4792a94 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 04/61] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 04/70] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -162,10 +162,10 @@ index df50940..2d853d6 100644 info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From 8f1504b250c22778df7115c08e44fa4602c8b21e Mon Sep 17 00:00:00 2001 +From 8fcc5ff411027c181debffdb187e8c43f165c7d7 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 11 Dec 2013 17:21:54 +0000 -Subject: [PATCH 05/61] Move the reference-counting of Begin and End calls from +Subject: [PATCH 05/70] Move the reference-counting of Begin and End calls from DX and GL source files into GUIFontTTF.cpp. --- @@ -553,10 +553,10 @@ index c0bb53a..735fb3a 100644 protected: virtual CBaseTexture* ReallocTexture(unsigned int& newHeight); -From 441db2d2d13756a3c7c7a952ee3e48193bfcc06f Mon Sep 17 00:00:00 2001 +From 0ab1240b777cd494c035f444d989b592050e1633 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 11 Dec 2013 18:47:54 +0000 -Subject: [PATCH 06/61] Convert CGUIFontTTFBase::m_vertex to be managed as a +Subject: [PATCH 06/70] Convert CGUIFontTTFBase::m_vertex to be managed as a std::vector. Also retired CGUIFontTTFBase::m_vertex_count and @@ -736,10 +736,10 @@ index 97853fd..b76c6a5 100644 *vertices++ = m_vertex[i]; *vertices++ = m_vertex[i+1]; -From 92f333f71132eeda5a93bf0efe4c3e95f4e334ef Mon Sep 17 00:00:00 2001 +From 4723d7e5623eba5b742fcb03a5ba3cd1f11c19f7 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 16 Dec 2013 18:58:12 +0000 -Subject: [PATCH 07/61] CGUIFontTTFBase::RenderCharacter can now append to +Subject: [PATCH 07/70] CGUIFontTTFBase::RenderCharacter can now append to arbitrary vectors of vertices rather than only CGUIFontTTFBase::m_vertex --- @@ -812,10 +812,10 @@ index 5675725..a5d44f4 100644 virtual CBaseTexture* ReallocTexture(unsigned int& newHeight) = 0; -From 74a2b63b9dc70665bb3944c589b509b8a801aeb6 Mon Sep 17 00:00:00 2001 +From 9ed78d0a66024e5a9089453beeb3cebc3d0eef77 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 17:18:38 +0000 -Subject: [PATCH 08/61] Add a cache of font glyph bounding box vertices. +Subject: [PATCH 08/70] 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 @@ -823,8 +823,8 @@ have a GLES or non-GLES backend, and for GLES, whether or not the currently applicable transformation matrices permit the use of hardware clipping. --- Kodi.xcodeproj/project.pbxproj | 10 ++ - project/VS2010Express/XBMC.vcxproj | 4 +- - project/VS2010Express/XBMC.vcxproj.filters | 8 +- + project/VS2010Express/XBMC.vcxproj | 2 + + project/VS2010Express/XBMC.vcxproj.filters | 6 + xbmc/guilib/GUIFontCache.cpp | 105 ++++++++++++++ xbmc/guilib/GUIFontCache.h | 217 +++++++++++++++++++++++++++++ xbmc/guilib/GUIFontTTF.cpp | 181 +++++++++++++----------- @@ -833,12 +833,12 @@ applicable transformation matrices permit the use of hardware clipping. xbmc/guilib/GraphicContext.h | 1 + xbmc/guilib/Makefile.in | 1 + xbmc/guilib/TransformMatrix.h | 11 ++ - 11 files changed, 458 insertions(+), 86 deletions(-) + 11 files changed, 456 insertions(+), 84 deletions(-) create mode 100644 xbmc/guilib/GUIFontCache.cpp create mode 100644 xbmc/guilib/GUIFontCache.h diff --git a/Kodi.xcodeproj/project.pbxproj b/Kodi.xcodeproj/project.pbxproj -index 6dd3cf2..1f04a0b 100644 +index a9ecd08..6d42c1c 100644 --- a/Kodi.xcodeproj/project.pbxproj +++ b/Kodi.xcodeproj/project.pbxproj @@ -168,6 +168,9 @@ @@ -851,7 +851,7 @@ index 6dd3cf2..1f04a0b 100644 32C631281423A90F00F18420 /* JpegIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32C631261423A90F00F18420 /* JpegIO.cpp */; }; 36A9443D15821E2800727135 /* DatabaseUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 36A9443B15821E2800727135 /* DatabaseUtils.cpp */; }; 36A9444115821E7C00727135 /* SortUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 36A9443F15821E7C00727135 /* SortUtils.cpp */; }; -@@ -4018,6 +4021,8 @@ +@@ -4021,6 +4024,8 @@ 1DAFDB7B16DFDCA7007F8C68 /* PeripheralBusCEC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeripheralBusCEC.h; sourceTree = ""; }; 1DE0443315828F4B005DDB4D /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Exception.cpp; path = commons/Exception.cpp; sourceTree = ""; }; 1DE0443415828F4B005DDB4D /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Exception.h; path = commons/Exception.h; sourceTree = ""; }; @@ -860,7 +860,7 @@ index 6dd3cf2..1f04a0b 100644 32C631261423A90F00F18420 /* JpegIO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JpegIO.cpp; sourceTree = ""; }; 32C631271423A90F00F18420 /* JpegIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JpegIO.h; sourceTree = ""; }; 36A9443B15821E2800727135 /* DatabaseUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseUtils.cpp; sourceTree = ""; }; -@@ -6532,6 +6537,8 @@ +@@ -6537,6 +6542,8 @@ 18B7C7101294222D009E7A26 /* GUIFixedListContainer.h */, 18B7C76B1294222E009E7A26 /* GUIFont.cpp */, 18B7C7111294222D009E7A26 /* GUIFont.h */, @@ -869,7 +869,7 @@ index 6dd3cf2..1f04a0b 100644 18B7C76C1294222E009E7A26 /* GUIFontManager.cpp */, 18B7C7121294222D009E7A26 /* GUIFontManager.h */, 18B7C76D1294222E009E7A26 /* GUIFontTTF.cpp */, -@@ -11038,6 +11045,7 @@ +@@ -11045,6 +11052,7 @@ 7C5608C70F1754930056433A /* ExternalPlayer.cpp in Sources */, F584E12E0F257C5100DB26A5 /* HTTPDirectory.cpp in Sources */, F54C51D20F1E783200D46E3C /* GUIDialogKaraokeSongSelector.cpp in Sources */, @@ -877,7 +877,7 @@ index 6dd3cf2..1f04a0b 100644 F54C51D50F1E784800D46E3C /* karaokelyricscdg.cpp in Sources */, F54C51D80F1E785700D46E3C /* karaokelyrics.cpp in Sources */, F54C51E50F1E787700D46E3C /* karaokelyricstextkar.cpp in Sources */, -@@ -12712,6 +12720,7 @@ +@@ -12721,6 +12729,7 @@ DFF0F45B17528350002DA3A4 /* Control.cpp in Sources */, DFF0F45C17528350002DA3A4 /* Dialog.cpp in Sources */, DFF0F45D17528350002DA3A4 /* File.cpp in Sources */, @@ -885,7 +885,7 @@ index 6dd3cf2..1f04a0b 100644 DFF0F45E17528350002DA3A4 /* InfoTagMusic.cpp in Sources */, DFF0F45F17528350002DA3A4 /* InfoTagVideo.cpp in Sources */, DFF0F46017528350002DA3A4 /* Keyboard.cpp in Sources */, -@@ -13507,6 +13516,7 @@ +@@ -13517,6 +13526,7 @@ E499131D174E5DAD00741B6D /* GUIVisualisationControl.cpp in Sources */, E499131E174E5DAD00741B6D /* GUIWindow.cpp in Sources */, E499131F174E5DAD00741B6D /* GUIWindowManager.cpp in Sources */, @@ -893,6 +893,50 @@ index 6dd3cf2..1f04a0b 100644 E4991320174E5DAD00741B6D /* GUIWrappingListContainer.cpp in Sources */, E4991321174E5DAD00741B6D /* imagefactory.cpp in Sources */, E4991322174E5DAD00741B6D /* IWindowManagerCallback.cpp in Sources */, +diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj +index 5dd6967..86b983c 100644 +--- a/project/VS2010Express/XBMC.vcxproj ++++ b/project/VS2010Express/XBMC.vcxproj +@@ -427,6 +427,7 @@ + + + ++ + + + +@@ -1754,6 +1755,7 @@ + + + ++ + + + +diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters +index 58d782a..3f937de 100644 +--- a/project/VS2010Express/XBMC.vcxproj.filters ++++ b/project/VS2010Express/XBMC.vcxproj.filters +@@ -994,6 +994,9 @@ + + guilib + ++ ++ guilib ++ + + guilib + +@@ -3900,6 +3903,9 @@ + + guilib + ++ ++ guilib ++ + + guilib + diff --git a/xbmc/guilib/GUIFontCache.cpp b/xbmc/guilib/GUIFontCache.cpp new file mode 100644 index 0000000..2c72f9c @@ -1531,10 +1575,10 @@ index f351c99..9036ba9 100644 + return !operator==(a, b); +} -From 0ad4af9bc0a131a5f75af68a6f375300a79dc50a Mon Sep 17 00:00:00 2001 +From e4bbc736884bd365ad96164a2f7876a6f3d87b1a Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 23 Jan 2014 22:24:17 +0000 -Subject: [PATCH 09/61] Lay the groundwork for hardware clipping. +Subject: [PATCH 09/70] 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 @@ -1796,10 +1840,10 @@ index 98e398a..81ee49e 100644 virtual void ResetScissors(); -From e5812aee3483744b42f7c98043261153d2a0ae22 Mon Sep 17 00:00:00 2001 +From 70e40bccbc6544aab22794e444b7d977646b8cbb Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 23 Jan 2014 16:42:22 +0000 -Subject: [PATCH 10/61] Increase font cache hit rate by keying on the +Subject: [PATCH 10/70] 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 @@ -2000,10 +2044,10 @@ index 3b93672..258dffa 100644 private: virtual bool FirstBegin() = 0; -From 34e167b49c1a081d42dd6ebac1011f5776671acc Mon Sep 17 00:00:00 2001 +From adf68d8d211269893bb578d05ac512ea3977f4ca Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 8 Jan 2014 12:16:33 +0000 -Subject: [PATCH 11/61] Rewrite of scrolling text code. +Subject: [PATCH 11/70] 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 @@ -2319,10 +2363,10 @@ index 2cda726..fbc579e 100644 private: void Process(); -From f7e99d8c6f5ecbd7eeecf26462d68a8b5e32fbd9 Mon Sep 17 00:00:00 2001 +From fe43cfbba06400515c04e40d3417acc53d858aea Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 27 Jan 2014 23:21:10 +0000 -Subject: [PATCH 12/61] Move the application of the translation offsets into +Subject: [PATCH 12/70] 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 @@ -2516,10 +2560,10 @@ index 9935ea4..18c9358 100644 memset(newTexture->GetPixels(), 0, m_textureHeight * newTexture->GetPitch()); if (m_texture) -From bf796b3c9edd178fe1fd15b7337045d81a33b3d7 Mon Sep 17 00:00:00 2001 +From 1b8a082fd54c36fa595026505eaa78a4c5993f46 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 15:28:06 +0000 -Subject: [PATCH 13/61] Rather than applying the translation offsets to the +Subject: [PATCH 13/70] 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. @@ -2663,10 +2707,10 @@ index 81ee49e..d2f9cd1 100644 protected: virtual void SetVSyncImpl(bool enable) = 0; -From 504eab137cb13388fe90c71594984572196643d7 Mon Sep 17 00:00:00 2001 +From 40534da563b7a9699efc30fd1a35acef503a11cc Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 29 Jan 2014 13:21:19 +0000 -Subject: [PATCH 14/61] Enable hardware clipping. +Subject: [PATCH 14/70] Enable hardware clipping. --- xbmc/guilib/GUIFontTTF.cpp | 4 ++-- @@ -2738,10 +2782,10 @@ index ea08bf4..b63e337 100644 glUniformMatrix4fv(modelLoc, 1, GL_FALSE, g_matrices.GetMatrix(MM_MODELVIEW)); } -From 17d9d1abffa0331f5010448e292d8e1fb2bdc3a4 Mon Sep 17 00:00:00 2001 +From 55f8c6fdadbf0b246593fb694bc95ae0e2fb29db Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 15:32:51 +0000 -Subject: [PATCH 15/61] Move the vertex data across to a vertex buffer object +Subject: [PATCH 15/70] Move the vertex data across to a vertex buffer object just prior to drawing. --- @@ -2792,10 +2836,10 @@ index b63e337..b00055d 100644 // Disable the attributes used by this shader -From d5e6a10622a0ef375feaed609a37b02e1facd3ba Mon Sep 17 00:00:00 2001 +From 55b8c1c91af0441c4d4cd59db0706a211622dbf9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 16:04:04 +0000 -Subject: [PATCH 16/61] Move vertex data into an OpenGL VBO when the font cache +Subject: [PATCH 16/70] 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 @@ -3068,10 +3112,10 @@ index 735fb3a..6102c90 100644 protected: virtual CBaseTexture* ReallocTexture(unsigned int& newHeight); -From af7b182e5e871b1e478917973d7b06836172cba1 Mon Sep 17 00:00:00 2001 +From 1365ecfe3c2cdc4681407212ac7bd3839e8975fd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 1 Nov 2014 22:15:13 +0000 -Subject: [PATCH 17/61] Switch from glDrawArrays() to glDrawElements(). +Subject: [PATCH 17/70] 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. @@ -3292,10 +3336,10 @@ index 2bdd4fa..68f0117 100644 if (m_display != EGL_NO_DISPLAY) -From c0512739051fefdf815b4100213f4a43c22bc16c Mon Sep 17 00:00:00 2001 +From 952f238a4b3a64374b9bcc1fd029897467cfd488 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 18/61] Improved file buffering in CArchive +Subject: [PATCH 18/70] 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 @@ -3355,10 +3399,10 @@ index 6ed0f8f..8506d95 100644 } else -From 51b24a82bc14025ce06c0edf513725037ad12fae Mon Sep 17 00:00:00 2001 +From ca404a7c613e1a15e997e823fca3cea95e54f108 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 10 Sep 2014 22:07:21 +0100 -Subject: [PATCH 19/61] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 19/70] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 4 ++++ @@ -3380,10 +3424,10 @@ index 10648c5..bea5e4f 100644 { // If dvd is an mpeg2 and hint.stills -From 0537e3a504c1f23c5db538a5b74b8993cc4919a4 Mon Sep 17 00:00:00 2001 +From c1b141b498099569d3a38b1cb241eadf9483d834 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 20/61] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 20/70] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -3404,10 +3448,10 @@ index aae59dc..12a3ed6 100644 CDVDInputStream::IMenus* pMenus = dynamic_cast(m_pInputStream); -From 48065b31bcc20416925a437417ff30c309ca422d Mon Sep 17 00:00:00 2001 +From acd3b3135253ba279eef701b7e78e077b84b3c51 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 21/61] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 21/70] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -3460,10 +3504,10 @@ index ac838ce..605318c9 100644 unsigned int iDisplayWidth = width; unsigned int iDisplayHeight = height; -From 8da39d7dc81be90459a1ffa8c67fb1dd826d1e54 Mon Sep 17 00:00:00 2001 +From 9eec9bf72bc0132ea9630accead9892d45bcdac6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:00:52 +0100 -Subject: [PATCH 22/61] [graphics] Don't set stereo mode based on resolution +Subject: [PATCH 22/70] [graphics] Don't set stereo mode based on resolution The resolution change should follow stereo mode --- @@ -3521,10 +3565,10 @@ index 3cb5587..fe6ebf4 100644 m_iScreenWidth = info_mod.iWidth; -From a2fa758a0975c317360bed25e72f359f24545e50 Mon Sep 17 00:00:00 2001 +From 84b46a4d301d631685fadec52a9eee5531a6f204 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 23/61] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 23/70] [graphics] Allow switching to a more suitable 3D resolution --- @@ -3610,10 +3654,10 @@ index 2904c1b..8d3774f 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From 0ac98adc456416d3f687a81924659397d4a9ef7b Mon Sep 17 00:00:00 2001 +From 02dbdbba04d356097e1c41bc3a0bde3d275cf5e3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 24/61] [3D] Support switching to 3D resolutions +Subject: [PATCH 24/70] [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. @@ -3695,10 +3739,10 @@ index 83c3adb..8076e76 100644 return current; } -From 7fef1d13ee7d83bcbe3ea5b8f74461c5744b9ca9 Mon Sep 17 00:00:00 2001 +From 774a335c727687600693ff058aed8ea6bd28b867 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 25/61] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 25/70] [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. @@ -3901,10 +3945,10 @@ index c58c28a..bf1e589 100644 AddUniqueResolution(res2, resolutions); -From 226505052e30a82e9df0517ee8a5c7e4e3ba230f Mon Sep 17 00:00:00 2001 +From 737c86fa8cea517c5eb678aadc28cd5abe58a15b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 26/61] filesystem: Make support of browsing into archives +Subject: [PATCH 26/70] 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. @@ -4003,10 +4047,10 @@ index 2fd8777..3b294cd 100644 { // XBMC Smart playlist - just XML renamed to XSP // read the name of the playlist in -From f4bb933ecf5264da34f4016254a87318160ed59e Mon Sep 17 00:00:00 2001 +From b256e34e5811f7483464ba8ff9bf0ec15d47b68f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 28/61] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 28/70] [rbp] Make cachemembuffersize default depend on memory size --- @@ -4045,10 +4089,10 @@ index ba1a3d0..5119949 100644 response[sizeof(response) - 1] = '\0'; CLog::Log(LOGNOTICE, "Config:\n%s", response); diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 478d725..69b7832 100644 +index a1b68b5..e9cd63a 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp -@@ -365,7 +365,12 @@ void CAdvancedSettings::Initialize() +@@ -366,7 +366,12 @@ void CAdvancedSettings::Initialize() m_bPVRAutoScanIconsUserSet = false; m_iPVRNumericChannelSwitchTimeout = 1000; @@ -4062,11 +4106,10 @@ index 478d725..69b7832 100644 // the following setting determines the readRate of a player data // as multiply of the default data read rate - -From 2d804672d3ff76acc05ce146aaf0addbd17b9a72 Mon Sep 17 00:00:00 2001 +From a8bfa72200c62f3d1c0fc0ac7f211ad4d837eb6c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 16 Jun 2014 19:06:00 +0100 -Subject: [PATCH 30/61] [experimental] Disable quiet-noise generation +Subject: [PATCH 30/70] [experimental] Disable quiet-noise generation --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 2 ++ @@ -4093,10 +4136,10 @@ index b391ff3..463a89c 100644 void CActiveAESink::SetSilenceTimer() -From 1ef873265263d237960c9052ab0fe425eaa3f08b Mon Sep 17 00:00:00 2001 +From 9b94b2b1cb9c1bab31c899c634cc45e6e1cd7150 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 31/61] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 31/70] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -4118,10 +4161,10 @@ index 6902f83..50c5f97 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 994c18e9e61d6a1070028f4253b68491e6feb474 Mon Sep 17 00:00:00 2001 +From 795fb5aea08500fc3d94e0054f5699b66f040417 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 Aug 2014 21:01:42 +0100 -Subject: [PATCH 32/61] omxrender: Hacks to reduce GUI rendering rate when +Subject: [PATCH 32/70] omxrender: Hacks to reduce GUI rendering rate when playing video --- @@ -4193,10 +4236,10 @@ index f3c8a01..2996c29 100644 diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 4a5619a..70dfea5 100644 +index 5425322..1df2418 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2207,6 +2207,23 @@ void CApplication::Render() +@@ -2212,6 +2212,23 @@ void CApplication::Render() if (m_bStop) return; @@ -4221,10 +4264,10 @@ index 4a5619a..70dfea5 100644 int vsync_mode = CSettings::Get().GetInt("videoscreen.vsync"); -From dde88c3d2123c6b6036f6d32d546ad691b06a99c Mon Sep 17 00:00:00 2001 +From f6f7d1ce0a3fc97bf05a395842e72cbf5058284d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 33/61] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 33/70] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -4253,10 +4296,10 @@ index bf1e589..a25eb86 100644 SetResolutionString(m_desktopRes); -From a3efced6244577f10cbdaf5c16a3a5eee627e519 Mon Sep 17 00:00:00 2001 +From 89971ac3e1976bc64e4a36d9272a0d5c2605ec37 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 34/61] Disable textbox autoscrolling while on screensaver. +Subject: [PATCH 34/70] Disable textbox autoscrolling while on screensaver. SQUASH: only if dim or black --- @@ -4266,10 +4309,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 70dfea5..a5706bd 100644 +index 1df2418..80350c4 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5881,3 +5881,10 @@ void CApplication::CloseNetworkShares() +@@ -5894,3 +5894,10 @@ void CApplication::CloseNetworkShares() CSFTPSessionManager::DisconnectAllSessions(); #endif } @@ -4317,10 +4360,10 @@ index c0e2fa5..0eca360 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From d2bfba18dd090634d5725ae74e92e6de7792fca7 Mon Sep 17 00:00:00 2001 +From 58c6c18ccabc7d4c9d28f2dc1acaa50ce5dfdd2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 18 Sep 2014 14:24:56 +0100 -Subject: [PATCH 35/61] [omxplayer] Only enable audio clock master when A/V +Subject: [PATCH 35/70] [omxplayer] Only enable audio clock master when A/V sync method is set to audio clock --- @@ -4351,10 +4394,10 @@ index 5475570..7c07b57 100644 OMX_CONFIG_BOOLEANTYPE configBool; OMX_INIT_STRUCTURE(configBool); -From 165d1b6f807277a808f70537d5f3bb2db75c3592 Mon Sep 17 00:00:00 2001 +From de6cb2bf5543ce802cfb65b12d73ed2b533bf51b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 36/61] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 36/70] [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". @@ -4553,10 +4596,10 @@ index 4fd18f3..6456657 100644 private: DllBcmHost *m_DllBcmHost; -From 797d4926183f165a74a9b84ab3d3369907222c6b Mon Sep 17 00:00:00 2001 +From 0e1439f9c66df9f115aa4532858fae7b0af02516 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 37/61] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 37/70] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -4580,10 +4623,10 @@ index 12a3ed6..cb512ed 100644 } -From 084de6d589287fed574658f9eec2180b0d7a7c79 Mon Sep 17 00:00:00 2001 +From 1fbb557dfc468855702ac1522b3b683a655ddd62 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 28 Sep 2014 19:28:17 +0100 -Subject: [PATCH 38/61] [mmalcodec] Introduce a preroll period to buffer up +Subject: [PATCH 38/70] [mmalcodec] Introduce a preroll period to buffer up frames on startup --- @@ -4716,10 +4759,10 @@ index b4aa571..4f81bbd 100644 MMAL_COMPONENT_T *m_dec; MMAL_PORT_T *m_dec_input; -From 46d39ba5ad0927c5d61712a8b04f8d3ca824d9fd Mon Sep 17 00:00:00 2001 +From a006bd88df683664061e3a0363ffc67bee7f8a80 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 39/61] [audio] Add settings option to boost centre channel +Subject: [PATCH 39/70] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -4842,10 +4885,10 @@ index 7c07b57..ef4c3d4 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From 6686f4f39283921d069464eec0652f0cf6b091b0 Mon Sep 17 00:00:00 2001 +From 157655e392db3920cb16538a0bd07a369abe1e25 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 3 Oct 2014 18:38:07 +0100 -Subject: [PATCH 40/61] [omxcore] Skip out of flush on error +Subject: [PATCH 40/70] [omxcore] Skip out of flush on error --- xbmc/linux/OMXCore.cpp | 4 ++-- @@ -4874,10 +4917,10 @@ index 4ae29ba..4caa304 100644 OMX_ERRORTYPE omx_err = OMX_ErrorNone; -From eb1c477c0c592f29037a9b14a30e5c23f79b9af4 Mon Sep 17 00:00:00 2001 +From 2e472e101e5696bf7d91719fb4bcfbee9ac58858 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 3 Oct 2014 18:40:06 +0100 -Subject: [PATCH 41/61] [SinkPi] Handle multichannel layout more like OMXAudio +Subject: [PATCH 41/70] [SinkPi] Handle multichannel layout more like OMXAudio --- xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp | 14 +++++++------- @@ -4936,10 +4979,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 da6a81c9c7104c0d99f1140e14cf5b97efbd670a Mon Sep 17 00:00:00 2001 +From 50321a75fe06b74f1b426d1a36b8dbbf3f72aff6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 42/61] [rbp] Default extract thumbnails to false +Subject: [PATCH 42/70] [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 @@ -4969,10 +5012,10 @@ index 79853a8..4c2ef41 100644
-From c6be72242c0a7b7460f6c319c47e553151069a5a Mon Sep 17 00:00:00 2001 +From e0269eea6896873e9c63ce9b8a76a6b01ede714a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Nov 2014 18:14:23 +0000 -Subject: [PATCH 43/61] [resamplepi] Try to report the same numbers as ffmpeg +Subject: [PATCH 43/70] [resamplepi] Try to report the same numbers as ffmpeg --- .../cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp | 11 ++++++----- @@ -5023,10 +5066,10 @@ index 84505bf..2b5bef2 100644 CLog::Log(LOGINFO, "%s::%s = %d", CLASSNAME, __func__, ret); #endif -From 966d1486cb16fd2bb43aae9a5f494594687f697a Mon Sep 17 00:00:00 2001 +From 368df3526a36d1f2fc1ba6baa25aa2dc8468827e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Nov 2014 20:49:30 +0000 -Subject: [PATCH 44/61] [dvdplayer] New scheme for PLL adjustment for video +Subject: [PATCH 44/70] [dvdplayer] New scheme for PLL adjustment for video clock --- @@ -5141,10 +5184,10 @@ index 02c64a0..37bf4bd 100644 struct SInfo { -From 14568a4a6a45449d3929effd789f7073a92d28ce Mon Sep 17 00:00:00 2001 +From 5733df427b0c90a7f22397b27fac42bc083d7463 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 45/61] [dvdplayer] Add lock for player creation +Subject: [PATCH 45/70] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -5190,10 +5233,10 @@ index ef64076..7ea6ea6 100644 + CCriticalSection m_players_lock; }; -From 2ac37fc94952151c5b1699152c46fae2c148631b Mon Sep 17 00:00:00 2001 +From 6c788dd7eab7a682c169f33c3901d83ceb1fb29e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 19 Nov 2014 13:29:43 +0000 -Subject: [PATCH 46/61] [dvdplayeraudio] Add advancedsetting for configuring +Subject: [PATCH 46/70] [dvdplayeraudio] Add advancedsetting for configuring max pll adjustment --- @@ -5230,7 +5273,7 @@ index 4f25feb..3cfe8ad 100644 } m_last_error = m_error; diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 69b7832..5eca79a 100644 +index e9cd63a..3a266f8 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -108,6 +108,7 @@ void CAdvancedSettings::Initialize() @@ -5241,7 +5284,7 @@ index 69b7832..5eca79a 100644 m_audioApplyDrc = true; m_dvdplayerIgnoreDTSinWAV = false; -@@ -481,6 +482,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) +@@ -482,6 +483,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) if (pElement) { XMLUtils::GetFloat(pElement, "ac3downmixgain", m_ac3Gain, -96.0f, 96.0f); @@ -5250,7 +5293,7 @@ index 69b7832..5eca79a 100644 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 ca995e3..99ed121 100644 +index ed91aba..eccc62f 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h @@ -137,6 +137,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler @@ -5262,10 +5305,10 @@ index ca995e3..99ed121 100644 float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From 10475adc38c9035919030e6b17b9d60c2c5e9e25 Mon Sep 17 00:00:00 2001 +From 6ccc5b5928d4efb027ac882a079e06452a3e4a62 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 19 Nov 2014 17:35:44 +0000 -Subject: [PATCH 47/61] [mmalrender] Skip some log message in bypass mode +Subject: [PATCH 47/70] [mmalrender] Skip some log message in bypass mode --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 ++++++--- @@ -5303,10 +5346,10 @@ index 03a05de..c0ff30d 100644 // we only want to upload frames once if (buffer->flipindex++) -From 030e02b42f71aac7efdf1c9e0554772503697e72 Mon Sep 17 00:00:00 2001 +From a0087556e4393eb2281fe45e20ed6d4f92873a53 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 21:24:25 +0000 -Subject: [PATCH 48/61] [mmalcodec] Avoid deinterlace for dvd menus for now +Subject: [PATCH 48/70] [mmalcodec] Avoid deinterlace for dvd menus for now --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -5326,10 +5369,10 @@ index 6742e0e..a1f11e9 100644 else if (deinterlace_request == VS_DEINTERLACEMODE_FORCE) deinterlace = true; -From c4d184e405053e45b8fdac3e80eafdc0409a8868 Mon Sep 17 00:00:00 2001 +From 5314915973ad089039857bbbdaed9d9ce6102bf2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 49/61] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 49/70] [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. @@ -5406,10 +5449,10 @@ index f030e37..7a8fc10 100644 if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From b3522aea35dd182a42979a3d3f98d847593bac54 Mon Sep 17 00:00:00 2001 +From cae97c009e68fdd87b4149244a2487e9dbccda70 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:20:56 +0000 -Subject: [PATCH 50/61] [mmalcodec] Skip some setup that is not required when +Subject: [PATCH 50/70] [mmalcodec] Skip some setup that is not required when closing --- @@ -5476,10 +5519,10 @@ index a1f11e9..a11fa65 100644 m_startframe = false; m_decoderPts = DVD_NOPTS_VALUE; -From 98aee3513b7caf14a6bba2e465f28edec5b19837 Mon Sep 17 00:00:00 2001 +From ded576e27b601453c76b98d7ba21f6dd124e0e84 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 51/61] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 51/70] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -5502,10 +5545,10 @@ index 7b0d903..f92aa3e 100644 } -From bad28af8f1636a612acc0ccc5ec9e43b67abce75 Mon Sep 17 00:00:00 2001 +From 679e8af531617428188543b30c881c1eac657c94 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 17:53:46 +0000 -Subject: [PATCH 52/61] [mmalcodec] Try reducing number of video frames +Subject: [PATCH 52/70] [mmalcodec] Try reducing number of video frames --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -5539,10 +5582,10 @@ index 4f81bbd..79a4bfd 100644 virtual const char* GetName(void) { return (const char*)m_pFormatName; } virtual bool GetCodecStats(double &pts, int &droppedPics); -From 1b411d8f41b1c8d8d49b950e032fb78cb2b34122 Mon Sep 17 00:00:00 2001 +From eb3172760a433f4207a9868091494f16e5093dfb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 1 Dec 2014 17:31:00 +0000 -Subject: [PATCH 53/61] [mmalcodec] Ensure we have requested number of buffers +Subject: [PATCH 53/70] [mmalcodec] Ensure we have requested number of buffers in non-accelerated case --- @@ -5563,10 +5606,10 @@ index c0ff30d..6d461bd 100644 status = mmal_port_enable(m_vout_input, vout_input_port_cb_static); -From fb6f3b4ead397628ec80a4cc37e0f03adc76eeaa Mon Sep 17 00:00:00 2001 +From ce9325f77e17bcc4f54c2d5b34bcdf6a3c05cf51 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Dec 2014 21:17:53 +0000 -Subject: [PATCH 54/61] [omxplayer] Add some info about hdmi sync to codec +Subject: [PATCH 54/70] [omxplayer] Add some info about hdmi sync to codec overlay --- @@ -5647,10 +5690,10 @@ index c8fd5fb..9f26427 100644 bool IsEOS(); bool SubmittedEOS() const { return m_submitted_eos; } -From 6fb024728dc90801ca8e77687658c8deb2b418b8 Mon Sep 17 00:00:00 2001 +From fd196da51291f5254b181fd6c8e7947e053fe748 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 7 Dec 2014 15:21:18 +0000 -Subject: [PATCH 55/61] [omxplayer] Remove test of removed setting, avoids a +Subject: [PATCH 55/70] [omxplayer] Remove test of removed setting, avoids a log message --- @@ -5683,10 +5726,10 @@ index 66014d4..c2da2d2 100644 dataFormat = AE_FMT_DTS; m_passthrough = true; -From fe843625b9ad099a11ba8381a8ed9de8bcffec1c Mon Sep 17 00:00:00 2001 +From a348dac928288c978ebcad6999f913f652f660f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 28 Dec 2014 19:13:51 +0000 -Subject: [PATCH 56/61] [omxplayer] Skip packet concatenation for WMAV2 files +Subject: [PATCH 56/70] [omxplayer] Skip packet concatenation for WMAV2 files See: http://forum.kodi.tv/showthread.php?tid=212552 --- @@ -5709,10 +5752,10 @@ index 94b673e..1a920f7 100644 if(m_pCodecContext->bits_per_coded_sample == 0) -From 1a6ebaab8be9dcc9ae335121189b5f3bf2d19f8a Mon Sep 17 00:00:00 2001 +From c405f16c5a6c06c8e7616acf5d5c4b61362bdfc0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 31 Dec 2014 17:08:52 +0000 -Subject: [PATCH 57/61] filesystem: Make browsing into archives enbabled by +Subject: [PATCH 57/70] filesystem: Make browsing into archives enbabled by default on Pi This causes issues for people who scan library with archives disabled, then subsequently enable it. @@ -5744,10 +5787,10 @@ index 4c2ef41..3260465 100644 -From 32b9d35387473c681e524db4c6e82173d498eb40 Mon Sep 17 00:00:00 2001 +From fdf578ad886aeabfccb4376a2a8e9cc9e1b71f10 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 31 Dec 2014 16:03:32 +0000 -Subject: [PATCH 58/61] [PVR] Fix for slow metadata updates of recordings +Subject: [PATCH 58/70] [PVR] Fix for slow metadata updates of recordings See: http://forum.kodi.tv/showthread.php?tid=210774 @@ -5935,10 +5978,10 @@ index 6b8cb14..2bcc834 100644 int Load(); void Unload(); -From deb907165630c7c6bb61f81a005eee94c964105e Mon Sep 17 00:00:00 2001 +From 74b410774cb450e63a7852187dac4a5c789eb4d8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Dec 2014 17:20:00 +0000 -Subject: [PATCH 59/61] [dvdplayer] Allow pll adjustment to go higher, but tail +Subject: [PATCH 59/70] [dvdplayer] Allow pll adjustment to go higher, but tail off more gradually --- @@ -5960,7 +6003,7 @@ index 3cfe8ad..5db48a8 100644 m_plladjust = 1.0 + e * adjust; m_last_plladjust = g_RBP.AdjustHDMIClock(m_plladjust); diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 5eca79a..b1e396a 100644 +index 3a266f8..f007f42 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -108,7 +108,7 @@ void CAdvancedSettings::Initialize() @@ -5973,10 +6016,10 @@ index 5eca79a..b1e396a 100644 m_dvdplayerIgnoreDTSinWAV = false; -From 9c137af65807edcfa0e3e9910a1ae8689be7ccae Mon Sep 17 00:00:00 2001 +From ca6da5583652fe165d427f85b7a9291ac3665e5d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 60/61] Fix for UI not showing both extractflags and +Subject: [PATCH 60/70] Fix for UI not showing both extractflags and extractthumb --- @@ -6052,10 +6095,10 @@ index dbddcb6..756475f 100644 -From 81c40467f830476082680cc7b5242dcf59991ab9 Mon Sep 17 00:00:00 2001 +From 01cce9ccce0e371c3ef5750049ba1428f6935f7c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Jan 2015 19:24:17 +0000 -Subject: [PATCH 61/61] Fix for occasinal heap corruption with font cache +Subject: [PATCH 61/70] Fix for occasinal heap corruption with font cache See: PR 4143 issuecomment-71114810 --- @@ -6184,3 +6227,404 @@ index 7d4fc88..4110546 100644 End(); } + +From 33e308774f22bc50009dcac0835d1a4dcb5d1183 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 4 Feb 2015 22:02:33 +0000 +Subject: [PATCH 62/70] [omxplayer] Avoid extra frame allocation when + deinterlace might be enabled + +Requires updated firmware +--- + xbmc/cores/omxplayer/OMXVideo.cpp | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp +index dea0e11..55e16c4 100644 +--- a/xbmc/cores/omxplayer/OMXVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXVideo.cpp +@@ -610,22 +610,6 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, EDEINTERLACEMODE de + return false; + } + +- if (m_deinterlace_request != VS_DEINTERLACEMODE_OFF) +- { +- // the deinterlace component requires 3 additional video buffers in addition to the DPB (this is normally 2). +- OMX_PARAM_U32TYPE extra_buffers; +- OMX_INIT_STRUCTURE(extra_buffers); +- extra_buffers.nU32 = 3; +- +- omx_err = m_omx_decoder.SetParameter(OMX_IndexParamBrcmExtraBuffers, &extra_buffers); +- if(omx_err != OMX_ErrorNone) +- { +- CLog::Log(LOGERROR, "COMXVideo::Open error OMX_IndexParamBrcmExtraBuffers omx_err(0x%08x)\n", omx_err); +- return false; +- } +- } +- +- + // broadcom omx entension: + // When enabled, the timestamp fifo mode will change the way incoming timestamps are associated with output images. + // In this mode the incoming timestamps get used without re-ordering on output images. + +From 8ac3d0b6b87f6924c496f34f686bcd8479042307 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 18 Jan 2015 16:45:51 +0000 +Subject: [PATCH 63/70] [rbp] Enable error concealment by default + +Firmware now supports parsing SEI recovery points meaning streams without +IDR frames don't get discarded completely when error concealment is enabled. + +This should avoid the garbled frames that appear when seeking non-indexed (e.g. mpegts) files. +Requires updated firmware +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + xbmc/settings/AdvancedSettings.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index dd08c95..1bfec44 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -623,7 +623,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options, MMALVide + + error_concealment.hdr.id = MMAL_PARAMETER_VIDEO_DECODE_ERROR_CONCEALMENT; + error_concealment.hdr.size = sizeof(MMAL_PARAMETER_BOOLEAN_T); +- error_concealment.enable = MMAL_FALSE; ++ error_concealment.enable = g_advancedSettings.m_omxDecodeStartWithValidFrame; + status = mmal_port_parameter_set(m_dec_input, &error_concealment.hdr); + if (status != MMAL_SUCCESS) + CLog::Log(LOGERROR, "%s::%s Failed to disable error concealment on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index f007f42..9f00cf4 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -117,7 +117,7 @@ void CAdvancedSettings::Initialize() + m_limiterRelease = 0.1f; + + m_omxHWAudioDecode = false; +- m_omxDecodeStartWithValidFrame = false; ++ m_omxDecodeStartWithValidFrame = true; + + m_karaokeSyncDelayCDG = 0.0f; + m_karaokeSyncDelayLRC = 0.0f; + +From c3792a00ff89dda80b2464d2232eb065d13ce00a Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 26 Jan 2015 17:54:07 +0000 +Subject: [PATCH 64/70] [mmalrenderer] Avoid grabbing the g_graphicsContext + lock - it can deadlock + +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index 6d461bd..11a6f10 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -404,7 +404,6 @@ void CMMALRenderer::FlipPage(int source) + + unsigned int CMMALRenderer::PreInit() + { +- CSingleLock lock(g_graphicsContext); + m_bConfigured = false; + UnInit(); + +@@ -434,7 +433,6 @@ void CMMALRenderer::ReleaseBuffers() + + void CMMALRenderer::UnInit() + { +- CSingleLock lock(g_graphicsContext); + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + if (m_vout) + { + +From a55e8814112f3af7f878eb8568de910962dc5631 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 15 Feb 2015 14:06:12 +0000 +Subject: [PATCH 65/70] [mmal] Use libmpeg2 when mpeg2 codec licence is not + available + +--- + xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +index bea5e4f..e4f59d7 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +@@ -49,6 +49,9 @@ + #include "Video/DVDVideoCodecAndroidMediaCodec.h" + #include "android/activity/AndroidFeatures.h" + #endif ++#if defined(HAS_MMAL) ++#include "linux/RBP.h" ++#endif + #include "Audio/DVDAudioCodecFFmpeg.h" + #include "Audio/DVDAudioCodecPassthrough.h" + #include "Overlay/DVDOverlayCodecSSA.h" +@@ -196,7 +199,7 @@ CDVDVideoCodec* CDVDFactoryCodec::CreateVideoCodec(CDVDStreamInfo &hint, unsigne + + #if defined(HAS_MMAL) + // mmal can handle dvd playback including stills +- if (!CSettings::Get().GetBool("videoplayer.usemmal")) ++ if (!CSettings::Get().GetBool("videoplayer.usemmal") || !g_RBP.GetCodecMpg2()) + #endif + if (hint.stills && (hint.codec == AV_CODEC_ID_MPEG2VIDEO || hint.codec == AV_CODEC_ID_MPEG1VIDEO)) + { + +From 738fb9b3e81cc7c5c469d20869d0838b21b53990 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 28 Feb 2015 22:34:52 +0000 +Subject: [PATCH 66/70] [mmalrender] Fix for hang on shutdown + +mmal_queue_push doesn't allow null pointers, so use a unique packet for signalling quit +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 5 +++-- + xbmc/cores/VideoRenderers/MMALRenderer.h | 2 ++ + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index 11a6f10..a70eeb0 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -132,7 +132,7 @@ bool CMMALRenderer::init_vout(MMAL_ES_FORMAT_T *format) + void CMMALRenderer::Process() + { + MMAL_BUFFER_HEADER_T *buffer; +- while (buffer = mmal_queue_wait(m_release_queue), buffer) ++ while (buffer = mmal_queue_wait(m_release_queue), buffer && buffer != &m_quit_packet) + { + CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; + omvb->Release(); +@@ -148,6 +148,7 @@ CMMALRenderer::CMMALRenderer() + m_vout_input = NULL; + m_vout_input_pool = NULL; + memset(m_buffers, 0, sizeof m_buffers); ++ mmal_buffer_header_reset(&m_quit_packet); + m_release_queue = mmal_queue_create(); + Create(); + } +@@ -156,7 +157,7 @@ CMMALRenderer::~CMMALRenderer() + { + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + // shutdown thread +- mmal_queue_put(m_release_queue, NULL); ++ mmal_queue_put(m_release_queue, &m_quit_packet); + m_sync.Wait(); + mmal_queue_destroy(m_release_queue); + UnInit(); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index 8ca0b94..a5c248c 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -116,6 +116,8 @@ class CMMALRenderer : public CBaseRenderer, public CThread + + MMAL_QUEUE_T *m_release_queue; + CEvent m_sync; ++ MMAL_BUFFER_HEADER_T m_quit_packet; ++ + bool init_vout(MMAL_ES_FORMAT_T *m_format); + void ReleaseBuffers(); + }; + +From 8f42036c6152931a92aeb8a648f94b2687c2cb79 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 27 Feb 2015 19:07:17 +0000 +Subject: [PATCH 67/70] [omxplayer] Attempt to fix missing subtitles after seek + +--- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index 77b9461..2a3619f 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -295,7 +295,7 @@ void OMXPlayerVideo::Output(double pts, bool bDropPacket) + const double preroll = DVD_MSEC_TO_TIME(100); + double media_pts = m_av_clock->OMXMediaTime(); + +- if (m_nextOverlay != DVD_NOPTS_VALUE && media_pts + preroll <= m_nextOverlay) ++ if (m_nextOverlay != DVD_NOPTS_VALUE && media_pts != 0.0 && media_pts + preroll <= m_nextOverlay) + return; + + int buffer = g_renderManager.WaitForBuffer(CThread::m_bStop); + +From 4ad6d848a76c9487f849cb6a7a035d8fc53932ee Mon Sep 17 00:00:00 2001 +From: anaconda +Date: Wed, 25 Feb 2015 18:22:21 +0100 +Subject: [PATCH 68/70] Load OSD dialogs on startup. + +Fixes skipped frames the first time they're loaded in memory on less powered +devices, like a Raspberry Pi, when using DVDPlayer. +See http://forum.kodi.tv/showthread.php?tid=211501&pid=1938811#pid1938811 +--- + xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp | 1 + + xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp | 1 + + xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp | 4 +++- + xbmc/video/dialogs/GUIDialogSubtitles.cpp | 2 +- + xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp | 2 +- + xbmc/video/dialogs/GUIDialogVideoOSD.cpp | 2 +- + xbmc/video/dialogs/GUIDialogVideoSettings.cpp | 4 +++- + 7 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp +index 5fb5c79..36f7273 100644 +--- a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp ++++ b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp +@@ -50,6 +50,7 @@ CGUIDialogPVRChannelsOSD::CGUIDialogPVRChannelsOSD() : + CGUIDialog(WINDOW_DIALOG_PVR_OSD_CHANNELS, "DialogPVRChannelsOSD.xml"), + Observer() + { ++ m_loadType = LOAD_ON_GUI_INIT; + m_vecItems = new CFileItemList; + } + +diff --git a/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp b/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp +index cf7e5d2..9e9ed32 100644 +--- a/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp ++++ b/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp +@@ -35,6 +35,7 @@ using namespace PVR; + CGUIDialogPVRGuideOSD::CGUIDialogPVRGuideOSD() + : CGUIDialog(WINDOW_DIALOG_PVR_OSD_GUIDE, "DialogPVRGuideOSD.xml") + { ++ m_loadType = LOAD_ON_GUI_INIT; + m_vecItems = new CFileItemList; + } + +diff --git a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp +index 32a9ba4..9999bdf 100644 +--- a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp ++++ b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp +@@ -62,7 +62,9 @@ using namespace std; + CGUIDialogAudioSubtitleSettings::CGUIDialogAudioSubtitleSettings() + : CGUIDialogSettingsManualBase(WINDOW_DIALOG_AUDIO_OSD_SETTINGS, "VideoOSDSettings.xml"), + m_passthrough(false) +-{ } ++{ ++ m_loadType = LOAD_ON_GUI_INIT; ++} + + CGUIDialogAudioSubtitleSettings::~CGUIDialogAudioSubtitleSettings() + { } +diff --git a/xbmc/video/dialogs/GUIDialogSubtitles.cpp b/xbmc/video/dialogs/GUIDialogSubtitles.cpp +index e3939f1..e184d53 100644 +--- a/xbmc/video/dialogs/GUIDialogSubtitles.cpp ++++ b/xbmc/video/dialogs/GUIDialogSubtitles.cpp +@@ -99,7 +99,7 @@ class CSubtitlesJob: public CJob + CGUIDialogSubtitles::CGUIDialogSubtitles(void) + : CGUIDialog(WINDOW_DIALOG_SUBTITLES, "DialogSubtitles.xml") + { +- m_loadType = KEEP_IN_MEMORY; ++ m_loadType = LOAD_ON_GUI_INIT; + m_subtitles = new CFileItemList; + m_serviceItems = new CFileItemList; + m_pausedOnRun = false; +diff --git a/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp b/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp +index 1ccabc8..43691bf 100644 +--- a/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp ++++ b/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp +@@ -61,7 +61,7 @@ CGUIDialogVideoBookmarks::CGUIDialogVideoBookmarks() + : CGUIDialog(WINDOW_DIALOG_VIDEO_BOOKMARKS, "VideoOSDBookmarks.xml") + { + m_vecItems = new CFileItemList; +- m_loadType = KEEP_IN_MEMORY; ++ m_loadType = LOAD_ON_GUI_INIT; + } + + CGUIDialogVideoBookmarks::~CGUIDialogVideoBookmarks() +diff --git a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +index 98c3c5a..ba1b5f4 100644 +--- a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp ++++ b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +@@ -35,7 +35,7 @@ using namespace PVR; + CGUIDialogVideoOSD::CGUIDialogVideoOSD(void) + : CGUIDialog(WINDOW_DIALOG_VIDEO_OSD, "VideoOSD.xml") + { +- m_loadType = KEEP_IN_MEMORY; ++ m_loadType = LOAD_ON_GUI_INIT; + } + + CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) +diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +index ca65fdc..fbd2a52 100644 +--- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp ++++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +@@ -65,7 +65,9 @@ using namespace std; + CGUIDialogVideoSettings::CGUIDialogVideoSettings() + : CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "VideoOSDSettings.xml"), + m_viewModeChanged(false) +-{ } ++{ ++ m_loadType = LOAD_ON_GUI_INIT; ++} + + CGUIDialogVideoSettings::~CGUIDialogVideoSettings() + { } + +From 9bca0b7b17808aea67a47c030b72d3247cf6dd88 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 1 Mar 2015 14:49:12 +0000 +Subject: [PATCH 69/70] [omxplayer] Fix for volume being treated as a linear + scale + +The volume in kodi is actually 0.0=-60dB to 1.0=0dB. omxplayer was treating this as a linear scale. +That's correct for 0.0 and 1.0, but too loud for 0.5. + +The fix has been tested with white noise sample and decibel meter smartphone app, and now omxplayer and +dvdplayer produce the same output +--- + xbmc/cores/omxplayer/OMXAudio.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp +index ef4c3d4..c16ae2e 100644 +--- a/xbmc/cores/omxplayer/OMXAudio.cpp ++++ b/xbmc/cores/omxplayer/OMXAudio.cpp +@@ -1056,6 +1056,8 @@ bool COMXAudio::ApplyVolume(void) + return false; + + float fVolume = m_Mute ? VOLUME_MINIMUM : m_CurrentVolume; ++ // need to convert a log scale of 0.0=-60dB, 1.0=0dB to a linear scale (0.0=silence, 1.0=full) ++ fVolume = CAEUtil::GainToScale(CAEUtil::PercentToGain(fVolume)); + + // the analogue volume is too quiet for some. Allow use of an advancedsetting to boost this (at risk of distortion) (deprecated) + double gain = pow(10, (g_advancedSettings.m_ac3Gain - 12.0f) / 20.0); + +From 1d76c863806b2b5d53a32100795d4fbb86269516 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 24 Feb 2015 00:09:19 +0000 +Subject: [PATCH 70/70] [omxplayer] Limit subtitle updates to 10fps to avoid + stuttering with closed captions + +--- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index 2a3619f..6ae404df 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -221,7 +221,7 @@ double OMXPlayerVideo::NextOverlay(double pts) + else if (delta_stop > 0.0 && (min_delta == DVD_NOPTS_VALUE || delta_stop < min_delta)) + min_delta = delta_stop; + } +- return min_delta == DVD_NOPTS_VALUE ? pts+DVD_MSEC_TO_TIME(500) : pts+min_delta; ++ return min_delta == DVD_NOPTS_VALUE ? pts+DVD_MSEC_TO_TIME(500) : pts+std::max(min_delta, DVD_MSEC_TO_TIME(100)); + } + + +@@ -305,9 +305,9 @@ void OMXPlayerVideo::Output(double pts, bool bDropPacket) + double subtitle_pts = m_nextOverlay; + double time = subtitle_pts != DVD_NOPTS_VALUE ? subtitle_pts - media_pts : 0.0; + +- m_nextOverlay = NextOverlay(media_pts); ++ m_nextOverlay = NextOverlay(media_pts + preroll); + +- ProcessOverlays(media_pts); ++ ProcessOverlays(media_pts + preroll); + + time += m_av_clock->GetAbsoluteClock(); + g_renderManager.FlipPage(CThread::m_bStop, time/DVD_TIME_BASE); diff --git a/projects/RPi2/patches/kodi/kodi-001-helix_rpb_backports.patch b/projects/RPi2/patches/kodi/kodi-001-helix_rpb_backports.patch index c35a3b0983..f83caae856 100644 --- a/projects/RPi2/patches/kodi/kodi-001-helix_rpb_backports.patch +++ b/projects/RPi2/patches/kodi/kodi-001-helix_rpb_backports.patch @@ -1,7 +1,7 @@ -From dde30eb9bfceb3e1160778da78f9454f4a420c60 Mon Sep 17 00:00:00 2001 +From f23ab1d1d44d079e1b717443fae9d203adb94010 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 01/61] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/70] [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 ec789b4201894bb0853901c8dfdb47cbf4050f4d Mon Sep 17 00:00:00 2001 +From 2b03dcb437676c2c1dd6f3140c35fc59dc25c0fe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 02/61] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 02/70] [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 a386d39840eab40ee600b0e4a013d8460c73aac0 Mon Sep 17 00:00:00 2001 +From 7ab9100836aa39a979f228d1c65c764d6a4a236a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH 03/61] [omx] Report decoded image name +Subject: [PATCH 03/70] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -136,10 +136,10 @@ index aa413b9..22ec3f0 100644 else { -From 66aca8521dba22df0f955c60e44f31e15e52c503 Mon Sep 17 00:00:00 2001 +From b44ea5962fc3c4bf3db0ea0e85f190dea4792a94 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 04/61] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 04/70] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -162,10 +162,10 @@ index df50940..2d853d6 100644 info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From 8f1504b250c22778df7115c08e44fa4602c8b21e Mon Sep 17 00:00:00 2001 +From 8fcc5ff411027c181debffdb187e8c43f165c7d7 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 11 Dec 2013 17:21:54 +0000 -Subject: [PATCH 05/61] Move the reference-counting of Begin and End calls from +Subject: [PATCH 05/70] Move the reference-counting of Begin and End calls from DX and GL source files into GUIFontTTF.cpp. --- @@ -553,10 +553,10 @@ index c0bb53a..735fb3a 100644 protected: virtual CBaseTexture* ReallocTexture(unsigned int& newHeight); -From 441db2d2d13756a3c7c7a952ee3e48193bfcc06f Mon Sep 17 00:00:00 2001 +From 0ab1240b777cd494c035f444d989b592050e1633 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 11 Dec 2013 18:47:54 +0000 -Subject: [PATCH 06/61] Convert CGUIFontTTFBase::m_vertex to be managed as a +Subject: [PATCH 06/70] Convert CGUIFontTTFBase::m_vertex to be managed as a std::vector. Also retired CGUIFontTTFBase::m_vertex_count and @@ -736,10 +736,10 @@ index 97853fd..b76c6a5 100644 *vertices++ = m_vertex[i]; *vertices++ = m_vertex[i+1]; -From 92f333f71132eeda5a93bf0efe4c3e95f4e334ef Mon Sep 17 00:00:00 2001 +From 4723d7e5623eba5b742fcb03a5ba3cd1f11c19f7 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 16 Dec 2013 18:58:12 +0000 -Subject: [PATCH 07/61] CGUIFontTTFBase::RenderCharacter can now append to +Subject: [PATCH 07/70] CGUIFontTTFBase::RenderCharacter can now append to arbitrary vectors of vertices rather than only CGUIFontTTFBase::m_vertex --- @@ -812,10 +812,10 @@ index 5675725..a5d44f4 100644 virtual CBaseTexture* ReallocTexture(unsigned int& newHeight) = 0; -From 74a2b63b9dc70665bb3944c589b509b8a801aeb6 Mon Sep 17 00:00:00 2001 +From 9ed78d0a66024e5a9089453beeb3cebc3d0eef77 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 17:18:38 +0000 -Subject: [PATCH 08/61] Add a cache of font glyph bounding box vertices. +Subject: [PATCH 08/70] 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 @@ -823,8 +823,8 @@ have a GLES or non-GLES backend, and for GLES, whether or not the currently applicable transformation matrices permit the use of hardware clipping. --- Kodi.xcodeproj/project.pbxproj | 10 ++ - project/VS2010Express/XBMC.vcxproj | 4 +- - project/VS2010Express/XBMC.vcxproj.filters | 8 +- + project/VS2010Express/XBMC.vcxproj | 2 + + project/VS2010Express/XBMC.vcxproj.filters | 6 + xbmc/guilib/GUIFontCache.cpp | 105 ++++++++++++++ xbmc/guilib/GUIFontCache.h | 217 +++++++++++++++++++++++++++++ xbmc/guilib/GUIFontTTF.cpp | 181 +++++++++++++----------- @@ -833,12 +833,12 @@ applicable transformation matrices permit the use of hardware clipping. xbmc/guilib/GraphicContext.h | 1 + xbmc/guilib/Makefile.in | 1 + xbmc/guilib/TransformMatrix.h | 11 ++ - 11 files changed, 458 insertions(+), 86 deletions(-) + 11 files changed, 456 insertions(+), 84 deletions(-) create mode 100644 xbmc/guilib/GUIFontCache.cpp create mode 100644 xbmc/guilib/GUIFontCache.h diff --git a/Kodi.xcodeproj/project.pbxproj b/Kodi.xcodeproj/project.pbxproj -index 6dd3cf2..1f04a0b 100644 +index a9ecd08..6d42c1c 100644 --- a/Kodi.xcodeproj/project.pbxproj +++ b/Kodi.xcodeproj/project.pbxproj @@ -168,6 +168,9 @@ @@ -851,7 +851,7 @@ index 6dd3cf2..1f04a0b 100644 32C631281423A90F00F18420 /* JpegIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32C631261423A90F00F18420 /* JpegIO.cpp */; }; 36A9443D15821E2800727135 /* DatabaseUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 36A9443B15821E2800727135 /* DatabaseUtils.cpp */; }; 36A9444115821E7C00727135 /* SortUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 36A9443F15821E7C00727135 /* SortUtils.cpp */; }; -@@ -4018,6 +4021,8 @@ +@@ -4021,6 +4024,8 @@ 1DAFDB7B16DFDCA7007F8C68 /* PeripheralBusCEC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeripheralBusCEC.h; sourceTree = ""; }; 1DE0443315828F4B005DDB4D /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Exception.cpp; path = commons/Exception.cpp; sourceTree = ""; }; 1DE0443415828F4B005DDB4D /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Exception.h; path = commons/Exception.h; sourceTree = ""; }; @@ -860,7 +860,7 @@ index 6dd3cf2..1f04a0b 100644 32C631261423A90F00F18420 /* JpegIO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JpegIO.cpp; sourceTree = ""; }; 32C631271423A90F00F18420 /* JpegIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JpegIO.h; sourceTree = ""; }; 36A9443B15821E2800727135 /* DatabaseUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseUtils.cpp; sourceTree = ""; }; -@@ -6532,6 +6537,8 @@ +@@ -6537,6 +6542,8 @@ 18B7C7101294222D009E7A26 /* GUIFixedListContainer.h */, 18B7C76B1294222E009E7A26 /* GUIFont.cpp */, 18B7C7111294222D009E7A26 /* GUIFont.h */, @@ -869,7 +869,7 @@ index 6dd3cf2..1f04a0b 100644 18B7C76C1294222E009E7A26 /* GUIFontManager.cpp */, 18B7C7121294222D009E7A26 /* GUIFontManager.h */, 18B7C76D1294222E009E7A26 /* GUIFontTTF.cpp */, -@@ -11038,6 +11045,7 @@ +@@ -11045,6 +11052,7 @@ 7C5608C70F1754930056433A /* ExternalPlayer.cpp in Sources */, F584E12E0F257C5100DB26A5 /* HTTPDirectory.cpp in Sources */, F54C51D20F1E783200D46E3C /* GUIDialogKaraokeSongSelector.cpp in Sources */, @@ -877,7 +877,7 @@ index 6dd3cf2..1f04a0b 100644 F54C51D50F1E784800D46E3C /* karaokelyricscdg.cpp in Sources */, F54C51D80F1E785700D46E3C /* karaokelyrics.cpp in Sources */, F54C51E50F1E787700D46E3C /* karaokelyricstextkar.cpp in Sources */, -@@ -12712,6 +12720,7 @@ +@@ -12721,6 +12729,7 @@ DFF0F45B17528350002DA3A4 /* Control.cpp in Sources */, DFF0F45C17528350002DA3A4 /* Dialog.cpp in Sources */, DFF0F45D17528350002DA3A4 /* File.cpp in Sources */, @@ -885,7 +885,7 @@ index 6dd3cf2..1f04a0b 100644 DFF0F45E17528350002DA3A4 /* InfoTagMusic.cpp in Sources */, DFF0F45F17528350002DA3A4 /* InfoTagVideo.cpp in Sources */, DFF0F46017528350002DA3A4 /* Keyboard.cpp in Sources */, -@@ -13507,6 +13516,7 @@ +@@ -13517,6 +13526,7 @@ E499131D174E5DAD00741B6D /* GUIVisualisationControl.cpp in Sources */, E499131E174E5DAD00741B6D /* GUIWindow.cpp in Sources */, E499131F174E5DAD00741B6D /* GUIWindowManager.cpp in Sources */, @@ -893,6 +893,50 @@ index 6dd3cf2..1f04a0b 100644 E4991320174E5DAD00741B6D /* GUIWrappingListContainer.cpp in Sources */, E4991321174E5DAD00741B6D /* imagefactory.cpp in Sources */, E4991322174E5DAD00741B6D /* IWindowManagerCallback.cpp in Sources */, +diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj +index 5dd6967..86b983c 100644 +--- a/project/VS2010Express/XBMC.vcxproj ++++ b/project/VS2010Express/XBMC.vcxproj +@@ -427,6 +427,7 @@ + + + ++ + + + +@@ -1754,6 +1755,7 @@ + + + ++ + + + +diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters +index 58d782a..3f937de 100644 +--- a/project/VS2010Express/XBMC.vcxproj.filters ++++ b/project/VS2010Express/XBMC.vcxproj.filters +@@ -994,6 +994,9 @@ + + guilib + ++ ++ guilib ++ + + guilib + +@@ -3900,6 +3903,9 @@ + + guilib + ++ ++ guilib ++ + + guilib + diff --git a/xbmc/guilib/GUIFontCache.cpp b/xbmc/guilib/GUIFontCache.cpp new file mode 100644 index 0000000..2c72f9c @@ -1531,10 +1575,10 @@ index f351c99..9036ba9 100644 + return !operator==(a, b); +} -From 0ad4af9bc0a131a5f75af68a6f375300a79dc50a Mon Sep 17 00:00:00 2001 +From e4bbc736884bd365ad96164a2f7876a6f3d87b1a Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 23 Jan 2014 22:24:17 +0000 -Subject: [PATCH 09/61] Lay the groundwork for hardware clipping. +Subject: [PATCH 09/70] 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 @@ -1796,10 +1840,10 @@ index 98e398a..81ee49e 100644 virtual void ResetScissors(); -From e5812aee3483744b42f7c98043261153d2a0ae22 Mon Sep 17 00:00:00 2001 +From 70e40bccbc6544aab22794e444b7d977646b8cbb Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 23 Jan 2014 16:42:22 +0000 -Subject: [PATCH 10/61] Increase font cache hit rate by keying on the +Subject: [PATCH 10/70] 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 @@ -2000,10 +2044,10 @@ index 3b93672..258dffa 100644 private: virtual bool FirstBegin() = 0; -From 34e167b49c1a081d42dd6ebac1011f5776671acc Mon Sep 17 00:00:00 2001 +From adf68d8d211269893bb578d05ac512ea3977f4ca Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 8 Jan 2014 12:16:33 +0000 -Subject: [PATCH 11/61] Rewrite of scrolling text code. +Subject: [PATCH 11/70] 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 @@ -2319,10 +2363,10 @@ index 2cda726..fbc579e 100644 private: void Process(); -From f7e99d8c6f5ecbd7eeecf26462d68a8b5e32fbd9 Mon Sep 17 00:00:00 2001 +From fe43cfbba06400515c04e40d3417acc53d858aea Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 27 Jan 2014 23:21:10 +0000 -Subject: [PATCH 12/61] Move the application of the translation offsets into +Subject: [PATCH 12/70] 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 @@ -2516,10 +2560,10 @@ index 9935ea4..18c9358 100644 memset(newTexture->GetPixels(), 0, m_textureHeight * newTexture->GetPitch()); if (m_texture) -From bf796b3c9edd178fe1fd15b7337045d81a33b3d7 Mon Sep 17 00:00:00 2001 +From 1b8a082fd54c36fa595026505eaa78a4c5993f46 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 15:28:06 +0000 -Subject: [PATCH 13/61] Rather than applying the translation offsets to the +Subject: [PATCH 13/70] 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. @@ -2663,10 +2707,10 @@ index 81ee49e..d2f9cd1 100644 protected: virtual void SetVSyncImpl(bool enable) = 0; -From 504eab137cb13388fe90c71594984572196643d7 Mon Sep 17 00:00:00 2001 +From 40534da563b7a9699efc30fd1a35acef503a11cc Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 29 Jan 2014 13:21:19 +0000 -Subject: [PATCH 14/61] Enable hardware clipping. +Subject: [PATCH 14/70] Enable hardware clipping. --- xbmc/guilib/GUIFontTTF.cpp | 4 ++-- @@ -2738,10 +2782,10 @@ index ea08bf4..b63e337 100644 glUniformMatrix4fv(modelLoc, 1, GL_FALSE, g_matrices.GetMatrix(MM_MODELVIEW)); } -From 17d9d1abffa0331f5010448e292d8e1fb2bdc3a4 Mon Sep 17 00:00:00 2001 +From 55f8c6fdadbf0b246593fb694bc95ae0e2fb29db Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 15:32:51 +0000 -Subject: [PATCH 15/61] Move the vertex data across to a vertex buffer object +Subject: [PATCH 15/70] Move the vertex data across to a vertex buffer object just prior to drawing. --- @@ -2792,10 +2836,10 @@ index b63e337..b00055d 100644 // Disable the attributes used by this shader -From d5e6a10622a0ef375feaed609a37b02e1facd3ba Mon Sep 17 00:00:00 2001 +From 55b8c1c91af0441c4d4cd59db0706a211622dbf9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Wed, 15 Jan 2014 16:04:04 +0000 -Subject: [PATCH 16/61] Move vertex data into an OpenGL VBO when the font cache +Subject: [PATCH 16/70] 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 @@ -3068,10 +3112,10 @@ index 735fb3a..6102c90 100644 protected: virtual CBaseTexture* ReallocTexture(unsigned int& newHeight); -From af7b182e5e871b1e478917973d7b06836172cba1 Mon Sep 17 00:00:00 2001 +From 1365ecfe3c2cdc4681407212ac7bd3839e8975fd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 1 Nov 2014 22:15:13 +0000 -Subject: [PATCH 17/61] Switch from glDrawArrays() to glDrawElements(). +Subject: [PATCH 17/70] 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. @@ -3292,10 +3336,10 @@ index 2bdd4fa..68f0117 100644 if (m_display != EGL_NO_DISPLAY) -From c0512739051fefdf815b4100213f4a43c22bc16c Mon Sep 17 00:00:00 2001 +From 952f238a4b3a64374b9bcc1fd029897467cfd488 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 18/61] Improved file buffering in CArchive +Subject: [PATCH 18/70] 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 @@ -3355,10 +3399,10 @@ index 6ed0f8f..8506d95 100644 } else -From 51b24a82bc14025ce06c0edf513725037ad12fae Mon Sep 17 00:00:00 2001 +From ca404a7c613e1a15e997e823fca3cea95e54f108 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 10 Sep 2014 22:07:21 +0100 -Subject: [PATCH 19/61] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 19/70] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 4 ++++ @@ -3380,10 +3424,10 @@ index 10648c5..bea5e4f 100644 { // If dvd is an mpeg2 and hint.stills -From 0537e3a504c1f23c5db538a5b74b8993cc4919a4 Mon Sep 17 00:00:00 2001 +From c1b141b498099569d3a38b1cb241eadf9483d834 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 20/61] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 20/70] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -3404,10 +3448,10 @@ index aae59dc..12a3ed6 100644 CDVDInputStream::IMenus* pMenus = dynamic_cast(m_pInputStream); -From 48065b31bcc20416925a437417ff30c309ca422d Mon Sep 17 00:00:00 2001 +From acd3b3135253ba279eef701b7e78e077b84b3c51 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 21/61] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 21/70] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -3460,10 +3504,10 @@ index ac838ce..605318c9 100644 unsigned int iDisplayWidth = width; unsigned int iDisplayHeight = height; -From 8da39d7dc81be90459a1ffa8c67fb1dd826d1e54 Mon Sep 17 00:00:00 2001 +From 9eec9bf72bc0132ea9630accead9892d45bcdac6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:00:52 +0100 -Subject: [PATCH 22/61] [graphics] Don't set stereo mode based on resolution +Subject: [PATCH 22/70] [graphics] Don't set stereo mode based on resolution The resolution change should follow stereo mode --- @@ -3521,10 +3565,10 @@ index 3cb5587..fe6ebf4 100644 m_iScreenWidth = info_mod.iWidth; -From a2fa758a0975c317360bed25e72f359f24545e50 Mon Sep 17 00:00:00 2001 +From 84b46a4d301d631685fadec52a9eee5531a6f204 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 23/61] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 23/70] [graphics] Allow switching to a more suitable 3D resolution --- @@ -3610,10 +3654,10 @@ index 2904c1b..8d3774f 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From 0ac98adc456416d3f687a81924659397d4a9ef7b Mon Sep 17 00:00:00 2001 +From 02dbdbba04d356097e1c41bc3a0bde3d275cf5e3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 24/61] [3D] Support switching to 3D resolutions +Subject: [PATCH 24/70] [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. @@ -3695,10 +3739,10 @@ index 83c3adb..8076e76 100644 return current; } -From 7fef1d13ee7d83bcbe3ea5b8f74461c5744b9ca9 Mon Sep 17 00:00:00 2001 +From 774a335c727687600693ff058aed8ea6bd28b867 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 25/61] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 25/70] [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. @@ -3901,10 +3945,10 @@ index c58c28a..bf1e589 100644 AddUniqueResolution(res2, resolutions); -From 226505052e30a82e9df0517ee8a5c7e4e3ba230f Mon Sep 17 00:00:00 2001 +From 737c86fa8cea517c5eb678aadc28cd5abe58a15b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 26/61] filesystem: Make support of browsing into archives +Subject: [PATCH 26/70] 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. @@ -4003,10 +4047,10 @@ index 2fd8777..3b294cd 100644 { // XBMC Smart playlist - just XML renamed to XSP // read the name of the playlist in -From f4bb933ecf5264da34f4016254a87318160ed59e Mon Sep 17 00:00:00 2001 +From b256e34e5811f7483464ba8ff9bf0ec15d47b68f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 28/61] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 28/70] [rbp] Make cachemembuffersize default depend on memory size --- @@ -4045,10 +4089,10 @@ index ba1a3d0..5119949 100644 response[sizeof(response) - 1] = '\0'; CLog::Log(LOGNOTICE, "Config:\n%s", response); diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 478d725..69b7832 100644 +index a1b68b5..e9cd63a 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp -@@ -365,7 +365,12 @@ void CAdvancedSettings::Initialize() +@@ -366,7 +366,12 @@ void CAdvancedSettings::Initialize() m_bPVRAutoScanIconsUserSet = false; m_iPVRNumericChannelSwitchTimeout = 1000; @@ -4062,11 +4106,10 @@ index 478d725..69b7832 100644 // the following setting determines the readRate of a player data // as multiply of the default data read rate - -From 2d804672d3ff76acc05ce146aaf0addbd17b9a72 Mon Sep 17 00:00:00 2001 +From a8bfa72200c62f3d1c0fc0ac7f211ad4d837eb6c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 16 Jun 2014 19:06:00 +0100 -Subject: [PATCH 30/61] [experimental] Disable quiet-noise generation +Subject: [PATCH 30/70] [experimental] Disable quiet-noise generation --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 2 ++ @@ -4093,10 +4136,10 @@ index b391ff3..463a89c 100644 void CActiveAESink::SetSilenceTimer() -From 1ef873265263d237960c9052ab0fe425eaa3f08b Mon Sep 17 00:00:00 2001 +From 9b94b2b1cb9c1bab31c899c634cc45e6e1cd7150 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 31/61] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 31/70] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -4118,10 +4161,10 @@ index 6902f83..50c5f97 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 994c18e9e61d6a1070028f4253b68491e6feb474 Mon Sep 17 00:00:00 2001 +From 795fb5aea08500fc3d94e0054f5699b66f040417 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 Aug 2014 21:01:42 +0100 -Subject: [PATCH 32/61] omxrender: Hacks to reduce GUI rendering rate when +Subject: [PATCH 32/70] omxrender: Hacks to reduce GUI rendering rate when playing video --- @@ -4193,10 +4236,10 @@ index f3c8a01..2996c29 100644
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 4a5619a..70dfea5 100644 +index 5425322..1df2418 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2207,6 +2207,23 @@ void CApplication::Render() +@@ -2212,6 +2212,23 @@ void CApplication::Render() if (m_bStop) return; @@ -4221,10 +4264,10 @@ index 4a5619a..70dfea5 100644 int vsync_mode = CSettings::Get().GetInt("videoscreen.vsync"); -From dde88c3d2123c6b6036f6d32d546ad691b06a99c Mon Sep 17 00:00:00 2001 +From f6f7d1ce0a3fc97bf05a395842e72cbf5058284d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 33/61] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 33/70] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -4253,10 +4296,10 @@ index bf1e589..a25eb86 100644 SetResolutionString(m_desktopRes); -From a3efced6244577f10cbdaf5c16a3a5eee627e519 Mon Sep 17 00:00:00 2001 +From 89971ac3e1976bc64e4a36d9272a0d5c2605ec37 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 34/61] Disable textbox autoscrolling while on screensaver. +Subject: [PATCH 34/70] Disable textbox autoscrolling while on screensaver. SQUASH: only if dim or black --- @@ -4266,10 +4309,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 70dfea5..a5706bd 100644 +index 1df2418..80350c4 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5881,3 +5881,10 @@ void CApplication::CloseNetworkShares() +@@ -5894,3 +5894,10 @@ void CApplication::CloseNetworkShares() CSFTPSessionManager::DisconnectAllSessions(); #endif } @@ -4317,10 +4360,10 @@ index c0e2fa5..0eca360 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From d2bfba18dd090634d5725ae74e92e6de7792fca7 Mon Sep 17 00:00:00 2001 +From 58c6c18ccabc7d4c9d28f2dc1acaa50ce5dfdd2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 18 Sep 2014 14:24:56 +0100 -Subject: [PATCH 35/61] [omxplayer] Only enable audio clock master when A/V +Subject: [PATCH 35/70] [omxplayer] Only enable audio clock master when A/V sync method is set to audio clock --- @@ -4351,10 +4394,10 @@ index 5475570..7c07b57 100644 OMX_CONFIG_BOOLEANTYPE configBool; OMX_INIT_STRUCTURE(configBool); -From 165d1b6f807277a808f70537d5f3bb2db75c3592 Mon Sep 17 00:00:00 2001 +From de6cb2bf5543ce802cfb65b12d73ed2b533bf51b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 36/61] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 36/70] [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". @@ -4553,10 +4596,10 @@ index 4fd18f3..6456657 100644 private: DllBcmHost *m_DllBcmHost; -From 797d4926183f165a74a9b84ab3d3369907222c6b Mon Sep 17 00:00:00 2001 +From 0e1439f9c66df9f115aa4532858fae7b0af02516 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 37/61] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 37/70] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -4580,10 +4623,10 @@ index 12a3ed6..cb512ed 100644 } -From 084de6d589287fed574658f9eec2180b0d7a7c79 Mon Sep 17 00:00:00 2001 +From 1fbb557dfc468855702ac1522b3b683a655ddd62 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 28 Sep 2014 19:28:17 +0100 -Subject: [PATCH 38/61] [mmalcodec] Introduce a preroll period to buffer up +Subject: [PATCH 38/70] [mmalcodec] Introduce a preroll period to buffer up frames on startup --- @@ -4716,10 +4759,10 @@ index b4aa571..4f81bbd 100644 MMAL_COMPONENT_T *m_dec; MMAL_PORT_T *m_dec_input; -From 46d39ba5ad0927c5d61712a8b04f8d3ca824d9fd Mon Sep 17 00:00:00 2001 +From a006bd88df683664061e3a0363ffc67bee7f8a80 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 39/61] [audio] Add settings option to boost centre channel +Subject: [PATCH 39/70] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -4842,10 +4885,10 @@ index 7c07b57..ef4c3d4 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From 6686f4f39283921d069464eec0652f0cf6b091b0 Mon Sep 17 00:00:00 2001 +From 157655e392db3920cb16538a0bd07a369abe1e25 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 3 Oct 2014 18:38:07 +0100 -Subject: [PATCH 40/61] [omxcore] Skip out of flush on error +Subject: [PATCH 40/70] [omxcore] Skip out of flush on error --- xbmc/linux/OMXCore.cpp | 4 ++-- @@ -4874,10 +4917,10 @@ index 4ae29ba..4caa304 100644 OMX_ERRORTYPE omx_err = OMX_ErrorNone; -From eb1c477c0c592f29037a9b14a30e5c23f79b9af4 Mon Sep 17 00:00:00 2001 +From 2e472e101e5696bf7d91719fb4bcfbee9ac58858 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 3 Oct 2014 18:40:06 +0100 -Subject: [PATCH 41/61] [SinkPi] Handle multichannel layout more like OMXAudio +Subject: [PATCH 41/70] [SinkPi] Handle multichannel layout more like OMXAudio --- xbmc/cores/AudioEngine/Sinks/AESinkPi.cpp | 14 +++++++------- @@ -4936,10 +4979,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 da6a81c9c7104c0d99f1140e14cf5b97efbd670a Mon Sep 17 00:00:00 2001 +From 50321a75fe06b74f1b426d1a36b8dbbf3f72aff6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 42/61] [rbp] Default extract thumbnails to false +Subject: [PATCH 42/70] [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 @@ -4969,10 +5012,10 @@ index 79853a8..4c2ef41 100644
-From c6be72242c0a7b7460f6c319c47e553151069a5a Mon Sep 17 00:00:00 2001 +From e0269eea6896873e9c63ce9b8a76a6b01ede714a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Nov 2014 18:14:23 +0000 -Subject: [PATCH 43/61] [resamplepi] Try to report the same numbers as ffmpeg +Subject: [PATCH 43/70] [resamplepi] Try to report the same numbers as ffmpeg --- .../cores/AudioEngine/Engines/ActiveAE/ActiveAEResamplePi.cpp | 11 ++++++----- @@ -5023,10 +5066,10 @@ index 84505bf..2b5bef2 100644 CLog::Log(LOGINFO, "%s::%s = %d", CLASSNAME, __func__, ret); #endif -From 966d1486cb16fd2bb43aae9a5f494594687f697a Mon Sep 17 00:00:00 2001 +From 368df3526a36d1f2fc1ba6baa25aa2dc8468827e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 11 Nov 2014 20:49:30 +0000 -Subject: [PATCH 44/61] [dvdplayer] New scheme for PLL adjustment for video +Subject: [PATCH 44/70] [dvdplayer] New scheme for PLL adjustment for video clock --- @@ -5141,10 +5184,10 @@ index 02c64a0..37bf4bd 100644 struct SInfo { -From 14568a4a6a45449d3929effd789f7073a92d28ce Mon Sep 17 00:00:00 2001 +From 5733df427b0c90a7f22397b27fac42bc083d7463 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 45/61] [dvdplayer] Add lock for player creation +Subject: [PATCH 45/70] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -5190,10 +5233,10 @@ index ef64076..7ea6ea6 100644 + CCriticalSection m_players_lock; }; -From 2ac37fc94952151c5b1699152c46fae2c148631b Mon Sep 17 00:00:00 2001 +From 6c788dd7eab7a682c169f33c3901d83ceb1fb29e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 19 Nov 2014 13:29:43 +0000 -Subject: [PATCH 46/61] [dvdplayeraudio] Add advancedsetting for configuring +Subject: [PATCH 46/70] [dvdplayeraudio] Add advancedsetting for configuring max pll adjustment --- @@ -5230,7 +5273,7 @@ index 4f25feb..3cfe8ad 100644 } m_last_error = m_error; diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 69b7832..5eca79a 100644 +index e9cd63a..3a266f8 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -108,6 +108,7 @@ void CAdvancedSettings::Initialize() @@ -5241,7 +5284,7 @@ index 69b7832..5eca79a 100644 m_audioApplyDrc = true; m_dvdplayerIgnoreDTSinWAV = false; -@@ -481,6 +482,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) +@@ -482,6 +483,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) if (pElement) { XMLUtils::GetFloat(pElement, "ac3downmixgain", m_ac3Gain, -96.0f, 96.0f); @@ -5250,7 +5293,7 @@ index 69b7832..5eca79a 100644 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 ca995e3..99ed121 100644 +index ed91aba..eccc62f 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h @@ -137,6 +137,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler @@ -5262,10 +5305,10 @@ index ca995e3..99ed121 100644 float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From 10475adc38c9035919030e6b17b9d60c2c5e9e25 Mon Sep 17 00:00:00 2001 +From 6ccc5b5928d4efb027ac882a079e06452a3e4a62 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 19 Nov 2014 17:35:44 +0000 -Subject: [PATCH 47/61] [mmalrender] Skip some log message in bypass mode +Subject: [PATCH 47/70] [mmalrender] Skip some log message in bypass mode --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 ++++++--- @@ -5303,10 +5346,10 @@ index 03a05de..c0ff30d 100644 // we only want to upload frames once if (buffer->flipindex++) -From 030e02b42f71aac7efdf1c9e0554772503697e72 Mon Sep 17 00:00:00 2001 +From a0087556e4393eb2281fe45e20ed6d4f92873a53 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 21:24:25 +0000 -Subject: [PATCH 48/61] [mmalcodec] Avoid deinterlace for dvd menus for now +Subject: [PATCH 48/70] [mmalcodec] Avoid deinterlace for dvd menus for now --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -5326,10 +5369,10 @@ index 6742e0e..a1f11e9 100644 else if (deinterlace_request == VS_DEINTERLACEMODE_FORCE) deinterlace = true; -From c4d184e405053e45b8fdac3e80eafdc0409a8868 Mon Sep 17 00:00:00 2001 +From 5314915973ad089039857bbbdaed9d9ce6102bf2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 49/61] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 49/70] [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. @@ -5406,10 +5449,10 @@ index f030e37..7a8fc10 100644 if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From b3522aea35dd182a42979a3d3f98d847593bac54 Mon Sep 17 00:00:00 2001 +From cae97c009e68fdd87b4149244a2487e9dbccda70 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:20:56 +0000 -Subject: [PATCH 50/61] [mmalcodec] Skip some setup that is not required when +Subject: [PATCH 50/70] [mmalcodec] Skip some setup that is not required when closing --- @@ -5476,10 +5519,10 @@ index a1f11e9..a11fa65 100644 m_startframe = false; m_decoderPts = DVD_NOPTS_VALUE; -From 98aee3513b7caf14a6bba2e465f28edec5b19837 Mon Sep 17 00:00:00 2001 +From ded576e27b601453c76b98d7ba21f6dd124e0e84 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 51/61] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 51/70] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -5502,10 +5545,10 @@ index 7b0d903..f92aa3e 100644 } -From bad28af8f1636a612acc0ccc5ec9e43b67abce75 Mon Sep 17 00:00:00 2001 +From 679e8af531617428188543b30c881c1eac657c94 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 17:53:46 +0000 -Subject: [PATCH 52/61] [mmalcodec] Try reducing number of video frames +Subject: [PATCH 52/70] [mmalcodec] Try reducing number of video frames --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -5539,10 +5582,10 @@ index 4f81bbd..79a4bfd 100644 virtual const char* GetName(void) { return (const char*)m_pFormatName; } virtual bool GetCodecStats(double &pts, int &droppedPics); -From 1b411d8f41b1c8d8d49b950e032fb78cb2b34122 Mon Sep 17 00:00:00 2001 +From eb3172760a433f4207a9868091494f16e5093dfb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 1 Dec 2014 17:31:00 +0000 -Subject: [PATCH 53/61] [mmalcodec] Ensure we have requested number of buffers +Subject: [PATCH 53/70] [mmalcodec] Ensure we have requested number of buffers in non-accelerated case --- @@ -5563,10 +5606,10 @@ index c0ff30d..6d461bd 100644 status = mmal_port_enable(m_vout_input, vout_input_port_cb_static); -From fb6f3b4ead397628ec80a4cc37e0f03adc76eeaa Mon Sep 17 00:00:00 2001 +From ce9325f77e17bcc4f54c2d5b34bcdf6a3c05cf51 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Dec 2014 21:17:53 +0000 -Subject: [PATCH 54/61] [omxplayer] Add some info about hdmi sync to codec +Subject: [PATCH 54/70] [omxplayer] Add some info about hdmi sync to codec overlay --- @@ -5647,10 +5690,10 @@ index c8fd5fb..9f26427 100644 bool IsEOS(); bool SubmittedEOS() const { return m_submitted_eos; } -From 6fb024728dc90801ca8e77687658c8deb2b418b8 Mon Sep 17 00:00:00 2001 +From fd196da51291f5254b181fd6c8e7947e053fe748 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 7 Dec 2014 15:21:18 +0000 -Subject: [PATCH 55/61] [omxplayer] Remove test of removed setting, avoids a +Subject: [PATCH 55/70] [omxplayer] Remove test of removed setting, avoids a log message --- @@ -5683,10 +5726,10 @@ index 66014d4..c2da2d2 100644 dataFormat = AE_FMT_DTS; m_passthrough = true; -From fe843625b9ad099a11ba8381a8ed9de8bcffec1c Mon Sep 17 00:00:00 2001 +From a348dac928288c978ebcad6999f913f652f660f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 28 Dec 2014 19:13:51 +0000 -Subject: [PATCH 56/61] [omxplayer] Skip packet concatenation for WMAV2 files +Subject: [PATCH 56/70] [omxplayer] Skip packet concatenation for WMAV2 files See: http://forum.kodi.tv/showthread.php?tid=212552 --- @@ -5709,10 +5752,10 @@ index 94b673e..1a920f7 100644 if(m_pCodecContext->bits_per_coded_sample == 0) -From 1a6ebaab8be9dcc9ae335121189b5f3bf2d19f8a Mon Sep 17 00:00:00 2001 +From c405f16c5a6c06c8e7616acf5d5c4b61362bdfc0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 31 Dec 2014 17:08:52 +0000 -Subject: [PATCH 57/61] filesystem: Make browsing into archives enbabled by +Subject: [PATCH 57/70] filesystem: Make browsing into archives enbabled by default on Pi This causes issues for people who scan library with archives disabled, then subsequently enable it. @@ -5744,10 +5787,10 @@ index 4c2ef41..3260465 100644 -From 32b9d35387473c681e524db4c6e82173d498eb40 Mon Sep 17 00:00:00 2001 +From fdf578ad886aeabfccb4376a2a8e9cc9e1b71f10 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 31 Dec 2014 16:03:32 +0000 -Subject: [PATCH 58/61] [PVR] Fix for slow metadata updates of recordings +Subject: [PATCH 58/70] [PVR] Fix for slow metadata updates of recordings See: http://forum.kodi.tv/showthread.php?tid=210774 @@ -5935,10 +5978,10 @@ index 6b8cb14..2bcc834 100644 int Load(); void Unload(); -From deb907165630c7c6bb61f81a005eee94c964105e Mon Sep 17 00:00:00 2001 +From 74b410774cb450e63a7852187dac4a5c789eb4d8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Dec 2014 17:20:00 +0000 -Subject: [PATCH 59/61] [dvdplayer] Allow pll adjustment to go higher, but tail +Subject: [PATCH 59/70] [dvdplayer] Allow pll adjustment to go higher, but tail off more gradually --- @@ -5960,7 +6003,7 @@ index 3cfe8ad..5db48a8 100644 m_plladjust = 1.0 + e * adjust; m_last_plladjust = g_RBP.AdjustHDMIClock(m_plladjust); diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 5eca79a..b1e396a 100644 +index 3a266f8..f007f42 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -108,7 +108,7 @@ void CAdvancedSettings::Initialize() @@ -5973,10 +6016,10 @@ index 5eca79a..b1e396a 100644 m_dvdplayerIgnoreDTSinWAV = false; -From 9c137af65807edcfa0e3e9910a1ae8689be7ccae Mon Sep 17 00:00:00 2001 +From ca6da5583652fe165d427f85b7a9291ac3665e5d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 60/61] Fix for UI not showing both extractflags and +Subject: [PATCH 60/70] Fix for UI not showing both extractflags and extractthumb --- @@ -6052,10 +6095,10 @@ index dbddcb6..756475f 100644 -From 81c40467f830476082680cc7b5242dcf59991ab9 Mon Sep 17 00:00:00 2001 +From 01cce9ccce0e371c3ef5750049ba1428f6935f7c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Jan 2015 19:24:17 +0000 -Subject: [PATCH 61/61] Fix for occasinal heap corruption with font cache +Subject: [PATCH 61/70] Fix for occasinal heap corruption with font cache See: PR 4143 issuecomment-71114810 --- @@ -6184,3 +6227,404 @@ index 7d4fc88..4110546 100644 End(); } + +From 33e308774f22bc50009dcac0835d1a4dcb5d1183 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 4 Feb 2015 22:02:33 +0000 +Subject: [PATCH 62/70] [omxplayer] Avoid extra frame allocation when + deinterlace might be enabled + +Requires updated firmware +--- + xbmc/cores/omxplayer/OMXVideo.cpp | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp +index dea0e11..55e16c4 100644 +--- a/xbmc/cores/omxplayer/OMXVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXVideo.cpp +@@ -610,22 +610,6 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, EDEINTERLACEMODE de + return false; + } + +- if (m_deinterlace_request != VS_DEINTERLACEMODE_OFF) +- { +- // the deinterlace component requires 3 additional video buffers in addition to the DPB (this is normally 2). +- OMX_PARAM_U32TYPE extra_buffers; +- OMX_INIT_STRUCTURE(extra_buffers); +- extra_buffers.nU32 = 3; +- +- omx_err = m_omx_decoder.SetParameter(OMX_IndexParamBrcmExtraBuffers, &extra_buffers); +- if(omx_err != OMX_ErrorNone) +- { +- CLog::Log(LOGERROR, "COMXVideo::Open error OMX_IndexParamBrcmExtraBuffers omx_err(0x%08x)\n", omx_err); +- return false; +- } +- } +- +- + // broadcom omx entension: + // When enabled, the timestamp fifo mode will change the way incoming timestamps are associated with output images. + // In this mode the incoming timestamps get used without re-ordering on output images. + +From 8ac3d0b6b87f6924c496f34f686bcd8479042307 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 18 Jan 2015 16:45:51 +0000 +Subject: [PATCH 63/70] [rbp] Enable error concealment by default + +Firmware now supports parsing SEI recovery points meaning streams without +IDR frames don't get discarded completely when error concealment is enabled. + +This should avoid the garbled frames that appear when seeking non-indexed (e.g. mpegts) files. +Requires updated firmware +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + xbmc/settings/AdvancedSettings.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index dd08c95..1bfec44 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -623,7 +623,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options, MMALVide + + error_concealment.hdr.id = MMAL_PARAMETER_VIDEO_DECODE_ERROR_CONCEALMENT; + error_concealment.hdr.size = sizeof(MMAL_PARAMETER_BOOLEAN_T); +- error_concealment.enable = MMAL_FALSE; ++ error_concealment.enable = g_advancedSettings.m_omxDecodeStartWithValidFrame; + status = mmal_port_parameter_set(m_dec_input, &error_concealment.hdr); + if (status != MMAL_SUCCESS) + CLog::Log(LOGERROR, "%s::%s Failed to disable error concealment on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index f007f42..9f00cf4 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -117,7 +117,7 @@ void CAdvancedSettings::Initialize() + m_limiterRelease = 0.1f; + + m_omxHWAudioDecode = false; +- m_omxDecodeStartWithValidFrame = false; ++ m_omxDecodeStartWithValidFrame = true; + + m_karaokeSyncDelayCDG = 0.0f; + m_karaokeSyncDelayLRC = 0.0f; + +From c3792a00ff89dda80b2464d2232eb065d13ce00a Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 26 Jan 2015 17:54:07 +0000 +Subject: [PATCH 64/70] [mmalrenderer] Avoid grabbing the g_graphicsContext + lock - it can deadlock + +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index 6d461bd..11a6f10 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -404,7 +404,6 @@ void CMMALRenderer::FlipPage(int source) + + unsigned int CMMALRenderer::PreInit() + { +- CSingleLock lock(g_graphicsContext); + m_bConfigured = false; + UnInit(); + +@@ -434,7 +433,6 @@ void CMMALRenderer::ReleaseBuffers() + + void CMMALRenderer::UnInit() + { +- CSingleLock lock(g_graphicsContext); + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + if (m_vout) + { + +From a55e8814112f3af7f878eb8568de910962dc5631 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 15 Feb 2015 14:06:12 +0000 +Subject: [PATCH 65/70] [mmal] Use libmpeg2 when mpeg2 codec licence is not + available + +--- + xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +index bea5e4f..e4f59d7 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +@@ -49,6 +49,9 @@ + #include "Video/DVDVideoCodecAndroidMediaCodec.h" + #include "android/activity/AndroidFeatures.h" + #endif ++#if defined(HAS_MMAL) ++#include "linux/RBP.h" ++#endif + #include "Audio/DVDAudioCodecFFmpeg.h" + #include "Audio/DVDAudioCodecPassthrough.h" + #include "Overlay/DVDOverlayCodecSSA.h" +@@ -196,7 +199,7 @@ CDVDVideoCodec* CDVDFactoryCodec::CreateVideoCodec(CDVDStreamInfo &hint, unsigne + + #if defined(HAS_MMAL) + // mmal can handle dvd playback including stills +- if (!CSettings::Get().GetBool("videoplayer.usemmal")) ++ if (!CSettings::Get().GetBool("videoplayer.usemmal") || !g_RBP.GetCodecMpg2()) + #endif + if (hint.stills && (hint.codec == AV_CODEC_ID_MPEG2VIDEO || hint.codec == AV_CODEC_ID_MPEG1VIDEO)) + { + +From 738fb9b3e81cc7c5c469d20869d0838b21b53990 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 28 Feb 2015 22:34:52 +0000 +Subject: [PATCH 66/70] [mmalrender] Fix for hang on shutdown + +mmal_queue_push doesn't allow null pointers, so use a unique packet for signalling quit +--- + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 5 +++-- + xbmc/cores/VideoRenderers/MMALRenderer.h | 2 ++ + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +index 11a6f10..a70eeb0 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp +@@ -132,7 +132,7 @@ bool CMMALRenderer::init_vout(MMAL_ES_FORMAT_T *format) + void CMMALRenderer::Process() + { + MMAL_BUFFER_HEADER_T *buffer; +- while (buffer = mmal_queue_wait(m_release_queue), buffer) ++ while (buffer = mmal_queue_wait(m_release_queue), buffer && buffer != &m_quit_packet) + { + CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; + omvb->Release(); +@@ -148,6 +148,7 @@ CMMALRenderer::CMMALRenderer() + m_vout_input = NULL; + m_vout_input_pool = NULL; + memset(m_buffers, 0, sizeof m_buffers); ++ mmal_buffer_header_reset(&m_quit_packet); + m_release_queue = mmal_queue_create(); + Create(); + } +@@ -156,7 +157,7 @@ CMMALRenderer::~CMMALRenderer() + { + CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); + // shutdown thread +- mmal_queue_put(m_release_queue, NULL); ++ mmal_queue_put(m_release_queue, &m_quit_packet); + m_sync.Wait(); + mmal_queue_destroy(m_release_queue); + UnInit(); +diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h +index 8ca0b94..a5c248c 100644 +--- a/xbmc/cores/VideoRenderers/MMALRenderer.h ++++ b/xbmc/cores/VideoRenderers/MMALRenderer.h +@@ -116,6 +116,8 @@ class CMMALRenderer : public CBaseRenderer, public CThread + + MMAL_QUEUE_T *m_release_queue; + CEvent m_sync; ++ MMAL_BUFFER_HEADER_T m_quit_packet; ++ + bool init_vout(MMAL_ES_FORMAT_T *m_format); + void ReleaseBuffers(); + }; + +From 8f42036c6152931a92aeb8a648f94b2687c2cb79 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 27 Feb 2015 19:07:17 +0000 +Subject: [PATCH 67/70] [omxplayer] Attempt to fix missing subtitles after seek + +--- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index 77b9461..2a3619f 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -295,7 +295,7 @@ void OMXPlayerVideo::Output(double pts, bool bDropPacket) + const double preroll = DVD_MSEC_TO_TIME(100); + double media_pts = m_av_clock->OMXMediaTime(); + +- if (m_nextOverlay != DVD_NOPTS_VALUE && media_pts + preroll <= m_nextOverlay) ++ if (m_nextOverlay != DVD_NOPTS_VALUE && media_pts != 0.0 && media_pts + preroll <= m_nextOverlay) + return; + + int buffer = g_renderManager.WaitForBuffer(CThread::m_bStop); + +From 4ad6d848a76c9487f849cb6a7a035d8fc53932ee Mon Sep 17 00:00:00 2001 +From: anaconda +Date: Wed, 25 Feb 2015 18:22:21 +0100 +Subject: [PATCH 68/70] Load OSD dialogs on startup. + +Fixes skipped frames the first time they're loaded in memory on less powered +devices, like a Raspberry Pi, when using DVDPlayer. +See http://forum.kodi.tv/showthread.php?tid=211501&pid=1938811#pid1938811 +--- + xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp | 1 + + xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp | 1 + + xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp | 4 +++- + xbmc/video/dialogs/GUIDialogSubtitles.cpp | 2 +- + xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp | 2 +- + xbmc/video/dialogs/GUIDialogVideoOSD.cpp | 2 +- + xbmc/video/dialogs/GUIDialogVideoSettings.cpp | 4 +++- + 7 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp +index 5fb5c79..36f7273 100644 +--- a/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp ++++ b/xbmc/pvr/dialogs/GUIDialogPVRChannelsOSD.cpp +@@ -50,6 +50,7 @@ CGUIDialogPVRChannelsOSD::CGUIDialogPVRChannelsOSD() : + CGUIDialog(WINDOW_DIALOG_PVR_OSD_CHANNELS, "DialogPVRChannelsOSD.xml"), + Observer() + { ++ m_loadType = LOAD_ON_GUI_INIT; + m_vecItems = new CFileItemList; + } + +diff --git a/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp b/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp +index cf7e5d2..9e9ed32 100644 +--- a/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp ++++ b/xbmc/pvr/dialogs/GUIDialogPVRGuideOSD.cpp +@@ -35,6 +35,7 @@ using namespace PVR; + CGUIDialogPVRGuideOSD::CGUIDialogPVRGuideOSD() + : CGUIDialog(WINDOW_DIALOG_PVR_OSD_GUIDE, "DialogPVRGuideOSD.xml") + { ++ m_loadType = LOAD_ON_GUI_INIT; + m_vecItems = new CFileItemList; + } + +diff --git a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp +index 32a9ba4..9999bdf 100644 +--- a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp ++++ b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp +@@ -62,7 +62,9 @@ using namespace std; + CGUIDialogAudioSubtitleSettings::CGUIDialogAudioSubtitleSettings() + : CGUIDialogSettingsManualBase(WINDOW_DIALOG_AUDIO_OSD_SETTINGS, "VideoOSDSettings.xml"), + m_passthrough(false) +-{ } ++{ ++ m_loadType = LOAD_ON_GUI_INIT; ++} + + CGUIDialogAudioSubtitleSettings::~CGUIDialogAudioSubtitleSettings() + { } +diff --git a/xbmc/video/dialogs/GUIDialogSubtitles.cpp b/xbmc/video/dialogs/GUIDialogSubtitles.cpp +index e3939f1..e184d53 100644 +--- a/xbmc/video/dialogs/GUIDialogSubtitles.cpp ++++ b/xbmc/video/dialogs/GUIDialogSubtitles.cpp +@@ -99,7 +99,7 @@ class CSubtitlesJob: public CJob + CGUIDialogSubtitles::CGUIDialogSubtitles(void) + : CGUIDialog(WINDOW_DIALOG_SUBTITLES, "DialogSubtitles.xml") + { +- m_loadType = KEEP_IN_MEMORY; ++ m_loadType = LOAD_ON_GUI_INIT; + m_subtitles = new CFileItemList; + m_serviceItems = new CFileItemList; + m_pausedOnRun = false; +diff --git a/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp b/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp +index 1ccabc8..43691bf 100644 +--- a/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp ++++ b/xbmc/video/dialogs/GUIDialogVideoBookmarks.cpp +@@ -61,7 +61,7 @@ CGUIDialogVideoBookmarks::CGUIDialogVideoBookmarks() + : CGUIDialog(WINDOW_DIALOG_VIDEO_BOOKMARKS, "VideoOSDBookmarks.xml") + { + m_vecItems = new CFileItemList; +- m_loadType = KEEP_IN_MEMORY; ++ m_loadType = LOAD_ON_GUI_INIT; + } + + CGUIDialogVideoBookmarks::~CGUIDialogVideoBookmarks() +diff --git a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +index 98c3c5a..ba1b5f4 100644 +--- a/xbmc/video/dialogs/GUIDialogVideoOSD.cpp ++++ b/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +@@ -35,7 +35,7 @@ using namespace PVR; + CGUIDialogVideoOSD::CGUIDialogVideoOSD(void) + : CGUIDialog(WINDOW_DIALOG_VIDEO_OSD, "VideoOSD.xml") + { +- m_loadType = KEEP_IN_MEMORY; ++ m_loadType = LOAD_ON_GUI_INIT; + } + + CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) +diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +index ca65fdc..fbd2a52 100644 +--- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp ++++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +@@ -65,7 +65,9 @@ using namespace std; + CGUIDialogVideoSettings::CGUIDialogVideoSettings() + : CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "VideoOSDSettings.xml"), + m_viewModeChanged(false) +-{ } ++{ ++ m_loadType = LOAD_ON_GUI_INIT; ++} + + CGUIDialogVideoSettings::~CGUIDialogVideoSettings() + { } + +From 9bca0b7b17808aea67a47c030b72d3247cf6dd88 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 1 Mar 2015 14:49:12 +0000 +Subject: [PATCH 69/70] [omxplayer] Fix for volume being treated as a linear + scale + +The volume in kodi is actually 0.0=-60dB to 1.0=0dB. omxplayer was treating this as a linear scale. +That's correct for 0.0 and 1.0, but too loud for 0.5. + +The fix has been tested with white noise sample and decibel meter smartphone app, and now omxplayer and +dvdplayer produce the same output +--- + xbmc/cores/omxplayer/OMXAudio.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp +index ef4c3d4..c16ae2e 100644 +--- a/xbmc/cores/omxplayer/OMXAudio.cpp ++++ b/xbmc/cores/omxplayer/OMXAudio.cpp +@@ -1056,6 +1056,8 @@ bool COMXAudio::ApplyVolume(void) + return false; + + float fVolume = m_Mute ? VOLUME_MINIMUM : m_CurrentVolume; ++ // need to convert a log scale of 0.0=-60dB, 1.0=0dB to a linear scale (0.0=silence, 1.0=full) ++ fVolume = CAEUtil::GainToScale(CAEUtil::PercentToGain(fVolume)); + + // the analogue volume is too quiet for some. Allow use of an advancedsetting to boost this (at risk of distortion) (deprecated) + double gain = pow(10, (g_advancedSettings.m_ac3Gain - 12.0f) / 20.0); + +From 1d76c863806b2b5d53a32100795d4fbb86269516 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 24 Feb 2015 00:09:19 +0000 +Subject: [PATCH 70/70] [omxplayer] Limit subtitle updates to 10fps to avoid + stuttering with closed captions + +--- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index 2a3619f..6ae404df 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -221,7 +221,7 @@ double OMXPlayerVideo::NextOverlay(double pts) + else if (delta_stop > 0.0 && (min_delta == DVD_NOPTS_VALUE || delta_stop < min_delta)) + min_delta = delta_stop; + } +- return min_delta == DVD_NOPTS_VALUE ? pts+DVD_MSEC_TO_TIME(500) : pts+min_delta; ++ return min_delta == DVD_NOPTS_VALUE ? pts+DVD_MSEC_TO_TIME(500) : pts+std::max(min_delta, DVD_MSEC_TO_TIME(100)); + } + + +@@ -305,9 +305,9 @@ void OMXPlayerVideo::Output(double pts, bool bDropPacket) + double subtitle_pts = m_nextOverlay; + double time = subtitle_pts != DVD_NOPTS_VALUE ? subtitle_pts - media_pts : 0.0; + +- m_nextOverlay = NextOverlay(media_pts); ++ m_nextOverlay = NextOverlay(media_pts + preroll); + +- ProcessOverlays(media_pts); ++ ProcessOverlays(media_pts + preroll); + + time += m_av_clock->GetAbsoluteClock(); + g_renderManager.FlipPage(CThread::m_bStop, time/DVD_TIME_BASE);