From a872d7e86d4264a0637e2aa0bef7d1ceb741e8fb Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Fri, 1 Apr 2016 14:20:00 +0100 Subject: [PATCH] RPi/RPi2: Update kodi support patches --- .../kodi/kodi-001-jarvis-rbp-backports.patch | 1052 +++++------------ .../kodi/kodi-001-jarvis-rbp-backports.patch | 1052 +++++------------ 2 files changed, 564 insertions(+), 1540 deletions(-) diff --git a/projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch b/projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch index 89a72271ff..fa712e8b6a 100644 --- a/projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch +++ b/projects/RPi/patches/kodi/kodi-001-jarvis-rbp-backports.patch @@ -1,7 +1,7 @@ -From 0418867953596638f7c8bd9a73f993588ef9ca14 Mon Sep 17 00:00:00 2001 +From d11fabefb909e75e7186bd9ecd0cbff9e8b24577 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Sep 2015 19:11:14 +0100 -Subject: [PATCH 01/94] Enable concealed error frames, but discard them when +Subject: [PATCH 01/93] Enable concealed error frames, but discard them when returned --- @@ -51,14 +51,11 @@ index bebe136..727a9ea 100644 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)); --- -2.5.0 - -From 66a74ecce9891a49ef5af36ecb216524d399d309 Mon Sep 17 00:00:00 2001 +From 5fb2a476f902f028de46e46863fdc74b4c021371 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 26 Aug 2015 21:47:41 +0100 -Subject: [PATCH 02/94] Reduce framerate of high framerate videos when not +Subject: [PATCH 02/93] Reduce framerate of high framerate videos when not running fullscreen --- @@ -120,14 +117,11 @@ index d081b9c..0ea6ecd 100644 // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; --- -2.5.0 - -From 9aaaf4cc73da770a7900e5a8095500150fb46db7 Mon Sep 17 00:00:00 2001 +From 8f815de22d00759496cd60139fb497d4064002cf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:08:05 +0000 -Subject: [PATCH 03/94] Remove preroll +Subject: [PATCH 03/93] Remove preroll --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 12 ++---------- @@ -198,14 +192,11 @@ index 0ea6ecd..50ac0e3 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; --- -2.5.0 - -From 103c4eb8a0a6d33bbcb42f128b82d16a5997386f Mon Sep 17 00:00:00 2001 +From 18c08e9c0410f43d2deec9d69e64eca7fdfd9a17 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 22:35:11 +0000 -Subject: [PATCH 04/94] Remove demux queue +Subject: [PATCH 04/93] Remove demux queue --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 81 ++++------------------ @@ -396,14 +387,11 @@ index 50ac0e3..f4df09c 100644 // mmal output buffers (video frames) pthread_mutex_t m_output_mutex; std::queue m_output_ready; --- -2.5.0 - -From 8869a77fbd72a0e9a341ad859a08c3dd8f64eff0 Mon Sep 17 00:00:00 2001 +From 432994f3a9e9867d04d4c3d360476d72acea0a6c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:10:33 +0000 -Subject: [PATCH 05/94] Remove time based limit on submitted packets +Subject: [PATCH 05/93] Remove time based limit on submitted packets --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 24 +++------------------- @@ -484,14 +472,11 @@ index f4df09c..8f84557 100644 int m_speed; CCriticalSection m_sharedSection; --- -2.5.0 - -From 2aee01ad85f6233bc6f850d75c594a0e7838930f Mon Sep 17 00:00:00 2001 +From 14ec8859335b4dc5add80bed34ce21ab3a4c8df4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Dec 2015 22:18:47 +0000 -Subject: [PATCH 06/94] Add back logging of data queued in decoder +Subject: [PATCH 06/93] Add back logging of data queued in decoder --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 22 +++++++++++++++++++++- @@ -572,14 +557,11 @@ index 8f84557..f4df09c 100644 int m_speed; CCriticalSection m_sharedSection; --- -2.5.0 - -From 011ad87c7a06222473b06654ab4df0a292edc956 Mon Sep 17 00:00:00 2001 +From 61928feb51d23e4550abfbf8ab26e933ff1fec4e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Dec 2015 11:40:17 +0000 -Subject: [PATCH 07/94] Try to minimise latency through hardware decoder. This +Subject: [PATCH 07/93] Try to minimise latency through hardware decoder. This could reduce performance but keeps videoplayer happier --- @@ -664,14 +646,11 @@ index 35a9847..f96cc14 100644 return ret; } --- -2.5.0 - -From 3302e62bfc5a964bdb7beb98ca0624b138edadaa Mon Sep 17 00:00:00 2001 +From 0d9c905db96e1b465a26c834430a1783c000a5a9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Jul 2015 19:27:25 +0100 -Subject: [PATCH 08/94] Enable QPU based deinterlace and remove resolution +Subject: [PATCH 08/93] Enable QPU based deinterlace and remove resolution limit --- @@ -739,14 +718,11 @@ index e50c13a..20ad4fa 100644 if (!advanced_deinterlace) image_filter.eImageFilter = OMX_ImageFilterDeInterlaceFast; else --- -2.5.0 - -From db5f80d9955ecf1fa37c12f10bc48d8b84871f99 Mon Sep 17 00:00:00 2001 +From 6cfe8e3a2fa86dbb63830eea0b1f9617ea6c9ba0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 16 Aug 2015 15:46:33 +0100 -Subject: [PATCH 09/94] Allow deinterlace with software decode +Subject: [PATCH 09/93] Allow deinterlace with software decode --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 +++++++++ @@ -779,14 +755,11 @@ index bee3af1..9b5c666 100644 return m_sourceWidth * m_sourceHeight <= 576 * 720 ? VS_INTERLACEMETHOD_MMAL_ADVANCED : VS_INTERLACEMETHOD_MMAL_BOB; } --- -2.5.0 - -From 36180656b74f719ee0c2a8748a5d12d5ccbea93b Mon Sep 17 00:00:00 2001 +From d5c49bf267a9dd4baf7e6be9127548adf64d899b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 15 Sep 2015 22:26:26 +0100 -Subject: [PATCH 10/94] omxplayer: Don't use AutoInterlaceMethod it changes at +Subject: [PATCH 10/93] omxplayer: Don't use AutoInterlaceMethod it changes at start of file --- @@ -821,14 +794,11 @@ index de493a2..7251fc1 100644 reopen_stream = true; } --- -2.5.0 - -From a0ce519db0d21eb3e9a2dfd070b0859d72784569 Mon Sep 17 00:00:00 2001 +From cb890fdeed45ff016c15f321d00f6cfe9cc3685d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 15:05:37 +0100 -Subject: [PATCH 11/94] Avoid calling render callback with the lock held to +Subject: [PATCH 11/93] Avoid calling render callback with the lock held to avoid a deadlock --- @@ -931,14 +901,11 @@ index d0634bb..7baefa5 100644 void RegisterResolutionUpdateCallBack(void *ctx, ResolutionUpdateCallBackFn callback) { m_res_ctx = ctx; m_res_callback = callback; } void Close(void); unsigned int GetFreeSpace(); --- -2.5.0 - -From 8d8e6b7c7b0af50800e2489a0e370c5e656dddb1 Mon Sep 17 00:00:00 2001 +From 364da740e395d2091293f521a4bde7806b3218a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 22:03:56 +0000 -Subject: [PATCH 12/94] Add settings option to enable MVC and frame packing +Subject: [PATCH 12/93] Add settings option to enable MVC and frame packing support --- @@ -1084,14 +1051,11 @@ index 55e150d..f3ba426 100644 static const std::string SETTING_AUDIOOUTPUT_AUDIODEVICE; static const std::string SETTING_AUDIOOUTPUT_CHANNELS; static const std::string SETTING_AUDIOOUTPUT_CONFIG; --- -2.5.0 - -From 7e941d7f0e1fc87d5d43e36b1febb3f7681f1e18 Mon Sep 17 00:00:00 2001 +From 71d3daeb3f44c6a7876415141e740464ce8b6c87 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Dec 2015 15:38:34 +0000 -Subject: [PATCH 13/94] Don't adjust 3d rectangles in bypass mode +Subject: [PATCH 13/93] Don't adjust 3d rectangles in bypass mode --- xbmc/cores/VideoRenderers/BaseRenderer.cpp | 55 ++++++++++++++++-------------- @@ -1166,14 +1130,11 @@ index 7889cf8..d4bb306 100644 } CalcNormalDisplayRect(m_viewRect.x1, m_viewRect.y1, m_viewRect.Width(), m_viewRect.Height(), GetAspectRatio() * CDisplaySettings::GetInstance().GetPixelRatio(), CDisplaySettings::GetInstance().GetZoomAmount(), CDisplaySettings::GetInstance().GetVerticalShift()); --- -2.5.0 - -From 1b8497b41521ac8277f2fab23baa6980d5680607 Mon Sep 17 00:00:00 2001 +From 5ebb280be9de4ce882de665215c8bbda0c072864 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH 14/94] Switch to using transform flags for 3d modes +Subject: [PATCH 14/93] Switch to using transform flags for 3d modes --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 100 +++++++++--------------- @@ -1585,14 +1546,11 @@ index 5d5b74b..443d037 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); --- -2.5.0 - -From 6a912e2c074aa44c0dc288a64e0e4dff1edccc77 Mon Sep 17 00:00:00 2001 +From 2be3612226ee01a6d294c6ca6a7d8d0849bd4221 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 17:42:03 +0100 -Subject: [PATCH 15/94] Remove unused Support3D function +Subject: [PATCH 15/93] Remove unused Support3D function --- xbmc/windowing/egl/WinSystemEGL.cpp | 29 ----------------------------- @@ -1651,14 +1609,11 @@ index 9d4baf6..1ec4225 100644 virtual bool ClampToGUIDisplayLimits(int &width, int &height); EGLConfig GetEGLConfig(); --- -2.5.0 - -From 299d2a7f59caf3e44aa04c67c5a4bcceae6a4310 Mon Sep 17 00:00:00 2001 +From ad81921b2e03b01bed2d40f0f1aff697cb48fa56 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 21:08:34 +0000 -Subject: [PATCH 16/94] Avoid switching stereo mode based on current display +Subject: [PATCH 16/93] Avoid switching stereo mode based on current display mode --- @@ -1700,14 +1655,11 @@ index a1b8812..60979bb 100644 RESOLUTION_INFO info_mod = GetResInfo(res); --- -2.5.0 - -From 1d0be437addc2225a969b42088511d5b2e50c9f0 Mon Sep 17 00:00:00 2001 +From be69b44990015a874305ef96e7fbdef7f815599e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 18:53:29 +0100 -Subject: [PATCH 17/94] Drop reporting 3D modes and just use current rendering +Subject: [PATCH 17/93] Drop reporting 3D modes and just use current rendering mode to request 3D signalling [rbp] Add ntsc version of 48Hz mode @@ -1978,14 +1930,11 @@ index a0acb1a..e5bcae7 100644 + int AddUniqueResolution(RESOLUTION_INFO &res, std::vector &resolutions, bool desktop = false); #endif }; --- -2.5.0 - -From e40391cacdb8e49b0af12cfa093d9362daf41842 Mon Sep 17 00:00:00 2001 +From 5d3349935e282c6d4faef746a5b8a9934676d4c6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 16:27:15 +0100 -Subject: [PATCH 18/94] Consider stereomode when creating a new window +Subject: [PATCH 18/93] Consider stereomode when creating a new window We might be changing from a non-3D to a 3D mode --- @@ -2041,14 +1990,11 @@ index 1ec4225..a33dedc 100644 CEGLWrapper *m_egl; std::string m_extensions; --- -2.5.0 - -From f917226a056672e2266d30540e79caee45ec869f Mon Sep 17 00:00:00 2001 +From 5d836aad86bfed970e902005bae5761415cec58d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 19/94] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 19/93] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -2071,14 +2017,11 @@ index 6816b45..6cc5a8f 100644 { g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) --- -2.5.0 - -From c5007f5c066a37c5d052816688e877b1559b28a9 Mon Sep 17 00:00:00 2001 +From e01575ea1b07d19332017fca0e1a51389b78d93d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 20/94] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 20/93] [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. @@ -2163,14 +2106,11 @@ index 0000000..d829898 + } + } + } --- -2.5.0 - -From b9a63ad68ba584cd374345d48614ea4cd04bbce1 Mon Sep 17 00:00:00 2001 +From a29142db6e36056fd988b3199747c0da0dab78a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 21/94] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 21/93] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -2192,14 +2132,11 @@ index e22db7a..0120bd5 100644 if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { --- -2.5.0 - -From 5bf1a1d26e0c3e4dd2c6a2e71f2550fb7eab2d64 Mon Sep 17 00:00:00 2001 +From cad0f33be5e0b5989ece0863ba96158dbf5174d9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 22/94] Improved file buffering in CArchive +Subject: [PATCH 22/93] 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 @@ -2258,14 +2195,11 @@ index 6ed0f8f..8506d95 100644 return *this; } else --- -2.5.0 - -From 5be85818f72f316ac0419273069fd96d02ac8eb7 Mon Sep 17 00:00:00 2001 +From 17eebeec762e4f1c921d886b6863ac4a21cdb2f0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 23/94] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 23/93] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -2285,14 +2219,11 @@ index 4ffe33a..4b09e8f 100644 } else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { --- -2.5.0 - -From 60f3a3087411daae5e3a690820fe4bf65c295532 Mon Sep 17 00:00:00 2001 +From 9da36b4157459cc72529ef6be5721f1ff6920ef6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 24/94] filesystem: Make support of browsing into archives +Subject: [PATCH 24/93] 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. @@ -2374,14 +2305,11 @@ index a1d4ee4..4929283 100644 if (url.IsFileType("xbt")) { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); --- -2.5.0 - -From 0417dd5c5b0c15ddf536cea15e1881594ab0eef6 Mon Sep 17 00:00:00 2001 +From b0231de02ec1821e136d75ff0f3986aaed8f0d92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 25/94] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 25/93] [rbp] Make cachemembuffersize default depend on memory size --- @@ -2482,14 +2410,11 @@ index bc3aa8c..562757e 100644 m_initialized = true; } --- -2.5.0 - -From 66ca5923eb98f9fafcd35487c03079b7326fee07 Mon Sep 17 00:00:00 2001 +From 6d080c7c800d2e1120b46c5490d64d80b4e63ad4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 26/94] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 26/93] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -2510,14 +2435,11 @@ index 7993a73..761385b 100644 list.push_back(std::make_pair( StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), --- -2.5.0 - -From 0a2735dd4f859337281ff77d2f02b781c94f98c5 Mon Sep 17 00:00:00 2001 +From 80f582c6ced4a245d0cabb97a3e9fefc009e096d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 27/94] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 27/93] [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". @@ -2822,14 +2744,11 @@ index 6475350..93de9bd 100644 std::string m_audioDefaultPlayer; float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; --- -2.5.0 - -From c7f85eb57480d0ea7296ab6adac768334f1d1889 Mon Sep 17 00:00:00 2001 +From cecfb10575958e190cf3c6394ff2158bff6fe52a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 28/94] [audio] Add settings option to boost centre channel +Subject: [PATCH 28/93] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -2951,14 +2870,11 @@ index 08b1b84..70d0866 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) --- -2.5.0 - -From 1592ab35c711338d52ad1ac08f79ff2fd3365020 Mon Sep 17 00:00:00 2001 +From cd089d7903e1fd4e0812ad817126a19d07fa896d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 29/94] [rbp] Default extract thumbnails to false +Subject: [PATCH 29/93] [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 @@ -2987,14 +2903,11 @@ index 7a170c2..1506035 100644
--- -2.5.0 - -From 1d482f503a08b533b17640759b9f61bad2391743 Mon Sep 17 00:00:00 2001 +From c0b8590f78235540d82d478334c7f30fae417754 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH 30/94] [libcec] Add repeating keypress patch from popcornmix' +Subject: [PATCH 30/93] [libcec] Add repeating keypress patch from popcornmix' repo --- @@ -3880,14 +3793,11 @@ index 0000000..8366a69 +-- +1.9.1 + --- -2.5.0 - -From 63cf430f0c46993da63b37ded994cf1bc964dece Mon Sep 17 00:00:00 2001 +From bfc97f9146e8ac70fb03c439a4cf1a9a3135ea9b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH 31/94] [cec] Add settings for configuring button repeats +Subject: [PATCH 31/93] [cec] Add settings for configuring button repeats --- addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ @@ -3967,14 +3877,11 @@ index e0d8dae..f738c84 100644 if (GetSettingBool("pause_playback_on_deactivate")) { --- -2.5.0 - -From 3550128073031d9a7560b76c1f215acfdf58bc1d Mon Sep 17 00:00:00 2001 +From af63fad05fc2f6c24354c7acd08cd685ff376e28 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH 32/94] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 32/93] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -3996,14 +3903,11 @@ index f738c84..58d7d0d 100644 { if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { --- -2.5.0 - -From 8dca506d73857bc367f3e4ce0a4c95c622d269da Mon Sep 17 00:00:00 2001 +From 42155d82d06a1deea72d4c3092315ea1110c6cb7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH 33/94] [cec] Temp - more logging +Subject: [PATCH 33/93] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -4054,14 +3958,11 @@ index 58d7d0d..dfba61a 100644 m_buttonQueue.push_back(key); } --- -2.5.0 - -From a211f8b79ba4842fcde3cb56abc5a2c2b179ba74 Mon Sep 17 00:00:00 2001 +From f8d6e97fedcb9184af7dfc8a976815892faa7784 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 34/94] [dvdplayer] Add lock for player creation +Subject: [PATCH 34/93] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -4106,14 +4007,11 @@ index 2f00647..b1418e3 100644 bool m_omxplayer_mode; // using omxplayer acceleration + CCriticalSection m_players_lock; }; --- -2.5.0 - -From 385ad863ed94508583882aff64a7e54d14ed89ae Mon Sep 17 00:00:00 2001 +From 2e80c975eb2d085f157ea328488aa7889c092f47 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 35/94] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 35/93] [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. @@ -4189,14 +4087,11 @@ index 379c541..b5777a1 100644 } if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) --- -2.5.0 - -From bbc0384997b0bb8ccd869b320ec8d60fa31d5087 Mon Sep 17 00:00:00 2001 +From 1a4b613e9981829137c817baad127fda8e1e2823 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 36/94] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 36/93] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -4218,14 +4113,11 @@ index fcdd063..16f0c89 100644 return true; } --- -2.5.0 - -From 77e535d399cebf699327d19490ef78519004a557 Mon Sep 17 00:00:00 2001 +From 73c6f413799cbb821f597253eb80457ee29a45f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 37/94] logging: Add microsecond timer to log messages +Subject: [PATCH 37/93] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -4277,14 +4169,11 @@ index 3443f12..31c4a99 100644 (uint64_t)CThread::GetCurrentThreadId(), levelNames[logLevel]) + strData; --- -2.5.0 - -From 661ea4c177ec232a63a9a9ba21f855c5c581a2f3 Mon Sep 17 00:00:00 2001 +From dd959edaaae1f167e0979ac55d64e5d769127687 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 38/94] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 38/93] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -4357,14 +4246,11 @@ index ee29770..ff0d3e3 100644 DestroyDispmaxWindow(); RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); --- -2.5.0 - -From 50bec5d613ec9e5b1b946f904776565de130eafd Mon Sep 17 00:00:00 2001 +From 3afc5e302cd1fdad4afa43ec705707f36de2ddaf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 39/94] Fix for UI not showing both extractflags and +Subject: [PATCH 39/93] Fix for UI not showing both extractflags and extractthumb --- @@ -4427,14 +4313,11 @@ index 918e8bf..61e1a22 100644 true --- -2.5.0 - -From 88fcb5323a0a277feb21bcba9ef62986089aef46 Mon Sep 17 00:00:00 2001 +From c423d114818b5cd611bd83c31cda74139b5dfd91 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 40/94] Disable autoscrolling while on screensaver and while +Subject: [PATCH 40/93] Disable autoscrolling while on screensaver and while opening streams. --- @@ -4564,14 +4447,11 @@ index d7bc1c5..ac76629 100644 { if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; --- -2.5.0 - -From ba23654e3dfab6001f1087babc1fb6ebb050b18d Mon Sep 17 00:00:00 2001 +From 6b4fbcdd92b654b53fe8aeb5f00a5037117a505f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 41/94] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 41/93] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -4668,14 +4548,11 @@ index ab298b2..10c5ee0 100644 delete pPacket; } catch(...) { --- -2.5.0 - -From 5fa43ef359f31432130fe4e92fbd0a1235ca16c2 Mon Sep 17 00:00:00 2001 +From 4e92f88d301118106a6aa08375bdd524fbbb0da8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH 42/94] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 42/93] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ @@ -4706,14 +4583,11 @@ index 84e9ef1..f920f49 100644 if (hint.stills && (hint.codec == AV_CODEC_ID_MPEG2VIDEO || hint.codec == AV_CODEC_ID_MPEG1VIDEO)) { // If dvd is an mpeg2 and hint.stills --- -2.5.0 - -From b128dfc4848e7a102208c8ec95e1390c9a7d6d47 Mon Sep 17 00:00:00 2001 +From 6f7b1c2fa7e8b46895b2287b3a9361b85af7b210 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 43/94] Load OSD dialogs on startup. +Subject: [PATCH 43/93] 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. @@ -4807,14 +4681,11 @@ index b248566..96c63cd 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } --- -2.5.0 - -From 22ccff2dc885a214b951e69323c9045830607ee4 Mon Sep 17 00:00:00 2001 +From 881432f2448626f24ea06cf02a29c811b075cdc8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 7 Mar 2015 22:46:21 +0000 -Subject: [PATCH 44/94] configure: Add raspberry-pi2 platform +Subject: [PATCH 44/93] configure: Add raspberry-pi2 platform --- configure.ac | 14 +++++++-- @@ -4987,14 +4858,11 @@ index dc6d565..98494b4 100644 if("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android") set(CMAKE_SYSTEM_NAME Linux) endif() --- -2.5.0 - -From a391a55f4d2e257a6716c8726165fe8d205cfffb Mon Sep 17 00:00:00 2001 +From 555c3d2ed48c00e6ef8632d47db58cab4d53b78b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 45/94] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 45/93] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -5023,14 +4891,11 @@ index c274e2f..212a5c7 100644 } g_windowManager.FrameMove(); } --- -2.5.0 - -From 1fe321817d24a691808649fd3ee42d81ef57087e Mon Sep 17 00:00:00 2001 +From 67b90947ab8fb7fe16d39597f285a7e08fabc5b8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH 46/94] [mmalrenderer] Add sharpness control +Subject: [PATCH 46/93] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -5101,14 +4966,11 @@ index d3e5129..a71e645 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; --- -2.5.0 - -From 679fdc4c44faf1a24d79ca7e787e756d29206467 Mon Sep 17 00:00:00 2001 +From 2ce900e2ef03fae1215700b5a839276585a00c92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH 47/94] [dvdplayer] Add back required include +Subject: [PATCH 47/93] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + @@ -5126,14 +4988,11 @@ index b5777a1..64b4d60 100644 #include "DVDOverlayRenderer.h" #include "guilib/GraphicContext.h" #include --- -2.5.0 - -From 215bed9200f096f6c3eeb8956b19332b9fe5dbd3 Mon Sep 17 00:00:00 2001 +From dc5e83b0cfbec04a34b3b8ea7fca8bbbcaae1f2c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 48/94] [screensaver] Leave GUI contents available for +Subject: [PATCH 48/93] [screensaver] Leave GUI contents available for screensaver --- @@ -5162,14 +5021,11 @@ index 89cfb8b..767c7b6 100644 g_infoManager.SetNextWindow(WINDOW_INVALID); // Add window to the history list (we must do this before we activate it, --- -2.5.0 - -From 9ecafc23229679c7dedce2c5d6b7bf928cf7db9a Mon Sep 17 00:00:00 2001 +From 249d8d5147b3124129255deaa216da316cb8732e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH 49/94] ffmpeg: Automatic switch to software decode for GMC +Subject: [PATCH 49/93] ffmpeg: Automatic switch to software decode for GMC with more than one warp point --- @@ -5382,14 +5238,11 @@ index 7251fc1..3429cea 100644 supported = true; else if ((hint.codec == AV_CODEC_ID_VC1 || hint.codec == AV_CODEC_ID_WMV3) && g_RBP.GetCodecWvc1()) supported = true; --- -2.5.0 - -From 76bbd617017c090bc0c9bb39946066a16cf2f34c Mon Sep 17 00:00:00 2001 +From eb80abbf4ad8994a28d58ea8494e8a7bcd48b2f3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 21:46:57 +0100 -Subject: [PATCH 50/94] [rbp] Use default resampling setting on Pi2 +Subject: [PATCH 50/93] [rbp] Use default resampling setting on Pi2 --- system/settings/rbp2.xml | 5 +++++ @@ -5411,14 +5264,11 @@ index 8cc8f19..52778ec 100644
--- -2.5.0 - -From 70d4f7303dea5456c7e1683a9f30ef3b89832612 Mon Sep 17 00:00:00 2001 +From 822ce9d64325082d7b071b68331c8fbd406d2ee1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:54:59 +0000 -Subject: [PATCH 51/94] rbp: Expose gpu memory allocation functions +Subject: [PATCH 51/93] rbp: Expose gpu memory allocation functions --- xbmc/linux/RBP.cpp | 116 ++++++++++++ @@ -6080,14 +5930,11 @@ index 0000000..94e6e79 + +#endif /* __USER_VCSM__H__INCLUDED__ */ + --- -2.5.0 - -From 9910d8fb2c3e0273d9e272920e6fd7b1c48b28ec Mon Sep 17 00:00:00 2001 +From 97b436ca545f9a2faad6fdf02a9668843bd3f324 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH 52/94] [rbp] HW mouse pointer +Subject: [PATCH 52/93] [rbp] HW mouse pointer Updating the mouse point provokes a complete screen update which can make it feel laggy and results in high cpu. @@ -6521,14 +6368,11 @@ index a17e987..23244a2 100644 }; #endif --- -2.5.0 - -From ad1619a742ebf4e5ac70f1e30877a1ff0e035ac2 Mon Sep 17 00:00:00 2001 +From fbd04377a1dac080166e1e4baa2250f402e3b66f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH 53/94] [omx] Report decoded image name +Subject: [PATCH 53/93] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -6546,14 +6390,11 @@ index 1524214..a01c435 100644 } else { --- -2.5.0 - -From 9ddc7a2bc142caee6322e5cf709e47c87ce3c182 Mon Sep 17 00:00:00 2001 +From 99d06dd14a4501fe81b36e8ce3966dc99cd04b94 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 11 Apr 2014 16:12:27 +0100 -Subject: [PATCH 54/94] [omxplayer] Add ability to log more timestamp info in +Subject: [PATCH 54/93] [omxplayer] Add ability to log more timestamp info in extra debug settings --- @@ -6703,14 +6544,11 @@ index 22b8459..8045a03 100644 } void CAdvancedSettings::setExtraLogLevel(const std::vector &components) --- -2.5.0 - -From f72277b8b4cb29365ad55a8e6d08dd73262b8423 Mon Sep 17 00:00:00 2001 +From 85731b224b68bac5a47774d5447bbd3e1d14236d Mon Sep 17 00:00:00 2001 From: Memphiz Date: Tue, 18 Nov 2014 13:28:36 +0100 -Subject: [PATCH 55/94] - evaluate the setting for hiding watched +Subject: [PATCH 55/93] - evaluate the setting for hiding watched movies/episodes/musicvideos in recently added job (should influence homescreen of skins only) @@ -6835,14 +6673,11 @@ index 2021dd9..5f67d10 100644 bool HasContent(); bool HasContent(VIDEODB_CONTENT_TYPE type); --- -2.5.0 - -From 50ca0e3e5e048055865c0e89f50e5293db9f95b2 Mon Sep 17 00:00:00 2001 +From 11a94854f5d433c121314cdf989fd0e7bcc0102b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:28:37 +0100 -Subject: [PATCH 56/94] build: Add vcsm lib +Subject: [PATCH 56/93] build: Add vcsm lib --- configure.ac | 2 +- @@ -6861,14 +6696,11 @@ index 7a06a31..239a2a1 100644 else AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library)) --- -2.5.0 - -From da10dd6464f3bce3ed9f515baa0eed44c2775d9f Mon Sep 17 00:00:00 2001 +From 0077cb637667dc35084234c792dedfc8c5e80485 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 8 May 2015 14:09:31 +0100 -Subject: [PATCH 57/94] [cec] re-implement 'RFC' style POLLing for LA +Subject: [PATCH 57/93] [cec] re-implement 'RFC' style POLLing for LA registering process --- @@ -7089,14 +6921,11 @@ index ddf9963..5d1f933 100644 cd $(PLATFORM)/build; $(CMAKE) -DBUILD_SHARED_LIBS=1 -DSKIP_PYTHON_WRAPPER:STRING=1 -DCMAKE_INSTALL_LIBDIR=$(PREFIX)/lib .. $(LIBDYLIB): $(PLATFORM) --- -2.5.0 - -From 390171edbbd26e7763b5989d9793ec508e6a2e8f Mon Sep 17 00:00:00 2001 +From 3916ef0e55ad307d7a3e0f88ba5df0cdc73d5477 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH 58/94] ffmpeg: test: increase number of threads +Subject: [PATCH 58/93] ffmpeg: test: increase number of threads --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 3 +++ @@ -7116,14 +6945,11 @@ index 3498503..c2f3287 100644 if( num_threads > 1) m_pCodecContext->thread_count = num_threads; m_pCodecContext->thread_safe_callbacks = 1; --- -2.5.0 - -From 3234bb00454e29cbfcfb36011d0a85fcb2891235 Mon Sep 17 00:00:00 2001 +From 36fd4c27fe9af15d65461e32b8d105e00fd8df52 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH 59/94] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 59/93] ffmpeg: Allow neon to be enabled in unified builds --- tools/depends/target/ffmpeg/Makefile | 4 ++++ @@ -7145,14 +6971,11 @@ index 6a9f105..fef5ef2 100644 endif ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) --- -2.5.0 - -From 6942378a95385798c8fe53d0480cddee6a5ad3b8 Mon Sep 17 00:00:00 2001 +From 5d5698967a69035d742d55f8986bce84831e73e9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Mar 2015 20:00:59 +0000 -Subject: [PATCH 60/94] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over +Subject: [PATCH 60/93] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over mpegts --- @@ -7258,14 +7081,11 @@ index fef5ef2..e780521 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ ./configure $(ffmpg_config) --- -2.5.0 - -From 3c407f5763ef0302d8cdaf7fae59e963555517e3 Mon Sep 17 00:00:00 2001 +From 4a4b1b0427cfb3116a112d682d10c802a71f913a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH 61/94] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 61/93] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -11048,14 +10868,11 @@ index 0000000..5e8e07d +-- +2.5.0 + --- -2.5.0 - -From 1d2a77c2e92160fb532fc21c53f712cf1ffc3701 Mon Sep 17 00:00:00 2001 +From 51c12471695d2d06c671707a7e2e6fec3b01f538 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH 62/94] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 62/93] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -47763,14 +47580,11 @@ index 0000000..f2b8ffc +-- +2.5.0 + --- -2.5.0 - -From 9f7e6280af3292b27e4bdcd5e9e8a51eee261521 Mon Sep 17 00:00:00 2001 +From aa8268363b74f1b9ed6d6801d379bc08a85eead2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Dec 2015 12:35:14 +0000 -Subject: [PATCH 63/94] [build] Add patches to ffmpeg for native build +Subject: [PATCH 63/93] [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 8 ++++++++ @@ -47795,14 +47609,11 @@ index b9bfd57..f6d4c3b 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ --extra-version="kodi-${VERSION}" \ --- -2.5.0 - -From b525cc97c0f168cc16849c87ec91234ea05ddd13 Mon Sep 17 00:00:00 2001 +From 31e2cf35741edf914f5413668c158186f9310197 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH 64/94] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 64/93] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2288 ++++++++++++++++++++ @@ -50134,14 +49945,11 @@ index e4acfa9..072e711 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ --- -2.5.0 - -From 4ba5e77ceafc42f8307d5611d59efe5065df16fa Mon Sep 17 00:00:00 2001 +From 653e6185b0976bd50eea79f9834ede99db13e3aa Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 14 Jul 2015 08:30:44 +0200 -Subject: [PATCH 65/94] fix high cpu load caused by false positive frame +Subject: [PATCH 65/93] fix high cpu load caused by false positive frame limiter --- @@ -50212,14 +50020,11 @@ index 212a5c7..1adbb01 100644 unsigned int frameTime = now - m_lastFrameTime; if (frameTime < singleFrameTime) Sleep(singleFrameTime - frameTime); --- -2.5.0 - -From 488f86f0dc3a9a986c4535697827ad656d8fedf1 Mon Sep 17 00:00:00 2001 +From 7eae470ce134f19cb5002969ac3f7e85fcf5220d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 5 Aug 2015 13:43:25 +0100 -Subject: [PATCH 66/94] [dvdplayeraudio] Avoid busy spinning when queue is +Subject: [PATCH 66/93] [dvdplayeraudio] Avoid busy spinning when queue is empty --- @@ -50239,14 +50044,11 @@ index 97a23a6..9f21a19 100644 } continue; --- -2.5.0 - -From 05a5655c10b72fc3f9da1a7b91e077bb4eee0c50 Mon Sep 17 00:00:00 2001 +From 492a2e7ac5fb1895b71b62f68918e74db053f0b9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 6 Aug 2015 11:23:05 +0100 -Subject: [PATCH 67/94] [rbp] Make sync playback to display the default option +Subject: [PATCH 67/93] [rbp] Make sync playback to display the default option --- system/settings/rbp.xml | 7 +++++++ @@ -50270,14 +50072,11 @@ index 1506035..f2a6892 100644 false --- -2.5.0 - -From 3f638db8e9c0eed4dc2d53007c76b6ac48cb7a95 Mon Sep 17 00:00:00 2001 +From 3ff59db3bd9c43b037bbe89c72f5fd97f4563b71 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Sep 2015 23:42:30 +0100 -Subject: [PATCH 68/94] [cec] Fixing initialisation issue found on Raspberry Pi +Subject: [PATCH 68/93] [cec] Fixing initialisation issue found on Raspberry Pi with Buildroot --- @@ -50328,14 +50127,11 @@ index 0000000..8f289f2 + { + m_queue = new CRPiCECAdapterMessageQueue(this); + } --- -2.5.0 - -From 6ddb38f37c38455d28d9caa357b597b4b9d327e4 Mon Sep 17 00:00:00 2001 +From c456ad03e68428ef849490c385cc069cb8dde87d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH 69/94] [mmalcodec] Fail to open when width is invalid. Can +Subject: [PATCH 69/93] [mmalcodec] Fail to open when width is invalid. Can happen with mpegts files --- @@ -50357,14 +50153,11 @@ index 3345685..5386b4a 100644 // we always qualify even if DVDFactoryCodec does this too. if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) return false; --- -2.5.0 - -From 9bfbe66e6e477429af4b3ab01f5b3bf4f10ee221 Mon Sep 17 00:00:00 2001 +From 9bcbb1f3c5e687ccf4aeecbe583eb7643f5d48c8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 18:34:06 +0000 -Subject: [PATCH 70/94] [mmalrender] Force a SetVideoRect after a reconfigure +Subject: [PATCH 70/93] [mmalrender] Force a SetVideoRect after a reconfigure There has been an issue with dvd stills and a hdmi refresh rate change. The hdmi mode change loses the currently displayed picture. @@ -50391,14 +50184,11 @@ index adf6f73..ad3f66f 100644 CLog::Log(LOGDEBUG, "%s::%s - %dx%d->%dx%d@%.2f flags:%x format:%d ext:%x orient:%d", CLASSNAME, __func__, width, height, d_width, d_height, fps, flags, format, extended_format, orientation); if (format != RENDER_FMT_YUV420P && format != RENDER_FMT_BYPASS && format != RENDER_FMT_MMAL) { --- -2.5.0 - -From 138c0d96b6f9979a304f4d3e087f8659717b2471 Mon Sep 17 00:00:00 2001 +From 902a0514368d1ec48107d5951ee990b93cb4282f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 31 Mar 2015 17:31:47 +0100 -Subject: [PATCH 71/94] mmalcodec: Add SetCodecControl function +Subject: [PATCH 71/93] mmalcodec: Add SetCodecControl function --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 10 +++++++++- @@ -50464,14 +50254,11 @@ index f4df09c..37d0868 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; --- -2.5.0 - -From db15bb3280518a33c1a67864e126a44b87767047 Mon Sep 17 00:00:00 2001 +From cae99d2093015ba70d1a387e83ed6214393fc31a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 27 Dec 2015 18:44:22 +0000 -Subject: [PATCH 72/94] mmalcodec: Switch to a condition variable when blocking +Subject: [PATCH 72/93] mmalcodec: Switch to a condition variable when blocking waiting for a picture --- @@ -50579,14 +50366,11 @@ index 37d0868..ca28c6f 100644 std::queue m_output_ready; // initialize mmal and get decoder component --- -2.5.0 - -From 426d5fc36b57594a4cc77985bc9ad78746e0e502 Mon Sep 17 00:00:00 2001 +From ec6e9acc113651fc3408c9fc32d188f41d8de64a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 Jan 2016 16:46:03 +0000 -Subject: [PATCH 73/94] omxaudio: Avoid reporting a spurious cached value +Subject: [PATCH 73/93] omxaudio: Avoid reporting a spurious cached value Avoids seek bar showing zero after a seek --- @@ -50606,14 +50390,11 @@ index 70d0866..052b5ef 100644 { ret = (m_last_pts - stamp) * (1.0 / DVD_TIME_BASE); } --- -2.5.0 - -From 87509c4cfa3ce6f9a4239cee724ab254ba2a3d3b Mon Sep 17 00:00:00 2001 +From 711b4b11b49c9ebc255e565462e3ac665a1cda8c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH 74/94] [omximage] Fall back to arm jpeg encode/decode when gpu +Subject: [PATCH 74/93] [omximage] Fall back to arm jpeg encode/decode when gpu is busy --- @@ -50855,14 +50636,11 @@ index a93aa82..6f38dbc 100644 }; extern COMXImage g_OMXImage; --- -2.5.0 - -From 0fea3baccdb25c562be89bd1c69f464bce182f6f Mon Sep 17 00:00:00 2001 +From dfb7b32bb3d8220a30ad67a26dfc388b4c4d9f43 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Jan 2016 18:08:16 +0000 -Subject: [PATCH 75/94] [mmalcodec] Don't send zero sized extradata +Subject: [PATCH 75/93] [mmalcodec] Don't send zero sized extradata --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -50881,14 +50659,11 @@ index 3579966..0f5c1b7 100644 return true; // send code config data MMAL_BUFFER_HEADER_T *buffer = mmal_queue_timedwait(m_dec_input_pool->queue, 500); --- -2.5.0 - -From 49f0bbf2f288d4d2f51db8f55d10268c78afdbfe Mon Sep 17 00:00:00 2001 +From 374227275b47f31ca0cca887a12e5cce187cdd55 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 3 Jan 2016 19:12:16 +0000 -Subject: [PATCH 76/94] stereoscopicmanager: Ensure we don't have a stale value +Subject: [PATCH 76/93] stereoscopicmanager: Ensure we don't have a stale value of videoplayer stereoscopic mode --- @@ -50979,14 +50754,11 @@ index ec2310f..f090bb9 100644 RENDER_STEREO_MODE m_stereoModeSetByUser; RENDER_STEREO_MODE m_lastStereoModeSetByUser; --- -2.5.0 - -From 7399f59303833e2f6442e67e2d9d4c17adc41e35 Mon Sep 17 00:00:00 2001 +From d33bcf6304a60bfbdbc993eadab11505ae675851 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH 77/94] [3d] Make MVC a valid 3D filename tag +Subject: [PATCH 77/93] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ @@ -51046,14 +50818,11 @@ index 93de9bd..4da88f4 100644 /*!< @brief position behavior of ass subtitiles when setting "subtitle position on screen" set to "fixed" True to show at the fixed position set in video calibration --- -2.5.0 - -From 6cee5258e6f154631e457615c4028b74fd4e5525 Mon Sep 17 00:00:00 2001 +From ff22ccfba36a15d2ed383bf5543f2dd3b9c6a618 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 24 Jan 2016 16:42:04 +0000 -Subject: [PATCH 78/94] fixup! [build] Add patches to ffmpeg for native build +Subject: [PATCH 78/93] fixup! [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 2 +- @@ -51072,14 +50841,11 @@ index f6d4c3b..cc59d17 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ --- -2.5.0 - -From a4f972065465a09a608315605358cfca1088365d Mon Sep 17 00:00:00 2001 +From 8bcf9f72ff12412fdc4c8139be071c2448d51ae7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jan 2016 19:58:30 +0000 -Subject: [PATCH 79/94] OMXAudio: Make use of m_bGotFrame to skip decoding when +Subject: [PATCH 79/93] OMXAudio: Make use of m_bGotFrame to skip decoding when full --- @@ -51116,14 +50882,11 @@ index 33c4c6a..b9dab89 100644 m_iBufferOutputUsed = 0; dts = m_dts; pts = m_pts; --- -2.5.0 - -From c6f3b279c5d18c805ae6c3a6e9db8b5680602a61 Mon Sep 17 00:00:00 2001 +From 7044ba837edb2060a28bf534f5327d90e1c545e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jan 2016 20:01:18 +0000 -Subject: [PATCH 80/94] OMXAudio: Handle GetData before adding the next buffer +Subject: [PATCH 80/93] OMXAudio: Handle GetData before adding the next buffer so we can be sure it fits --- @@ -51190,14 +50953,11 @@ index b9dab89..f150dc6 100644 return 0; } --- -2.5.0 - -From 9dbad1bfa2329d5ca5a1d82e3e982a69dbad965d Mon Sep 17 00:00:00 2001 +From c4abc577bf4c12d48cc800930c2d292c0a65031f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jan 2016 20:03:49 +0000 -Subject: [PATCH 81/94] OMXAudio: Handle changes in decoded audio size +Subject: [PATCH 81/93] OMXAudio: Handle changes in decoded audio size correctly --- @@ -51249,14 +51009,11 @@ index f150dc6..4956b5b 100644 return 0; } --- -2.5.0 - -From 88f9f9f084fde1e563e9c7510cfb84bedf21c842 Mon Sep 17 00:00:00 2001 +From df922f986ab0b2dc1363224ef6c72a7a8ac616dc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 4 Feb 2016 15:29:55 +0000 -Subject: [PATCH 82/94] MMALCodec: Set dropped flag on output pictures when +Subject: [PATCH 82/93] MMALCodec: Set dropped flag on output pictures when input requested that --- @@ -51314,14 +51071,11 @@ index ca28c6f..bf669e0 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; --- -2.5.0 - -From e51fd26cfe75c298e107f26af4ba6dd3a68f4e22 Mon Sep 17 00:00:00 2001 +From a6102bec84b610166da7448d80b853e5efd649a1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Feb 2016 21:35:01 +0000 -Subject: [PATCH 83/94] DVDVideoCodecFFmpeg: Enable refcounted frames +Subject: [PATCH 83/93] DVDVideoCodecFFmpeg: Enable refcounted frames Without this frames will get (deep) copied when deinterlace is set to automatic, but file is not deinterlaced. @@ -51346,14 +51100,11 @@ index c2f3287..64087f2 100644 if (avcodec_open2(m_pCodecContext, pCodec, NULL) < 0) { CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Unable to open codec"); --- -2.5.0 - -From 6df990c5d6b5930b34a05167b989bb0155a6fcae Mon Sep 17 00:00:00 2001 +From a301f546dcfa4bf1ceaa9737a60a835826d54fec Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Feb 2016 13:45:23 +0000 -Subject: [PATCH 84/94] mmal: increase decode buffering a little to help harder +Subject: [PATCH 84/93] mmal: increase decode buffering a little to help harder MVC files PR8610 reduced buffering in codec which generally improved behaviour, @@ -51378,14 +51129,11 @@ index 7b025fd..08f61fc 100644 if (status != MMAL_SUCCESS) CLog::Log(LOGERROR, "%s::%s Failed to configure max num callbacks on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); --- -2.5.0 - -From 1d254cfd3db48c1fc2307467da5c801639cc73c3 Mon Sep 17 00:00:00 2001 +From c0b0aad15a9ffcd921bb70af5bf9200ee7a93fed Mon Sep 17 00:00:00 2001 From: Mario Holzinger Date: Fri, 11 Dec 2015 16:48:57 +0100 -Subject: [PATCH 85/94] touch panel to display adjustment +Subject: [PATCH 85/93] touch panel to display adjustment --- xbmc/input/linux/LinuxInputDevices.cpp | 7 ++++--- @@ -51473,14 +51221,11 @@ index 4da88f4..1bdc77e 100644 /* PVR/TV related advanced settings */ int m_iPVRTimeCorrection; /*!< @brief correct all times (epg tags, timer tags, recording tags) by this amount of minutes. defaults to 0. */ int m_iPVRInfoToggleInterval; /*!< @brief if there are more than 1 pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. defaults to 3000. */ --- -2.5.0 - -From e5e1e2f22f64436ddcabf7f51d25bcd6a13eb4a4 Mon Sep 17 00:00:00 2001 +From d3c755950fe7e7b255a2a28cafd105affb3aab13 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 15 Feb 2016 15:51:11 +0000 -Subject: [PATCH 86/94] touch panel to display adjustment - support multitouch +Subject: [PATCH 86/93] touch panel to display adjustment - support multitouch PR7978 allowed a simple calibration to be applied to touch input It didn't cover multitouch which this adds support for @@ -51510,14 +51255,11 @@ index a506956..3579cd0 100644 if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) m_mt_event[m_mt_currentSlot] = TouchInputMove; } --- -2.5.0 - -From 93502d0fbe98de0119c0e03a245528cfb89e69b9 Mon Sep 17 00:00:00 2001 +From f517a6ff4ab7f04b9a6ba371d3429e5ae95eb3d1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 22 Mar 2016 22:28:13 +0000 -Subject: [PATCH 87/94] [linux] Move hotplug checking into its own thread +Subject: [PATCH 87/93] [linux] Move hotplug checking into its own thread Currently checking for new linux input devices is called from the rendering thread. We've been getting reports of skipped frames on raspberry pi. @@ -51690,14 +51432,11 @@ index 23244a2..c82ba84 100644 #ifdef TARGET_RASPBERRY_PI bool LoadXML(const std::string strFileName); int64_t m_last_mouse_move_time; --- -2.5.0 - -From 19d44a0062028cc3b1625989de2492f39c5af9b3 Mon Sep 17 00:00:00 2001 +From ffb8b5378dbb2c53f1411e051f0c7eec9555ca83 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Jul 2015 17:47:33 +0100 -Subject: [PATCH 88/94] [rbp] Refactor the vsync handle to support multiple +Subject: [PATCH 88/93] [rbp] Refactor the vsync handle to support multiple callers --- @@ -51910,14 +51649,11 @@ index 2eee35d..3b59cd9 100644 class DllLibOMXCore; CCriticalSection m_critSection; double m_last_pll_adjust; --- -2.5.0 - -From 8a52d5281d3f5f6e4b33016233cecdcc6775f4b7 Mon Sep 17 00:00:00 2001 +From 2e13233a89859c10902059dd34160582af62ee1e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 24 Mar 2016 23:24:18 +0000 -Subject: [PATCH 89/94] [mmalrenderer] Wait for vsync before submitting to mmal +Subject: [PATCH 89/93] [mmalrenderer] Wait for vsync before submitting to mmal when display sync is disabled This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. @@ -51927,12 +51663,12 @@ you find that depending on timestamp/scheduling jitter, you may or may not get a Some scheme to force render times to be dependent on vsync is required. We do this by using a queue that is popped following vsyncs. We ensure the queue always has 1 or 2 frames so it doesn't underrun with a late frame, but this adds a frame of latency. --- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++++++++++++++++++++++++---- - xbmc/cores/VideoRenderers/MMALRenderer.h | 5 ++- - 2 files changed, 50 insertions(+), 7 deletions(-) + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 66 ++++++++++++++++++++++++++++-- + xbmc/cores/VideoRenderers/MMALRenderer.h | 6 ++- + 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index ad3f66f..e879cba 100644 +index ad3f66f..76c4682 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp @@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) @@ -51944,7 +51680,7 @@ index ad3f66f..e879cba 100644 { CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); m_vout = NULL; -@@ -253,15 +253,41 @@ CMMALRenderer::CMMALRenderer() +@@ -253,15 +253,69 @@ CMMALRenderer::CMMALRenderer() m_iYV12RenderBuffer = 0; m_inflight = 0; m_sharpness = -2.0f; @@ -51963,22 +51699,50 @@ index ad3f66f..e879cba 100644 +void CMMALRenderer::Process() +{ -+ bool started = false; + SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); + while (!m_bStop) + { + g_RBP.WaitVsync(); -+ if (!started && mmal_queue_length(m_queue) >= 2) -+ started = true; -+ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -+ CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); -+ if (started) ++ double dfps = g_graphicsContext.GetFPS(); ++ if (dfps <= 0.0) ++ dfps = m_fps; ++ // This algorithm is basically making the decision according to Bresenham's line algorithm. Imagine drawing a line where x-axis is display frames, and y-axis is video frames ++ m_error += m_fps / dfps; ++ // we may need to discard frames if queue length gets too high or video frame rate is above display frame rate ++ while (mmal_queue_length(m_queue) > 2 || m_error > 1.0) + { ++ if (m_error > 1.0) ++ m_error -= 1.0; ++ MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); ++ if (buffer) ++ { ++ if (m_format == RENDER_FMT_MMAL) ++ { ++ CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; ++ assert(buffer == omvb->mmal_buffer); ++ m_inflight--; ++ omvb->Release(); ++ } ++ else if (m_format == RENDER_FMT_YUV420P) ++ { ++ CYUVVideoBuffer *omvb = (CYUVVideoBuffer *)buffer->user_data; ++ assert(buffer == omvb->mmal_buffer); ++ m_inflight--; ++ omvb->Release(); ++ } ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - discard buffer:%p vsync:%d queue:%d diff:%f", CLASSNAME, __func__, buffer, g_RBP.VsyncCount(), mmal_queue_length(m_queue), m_error); ++ } ++ } ++ // this is case where we would like to display a new frame ++ if (m_error > 0.0) ++ { ++ m_error -= 1.0; + MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); + if (buffer) + mmal_port_send_buffer(m_vout_input, buffer); -+ else -+ started = false; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - buffer:%p vsync:%d queue:%d diff:%f", CLASSNAME, __func__, buffer, g_RBP.VsyncCount(), mmal_queue_length(m_queue), m_error); + } + } +} @@ -51986,46 +51750,32 @@ index ad3f66f..e879cba 100644 void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) { #if defined(MMAL_DEBUG_VERBOSE) -@@ -496,10 +522,17 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -496,7 +550,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) return; omvb->Acquire(); omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; - mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -- } -- else -- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); -+ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -+ { -+ while (mmal_queue_length(m_queue) >= 2) -+ Sleep(1); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock")) + mmal_queue_put(m_queue, omvb->mmal_buffer); -+ } + else + mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ } -+ else -+ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); - } - else if (m_format == RENDER_FMT_YUV420P) - { -@@ -516,7 +549,14 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); +@@ -516,7 +573,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) omvb->Acquire(); omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; omvb->mmal_buffer->user_data = omvb; - mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -+ { -+ while (mmal_queue_length(m_queue) >= 2) -+ Sleep(1); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock")) + mmal_queue_put(m_queue, omvb->mmal_buffer); -+ } + else + mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); } else CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index a71e645..f17dc47 100644 +index a71e645..34cb294 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.h +++ b/xbmc/cores/VideoRenderers/MMALRenderer.h @@ -29,6 +29,7 @@ @@ -52053,279 +51803,20 @@ index a71e645..f17dc47 100644 virtual void Update(); virtual void SetupScreenshot() {}; -@@ -125,6 +127,7 @@ protected: +@@ -125,6 +127,8 @@ protected: MMAL_COMPONENT_T *m_vout; MMAL_PORT_T *m_vout_input; MMAL_POOL_T *m_vout_input_pool; + MMAL_QUEUE_T *m_queue; ++ double m_error; bool init_vout(ERenderFormat format); void ReleaseBuffers(); --- -2.5.0 - -From c262dea07c4ae5c6b280f534dcce4699f9ffdaf8 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Fri, 25 Mar 2016 11:36:25 +0000 -Subject: [PATCH 90/94] Revert "[mmalrenderer] Wait for vsync before submitting - to mmal when display sync is disabled" - -This reverts commit bc61a9f7823b5a934ae46ed9bac6cfa0f4b520fa. ---- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++-------------------------- - xbmc/cores/VideoRenderers/MMALRenderer.h | 5 +-- - 2 files changed, 7 insertions(+), 50 deletions(-) - -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index e879cba..ad3f66f 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) - return true; - } - --CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") -+CMMALRenderer::CMMALRenderer() - { - CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); - m_vout = NULL; -@@ -253,41 +253,15 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") - m_iYV12RenderBuffer = 0; - m_inflight = 0; - m_sharpness = -2.0f; -- m_queue = mmal_queue_create(); -- Create(); - } - - CMMALRenderer::~CMMALRenderer() - { - CSingleLock lock(m_sharedSection); - CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); -- StopThread(true); -- mmal_queue_destroy(m_queue); - UnInit(); - } - --void CMMALRenderer::Process() --{ -- bool started = false; -- SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); -- while (!m_bStop) -- { -- g_RBP.WaitVsync(); -- if (!started && mmal_queue_length(m_queue) >= 2) -- started = true; -- if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -- CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); -- if (started) -- { -- MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); -- if (buffer) -- mmal_port_send_buffer(m_vout_input, buffer); -- else -- started = false; -- } -- } --} -- - void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) - { - #if defined(MMAL_DEBUG_VERBOSE) -@@ -522,17 +496,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - return; - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; -- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -- { -- while (mmal_queue_length(m_queue) >= 2) -- Sleep(1); -- mmal_queue_put(m_queue, omvb->mmal_buffer); -- } -- else -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -- } -- else -- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); -+ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ } -+ else -+ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); - } - else if (m_format == RENDER_FMT_YUV420P) - { -@@ -549,14 +516,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; - omvb->mmal_buffer->user_data = omvb; -- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -- { -- while (mmal_queue_length(m_queue) >= 2) -- Sleep(1); -- mmal_queue_put(m_queue, omvb->mmal_buffer); -- } -- else -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); - } - else - CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index f17dc47..a71e645 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.h -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -29,7 +29,6 @@ - #include "cores/dvdplayer/DVDStreamInfo.h" - #include "guilib/Geometry.h" - #include "BaseRenderer.h" --#include "threads/Thread.h" - - #include - #include -@@ -56,7 +55,7 @@ protected: - long m_refs; - }; - --class CMMALRenderer : public CBaseRenderer, public CThread -+class CMMALRenderer : public CBaseRenderer - { - struct YUVBUFFER - { -@@ -67,7 +66,6 @@ public: - CMMALRenderer(); - ~CMMALRenderer(); - -- void Process(); - virtual void Update(); - virtual void SetupScreenshot() {}; - -@@ -127,7 +125,6 @@ protected: - MMAL_COMPONENT_T *m_vout; - MMAL_PORT_T *m_vout_input; - MMAL_POOL_T *m_vout_input_pool; -- MMAL_QUEUE_T *m_queue; - - bool init_vout(ERenderFormat format); - void ReleaseBuffers(); --- -2.5.0 - - -From aabdf8c31cbdea15c399219d99826e469fa007af Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 23 Mar 2016 15:54:43 +0000 -Subject: [PATCH 91/94] [mmalrenderer] Wait for vsync before submitting to mmal - when display sync is disabled - -This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. -The issue is when display sync is disabled, and framerate of video matches display, and render times are coincident with vsync -you find that depending on timestamp/scheduling jitter, you may or may not get an update each vsync resulting in stuttery video. - -Some scheme to force render times to be dependent on vsync is required. We do this by blocking in RenderUpdate unto next vsync. ---- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 34 ++++++++++++++++++++++++++++-- - xbmc/cores/VideoRenderers/MMALRenderer.h | 2 ++ - 2 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index ad3f66f..a2e0df2 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -33,6 +33,7 @@ - #include "windowing/WindowingFactory.h" - #include "cores/dvdplayer/DVDCodecs/Video/MMALCodec.h" - #include "xbmc/Application.h" -+#include "utils/TimeUtils.h" - - #define CLASSNAME "CMMALRenderer" - -@@ -253,6 +254,7 @@ CMMALRenderer::CMMALRenderer() - m_iYV12RenderBuffer = 0; - m_inflight = 0; - m_sharpness = -2.0f; -+ m_vsyncCount = ~0; - } - - CMMALRenderer::~CMMALRenderer() -@@ -444,6 +446,32 @@ void CMMALRenderer::Update() - ManageDisplay(); - } - -+void CMMALRenderer::SubmitFrame(MMAL_BUFFER_HEADER_T *buffer) -+{ -+ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0f) -+ { -+ float ratio = g_graphicsContext.GetFPS() / m_fps; -+ long int factor = lrint(ratio); -+ float diff = ratio - (float)factor; -+ if (fabsf(diff) < 1e-2) -+ { -+ int64_t lastvsync = g_RBP.LastVsync(); -+ int64_t start = CurrentHostCounter(); -+ unsigned int vsynccount = g_RBP.WaitVsync(m_vsyncCount) + factor; -+ int64_t now = CurrentHostCounter(); -+ bool normal = m_vsyncCount + factor == vsynccount || m_vsyncCount + factor + 1 == vsynccount; -+ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -+ CLog::Log(LOGDEBUG, "%s::%s - buffer:%p vfps:%.3f dfps:%.3f vsync:%d/%d delay:%.1f/%.1f dsync:%d normal:%d", CLASSNAME, __func__, buffer, m_fps, g_graphicsContext.GetFPS(), vsynccount, m_vsyncCount, -+ (now - start)*1e-6, (now - lastvsync)*1e-6, CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock"), normal); -+ if (normal) -+ m_vsyncCount += factor; -+ else -+ m_vsyncCount = vsynccount; -+ } -+ } -+ mmal_port_send_buffer(m_vout_input, buffer); -+} -+ - void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - { - CSingleLock lock(m_sharedSection); -@@ -496,7 +524,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - return; - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ lock.Leave(); -+ SubmitFrame(omvb->mmal_buffer); - } - else - CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); -@@ -516,7 +545,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; - omvb->mmal_buffer->user_data = omvb; -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ lock.Leave(); -+ SubmitFrame(omvb->mmal_buffer); - } - else - CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index a71e645..19e38f7 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.h -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -112,6 +112,7 @@ protected: - unsigned int m_destWidth; - unsigned int m_destHeight; - int m_neededBuffers; -+ int m_vsyncCount; - - CRect m_src_rect; - CRect m_dst_rect; -@@ -129,4 +130,5 @@ protected: - bool init_vout(ERenderFormat format); - void ReleaseBuffers(); - void UnInitMMAL(); -+ void SubmitFrame(MMAL_BUFFER_HEADER_T *buffer); - }; --- -2.5.0 - - -From c29b3010d9bd0bbd845bebacea0af8855f0eca71 Mon Sep 17 00:00:00 2001 +From 1f63176ba9c91a1f1e58dec440a56e90ee944583 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Mar 2016 16:57:19 +0000 -Subject: [PATCH 92/94] mmal: Include mmal renderer logging in video category +Subject: [PATCH 90/93] mmal: Include mmal renderer logging in video category On Pi the decoder and renderer are closely coupled so combining the logging category makes sense to me. @@ -52334,10 +51825,10 @@ logging category makes sense to me. 1 file changed, 42 insertions(+), 67 deletions(-) diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index a2e0df2..a4db9af 100644 +index 76c4682..e1099da 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -37,10 +37,6 @@ +@@ -36,10 +36,6 @@ #define CLASSNAME "CMMALRenderer" @@ -52348,7 +51839,7 @@ index a2e0df2..a4db9af 100644 CYUVVideoBuffer::CYUVVideoBuffer() { -@@ -57,9 +53,8 @@ CYUVVideoBuffer::~CYUVVideoBuffer() +@@ -56,9 +52,8 @@ CYUVVideoBuffer::~CYUVVideoBuffer() CYUVVideoBuffer *CYUVVideoBuffer::Acquire() { long count = AtomicIncrement(&m_refs); @@ -52360,7 +51851,7 @@ index a2e0df2..a4db9af 100644 (void)count; return this; } -@@ -67,9 +62,8 @@ CYUVVideoBuffer *CYUVVideoBuffer::Acquire() +@@ -66,9 +61,8 @@ CYUVVideoBuffer *CYUVVideoBuffer::Acquire() long CYUVVideoBuffer::Release() { long count = AtomicDecrement(&m_refs); @@ -52372,7 +51863,7 @@ index a2e0df2..a4db9af 100644 if (count == 0) { mmal_buffer_header_release(mmal_buffer); -@@ -89,9 +83,8 @@ CRenderInfo CMMALRenderer::GetRenderInfo() +@@ -88,9 +82,8 @@ CRenderInfo CMMALRenderer::GetRenderInfo() if (!m_bMMALConfigured) m_bMMALConfigured = init_vout(RENDER_FMT_MMAL); @@ -52384,7 +51875,7 @@ index a2e0df2..a4db9af 100644 info.max_buffer_size = NUM_BUFFERS; info.optimal_buffer_size = NUM_BUFFERS; -@@ -113,18 +106,16 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T * +@@ -112,18 +105,16 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T * { CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; assert(buffer == omvb->mmal_buffer); @@ -52407,7 +51898,7 @@ index a2e0df2..a4db9af 100644 m_inflight--; omvb->Release(); } -@@ -266,9 +257,8 @@ CMMALRenderer::~CMMALRenderer() +@@ -318,9 +309,8 @@ void CMMALRenderer::Process() void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) { @@ -52419,7 +51910,7 @@ index a2e0df2..a4db9af 100644 YUVBUFFER &buf = m_buffers[index]; assert(!buf.MMALBuffer); -@@ -320,17 +310,15 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) +@@ -372,17 +362,15 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) { if (!image || source < 0) { @@ -52441,7 +51932,7 @@ index a2e0df2..a4db9af 100644 } else if (m_format == RENDER_FMT_YUV420P) { -@@ -373,9 +361,8 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) +@@ -425,9 +413,8 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) if (!buf.YUVBuffer) return -1; buf.YUVBuffer->mmal_buffer = buffer; @@ -52453,7 +51944,7 @@ index a2e0df2..a4db9af 100644 buf.YUVBuffer->Acquire(); } else assert(0); -@@ -388,16 +375,14 @@ void CMMALRenderer::ReleaseBuffer(int idx) +@@ -440,16 +427,14 @@ void CMMALRenderer::ReleaseBuffer(int idx) CSingleLock lock(m_sharedSection); if (!m_bMMALConfigured) { @@ -52474,7 +51965,7 @@ index a2e0df2..a4db9af 100644 return; } -@@ -405,17 +390,15 @@ void CMMALRenderer::ReleaseBuffer(int idx) +@@ -457,17 +442,15 @@ void CMMALRenderer::ReleaseBuffer(int idx) if (m_format == RENDER_FMT_MMAL) { CMMALVideoBuffer *omvb = buffer->MMALBuffer; @@ -52496,7 +51987,7 @@ index a2e0df2..a4db9af 100644 if (omvb && omvb->mmal_buffer) SAFE_RELEASE(buffer->YUVBuffer); } -@@ -439,9 +422,8 @@ void CMMALRenderer::Flush() +@@ -491,9 +474,8 @@ void CMMALRenderer::Flush() void CMMALRenderer::Update() { @@ -52508,7 +51999,7 @@ index a2e0df2..a4db9af 100644 if (!m_bConfigured) return; ManageDisplay(); } -@@ -479,9 +461,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -505,9 +487,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) if (!m_bConfigured) { @@ -52520,7 +52011,7 @@ index a2e0df2..a4db9af 100644 return; } -@@ -503,9 +484,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -529,9 +510,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) if (m_format == RENDER_FMT_BYPASS) { @@ -52532,7 +52023,7 @@ index a2e0df2..a4db9af 100644 return; } SetVideoRect(m_sourceRect, m_destRect); -@@ -516,9 +496,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -542,9 +522,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) CMMALVideoBuffer *omvb = buffer->MMALBuffer; if (omvb && omvb->mmal_buffer) { @@ -52544,7 +52035,7 @@ index a2e0df2..a4db9af 100644 // we only want to upload frames once if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) return; -@@ -535,9 +514,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -563,9 +542,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) CYUVVideoBuffer *omvb = buffer->YUVBuffer; if (omvb && omvb->mmal_buffer) { @@ -52556,7 +52047,7 @@ index a2e0df2..a4db9af 100644 // we only want to upload frames once if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) return; -@@ -559,15 +537,13 @@ void CMMALRenderer::FlipPage(int source) +@@ -589,15 +567,13 @@ void CMMALRenderer::FlipPage(int source) CSingleLock lock(m_sharedSection); if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) { @@ -52576,7 +52067,7 @@ index a2e0df2..a4db9af 100644 m_iYV12RenderBuffer = source; } -@@ -600,9 +576,8 @@ unsigned int CMMALRenderer::PreInit() +@@ -630,9 +606,8 @@ unsigned int CMMALRenderer::PreInit() void CMMALRenderer::ReleaseBuffers() { @@ -52588,14 +52079,11 @@ index a2e0df2..a4db9af 100644 for (int i=0; i Date: Wed, 23 Mar 2016 17:34:48 +0000 -Subject: [PATCH 93/94] rendermanager: Increase configure timeout to see if it +Subject: [PATCH 91/93] rendermanager: Increase configure timeout to see if it fixes video playing in background issues --- @@ -52615,14 +52103,11 @@ index 7a99ac4..4b03c86 100644 while(m_presentstep != PRESENT_IDLE && m_presentstep != PRESENT_READY) { if(endtime.IsTimePast()) --- -2.5.0 - -From 6d406c27db47e8ac260f436a2a09187bb495a6ba Mon Sep 17 00:00:00 2001 +From 67223b6440475c4797aa2aa1949f73c078114474 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Mar 2016 17:39:47 +0000 -Subject: [PATCH 94/94] Revert "[rbp] Use default resampling setting on Pi2" +Subject: [PATCH 92/93] Revert "[rbp] Use default resampling setting on Pi2" This reverts commit e6b2f1693480ad5d8062acaed512393e72fb9b1d. --- @@ -52645,6 +52130,33 @@ index 52778ec..8cc8f19 100644 --- -2.5.0 +From bb33be4220a3fd1ad131ec1f2218f7b4750fda98 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 31 Mar 2016 20:00:15 +0100 +Subject: [PATCH 93/93] Revert "[rbp] Make sync playback to display the default + option" + +This reverts commit 492a2e7ac5fb1895b71b62f68918e74db053f0b9. +--- + system/settings/rbp.xml | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml +index f2a6892..1506035 100644 +--- a/system/settings/rbp.xml ++++ b/system/settings/rbp.xml +@@ -1,13 +1,6 @@ + + +
+- +- +- +- true +- +- +- + + + false diff --git a/projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch b/projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch index 89a72271ff..fa712e8b6a 100644 --- a/projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch +++ b/projects/RPi2/patches/kodi/kodi-001-jarvis-rbp-backports.patch @@ -1,7 +1,7 @@ -From 0418867953596638f7c8bd9a73f993588ef9ca14 Mon Sep 17 00:00:00 2001 +From d11fabefb909e75e7186bd9ecd0cbff9e8b24577 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Sep 2015 19:11:14 +0100 -Subject: [PATCH 01/94] Enable concealed error frames, but discard them when +Subject: [PATCH 01/93] Enable concealed error frames, but discard them when returned --- @@ -51,14 +51,11 @@ index bebe136..727a9ea 100644 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)); --- -2.5.0 - -From 66a74ecce9891a49ef5af36ecb216524d399d309 Mon Sep 17 00:00:00 2001 +From 5fb2a476f902f028de46e46863fdc74b4c021371 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 26 Aug 2015 21:47:41 +0100 -Subject: [PATCH 02/94] Reduce framerate of high framerate videos when not +Subject: [PATCH 02/93] Reduce framerate of high framerate videos when not running fullscreen --- @@ -120,14 +117,11 @@ index d081b9c..0ea6ecd 100644 // Components MMAL_INTERLACETYPE_T m_interlace_mode; EINTERLACEMETHOD m_interlace_method; --- -2.5.0 - -From 9aaaf4cc73da770a7900e5a8095500150fb46db7 Mon Sep 17 00:00:00 2001 +From 8f815de22d00759496cd60139fb497d4064002cf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:08:05 +0000 -Subject: [PATCH 03/94] Remove preroll +Subject: [PATCH 03/93] Remove preroll --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 12 ++---------- @@ -198,14 +192,11 @@ index 0ea6ecd..50ac0e3 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; --- -2.5.0 - -From 103c4eb8a0a6d33bbcb42f128b82d16a5997386f Mon Sep 17 00:00:00 2001 +From 18c08e9c0410f43d2deec9d69e64eca7fdfd9a17 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 22:35:11 +0000 -Subject: [PATCH 04/94] Remove demux queue +Subject: [PATCH 04/93] Remove demux queue --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 81 ++++------------------ @@ -396,14 +387,11 @@ index 50ac0e3..f4df09c 100644 // mmal output buffers (video frames) pthread_mutex_t m_output_mutex; std::queue m_output_ready; --- -2.5.0 - -From 8869a77fbd72a0e9a341ad859a08c3dd8f64eff0 Mon Sep 17 00:00:00 2001 +From 432994f3a9e9867d04d4c3d360476d72acea0a6c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Dec 2015 20:10:33 +0000 -Subject: [PATCH 05/94] Remove time based limit on submitted packets +Subject: [PATCH 05/93] Remove time based limit on submitted packets --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 24 +++------------------- @@ -484,14 +472,11 @@ index f4df09c..8f84557 100644 int m_speed; CCriticalSection m_sharedSection; --- -2.5.0 - -From 2aee01ad85f6233bc6f850d75c594a0e7838930f Mon Sep 17 00:00:00 2001 +From 14ec8859335b4dc5add80bed34ce21ab3a4c8df4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Dec 2015 22:18:47 +0000 -Subject: [PATCH 06/94] Add back logging of data queued in decoder +Subject: [PATCH 06/93] Add back logging of data queued in decoder --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 22 +++++++++++++++++++++- @@ -572,14 +557,11 @@ index 8f84557..f4df09c 100644 int m_speed; CCriticalSection m_sharedSection; --- -2.5.0 - -From 011ad87c7a06222473b06654ab4df0a292edc956 Mon Sep 17 00:00:00 2001 +From 61928feb51d23e4550abfbf8ab26e933ff1fec4e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Dec 2015 11:40:17 +0000 -Subject: [PATCH 07/94] Try to minimise latency through hardware decoder. This +Subject: [PATCH 07/93] Try to minimise latency through hardware decoder. This could reduce performance but keeps videoplayer happier --- @@ -664,14 +646,11 @@ index 35a9847..f96cc14 100644 return ret; } --- -2.5.0 - -From 3302e62bfc5a964bdb7beb98ca0624b138edadaa Mon Sep 17 00:00:00 2001 +From 0d9c905db96e1b465a26c834430a1783c000a5a9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Jul 2015 19:27:25 +0100 -Subject: [PATCH 08/94] Enable QPU based deinterlace and remove resolution +Subject: [PATCH 08/93] Enable QPU based deinterlace and remove resolution limit --- @@ -739,14 +718,11 @@ index e50c13a..20ad4fa 100644 if (!advanced_deinterlace) image_filter.eImageFilter = OMX_ImageFilterDeInterlaceFast; else --- -2.5.0 - -From db5f80d9955ecf1fa37c12f10bc48d8b84871f99 Mon Sep 17 00:00:00 2001 +From 6cfe8e3a2fa86dbb63830eea0b1f9617ea6c9ba0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 16 Aug 2015 15:46:33 +0100 -Subject: [PATCH 09/94] Allow deinterlace with software decode +Subject: [PATCH 09/93] Allow deinterlace with software decode --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 9 +++++++++ @@ -779,14 +755,11 @@ index bee3af1..9b5c666 100644 return m_sourceWidth * m_sourceHeight <= 576 * 720 ? VS_INTERLACEMETHOD_MMAL_ADVANCED : VS_INTERLACEMETHOD_MMAL_BOB; } --- -2.5.0 - -From 36180656b74f719ee0c2a8748a5d12d5ccbea93b Mon Sep 17 00:00:00 2001 +From d5c49bf267a9dd4baf7e6be9127548adf64d899b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 15 Sep 2015 22:26:26 +0100 -Subject: [PATCH 10/94] omxplayer: Don't use AutoInterlaceMethod it changes at +Subject: [PATCH 10/93] omxplayer: Don't use AutoInterlaceMethod it changes at start of file --- @@ -821,14 +794,11 @@ index de493a2..7251fc1 100644 reopen_stream = true; } --- -2.5.0 - -From a0ce519db0d21eb3e9a2dfd070b0859d72784569 Mon Sep 17 00:00:00 2001 +From cb890fdeed45ff016c15f321d00f6cfe9cc3685d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 15:05:37 +0100 -Subject: [PATCH 11/94] Avoid calling render callback with the lock held to +Subject: [PATCH 11/93] Avoid calling render callback with the lock held to avoid a deadlock --- @@ -931,14 +901,11 @@ index d0634bb..7baefa5 100644 void RegisterResolutionUpdateCallBack(void *ctx, ResolutionUpdateCallBackFn callback) { m_res_ctx = ctx; m_res_callback = callback; } void Close(void); unsigned int GetFreeSpace(); --- -2.5.0 - -From 8d8e6b7c7b0af50800e2489a0e370c5e656dddb1 Mon Sep 17 00:00:00 2001 +From 364da740e395d2091293f521a4bde7806b3218a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 22:03:56 +0000 -Subject: [PATCH 12/94] Add settings option to enable MVC and frame packing +Subject: [PATCH 12/93] Add settings option to enable MVC and frame packing support --- @@ -1084,14 +1051,11 @@ index 55e150d..f3ba426 100644 static const std::string SETTING_AUDIOOUTPUT_AUDIODEVICE; static const std::string SETTING_AUDIOOUTPUT_CHANNELS; static const std::string SETTING_AUDIOOUTPUT_CONFIG; --- -2.5.0 - -From 7e941d7f0e1fc87d5d43e36b1febb3f7681f1e18 Mon Sep 17 00:00:00 2001 +From 71d3daeb3f44c6a7876415141e740464ce8b6c87 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Dec 2015 15:38:34 +0000 -Subject: [PATCH 13/94] Don't adjust 3d rectangles in bypass mode +Subject: [PATCH 13/93] Don't adjust 3d rectangles in bypass mode --- xbmc/cores/VideoRenderers/BaseRenderer.cpp | 55 ++++++++++++++++-------------- @@ -1166,14 +1130,11 @@ index 7889cf8..d4bb306 100644 } CalcNormalDisplayRect(m_viewRect.x1, m_viewRect.y1, m_viewRect.Width(), m_viewRect.Height(), GetAspectRatio() * CDisplaySettings::GetInstance().GetPixelRatio(), CDisplaySettings::GetInstance().GetZoomAmount(), CDisplaySettings::GetInstance().GetVerticalShift()); --- -2.5.0 - -From 1b8497b41521ac8277f2fab23baa6980d5680607 Mon Sep 17 00:00:00 2001 +From 5ebb280be9de4ce882de665215c8bbda0c072864 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH 14/94] Switch to using transform flags for 3d modes +Subject: [PATCH 14/93] Switch to using transform flags for 3d modes --- xbmc/cores/VideoRenderers/MMALRenderer.cpp | 100 +++++++++--------------- @@ -1585,14 +1546,11 @@ index 5d5b74b..443d037 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); --- -2.5.0 - -From 6a912e2c074aa44c0dc288a64e0e4dff1edccc77 Mon Sep 17 00:00:00 2001 +From 2be3612226ee01a6d294c6ca6a7d8d0849bd4221 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 17:42:03 +0100 -Subject: [PATCH 15/94] Remove unused Support3D function +Subject: [PATCH 15/93] Remove unused Support3D function --- xbmc/windowing/egl/WinSystemEGL.cpp | 29 ----------------------------- @@ -1651,14 +1609,11 @@ index 9d4baf6..1ec4225 100644 virtual bool ClampToGUIDisplayLimits(int &width, int &height); EGLConfig GetEGLConfig(); --- -2.5.0 - -From 299d2a7f59caf3e44aa04c67c5a4bcceae6a4310 Mon Sep 17 00:00:00 2001 +From ad81921b2e03b01bed2d40f0f1aff697cb48fa56 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Dec 2015 21:08:34 +0000 -Subject: [PATCH 16/94] Avoid switching stereo mode based on current display +Subject: [PATCH 16/93] Avoid switching stereo mode based on current display mode --- @@ -1700,14 +1655,11 @@ index a1b8812..60979bb 100644 RESOLUTION_INFO info_mod = GetResInfo(res); --- -2.5.0 - -From 1d0be437addc2225a969b42088511d5b2e50c9f0 Mon Sep 17 00:00:00 2001 +From be69b44990015a874305ef96e7fbdef7f815599e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jun 2015 18:53:29 +0100 -Subject: [PATCH 17/94] Drop reporting 3D modes and just use current rendering +Subject: [PATCH 17/93] Drop reporting 3D modes and just use current rendering mode to request 3D signalling [rbp] Add ntsc version of 48Hz mode @@ -1978,14 +1930,11 @@ index a0acb1a..e5bcae7 100644 + int AddUniqueResolution(RESOLUTION_INFO &res, std::vector &resolutions, bool desktop = false); #endif }; --- -2.5.0 - -From e40391cacdb8e49b0af12cfa093d9362daf41842 Mon Sep 17 00:00:00 2001 +From 5d3349935e282c6d4faef746a5b8a9934676d4c6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 16:27:15 +0100 -Subject: [PATCH 18/94] Consider stereomode when creating a new window +Subject: [PATCH 18/93] Consider stereomode when creating a new window We might be changing from a non-3D to a 3D mode --- @@ -2041,14 +1990,11 @@ index 1ec4225..a33dedc 100644 CEGLWrapper *m_egl; std::string m_extensions; --- -2.5.0 - -From f917226a056672e2266d30540e79caee45ec869f Mon Sep 17 00:00:00 2001 +From 5d836aad86bfed970e902005bae5761415cec58d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 19/94] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 19/93] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -2071,14 +2017,11 @@ index 6816b45..6cc5a8f 100644 { g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) --- -2.5.0 - -From c5007f5c066a37c5d052816688e877b1559b28a9 Mon Sep 17 00:00:00 2001 +From e01575ea1b07d19332017fca0e1a51389b78d93d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 Apr 2014 15:23:22 +0100 -Subject: [PATCH 20/94] [ffmpeg] Speed up wtv index creation +Subject: [PATCH 20/93] [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. @@ -2163,14 +2106,11 @@ index 0000000..d829898 + } + } + } --- -2.5.0 - -From b9a63ad68ba584cd374345d48614ea4cd04bbce1 Mon Sep 17 00:00:00 2001 +From a29142db6e36056fd988b3199747c0da0dab78a0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 21/94] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 21/93] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -2192,14 +2132,11 @@ index e22db7a..0120bd5 100644 if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { --- -2.5.0 - -From 5bf1a1d26e0c3e4dd2c6a2e71f2550fb7eab2d64 Mon Sep 17 00:00:00 2001 +From cad0f33be5e0b5989ece0863ba96158dbf5174d9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 22/94] Improved file buffering in CArchive +Subject: [PATCH 22/93] 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 @@ -2258,14 +2195,11 @@ index 6ed0f8f..8506d95 100644 return *this; } else --- -2.5.0 - -From 5be85818f72f316ac0419273069fd96d02ac8eb7 Mon Sep 17 00:00:00 2001 +From 17eebeec762e4f1c921d886b6863ac4a21cdb2f0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 23/94] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 23/93] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ @@ -2285,14 +2219,11 @@ index 4ffe33a..4b09e8f 100644 } else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { --- -2.5.0 - -From 60f3a3087411daae5e3a690820fe4bf65c295532 Mon Sep 17 00:00:00 2001 +From 9da36b4157459cc72529ef6be5721f1ff6920ef6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 24/94] filesystem: Make support of browsing into archives +Subject: [PATCH 24/93] 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. @@ -2374,14 +2305,11 @@ index a1d4ee4..4929283 100644 if (url.IsFileType("xbt")) { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); --- -2.5.0 - -From 0417dd5c5b0c15ddf536cea15e1881594ab0eef6 Mon Sep 17 00:00:00 2001 +From b0231de02ec1821e136d75ff0f3986aaed8f0d92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 25/94] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 25/93] [rbp] Make cachemembuffersize default depend on memory size --- @@ -2482,14 +2410,11 @@ index bc3aa8c..562757e 100644 m_initialized = true; } --- -2.5.0 - -From 66ca5923eb98f9fafcd35487c03079b7326fee07 Mon Sep 17 00:00:00 2001 +From 6d080c7c800d2e1120b46c5490d64d80b4e63ad4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 26/94] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 26/93] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -2510,14 +2435,11 @@ index 7993a73..761385b 100644 list.push_back(std::make_pair( StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), --- -2.5.0 - -From 0a2735dd4f859337281ff77d2f02b781c94f98c5 Mon Sep 17 00:00:00 2001 +From 80f582c6ced4a245d0cabb97a3e9fefc009e096d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 27/94] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 27/93] [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". @@ -2822,14 +2744,11 @@ index 6475350..93de9bd 100644 std::string m_audioDefaultPlayer; float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; --- -2.5.0 - -From c7f85eb57480d0ea7296ab6adac768334f1d1889 Mon Sep 17 00:00:00 2001 +From cecfb10575958e190cf3c6394ff2158bff6fe52a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 28/94] [audio] Add settings option to boost centre channel +Subject: [PATCH 28/93] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -2951,14 +2870,11 @@ index 08b1b84..70d0866 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) --- -2.5.0 - -From 1592ab35c711338d52ad1ac08f79ff2fd3365020 Mon Sep 17 00:00:00 2001 +From cd089d7903e1fd4e0812ad817126a19d07fa896d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 29/94] [rbp] Default extract thumbnails to false +Subject: [PATCH 29/93] [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 @@ -2987,14 +2903,11 @@ index 7a170c2..1506035 100644
--- -2.5.0 - -From 1d482f503a08b533b17640759b9f61bad2391743 Mon Sep 17 00:00:00 2001 +From c0b8590f78235540d82d478334c7f30fae417754 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH 30/94] [libcec] Add repeating keypress patch from popcornmix' +Subject: [PATCH 30/93] [libcec] Add repeating keypress patch from popcornmix' repo --- @@ -3880,14 +3793,11 @@ index 0000000..8366a69 +-- +1.9.1 + --- -2.5.0 - -From 63cf430f0c46993da63b37ded994cf1bc964dece Mon Sep 17 00:00:00 2001 +From bfc97f9146e8ac70fb03c439a4cf1a9a3135ea9b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH 31/94] [cec] Add settings for configuring button repeats +Subject: [PATCH 31/93] [cec] Add settings for configuring button repeats --- addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ @@ -3967,14 +3877,11 @@ index e0d8dae..f738c84 100644 if (GetSettingBool("pause_playback_on_deactivate")) { --- -2.5.0 - -From 3550128073031d9a7560b76c1f215acfdf58bc1d Mon Sep 17 00:00:00 2001 +From af63fad05fc2f6c24354c7acd08cd685ff376e28 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH 32/94] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 32/93] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -3996,14 +3903,11 @@ index f738c84..58d7d0d 100644 { if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { --- -2.5.0 - -From 8dca506d73857bc367f3e4ce0a4c95c622d269da Mon Sep 17 00:00:00 2001 +From 42155d82d06a1deea72d4c3092315ea1110c6cb7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH 33/94] [cec] Temp - more logging +Subject: [PATCH 33/93] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -4054,14 +3958,11 @@ index 58d7d0d..dfba61a 100644 m_buttonQueue.push_back(key); } --- -2.5.0 - -From a211f8b79ba4842fcde3cb56abc5a2c2b179ba74 Mon Sep 17 00:00:00 2001 +From f8d6e97fedcb9184af7dfc8a976815892faa7784 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 34/94] [dvdplayer] Add lock for player creation +Subject: [PATCH 34/93] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -4106,14 +4007,11 @@ index 2f00647..b1418e3 100644 bool m_omxplayer_mode; // using omxplayer acceleration + CCriticalSection m_players_lock; }; --- -2.5.0 - -From 385ad863ed94508583882aff64a7e54d14ed89ae Mon Sep 17 00:00:00 2001 +From 2e80c975eb2d085f157ea328488aa7889c092f47 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 35/94] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 35/93] [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. @@ -4189,14 +4087,11 @@ index 379c541..b5777a1 100644 } if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) --- -2.5.0 - -From bbc0384997b0bb8ccd869b320ec8d60fa31d5087 Mon Sep 17 00:00:00 2001 +From 1a4b613e9981829137c817baad127fda8e1e2823 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 36/94] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 36/93] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -4218,14 +4113,11 @@ index fcdd063..16f0c89 100644 return true; } --- -2.5.0 - -From 77e535d399cebf699327d19490ef78519004a557 Mon Sep 17 00:00:00 2001 +From 73c6f413799cbb821f597253eb80457ee29a45f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 37/94] logging: Add microsecond timer to log messages +Subject: [PATCH 37/93] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -4277,14 +4169,11 @@ index 3443f12..31c4a99 100644 (uint64_t)CThread::GetCurrentThreadId(), levelNames[logLevel]) + strData; --- -2.5.0 - -From 661ea4c177ec232a63a9a9ba21f855c5c581a2f3 Mon Sep 17 00:00:00 2001 +From dd959edaaae1f167e0979ac55d64e5d769127687 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 38/94] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 38/93] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -4357,14 +4246,11 @@ index ee29770..ff0d3e3 100644 DestroyDispmaxWindow(); RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); --- -2.5.0 - -From 50bec5d613ec9e5b1b946f904776565de130eafd Mon Sep 17 00:00:00 2001 +From 3afc5e302cd1fdad4afa43ec705707f36de2ddaf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 39/94] Fix for UI not showing both extractflags and +Subject: [PATCH 39/93] Fix for UI not showing both extractflags and extractthumb --- @@ -4427,14 +4313,11 @@ index 918e8bf..61e1a22 100644 true --- -2.5.0 - -From 88fcb5323a0a277feb21bcba9ef62986089aef46 Mon Sep 17 00:00:00 2001 +From c423d114818b5cd611bd83c31cda74139b5dfd91 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 40/94] Disable autoscrolling while on screensaver and while +Subject: [PATCH 40/93] Disable autoscrolling while on screensaver and while opening streams. --- @@ -4564,14 +4447,11 @@ index d7bc1c5..ac76629 100644 { if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; --- -2.5.0 - -From ba23654e3dfab6001f1087babc1fb6ebb050b18d Mon Sep 17 00:00:00 2001 +From 6b4fbcdd92b654b53fe8aeb5f00a5037117a505f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 41/94] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 41/93] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -4668,14 +4548,11 @@ index ab298b2..10c5ee0 100644 delete pPacket; } catch(...) { --- -2.5.0 - -From 5fa43ef359f31432130fe4e92fbd0a1235ca16c2 Mon Sep 17 00:00:00 2001 +From 4e92f88d301118106a6aa08375bdd524fbbb0da8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH 42/94] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 42/93] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ @@ -4706,14 +4583,11 @@ index 84e9ef1..f920f49 100644 if (hint.stills && (hint.codec == AV_CODEC_ID_MPEG2VIDEO || hint.codec == AV_CODEC_ID_MPEG1VIDEO)) { // If dvd is an mpeg2 and hint.stills --- -2.5.0 - -From b128dfc4848e7a102208c8ec95e1390c9a7d6d47 Mon Sep 17 00:00:00 2001 +From 6f7b1c2fa7e8b46895b2287b3a9361b85af7b210 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 43/94] Load OSD dialogs on startup. +Subject: [PATCH 43/93] 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. @@ -4807,14 +4681,11 @@ index b248566..96c63cd 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } --- -2.5.0 - -From 22ccff2dc885a214b951e69323c9045830607ee4 Mon Sep 17 00:00:00 2001 +From 881432f2448626f24ea06cf02a29c811b075cdc8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 7 Mar 2015 22:46:21 +0000 -Subject: [PATCH 44/94] configure: Add raspberry-pi2 platform +Subject: [PATCH 44/93] configure: Add raspberry-pi2 platform --- configure.ac | 14 +++++++-- @@ -4987,14 +4858,11 @@ index dc6d565..98494b4 100644 if("${OS}" STREQUAL "linux" OR "${OS}" STREQUAL "android") set(CMAKE_SYSTEM_NAME Linux) endif() --- -2.5.0 - -From a391a55f4d2e257a6716c8726165fe8d205cfffb Mon Sep 17 00:00:00 2001 +From 555c3d2ed48c00e6ef8632d47db58cab4d53b78b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 45/94] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 45/93] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -5023,14 +4891,11 @@ index c274e2f..212a5c7 100644 } g_windowManager.FrameMove(); } --- -2.5.0 - -From 1fe321817d24a691808649fd3ee42d81ef57087e Mon Sep 17 00:00:00 2001 +From 67b90947ab8fb7fe16d39597f285a7e08fabc5b8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH 46/94] [mmalrenderer] Add sharpness control +Subject: [PATCH 46/93] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -5101,14 +4966,11 @@ index d3e5129..a71e645 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; --- -2.5.0 - -From 679fdc4c44faf1a24d79ca7e787e756d29206467 Mon Sep 17 00:00:00 2001 +From 2ce900e2ef03fae1215700b5a839276585a00c92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH 47/94] [dvdplayer] Add back required include +Subject: [PATCH 47/93] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + @@ -5126,14 +4988,11 @@ index b5777a1..64b4d60 100644 #include "DVDOverlayRenderer.h" #include "guilib/GraphicContext.h" #include --- -2.5.0 - -From 215bed9200f096f6c3eeb8956b19332b9fe5dbd3 Mon Sep 17 00:00:00 2001 +From dc5e83b0cfbec04a34b3b8ea7fca8bbbcaae1f2c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 48/94] [screensaver] Leave GUI contents available for +Subject: [PATCH 48/93] [screensaver] Leave GUI contents available for screensaver --- @@ -5162,14 +5021,11 @@ index 89cfb8b..767c7b6 100644 g_infoManager.SetNextWindow(WINDOW_INVALID); // Add window to the history list (we must do this before we activate it, --- -2.5.0 - -From 9ecafc23229679c7dedce2c5d6b7bf928cf7db9a Mon Sep 17 00:00:00 2001 +From 249d8d5147b3124129255deaa216da316cb8732e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH 49/94] ffmpeg: Automatic switch to software decode for GMC +Subject: [PATCH 49/93] ffmpeg: Automatic switch to software decode for GMC with more than one warp point --- @@ -5382,14 +5238,11 @@ index 7251fc1..3429cea 100644 supported = true; else if ((hint.codec == AV_CODEC_ID_VC1 || hint.codec == AV_CODEC_ID_WMV3) && g_RBP.GetCodecWvc1()) supported = true; --- -2.5.0 - -From 76bbd617017c090bc0c9bb39946066a16cf2f34c Mon Sep 17 00:00:00 2001 +From eb80abbf4ad8994a28d58ea8494e8a7bcd48b2f3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 21:46:57 +0100 -Subject: [PATCH 50/94] [rbp] Use default resampling setting on Pi2 +Subject: [PATCH 50/93] [rbp] Use default resampling setting on Pi2 --- system/settings/rbp2.xml | 5 +++++ @@ -5411,14 +5264,11 @@ index 8cc8f19..52778ec 100644
--- -2.5.0 - -From 70d4f7303dea5456c7e1683a9f30ef3b89832612 Mon Sep 17 00:00:00 2001 +From 822ce9d64325082d7b071b68331c8fbd406d2ee1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:54:59 +0000 -Subject: [PATCH 51/94] rbp: Expose gpu memory allocation functions +Subject: [PATCH 51/93] rbp: Expose gpu memory allocation functions --- xbmc/linux/RBP.cpp | 116 ++++++++++++ @@ -6080,14 +5930,11 @@ index 0000000..94e6e79 + +#endif /* __USER_VCSM__H__INCLUDED__ */ + --- -2.5.0 - -From 9910d8fb2c3e0273d9e272920e6fd7b1c48b28ec Mon Sep 17 00:00:00 2001 +From 97b436ca545f9a2faad6fdf02a9668843bd3f324 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH 52/94] [rbp] HW mouse pointer +Subject: [PATCH 52/93] [rbp] HW mouse pointer Updating the mouse point provokes a complete screen update which can make it feel laggy and results in high cpu. @@ -6521,14 +6368,11 @@ index a17e987..23244a2 100644 }; #endif --- -2.5.0 - -From ad1619a742ebf4e5ac70f1e30877a1ff0e035ac2 Mon Sep 17 00:00:00 2001 +From fbd04377a1dac080166e1e4baa2250f402e3b66f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Aug 2014 17:48:04 +0100 -Subject: [PATCH 53/94] [omx] Report decoded image name +Subject: [PATCH 53/93] [omx] Report decoded image name --- xbmc/cores/omxplayer/OMXImage.cpp | 1 + @@ -6546,14 +6390,11 @@ index 1524214..a01c435 100644 } else { --- -2.5.0 - -From 9ddc7a2bc142caee6322e5cf709e47c87ce3c182 Mon Sep 17 00:00:00 2001 +From 99d06dd14a4501fe81b36e8ce3966dc99cd04b94 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 11 Apr 2014 16:12:27 +0100 -Subject: [PATCH 54/94] [omxplayer] Add ability to log more timestamp info in +Subject: [PATCH 54/93] [omxplayer] Add ability to log more timestamp info in extra debug settings --- @@ -6703,14 +6544,11 @@ index 22b8459..8045a03 100644 } void CAdvancedSettings::setExtraLogLevel(const std::vector &components) --- -2.5.0 - -From f72277b8b4cb29365ad55a8e6d08dd73262b8423 Mon Sep 17 00:00:00 2001 +From 85731b224b68bac5a47774d5447bbd3e1d14236d Mon Sep 17 00:00:00 2001 From: Memphiz Date: Tue, 18 Nov 2014 13:28:36 +0100 -Subject: [PATCH 55/94] - evaluate the setting for hiding watched +Subject: [PATCH 55/93] - evaluate the setting for hiding watched movies/episodes/musicvideos in recently added job (should influence homescreen of skins only) @@ -6835,14 +6673,11 @@ index 2021dd9..5f67d10 100644 bool HasContent(); bool HasContent(VIDEODB_CONTENT_TYPE type); --- -2.5.0 - -From 50ca0e3e5e048055865c0e89f50e5293db9f95b2 Mon Sep 17 00:00:00 2001 +From 11a94854f5d433c121314cdf989fd0e7bcc0102b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:28:37 +0100 -Subject: [PATCH 56/94] build: Add vcsm lib +Subject: [PATCH 56/93] build: Add vcsm lib --- configure.ac | 2 +- @@ -6861,14 +6696,11 @@ index 7a06a31..239a2a1 100644 else AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library)) AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library)) --- -2.5.0 - -From da10dd6464f3bce3ed9f515baa0eed44c2775d9f Mon Sep 17 00:00:00 2001 +From 0077cb637667dc35084234c792dedfc8c5e80485 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 8 May 2015 14:09:31 +0100 -Subject: [PATCH 57/94] [cec] re-implement 'RFC' style POLLing for LA +Subject: [PATCH 57/93] [cec] re-implement 'RFC' style POLLing for LA registering process --- @@ -7089,14 +6921,11 @@ index ddf9963..5d1f933 100644 cd $(PLATFORM)/build; $(CMAKE) -DBUILD_SHARED_LIBS=1 -DSKIP_PYTHON_WRAPPER:STRING=1 -DCMAKE_INSTALL_LIBDIR=$(PREFIX)/lib .. $(LIBDYLIB): $(PLATFORM) --- -2.5.0 - -From 390171edbbd26e7763b5989d9793ec508e6a2e8f Mon Sep 17 00:00:00 2001 +From 3916ef0e55ad307d7a3e0f88ba5df0cdc73d5477 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH 58/94] ffmpeg: test: increase number of threads +Subject: [PATCH 58/93] ffmpeg: test: increase number of threads --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 3 +++ @@ -7116,14 +6945,11 @@ index 3498503..c2f3287 100644 if( num_threads > 1) m_pCodecContext->thread_count = num_threads; m_pCodecContext->thread_safe_callbacks = 1; --- -2.5.0 - -From 3234bb00454e29cbfcfb36011d0a85fcb2891235 Mon Sep 17 00:00:00 2001 +From 36fd4c27fe9af15d65461e32b8d105e00fd8df52 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH 59/94] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 59/93] ffmpeg: Allow neon to be enabled in unified builds --- tools/depends/target/ffmpeg/Makefile | 4 ++++ @@ -7145,14 +6971,11 @@ index 6a9f105..fef5ef2 100644 endif ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) --- -2.5.0 - -From 6942378a95385798c8fe53d0480cddee6a5ad3b8 Mon Sep 17 00:00:00 2001 +From 5d5698967a69035d742d55f8986bce84831e73e9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Mar 2015 20:00:59 +0000 -Subject: [PATCH 60/94] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over +Subject: [PATCH 60/93] [ffmpmeg] Discard data before VO/VOL in mpeg-4 over mpegts --- @@ -7258,14 +7081,11 @@ index fef5ef2..e780521 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ ./configure $(ffmpg_config) --- -2.5.0 - -From 3c407f5763ef0302d8cdaf7fae59e963555517e3 Mon Sep 17 00:00:00 2001 +From 4a4b1b0427cfb3116a112d682d10c802a71f913a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH 61/94] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 61/93] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -11048,14 +10868,11 @@ index 0000000..5e8e07d +-- +2.5.0 + --- -2.5.0 - -From 1d2a77c2e92160fb532fc21c53f712cf1ffc3701 Mon Sep 17 00:00:00 2001 +From 51c12471695d2d06c671707a7e2e6fec3b01f538 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH 62/94] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 62/93] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -47763,14 +47580,11 @@ index 0000000..f2b8ffc +-- +2.5.0 + --- -2.5.0 - -From 9f7e6280af3292b27e4bdcd5e9e8a51eee261521 Mon Sep 17 00:00:00 2001 +From aa8268363b74f1b9ed6d6801d379bc08a85eead2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Dec 2015 12:35:14 +0000 -Subject: [PATCH 63/94] [build] Add patches to ffmpeg for native build +Subject: [PATCH 63/93] [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 8 ++++++++ @@ -47795,14 +47609,11 @@ index b9bfd57..f6d4c3b 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ --extra-version="kodi-${VERSION}" \ --- -2.5.0 - -From b525cc97c0f168cc16849c87ec91234ea05ddd13 Mon Sep 17 00:00:00 2001 +From 31e2cf35741edf914f5413668c158186f9310197 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH 64/94] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 64/93] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2288 ++++++++++++++++++++ @@ -50134,14 +49945,11 @@ index e4acfa9..072e711 100644 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ --- -2.5.0 - -From 4ba5e77ceafc42f8307d5611d59efe5065df16fa Mon Sep 17 00:00:00 2001 +From 653e6185b0976bd50eea79f9834ede99db13e3aa Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 14 Jul 2015 08:30:44 +0200 -Subject: [PATCH 65/94] fix high cpu load caused by false positive frame +Subject: [PATCH 65/93] fix high cpu load caused by false positive frame limiter --- @@ -50212,14 +50020,11 @@ index 212a5c7..1adbb01 100644 unsigned int frameTime = now - m_lastFrameTime; if (frameTime < singleFrameTime) Sleep(singleFrameTime - frameTime); --- -2.5.0 - -From 488f86f0dc3a9a986c4535697827ad656d8fedf1 Mon Sep 17 00:00:00 2001 +From 7eae470ce134f19cb5002969ac3f7e85fcf5220d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 5 Aug 2015 13:43:25 +0100 -Subject: [PATCH 66/94] [dvdplayeraudio] Avoid busy spinning when queue is +Subject: [PATCH 66/93] [dvdplayeraudio] Avoid busy spinning when queue is empty --- @@ -50239,14 +50044,11 @@ index 97a23a6..9f21a19 100644 } continue; --- -2.5.0 - -From 05a5655c10b72fc3f9da1a7b91e077bb4eee0c50 Mon Sep 17 00:00:00 2001 +From 492a2e7ac5fb1895b71b62f68918e74db053f0b9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 6 Aug 2015 11:23:05 +0100 -Subject: [PATCH 67/94] [rbp] Make sync playback to display the default option +Subject: [PATCH 67/93] [rbp] Make sync playback to display the default option --- system/settings/rbp.xml | 7 +++++++ @@ -50270,14 +50072,11 @@ index 1506035..f2a6892 100644 false --- -2.5.0 - -From 3f638db8e9c0eed4dc2d53007c76b6ac48cb7a95 Mon Sep 17 00:00:00 2001 +From 3ff59db3bd9c43b037bbe89c72f5fd97f4563b71 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 8 Sep 2015 23:42:30 +0100 -Subject: [PATCH 68/94] [cec] Fixing initialisation issue found on Raspberry Pi +Subject: [PATCH 68/93] [cec] Fixing initialisation issue found on Raspberry Pi with Buildroot --- @@ -50328,14 +50127,11 @@ index 0000000..8f289f2 + { + m_queue = new CRPiCECAdapterMessageQueue(this); + } --- -2.5.0 - -From 6ddb38f37c38455d28d9caa357b597b4b9d327e4 Mon Sep 17 00:00:00 2001 +From c456ad03e68428ef849490c385cc069cb8dde87d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH 69/94] [mmalcodec] Fail to open when width is invalid. Can +Subject: [PATCH 69/93] [mmalcodec] Fail to open when width is invalid. Can happen with mpegts files --- @@ -50357,14 +50153,11 @@ index 3345685..5386b4a 100644 // we always qualify even if DVDFactoryCodec does this too. if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) return false; --- -2.5.0 - -From 9bfbe66e6e477429af4b3ab01f5b3bf4f10ee221 Mon Sep 17 00:00:00 2001 +From 9bcbb1f3c5e687ccf4aeecbe583eb7643f5d48c8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 18:34:06 +0000 -Subject: [PATCH 70/94] [mmalrender] Force a SetVideoRect after a reconfigure +Subject: [PATCH 70/93] [mmalrender] Force a SetVideoRect after a reconfigure There has been an issue with dvd stills and a hdmi refresh rate change. The hdmi mode change loses the currently displayed picture. @@ -50391,14 +50184,11 @@ index adf6f73..ad3f66f 100644 CLog::Log(LOGDEBUG, "%s::%s - %dx%d->%dx%d@%.2f flags:%x format:%d ext:%x orient:%d", CLASSNAME, __func__, width, height, d_width, d_height, fps, flags, format, extended_format, orientation); if (format != RENDER_FMT_YUV420P && format != RENDER_FMT_BYPASS && format != RENDER_FMT_MMAL) { --- -2.5.0 - -From 138c0d96b6f9979a304f4d3e087f8659717b2471 Mon Sep 17 00:00:00 2001 +From 902a0514368d1ec48107d5951ee990b93cb4282f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 31 Mar 2015 17:31:47 +0100 -Subject: [PATCH 71/94] mmalcodec: Add SetCodecControl function +Subject: [PATCH 71/93] mmalcodec: Add SetCodecControl function --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 10 +++++++++- @@ -50464,14 +50254,11 @@ index f4df09c..37d0868 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; --- -2.5.0 - -From db15bb3280518a33c1a67864e126a44b87767047 Mon Sep 17 00:00:00 2001 +From cae99d2093015ba70d1a387e83ed6214393fc31a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 27 Dec 2015 18:44:22 +0000 -Subject: [PATCH 72/94] mmalcodec: Switch to a condition variable when blocking +Subject: [PATCH 72/93] mmalcodec: Switch to a condition variable when blocking waiting for a picture --- @@ -50579,14 +50366,11 @@ index 37d0868..ca28c6f 100644 std::queue m_output_ready; // initialize mmal and get decoder component --- -2.5.0 - -From 426d5fc36b57594a4cc77985bc9ad78746e0e502 Mon Sep 17 00:00:00 2001 +From ec6e9acc113651fc3408c9fc32d188f41d8de64a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 Jan 2016 16:46:03 +0000 -Subject: [PATCH 73/94] omxaudio: Avoid reporting a spurious cached value +Subject: [PATCH 73/93] omxaudio: Avoid reporting a spurious cached value Avoids seek bar showing zero after a seek --- @@ -50606,14 +50390,11 @@ index 70d0866..052b5ef 100644 { ret = (m_last_pts - stamp) * (1.0 / DVD_TIME_BASE); } --- -2.5.0 - -From 87509c4cfa3ce6f9a4239cee724ab254ba2a3d3b Mon Sep 17 00:00:00 2001 +From 711b4b11b49c9ebc255e565462e3ac665a1cda8c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH 74/94] [omximage] Fall back to arm jpeg encode/decode when gpu +Subject: [PATCH 74/93] [omximage] Fall back to arm jpeg encode/decode when gpu is busy --- @@ -50855,14 +50636,11 @@ index a93aa82..6f38dbc 100644 }; extern COMXImage g_OMXImage; --- -2.5.0 - -From 0fea3baccdb25c562be89bd1c69f464bce182f6f Mon Sep 17 00:00:00 2001 +From dfb7b32bb3d8220a30ad67a26dfc388b4c4d9f43 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 2 Jan 2016 18:08:16 +0000 -Subject: [PATCH 75/94] [mmalcodec] Don't send zero sized extradata +Subject: [PATCH 75/93] [mmalcodec] Don't send zero sized extradata --- xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -50881,14 +50659,11 @@ index 3579966..0f5c1b7 100644 return true; // send code config data MMAL_BUFFER_HEADER_T *buffer = mmal_queue_timedwait(m_dec_input_pool->queue, 500); --- -2.5.0 - -From 49f0bbf2f288d4d2f51db8f55d10268c78afdbfe Mon Sep 17 00:00:00 2001 +From 374227275b47f31ca0cca887a12e5cce187cdd55 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 3 Jan 2016 19:12:16 +0000 -Subject: [PATCH 76/94] stereoscopicmanager: Ensure we don't have a stale value +Subject: [PATCH 76/93] stereoscopicmanager: Ensure we don't have a stale value of videoplayer stereoscopic mode --- @@ -50979,14 +50754,11 @@ index ec2310f..f090bb9 100644 RENDER_STEREO_MODE m_stereoModeSetByUser; RENDER_STEREO_MODE m_lastStereoModeSetByUser; --- -2.5.0 - -From 7399f59303833e2f6442e67e2d9d4c17adc41e35 Mon Sep 17 00:00:00 2001 +From d33bcf6304a60bfbdbc993eadab11505ae675851 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH 77/94] [3d] Make MVC a valid 3D filename tag +Subject: [PATCH 77/93] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ @@ -51046,14 +50818,11 @@ index 93de9bd..4da88f4 100644 /*!< @brief position behavior of ass subtitiles when setting "subtitle position on screen" set to "fixed" True to show at the fixed position set in video calibration --- -2.5.0 - -From 6cee5258e6f154631e457615c4028b74fd4e5525 Mon Sep 17 00:00:00 2001 +From ff22ccfba36a15d2ed383bf5543f2dd3b9c6a618 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 24 Jan 2016 16:42:04 +0000 -Subject: [PATCH 78/94] fixup! [build] Add patches to ffmpeg for native build +Subject: [PATCH 78/93] fixup! [build] Add patches to ffmpeg for native build --- tools/depends/target/ffmpeg/autobuild.sh | 2 +- @@ -51072,14 +50841,11 @@ index f6d4c3b..cc59d17 100755 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ --- -2.5.0 - -From a4f972065465a09a608315605358cfca1088365d Mon Sep 17 00:00:00 2001 +From 8bcf9f72ff12412fdc4c8139be071c2448d51ae7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jan 2016 19:58:30 +0000 -Subject: [PATCH 79/94] OMXAudio: Make use of m_bGotFrame to skip decoding when +Subject: [PATCH 79/93] OMXAudio: Make use of m_bGotFrame to skip decoding when full --- @@ -51116,14 +50882,11 @@ index 33c4c6a..b9dab89 100644 m_iBufferOutputUsed = 0; dts = m_dts; pts = m_pts; --- -2.5.0 - -From c6f3b279c5d18c805ae6c3a6e9db8b5680602a61 Mon Sep 17 00:00:00 2001 +From 7044ba837edb2060a28bf534f5327d90e1c545e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jan 2016 20:01:18 +0000 -Subject: [PATCH 80/94] OMXAudio: Handle GetData before adding the next buffer +Subject: [PATCH 80/93] OMXAudio: Handle GetData before adding the next buffer so we can be sure it fits --- @@ -51190,14 +50953,11 @@ index b9dab89..f150dc6 100644 return 0; } --- -2.5.0 - -From 9dbad1bfa2329d5ca5a1d82e3e982a69dbad965d Mon Sep 17 00:00:00 2001 +From c4abc577bf4c12d48cc800930c2d292c0a65031f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jan 2016 20:03:49 +0000 -Subject: [PATCH 81/94] OMXAudio: Handle changes in decoded audio size +Subject: [PATCH 81/93] OMXAudio: Handle changes in decoded audio size correctly --- @@ -51249,14 +51009,11 @@ index f150dc6..4956b5b 100644 return 0; } --- -2.5.0 - -From 88f9f9f084fde1e563e9c7510cfb84bedf21c842 Mon Sep 17 00:00:00 2001 +From df922f986ab0b2dc1363224ef6c72a7a8ac616dc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 4 Feb 2016 15:29:55 +0000 -Subject: [PATCH 82/94] MMALCodec: Set dropped flag on output pictures when +Subject: [PATCH 82/93] MMALCodec: Set dropped flag on output pictures when input requested that --- @@ -51314,14 +51071,11 @@ index ca28c6f..bf669e0 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; --- -2.5.0 - -From e51fd26cfe75c298e107f26af4ba6dd3a68f4e22 Mon Sep 17 00:00:00 2001 +From a6102bec84b610166da7448d80b853e5efd649a1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Feb 2016 21:35:01 +0000 -Subject: [PATCH 83/94] DVDVideoCodecFFmpeg: Enable refcounted frames +Subject: [PATCH 83/93] DVDVideoCodecFFmpeg: Enable refcounted frames Without this frames will get (deep) copied when deinterlace is set to automatic, but file is not deinterlaced. @@ -51346,14 +51100,11 @@ index c2f3287..64087f2 100644 if (avcodec_open2(m_pCodecContext, pCodec, NULL) < 0) { CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Unable to open codec"); --- -2.5.0 - -From 6df990c5d6b5930b34a05167b989bb0155a6fcae Mon Sep 17 00:00:00 2001 +From a301f546dcfa4bf1ceaa9737a60a835826d54fec Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Feb 2016 13:45:23 +0000 -Subject: [PATCH 84/94] mmal: increase decode buffering a little to help harder +Subject: [PATCH 84/93] mmal: increase decode buffering a little to help harder MVC files PR8610 reduced buffering in codec which generally improved behaviour, @@ -51378,14 +51129,11 @@ index 7b025fd..08f61fc 100644 if (status != MMAL_SUCCESS) CLog::Log(LOGERROR, "%s::%s Failed to configure max num callbacks on %s (status=%x %s)", CLASSNAME, __func__, m_dec_input->name, status, mmal_status_to_string(status)); --- -2.5.0 - -From 1d254cfd3db48c1fc2307467da5c801639cc73c3 Mon Sep 17 00:00:00 2001 +From c0b0aad15a9ffcd921bb70af5bf9200ee7a93fed Mon Sep 17 00:00:00 2001 From: Mario Holzinger Date: Fri, 11 Dec 2015 16:48:57 +0100 -Subject: [PATCH 85/94] touch panel to display adjustment +Subject: [PATCH 85/93] touch panel to display adjustment --- xbmc/input/linux/LinuxInputDevices.cpp | 7 ++++--- @@ -51473,14 +51221,11 @@ index 4da88f4..1bdc77e 100644 /* PVR/TV related advanced settings */ int m_iPVRTimeCorrection; /*!< @brief correct all times (epg tags, timer tags, recording tags) by this amount of minutes. defaults to 0. */ int m_iPVRInfoToggleInterval; /*!< @brief if there are more than 1 pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. defaults to 3000. */ --- -2.5.0 - -From e5e1e2f22f64436ddcabf7f51d25bcd6a13eb4a4 Mon Sep 17 00:00:00 2001 +From d3c755950fe7e7b255a2a28cafd105affb3aab13 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 15 Feb 2016 15:51:11 +0000 -Subject: [PATCH 86/94] touch panel to display adjustment - support multitouch +Subject: [PATCH 86/93] touch panel to display adjustment - support multitouch PR7978 allowed a simple calibration to be applied to touch input It didn't cover multitouch which this adds support for @@ -51510,14 +51255,11 @@ index a506956..3579cd0 100644 if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) m_mt_event[m_mt_currentSlot] = TouchInputMove; } --- -2.5.0 - -From 93502d0fbe98de0119c0e03a245528cfb89e69b9 Mon Sep 17 00:00:00 2001 +From f517a6ff4ab7f04b9a6ba371d3429e5ae95eb3d1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 22 Mar 2016 22:28:13 +0000 -Subject: [PATCH 87/94] [linux] Move hotplug checking into its own thread +Subject: [PATCH 87/93] [linux] Move hotplug checking into its own thread Currently checking for new linux input devices is called from the rendering thread. We've been getting reports of skipped frames on raspberry pi. @@ -51690,14 +51432,11 @@ index 23244a2..c82ba84 100644 #ifdef TARGET_RASPBERRY_PI bool LoadXML(const std::string strFileName); int64_t m_last_mouse_move_time; --- -2.5.0 - -From 19d44a0062028cc3b1625989de2492f39c5af9b3 Mon Sep 17 00:00:00 2001 +From ffb8b5378dbb2c53f1411e051f0c7eec9555ca83 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Jul 2015 17:47:33 +0100 -Subject: [PATCH 88/94] [rbp] Refactor the vsync handle to support multiple +Subject: [PATCH 88/93] [rbp] Refactor the vsync handle to support multiple callers --- @@ -51910,14 +51649,11 @@ index 2eee35d..3b59cd9 100644 class DllLibOMXCore; CCriticalSection m_critSection; double m_last_pll_adjust; --- -2.5.0 - -From 8a52d5281d3f5f6e4b33016233cecdcc6775f4b7 Mon Sep 17 00:00:00 2001 +From 2e13233a89859c10902059dd34160582af62ee1e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 24 Mar 2016 23:24:18 +0000 -Subject: [PATCH 89/94] [mmalrenderer] Wait for vsync before submitting to mmal +Subject: [PATCH 89/93] [mmalrenderer] Wait for vsync before submitting to mmal when display sync is disabled This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. @@ -51927,12 +51663,12 @@ you find that depending on timestamp/scheduling jitter, you may or may not get a Some scheme to force render times to be dependent on vsync is required. We do this by using a queue that is popped following vsyncs. We ensure the queue always has 1 or 2 frames so it doesn't underrun with a late frame, but this adds a frame of latency. --- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++++++++++++++++++++++++---- - xbmc/cores/VideoRenderers/MMALRenderer.h | 5 ++- - 2 files changed, 50 insertions(+), 7 deletions(-) + xbmc/cores/VideoRenderers/MMALRenderer.cpp | 66 ++++++++++++++++++++++++++++-- + xbmc/cores/VideoRenderers/MMALRenderer.h | 6 ++- + 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index ad3f66f..e879cba 100644 +index ad3f66f..76c4682 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp @@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) @@ -51944,7 +51680,7 @@ index ad3f66f..e879cba 100644 { CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); m_vout = NULL; -@@ -253,15 +253,41 @@ CMMALRenderer::CMMALRenderer() +@@ -253,15 +253,69 @@ CMMALRenderer::CMMALRenderer() m_iYV12RenderBuffer = 0; m_inflight = 0; m_sharpness = -2.0f; @@ -51963,22 +51699,50 @@ index ad3f66f..e879cba 100644 +void CMMALRenderer::Process() +{ -+ bool started = false; + SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); + while (!m_bStop) + { + g_RBP.WaitVsync(); -+ if (!started && mmal_queue_length(m_queue) >= 2) -+ started = true; -+ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -+ CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); -+ if (started) ++ double dfps = g_graphicsContext.GetFPS(); ++ if (dfps <= 0.0) ++ dfps = m_fps; ++ // This algorithm is basically making the decision according to Bresenham's line algorithm. Imagine drawing a line where x-axis is display frames, and y-axis is video frames ++ m_error += m_fps / dfps; ++ // we may need to discard frames if queue length gets too high or video frame rate is above display frame rate ++ while (mmal_queue_length(m_queue) > 2 || m_error > 1.0) + { ++ if (m_error > 1.0) ++ m_error -= 1.0; ++ MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); ++ if (buffer) ++ { ++ if (m_format == RENDER_FMT_MMAL) ++ { ++ CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; ++ assert(buffer == omvb->mmal_buffer); ++ m_inflight--; ++ omvb->Release(); ++ } ++ else if (m_format == RENDER_FMT_YUV420P) ++ { ++ CYUVVideoBuffer *omvb = (CYUVVideoBuffer *)buffer->user_data; ++ assert(buffer == omvb->mmal_buffer); ++ m_inflight--; ++ omvb->Release(); ++ } ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - discard buffer:%p vsync:%d queue:%d diff:%f", CLASSNAME, __func__, buffer, g_RBP.VsyncCount(), mmal_queue_length(m_queue), m_error); ++ } ++ } ++ // this is case where we would like to display a new frame ++ if (m_error > 0.0) ++ { ++ m_error -= 1.0; + MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); + if (buffer) + mmal_port_send_buffer(m_vout_input, buffer); -+ else -+ started = false; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - buffer:%p vsync:%d queue:%d diff:%f", CLASSNAME, __func__, buffer, g_RBP.VsyncCount(), mmal_queue_length(m_queue), m_error); + } + } +} @@ -51986,46 +51750,32 @@ index ad3f66f..e879cba 100644 void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) { #if defined(MMAL_DEBUG_VERBOSE) -@@ -496,10 +522,17 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -496,7 +550,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) return; omvb->Acquire(); omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; - mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -- } -- else -- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); -+ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -+ { -+ while (mmal_queue_length(m_queue) >= 2) -+ Sleep(1); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock")) + mmal_queue_put(m_queue, omvb->mmal_buffer); -+ } + else + mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ } -+ else -+ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); - } - else if (m_format == RENDER_FMT_YUV420P) - { -@@ -516,7 +549,14 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + } + else + CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); +@@ -516,7 +573,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) omvb->Acquire(); omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; omvb->mmal_buffer->user_data = omvb; - mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -+ { -+ while (mmal_queue_length(m_queue) >= 2) -+ Sleep(1); ++ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock")) + mmal_queue_put(m_queue, omvb->mmal_buffer); -+ } + else + mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); } else CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index a71e645..f17dc47 100644 +index a71e645..34cb294 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.h +++ b/xbmc/cores/VideoRenderers/MMALRenderer.h @@ -29,6 +29,7 @@ @@ -52053,279 +51803,20 @@ index a71e645..f17dc47 100644 virtual void Update(); virtual void SetupScreenshot() {}; -@@ -125,6 +127,7 @@ protected: +@@ -125,6 +127,8 @@ protected: MMAL_COMPONENT_T *m_vout; MMAL_PORT_T *m_vout_input; MMAL_POOL_T *m_vout_input_pool; + MMAL_QUEUE_T *m_queue; ++ double m_error; bool init_vout(ERenderFormat format); void ReleaseBuffers(); --- -2.5.0 - -From c262dea07c4ae5c6b280f534dcce4699f9ffdaf8 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Fri, 25 Mar 2016 11:36:25 +0000 -Subject: [PATCH 90/94] Revert "[mmalrenderer] Wait for vsync before submitting - to mmal when display sync is disabled" - -This reverts commit bc61a9f7823b5a934ae46ed9bac6cfa0f4b520fa. ---- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 52 ++++-------------------------- - xbmc/cores/VideoRenderers/MMALRenderer.h | 5 +-- - 2 files changed, 7 insertions(+), 50 deletions(-) - -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index e879cba..ad3f66f 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -239,7 +239,7 @@ bool CMMALRenderer::init_vout(ERenderFormat format) - return true; - } - --CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") -+CMMALRenderer::CMMALRenderer() - { - CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); - m_vout = NULL; -@@ -253,41 +253,15 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer") - m_iYV12RenderBuffer = 0; - m_inflight = 0; - m_sharpness = -2.0f; -- m_queue = mmal_queue_create(); -- Create(); - } - - CMMALRenderer::~CMMALRenderer() - { - CSingleLock lock(m_sharedSection); - CLog::Log(LOGDEBUG, "%s::%s", CLASSNAME, __func__); -- StopThread(true); -- mmal_queue_destroy(m_queue); - UnInit(); - } - --void CMMALRenderer::Process() --{ -- bool started = false; -- SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); -- while (!m_bStop) -- { -- g_RBP.WaitVsync(); -- if (!started && mmal_queue_length(m_queue) >= 2) -- started = true; -- if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -- CLog::Log(LOGDEBUG, "%s::%s - vsync:%d queue:%d started:%d", CLASSNAME, __func__, g_RBP.VsyncCount(), mmal_queue_length(m_queue), started); -- if (started) -- { -- MMAL_BUFFER_HEADER_T *buffer = mmal_queue_get(m_queue); -- if (buffer) -- mmal_port_send_buffer(m_vout_input, buffer); -- else -- started = false; -- } -- } --} -- - void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) - { - #if defined(MMAL_DEBUG_VERBOSE) -@@ -522,17 +496,10 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - return; - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; -- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -- { -- while (mmal_queue_length(m_queue) >= 2) -- Sleep(1); -- mmal_queue_put(m_queue, omvb->mmal_buffer); -- } -- else -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -- } -- else -- CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); -+ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ } -+ else -+ CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); - } - else if (m_format == RENDER_FMT_YUV420P) - { -@@ -549,14 +516,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; - omvb->mmal_buffer->user_data = omvb; -- if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0 && fabs(m_fps - g_graphicsContext.GetFPS()) < 1e-2) -- { -- while (mmal_queue_length(m_queue) >= 2) -- Sleep(1); -- mmal_queue_put(m_queue, omvb->mmal_buffer); -- } -- else -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); - } - else - CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index f17dc47..a71e645 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.h -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -29,7 +29,6 @@ - #include "cores/dvdplayer/DVDStreamInfo.h" - #include "guilib/Geometry.h" - #include "BaseRenderer.h" --#include "threads/Thread.h" - - #include - #include -@@ -56,7 +55,7 @@ protected: - long m_refs; - }; - --class CMMALRenderer : public CBaseRenderer, public CThread -+class CMMALRenderer : public CBaseRenderer - { - struct YUVBUFFER - { -@@ -67,7 +66,6 @@ public: - CMMALRenderer(); - ~CMMALRenderer(); - -- void Process(); - virtual void Update(); - virtual void SetupScreenshot() {}; - -@@ -127,7 +125,6 @@ protected: - MMAL_COMPONENT_T *m_vout; - MMAL_PORT_T *m_vout_input; - MMAL_POOL_T *m_vout_input_pool; -- MMAL_QUEUE_T *m_queue; - - bool init_vout(ERenderFormat format); - void ReleaseBuffers(); --- -2.5.0 - - -From aabdf8c31cbdea15c399219d99826e469fa007af Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 23 Mar 2016 15:54:43 +0000 -Subject: [PATCH 91/94] [mmalrenderer] Wait for vsync before submitting to mmal - when display sync is disabled - -This avoids an issue where video occasionally goes stuttery after a seek, until the next pause/play or seek. -The issue is when display sync is disabled, and framerate of video matches display, and render times are coincident with vsync -you find that depending on timestamp/scheduling jitter, you may or may not get an update each vsync resulting in stuttery video. - -Some scheme to force render times to be dependent on vsync is required. We do this by blocking in RenderUpdate unto next vsync. ---- - xbmc/cores/VideoRenderers/MMALRenderer.cpp | 34 ++++++++++++++++++++++++++++-- - xbmc/cores/VideoRenderers/MMALRenderer.h | 2 ++ - 2 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index ad3f66f..a2e0df2 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -33,6 +33,7 @@ - #include "windowing/WindowingFactory.h" - #include "cores/dvdplayer/DVDCodecs/Video/MMALCodec.h" - #include "xbmc/Application.h" -+#include "utils/TimeUtils.h" - - #define CLASSNAME "CMMALRenderer" - -@@ -253,6 +254,7 @@ CMMALRenderer::CMMALRenderer() - m_iYV12RenderBuffer = 0; - m_inflight = 0; - m_sharpness = -2.0f; -+ m_vsyncCount = ~0; - } - - CMMALRenderer::~CMMALRenderer() -@@ -444,6 +446,32 @@ void CMMALRenderer::Update() - ManageDisplay(); - } - -+void CMMALRenderer::SubmitFrame(MMAL_BUFFER_HEADER_T *buffer) -+{ -+ if (!CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock") && m_fps > 0.0f) -+ { -+ float ratio = g_graphicsContext.GetFPS() / m_fps; -+ long int factor = lrint(ratio); -+ float diff = ratio - (float)factor; -+ if (fabsf(diff) < 1e-2) -+ { -+ int64_t lastvsync = g_RBP.LastVsync(); -+ int64_t start = CurrentHostCounter(); -+ unsigned int vsynccount = g_RBP.WaitVsync(m_vsyncCount) + factor; -+ int64_t now = CurrentHostCounter(); -+ bool normal = m_vsyncCount + factor == vsynccount || m_vsyncCount + factor + 1 == vsynccount; -+ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) -+ CLog::Log(LOGDEBUG, "%s::%s - buffer:%p vfps:%.3f dfps:%.3f vsync:%d/%d delay:%.1f/%.1f dsync:%d normal:%d", CLASSNAME, __func__, buffer, m_fps, g_graphicsContext.GetFPS(), vsynccount, m_vsyncCount, -+ (now - start)*1e-6, (now - lastvsync)*1e-6, CSettings::GetInstance().GetBool("videoplayer.usedisplayasclock"), normal); -+ if (normal) -+ m_vsyncCount += factor; -+ else -+ m_vsyncCount = vsynccount; -+ } -+ } -+ mmal_port_send_buffer(m_vout_input, buffer); -+} -+ - void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - { - CSingleLock lock(m_sharedSection); -@@ -496,7 +524,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - return; - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ lock.Leave(); -+ SubmitFrame(omvb->mmal_buffer); - } - else - CLog::Log(LOGDEBUG, "%s::%s - No buffer to update", CLASSNAME, __func__); -@@ -516,7 +545,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) - omvb->Acquire(); - omvb->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2; - omvb->mmal_buffer->user_data = omvb; -- mmal_port_send_buffer(m_vout_input, omvb->mmal_buffer); -+ lock.Leave(); -+ SubmitFrame(omvb->mmal_buffer); - } - else - CLog::Log(LOGDEBUG, "%s::%s - No buffer to update: clear:%d flags:%x alpha:%d source:%d", CLASSNAME, __func__, clear, flags, alpha, source); -diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.h b/xbmc/cores/VideoRenderers/MMALRenderer.h -index a71e645..19e38f7 100644 ---- a/xbmc/cores/VideoRenderers/MMALRenderer.h -+++ b/xbmc/cores/VideoRenderers/MMALRenderer.h -@@ -112,6 +112,7 @@ protected: - unsigned int m_destWidth; - unsigned int m_destHeight; - int m_neededBuffers; -+ int m_vsyncCount; - - CRect m_src_rect; - CRect m_dst_rect; -@@ -129,4 +130,5 @@ protected: - bool init_vout(ERenderFormat format); - void ReleaseBuffers(); - void UnInitMMAL(); -+ void SubmitFrame(MMAL_BUFFER_HEADER_T *buffer); - }; --- -2.5.0 - - -From c29b3010d9bd0bbd845bebacea0af8855f0eca71 Mon Sep 17 00:00:00 2001 +From 1f63176ba9c91a1f1e58dec440a56e90ee944583 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Mar 2016 16:57:19 +0000 -Subject: [PATCH 92/94] mmal: Include mmal renderer logging in video category +Subject: [PATCH 90/93] mmal: Include mmal renderer logging in video category On Pi the decoder and renderer are closely coupled so combining the logging category makes sense to me. @@ -52334,10 +51825,10 @@ logging category makes sense to me. 1 file changed, 42 insertions(+), 67 deletions(-) diff --git a/xbmc/cores/VideoRenderers/MMALRenderer.cpp b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -index a2e0df2..a4db9af 100644 +index 76c4682..e1099da 100644 --- a/xbmc/cores/VideoRenderers/MMALRenderer.cpp +++ b/xbmc/cores/VideoRenderers/MMALRenderer.cpp -@@ -37,10 +37,6 @@ +@@ -36,10 +36,6 @@ #define CLASSNAME "CMMALRenderer" @@ -52348,7 +51839,7 @@ index a2e0df2..a4db9af 100644 CYUVVideoBuffer::CYUVVideoBuffer() { -@@ -57,9 +53,8 @@ CYUVVideoBuffer::~CYUVVideoBuffer() +@@ -56,9 +52,8 @@ CYUVVideoBuffer::~CYUVVideoBuffer() CYUVVideoBuffer *CYUVVideoBuffer::Acquire() { long count = AtomicIncrement(&m_refs); @@ -52360,7 +51851,7 @@ index a2e0df2..a4db9af 100644 (void)count; return this; } -@@ -67,9 +62,8 @@ CYUVVideoBuffer *CYUVVideoBuffer::Acquire() +@@ -66,9 +61,8 @@ CYUVVideoBuffer *CYUVVideoBuffer::Acquire() long CYUVVideoBuffer::Release() { long count = AtomicDecrement(&m_refs); @@ -52372,7 +51863,7 @@ index a2e0df2..a4db9af 100644 if (count == 0) { mmal_buffer_header_release(mmal_buffer); -@@ -89,9 +83,8 @@ CRenderInfo CMMALRenderer::GetRenderInfo() +@@ -88,9 +82,8 @@ CRenderInfo CMMALRenderer::GetRenderInfo() if (!m_bMMALConfigured) m_bMMALConfigured = init_vout(RENDER_FMT_MMAL); @@ -52384,7 +51875,7 @@ index a2e0df2..a4db9af 100644 info.max_buffer_size = NUM_BUFFERS; info.optimal_buffer_size = NUM_BUFFERS; -@@ -113,18 +106,16 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T * +@@ -112,18 +105,16 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T * { CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data; assert(buffer == omvb->mmal_buffer); @@ -52407,7 +51898,7 @@ index a2e0df2..a4db9af 100644 m_inflight--; omvb->Release(); } -@@ -266,9 +257,8 @@ CMMALRenderer::~CMMALRenderer() +@@ -318,9 +309,8 @@ void CMMALRenderer::Process() void CMMALRenderer::AddProcessor(CMMALVideoBuffer *buffer, int index) { @@ -52419,7 +51910,7 @@ index a2e0df2..a4db9af 100644 YUVBUFFER &buf = m_buffers[index]; assert(!buf.MMALBuffer); -@@ -320,17 +310,15 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) +@@ -372,17 +362,15 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) { if (!image || source < 0) { @@ -52441,7 +51932,7 @@ index a2e0df2..a4db9af 100644 } else if (m_format == RENDER_FMT_YUV420P) { -@@ -373,9 +361,8 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) +@@ -425,9 +413,8 @@ int CMMALRenderer::GetImage(YV12Image *image, int source, bool readonly) if (!buf.YUVBuffer) return -1; buf.YUVBuffer->mmal_buffer = buffer; @@ -52453,7 +51944,7 @@ index a2e0df2..a4db9af 100644 buf.YUVBuffer->Acquire(); } else assert(0); -@@ -388,16 +375,14 @@ void CMMALRenderer::ReleaseBuffer(int idx) +@@ -440,16 +427,14 @@ void CMMALRenderer::ReleaseBuffer(int idx) CSingleLock lock(m_sharedSection); if (!m_bMMALConfigured) { @@ -52474,7 +51965,7 @@ index a2e0df2..a4db9af 100644 return; } -@@ -405,17 +390,15 @@ void CMMALRenderer::ReleaseBuffer(int idx) +@@ -457,17 +442,15 @@ void CMMALRenderer::ReleaseBuffer(int idx) if (m_format == RENDER_FMT_MMAL) { CMMALVideoBuffer *omvb = buffer->MMALBuffer; @@ -52496,7 +51987,7 @@ index a2e0df2..a4db9af 100644 if (omvb && omvb->mmal_buffer) SAFE_RELEASE(buffer->YUVBuffer); } -@@ -439,9 +422,8 @@ void CMMALRenderer::Flush() +@@ -491,9 +474,8 @@ void CMMALRenderer::Flush() void CMMALRenderer::Update() { @@ -52508,7 +51999,7 @@ index a2e0df2..a4db9af 100644 if (!m_bConfigured) return; ManageDisplay(); } -@@ -479,9 +461,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -505,9 +487,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) if (!m_bConfigured) { @@ -52520,7 +52011,7 @@ index a2e0df2..a4db9af 100644 return; } -@@ -503,9 +484,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -529,9 +510,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) if (m_format == RENDER_FMT_BYPASS) { @@ -52532,7 +52023,7 @@ index a2e0df2..a4db9af 100644 return; } SetVideoRect(m_sourceRect, m_destRect); -@@ -516,9 +496,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -542,9 +522,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) CMMALVideoBuffer *omvb = buffer->MMALBuffer; if (omvb && omvb->mmal_buffer) { @@ -52544,7 +52035,7 @@ index a2e0df2..a4db9af 100644 // we only want to upload frames once if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) return; -@@ -535,9 +514,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) +@@ -563,9 +542,8 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) CYUVVideoBuffer *omvb = buffer->YUVBuffer; if (omvb && omvb->mmal_buffer) { @@ -52556,7 +52047,7 @@ index a2e0df2..a4db9af 100644 // we only want to upload frames once if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1) return; -@@ -559,15 +537,13 @@ void CMMALRenderer::FlipPage(int source) +@@ -589,15 +567,13 @@ void CMMALRenderer::FlipPage(int source) CSingleLock lock(m_sharedSection); if (!m_bConfigured || m_format == RENDER_FMT_BYPASS) { @@ -52576,7 +52067,7 @@ index a2e0df2..a4db9af 100644 m_iYV12RenderBuffer = source; } -@@ -600,9 +576,8 @@ unsigned int CMMALRenderer::PreInit() +@@ -630,9 +606,8 @@ unsigned int CMMALRenderer::PreInit() void CMMALRenderer::ReleaseBuffers() { @@ -52588,14 +52079,11 @@ index a2e0df2..a4db9af 100644 for (int i=0; i Date: Wed, 23 Mar 2016 17:34:48 +0000 -Subject: [PATCH 93/94] rendermanager: Increase configure timeout to see if it +Subject: [PATCH 91/93] rendermanager: Increase configure timeout to see if it fixes video playing in background issues --- @@ -52615,14 +52103,11 @@ index 7a99ac4..4b03c86 100644 while(m_presentstep != PRESENT_IDLE && m_presentstep != PRESENT_READY) { if(endtime.IsTimePast()) --- -2.5.0 - -From 6d406c27db47e8ac260f436a2a09187bb495a6ba Mon Sep 17 00:00:00 2001 +From 67223b6440475c4797aa2aa1949f73c078114474 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Mar 2016 17:39:47 +0000 -Subject: [PATCH 94/94] Revert "[rbp] Use default resampling setting on Pi2" +Subject: [PATCH 92/93] Revert "[rbp] Use default resampling setting on Pi2" This reverts commit e6b2f1693480ad5d8062acaed512393e72fb9b1d. --- @@ -52645,6 +52130,33 @@ index 52778ec..8cc8f19 100644 --- -2.5.0 +From bb33be4220a3fd1ad131ec1f2218f7b4750fda98 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 31 Mar 2016 20:00:15 +0100 +Subject: [PATCH 93/93] Revert "[rbp] Make sync playback to display the default + option" + +This reverts commit 492a2e7ac5fb1895b71b62f68918e74db053f0b9. +--- + system/settings/rbp.xml | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml +index f2a6892..1506035 100644 +--- a/system/settings/rbp.xml ++++ b/system/settings/rbp.xml +@@ -1,13 +1,6 @@ + + +
+- +- +- +- true +- +- +- + + + false