diff -Nru kodi-18.0+git20180706.0201-6935152/BUILDDATE kodi-18.0+git20180707.0202-04ceaea/BUILDDATE --- kodi-18.0+git20180706.0201-6935152/BUILDDATE 2018-07-06 00:01:59.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/BUILDDATE 2018-07-07 00:02:04.000000000 +0000 @@ -1 +1 @@ -20180706 +20180707 diff -Nru kodi-18.0+git20180706.0201-6935152/debian/changelog kodi-18.0+git20180707.0202-04ceaea/debian/changelog --- kodi-18.0+git20180706.0201-6935152/debian/changelog 2018-07-06 00:02:53.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/debian/changelog 2018-07-07 00:02:59.000000000 +0000 @@ -1,4 +1,32 @@ -kodi (2:18.0+git20180706.0201-6935152-0bionic) bionic; urgency=high +kodi (2:18.0+git20180707.0202-04ceaea-0bionic) bionic; urgency=high + + [fritsch] + * VAAPIGL[ES]: Only unmap if interop is active + + [ace20022] + * [videplayer] Fix a crash when stopping playback while teletext is opened. + + [Rechi] + * [fix] sprintf writing into too small buffer + + [Rechi] + * [fix] strncpy requires size + 1 buffer + + [Rechi] + * [cleanup] silence catch polymorphic type by value warning + + [Rechi] + * [cleanup] replace deprecated av_codec_next with av_codec_iterate + + [Rechi] + * [cleanup] silence sign compare warnings + + [Rechi] + * [cleanup] silence ignored qualifiers warnings + + [Rainer Hochecker] + * guiinfo: grab gfx lock when registering GUIInfoProviders + [Anton Fedchin] * filesystem: WinLibraryDirectory - use safe method to get a storage folder diff -Nru kodi-18.0+git20180706.0201-6935152/debian/changelog.tmp kodi-18.0+git20180707.0202-04ceaea/debian/changelog.tmp --- kodi-18.0+git20180706.0201-6935152/debian/changelog.tmp 2018-07-06 00:02:53.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/debian/changelog.tmp 2018-07-07 00:02:59.000000000 +0000 @@ -1,4 +1,32 @@ -kodi (2:18.0+git20180706.0201-6935152-0dist) dist; urgency=high +kodi (2:18.0+git20180707.0202-04ceaea-0dist) dist; urgency=high + + [fritsch] + * VAAPIGL[ES]: Only unmap if interop is active + + [ace20022] + * [videplayer] Fix a crash when stopping playback while teletext is opened. + + [Rechi] + * [fix] sprintf writing into too small buffer + + [Rechi] + * [fix] strncpy requires size + 1 buffer + + [Rechi] + * [cleanup] silence catch polymorphic type by value warning + + [Rechi] + * [cleanup] replace deprecated av_codec_next with av_codec_iterate + + [Rechi] + * [cleanup] silence sign compare warnings + + [Rechi] + * [cleanup] silence ignored qualifiers warnings + + [Rainer Hochecker] + * guiinfo: grab gfx lock when registering GUIInfoProviders + [Anton Fedchin] * filesystem: WinLibraryDirectory - use safe method to get a storage folder diff -Nru kodi-18.0+git20180706.0201-6935152/debian/changelog.tmp.old kodi-18.0+git20180707.0202-04ceaea/debian/changelog.tmp.old --- kodi-18.0+git20180706.0201-6935152/debian/changelog.tmp.old 2018-07-06 00:01:59.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/debian/changelog.tmp.old 2018-07-07 00:02:05.000000000 +0000 @@ -1,5 +1,45 @@ kodi (2:18.0+git20171029.0201-910143c-0dist) dist; urgency=high + [Anton Fedchin] + * filesystem: WinLibraryDirectory - use safe method to get a storage folder + + [Anton Fedchin] + * BuildDependencies: update python package for uwp + + [peak3d] + * Don't scroll BaseContainer after reset + + [xbmc] + * display resolutions: fix after 6aaa0fa013518053105ee55da37af430b7534579 + + [ronie] + * [Estuary] fix mono font + + [Garrett Brown] + * RetroPlayer: Fix order of resource deinitialization + + [Garrett Brown] + * Game add-ons: Guard against edge cases in libretro cores + + [Garrett Brown] + * Game add-ons: Fix segfault for some cores + + [Garrett Brown] + * Game OSD: Rename CDialogGameViewMode to CDialogGameStretchMode + + [Garrett Brown] + * Controller dialog: Filter controllers by current game add-on + + [Garrett Brown] + * Game OSD: Rename "Input settings" setting label to "Controls" + + [Garrett Brown] + * Game OSD: Rename "View mode" setting label to "Stretch mode" + + [Garrett Brown] + * RetroPlayer: Remove MMAL renderer on RPi + + [Rainer Hochecker] * Revert "[gui][pvr][fix] Prevent the modification of the provider list while using its iterator." diff -Nru kodi-18.0+git20180706.0201-6935152/VERSION kodi-18.0+git20180707.0202-04ceaea/VERSION --- kodi-18.0+git20180706.0201-6935152/VERSION 2018-07-06 00:01:59.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/VERSION 2018-07-07 00:02:04.000000000 +0000 @@ -1 +1 @@ -6935152 +04ceaea diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/addons/PVRClient.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/addons/PVRClient.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/addons/PVRClient.cpp 2018-06-27 00:01:38.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/addons/PVRClient.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -1731,9 +1731,10 @@ CCodecIds(void) { // get ids and names - AVCodec* codec = NULL; + const AVCodec* codec = nullptr; + void* i = nullptr; xbmc_codec_t tmp; - while ((codec = av_codec_next(codec))) + while ((codec = av_codec_iterate(&i))) { if (av_codec_is_decoder(codec)) { diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/ApplicationPlayer.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/ApplicationPlayer.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/ApplicationPlayer.cpp 2018-06-21 18:59:47.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/ApplicationPlayer.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -475,7 +475,7 @@ return (player && player->CanPause()); } -TextCacheStruct_t* CApplicationPlayer::GetTeletextCache() +std::shared_ptr CApplicationPlayer::GetTeletextCache() { std::shared_ptr player = GetInternal(); if (player) diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/ApplicationPlayer.h kodi-18.0+git20180707.0202-04ceaea/xbmc/ApplicationPlayer.h --- kodi-18.0+git20180706.0201-6935152/xbmc/ApplicationPlayer.h 2018-06-21 18:59:47.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/ApplicationPlayer.h 2018-07-07 00:01:43.000000000 +0000 @@ -101,7 +101,7 @@ int GetSubtitleCount(); void GetSubtitleStreamInfo(int index, SubtitleStreamInfo &info); bool GetSubtitleVisible(); - TextCacheStruct_t* GetTeletextCache(); + std::shared_ptr GetTeletextCache(); std::string GetRadioText(unsigned int line); int64_t GetTime() const; int64_t GetMinTime() const; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cdrip/CDDARipJob.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/cdrip/CDDARipJob.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/cdrip/CDDARipJob.cpp 2018-06-21 18:59:47.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cdrip/CDDARipJob.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -227,7 +227,7 @@ std::string CCDDARipJob::SetupTempFile() { - char tmp[MAX_PATH]; + char tmp[MAX_PATH + 1]; #if defined(TARGET_WINDOWS) using namespace KODI::PLATFORM::WINDOWS; wchar_t tmpW[MAX_PATH]; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/IPlayer.h kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/IPlayer.h --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/IPlayer.h 2018-06-21 18:59:47.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/IPlayer.h 2018-07-07 00:01:43.000000000 +0000 @@ -22,6 +22,7 @@ #include #include +#include #include "IPlayerCallback.h" #include "VideoSettings.h" @@ -152,7 +153,7 @@ virtual void SetProgram(int progId) {} virtual int GetProgramsCount() { return 0; } - virtual TextCacheStruct_t* GetTeletextCache() { return NULL; }; + virtual std::shared_ptr GetTeletextCache() { return NULL; }; virtual void LoadPage(int p, int sp, unsigned char* buffer) {}; virtual std::string GetRadioText(unsigned int line) { return ""; }; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoPlayer.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoPlayer.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoPlayer.cpp 2018-07-02 00:01:48.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoPlayer.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -3379,7 +3379,7 @@ std::static_pointer_cast(m_pInputStream)->EnableSubtitleStream(bVisible); } -TextCacheStruct_t* CVideoPlayer::GetTeletextCache() +std::shared_ptr CVideoPlayer::GetTeletextCache() { if (m_CurrentTeletext.id < 0) return 0; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoPlayer.h kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoPlayer.h --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoPlayer.h 2018-07-02 00:01:48.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoPlayer.h 2018-07-07 00:01:43.000000000 +0000 @@ -340,7 +340,7 @@ void SetProgram(int progId) override; int GetProgramsCount() override; - TextCacheStruct_t* GetTeletextCache() override; + std::shared_ptr GetTeletextCache() override; void LoadPage(int p, int sp, unsigned char* buffer) override; std::string GetRadioText(unsigned int line) override; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoPlayerTeletext.h kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoPlayerTeletext.h --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoPlayerTeletext.h 2018-06-21 18:59:48.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoPlayerTeletext.h 2018-07-07 00:01:43.000000000 +0000 @@ -46,7 +46,7 @@ bool IsInited() const override { return true; } bool IsStalled() const override { return true; } - TextCacheStruct_t* GetTeletextCache() { return &m_TXTCache; } + std::shared_ptr GetTeletextCache() { return std::make_shared(m_TXTCache); } void LoadPage(int p, int sp, unsigned char* buffer); protected: diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGL.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGL.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGL.cpp 2018-07-05 00:01:58.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGL.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -298,6 +298,9 @@ glDeleteSync(m_fences[idx]); m_fences[idx] = GL_NONE; } - m_vaapiTextures[idx]->Unmap(); + if (m_isVAAPIBuffer) + { + m_vaapiTextures[idx]->Unmap(); + } CLinuxRendererGL::ReleaseBuffer(idx); } diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGLES.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGLES.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGLES.cpp 2018-06-21 18:59:48.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGLES.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -292,6 +292,9 @@ glDeleteSync(m_fences[idx]); m_fences[idx] = GL_NONE; } - m_vaapiTextures[idx]->Unmap(); + if (m_isVAAPIBuffer) + { + m_vaapiTextures[idx]->Unmap(); + } CLinuxRendererGLES::ReleaseBuffer(idx); } diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp 2018-06-21 18:59:48.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -512,7 +512,7 @@ if (surface.num_objects > m_drmFDs.size()) throw std::logic_error("Too many fds returned by vaExportSurfaceHandle"); - for (int object = 0; object < surface.num_objects; object++) + for (uint32_t object = 0; object < surface.num_objects; object++) { m_drmFDs[object].attach(surface.objects[object].fd); } @@ -538,7 +538,7 @@ m_bits = 8; } - for (int layerNo = 0; layerNo < surface.num_layers; layerNo++) + for (uint32_t layerNo = 0; layerNo < surface.num_layers; layerNo++) { int plane = 0; auto const& layer = surface.layers[layerNo]; @@ -719,7 +719,7 @@ result = true; } - for (int object = 0; object < drmPrimeSurface.num_objects; object++) + for (uint32_t object = 0; object < drmPrimeSurface.num_objects; object++) { close(drmPrimeSurface.objects[object].fd); } diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/FileItem.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/FileItem.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/FileItem.cpp 2018-07-04 00:01:50.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/FileItem.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -2882,7 +2882,7 @@ return true; } } - catch(std::out_of_range ex) + catch(const std::out_of_range&) { CLog::Log(LOGERROR, "Corrupt archive: %s", CURL::GetRedacted(path).c_str()); } diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/GUIInfoManager.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/GUIInfoManager.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/GUIInfoManager.cpp 2018-07-04 00:01:50.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/GUIInfoManager.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -7059,10 +7059,20 @@ void CGUIInfoManager::RegisterInfoProvider(IGUIInfoProvider *provider) { + if (!CServiceBroker::GetWinSystem()) + return; + + CSingleLock lock(CServiceBroker::GetWinSystem()->GetGfxContext()); + m_infoProviders.RegisterProvider(provider, false); } void CGUIInfoManager::UnregisterInfoProvider(IGUIInfoProvider *provider) { + if (!CServiceBroker::GetWinSystem()) + return; + + CSingleLock lock(CServiceBroker::GetWinSystem()->GetGfxContext()); + m_infoProviders.UnregisterProvider(provider); } diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp 2018-06-21 18:59:49.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -176,7 +176,7 @@ return true; } -const PeripheralType CPeripheralBusUSB::GetType(int iDeviceClass) +PeripheralType CPeripheralBusUSB::GetType(int iDeviceClass) { switch (iDeviceClass) { diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.h kodi-18.0+git20180707.0202-04ceaea/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.h --- kodi-18.0+git20180706.0201-6935152/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.h 2018-06-21 18:59:49.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.h 2018-07-07 00:01:43.000000000 +0000 @@ -44,7 +44,7 @@ bool PerformDeviceScan(PeripheralScanResults &results) override; protected: - static const PeripheralType GetType(int iDeviceClass); + static PeripheralType GetType(int iDeviceClass); void Process(void) override; bool WaitForUpdate(void); diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/settings/DisplaySettings.h kodi-18.0+git20180707.0202-04ceaea/xbmc/settings/DisplaySettings.h --- kodi-18.0+git20180706.0201-6935152/xbmc/settings/DisplaySettings.h 2018-07-05 00:01:58.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/settings/DisplaySettings.h 2018-07-07 00:01:43.000000000 +0000 @@ -78,7 +78,7 @@ const RESOLUTION_INFO& GetCurrentResolutionInfo() const { return GetResolutionInfo(m_currentResolution); } RESOLUTION_INFO& GetCurrentResolutionInfo() { return GetResolutionInfo(m_currentResolution); } - const RESOLUTION GetResFromString(const std::string &strResolution) { return GetResolutionFromString(strResolution); } + RESOLUTION GetResFromString(const std::string &strResolution) { return GetResolutionFromString(strResolution); } void ApplyCalibrations(); void UpdateCalibrations(); diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/utils/ScraperParser.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/utils/ScraperParser.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/utils/ScraperParser.cpp 2018-05-01 00:00:32.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/utils/ScraperParser.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -285,7 +285,7 @@ if (iOptional > -1) // check that required param is there { - char temp[4]; + char temp[12]; sprintf(temp,"\\%i",iOptional); std::string szParam = reg.GetReplaceString(temp); CRegExp reg2; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/video/Teletext.h kodi-18.0+git20180707.0202-04ceaea/xbmc/video/Teletext.h --- kodi-18.0+git20180706.0201-6935152/xbmc/video/Teletext.h 2018-06-21 18:59:49.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/video/Teletext.h 2018-07-07 00:01:43.000000000 +0000 @@ -164,6 +164,6 @@ int m_TempPage; /* Temporary page number for number input */ int m_LastPage; /* Last selected Page */ - TextCacheStruct_t* m_txtCache; /* Text cache generated by the VideoPlayer if Teletext present */ + std::shared_ptr m_txtCache; /* Text cache generated by the VideoPlayer if Teletext present */ TextRenderInfo_t m_RenderInfo; /* Rendering information of displayed Teletext page */ }; diff -Nru kodi-18.0+git20180706.0201-6935152/xbmc/view/ViewStateSettings.cpp kodi-18.0+git20180707.0202-04ceaea/xbmc/view/ViewStateSettings.cpp --- kodi-18.0+git20180706.0201-6935152/xbmc/view/ViewStateSettings.cpp 2018-07-04 00:01:50.000000000 +0000 +++ kodi-18.0+git20180707.0202-04ceaea/xbmc/view/ViewStateSettings.cpp 2018-07-07 00:01:43.000000000 +0000 @@ -123,7 +123,7 @@ if (pElement != NULL) { int settingLevel; - if (XMLUtils::GetInt(pElement, XML_SETTINGLEVEL, settingLevel, (const int)SettingLevel::Basic, (const int)SettingLevel::Expert)) + if (XMLUtils::GetInt(pElement, XML_SETTINGLEVEL, settingLevel, static_cast(SettingLevel::Basic), static_cast(SettingLevel::Expert))) m_settingLevel = (SettingLevel)settingLevel; else m_settingLevel = SettingLevel::Standard; @@ -132,7 +132,7 @@ if (pEventLogNode != NULL) { int eventLevel; - if (XMLUtils::GetInt(pEventLogNode, XML_EVENTLOG_LEVEL, eventLevel, (const int)EventLevel::Basic, (const int)EventLevel::Error)) + if (XMLUtils::GetInt(pEventLogNode, XML_EVENTLOG_LEVEL, eventLevel, static_cast(EventLevel::Basic), static_cast(EventLevel::Error))) m_eventLevel = (EventLevel)eventLevel; else m_eventLevel = EventLevel::Basic;