github xbmc/xbmc 22.0a3-Piers
v22.0a3-Piers

pre-releaseone month ago

What's Changed

  • [Python] Call Py_Initialize from main thread by @sundermann in #27395
  • [depends][webOS] Don't build libinput by @sundermann in #27382
  • [webOS] Bundle gst-plugin-scanner by @sundermann in #27377
  • webOS: remove extradata from aac, set profile as per spec by @cscd98 in #27368
  • [win] get_formed enable supplying alternate source url for individual package by @fuzzard in #27375
  • [cmake] Modulehelper BUILD_DEP_TARGET set _FOUND variable for caller by @fuzzard in #27374
  • [cmake] add meson cross generation macros and add cmake binary to meson.cross by @fuzzard in #27373
  • [Video][Bluray] Improvement to episode recognition logic. by @78andyp in #27394
  • Bump Python to 3.13.9 by @thexai in #27367
  • [Android] Catch NameNotFoundException when returns the application's Resources by @joseluismarti in #27384
  • [Android] Refactor CFileAndroidApp::ReadIcon function by @joseluismarti in #27388
  • [tools/depends][target] Bump libudfread, libbluray by @fuzzard in #27376
  • [webOS] Raise -mcpu to cortex-a53 by @sundermann in #27383
  • Update libxkbcommon to v1.12.3 by @garbear in #27407
  • [Video][Library] Local artwork rarely not found when importing a bluray:// movie. by @78andyp in #27393
  • [cmake] FindBrotli cleanup and fix pkgconfig search by @fuzzard in #27408
  • [cmake] FindPCRE2 cleanup logging, support cmake alias for PCRE2::8BIT by @fuzzard in #27414
  • [Cmake] Enable FontConfig for libass on Darwin platforms by @fuzzard in #27410
  • [VideoPlayer] Return main title stream details for discs played through menus, and manage log verbosity. by @78andyp in #27176
  • [Video] Code optimisations (Sonarqube etc..) following #27176. by @78andyp in #27417
  • [xbmc] Add missing include by @heitbaum in #27428
  • [Video][Bluray] Remaining Sonarqube tweaks in M2TS parser. by @78andyp in #27429
  • [CURL] Refactored archive CURL parsing by @damienruscoe in #26871
  • [NFO] File parsing refactor by @damienruscoe in #27321
  • [AESinkAUDIOTRACK] Fix crash if audio device is not available by @thexai in #27436
  • [guilib] Optimize text layout rendering by reducing font width calculation by @sundermann in #27403
  • [Application] Refactor CApplicationPlayer::OnPlayerCloseFile(). by @78andyp in #27406
  • [URLUtils] Reduce dependency on fmt library by @damienruscoe in #27317
  • [depends][addons] Add platform deps by @sundermann in #27416
  • [tools/depends][native] Update gas-preprocessor by @fuzzard in #27440
  • [cmake] Remove explicit dav1d search for core by @fuzzard in #27442
  • [Application] Refactor CApplication::PlayFile(). by @78andyp in #27401
  • Translations update from Kodi Weblate by @weblate in #27446
  • [CURL] Access CURL object via CFileItem::GetURL and CFileItem::GetDynURL. by @damienruscoe in #27085
  • [cmake] Find modules unset patches variable after use by @fuzzard in #27445
  • [webOS] Packaging: Explicitly make gst-plugin-scanner executable by @sundermann in #27425
  • Introduce a constexpr set class, similar to CMap by @neo1973 in #27261
  • URIUtils: Fix GetFileOrFolderName with empty input by @neo1973 in #27455
  • [windows] download-msys2 call vswhere to setup env by @fuzzard in #27441
  • [cmake] FindFFMPEG set env var for UWP, meson cross typo fix by @fuzzard in #27459
  • [Cmake] Remove (some) of find_package_handle_standard_args by @fuzzard in #26847
  • [URIUtils] Modernize GetFileOrFolderName by @CrystalP in #27458
  • [PVR] Add missing default values to advancedsettings.xml for pvrrecordings by @emveepee in #27285
  • [application] Refactor CApplicationPlay. by @ksooo in #27454
  • [cmake] Fix Bluetooth/lcms2 pkgconfig search name by @fuzzard in #27462
  • [cmake] Safety check VERSION variables, fix case sensitive issues for flatbuffers search nane by @fuzzard in #27465
  • [cmake] FindCrossGUID respect cmake config target by @fuzzard in #27463
  • [URIUtils][CURL] Refactor URLParsing tests as parametrized tests by @CrystalP in #27461
  • [cmake] FindLibDovi use correct library name by @vpeter4 in #27472
  • fix: prevent Claude code reviewer from creating accidental GitHub issue links by @keithah in #27470
  • changed: put application message handling in separate class by @notspiff in #27475
  • [webOS] Add iconColor to appinfo.json and update Kodi largeIcon by @OfficerKD637 in #27450
  • Address a couple C++17 TODOs by @CrystalP in #27477
  • [test] Disable tests which have recently been enabled on Win64. by @damienruscoe in #27481
  • [tools/depends][target] Bump harfbuzz 12.1.0 by @fuzzard in #27476
  • [addons] Remove default c++ version from toolchain file by @sundermann in #27398
  • [DVDDemuxFFmpeg] Handle WebVTT ISOBMFF with COverlayCodecWebVTT decoder by @CastagnaIT in #27432
  • [OverlayCodecWebVTT] Handle D_WEBVTT/SUBTITLES format by @CastagnaIT in #27433
  • [cmake] FindFFMPEG partial revert 77d79c1 by @fuzzard in #27495
  • [cmake][darwin] blank a number of xcode environment variables by @fuzzard in #27496
  • [tools/depends][target] Bump mariadb-c-connector 3.3.17 by @fuzzard in #27501
  • Revert "[ffmpeg][darwin_embedded] Enable yadif_videotoolbox" by @fuzzard in #27497
  • [ActiveAE] Use 48000 as a default sample rate by @stigger in #27249
  • [swig] disable cast-function-type warnings for Clang as well by @fuzzard in #27508
  • [video][music] Fix playback of items with no video/music info tag. by @ksooo in #27510
  • Fix random SonarQube findings introduced since September 1 2025 by @ksooo in #27509
  • [CC] fix compile warnings in get_char_override function by @vpeter4 in #27486
  • [cmake] FindFFMPEG handle version/rebuild requirements better by @fuzzard in #27512
  • [cmake] windows arch use CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE by @fuzzard in #27505
  • [cmake] ModuleHelpers meson cross generation improvements by @fuzzard in #27494
  • [Cmake] FindFFMPEG build logging, fixes unix ffmpeg link wrapper by @fuzzard in #27498
  • [docs] Remove "-T host=x64" from Windows README by @garbear in #27507
  • [GUI] Switch font releated APIs to std::span by @neo1973 in #27452
  • [weather] Implement queueing for weather update requests. by @ksooo in #27511
  • [GUIWindowSettingsProfile] Highlight selected profile by @CastagnaIT in #27515
  • [depends][target] Update to ffmpeg 8.0.1 by @sundermann in #27503
  • GraphicContext: Use std::stack with a std::vector by @neo1973 in #27460
  • [tools/depends][target] Bump libpng 1.6.51 by @fuzzard in #27506
  • [Android] [webOS] Add Dolby Vision setting to set zero L5 metadata by @quietvoid in #27431
  • Apply clang-format to BitstreamConverter by @cscd98 in #27453
  • [weather] Fix deadlocks: … by @ksooo in #27522
  • [depends][native] Heimdal and autoconf bump by @sundermann in #27528
  • Revert "[depends][native] TEMP: Change BASE_URL" by @fuzzard in #27531
  • [GUITextLayout] Fix vector iterator incremented past end by @CastagnaIT in #27527
  • [tools/depends] bootstrap check minimum version of m4 pre-depends by @fuzzard in #27534
  • [cmake] FindFstrcmp remove incorrect *_DISABLE_VERSION log internal build by @fuzzard in #27540
  • Translations update from Kodi Weblate by @weblate in #27548
  • [i18n] Fix LangCodeExpander Bugs by @CrystalP in #27530
  • [Android][libass] Enable fontconfig for libass to support all language scripts in subtitles by @naseef in #27517
  • [cmake] Fix double installation of TexturePacker by @chewi in #27545
  • [cmake] FindFFMPEG by @fuzzard in #27550
  • [tools/depends][native] assorted (mostly gnu) lib bumps by @fuzzard in #27535
  • [GUIDialogProfileSettings] Dialog to ask for custom profile directory by @CastagnaIT in #27524
  • [application][pvr] Re-implement 'delete after watching' using an event based approach. by @ksooo in #27555
  • [addons/interfaces] Fix: allow setting set_setting_bool to false by @flubshi in #27559
  • [Encoder] Remove usage of resampler by @sundermann in #27058
  • [cmake] Enable internal build of libmicrohttpd by @fuzzard in #27558
  • [VideoPlayer] Close PGS/VobSub subtitles when audio language dont match by @CastagnaIT in #27467
  • Fix wayland keymapping is not possible when the key id is unconventional by @hbiyik in #27563
  • [Cmake] Bump dav1d 1.5.2 by @fuzzard in #27447
  • interfaces/python: remove use of deprecated method '_Py_fopen_obj' by @lrusak in #27567
  • AESinkAudiotrack: Stop potential leakage by @fritsch in #27464
  • [Windows] Fix the ability to detect dav1d version changes to rebuild FFmpeg by @thexai in #27573
  • [Video] Folder Stacks by @78andyp in #27048
  • Translations update from Kodi Weblate by @weblate in #27574
  • [Video] Preserve streamdetails derived from an nfo when bluray playlist is selected through the simple menu. by @78andyp in #27568
  • [Windows][CURL] Fix URL parsing of zip and apk for Windows by @CrystalP in #27488
  • Replace incorrect check of result with a direct validation of sockets[1] against INVALID_SOCKET after the accept call. by @Dave-Lowndes in #27562
  • Translations update from Kodi Weblate by @weblate in #27577
  • webOS: transcode to DD+ instead of DD if eARC supported and enabled by @cscd98 in #27541
  • [VideoThumbLoader] Refactor by @damienruscoe in #27316
  • [Windows] BuildSetup.bat: enable build in parallel by @thexai in #27578
  • Move VideoDatabase migration code to a separate file by @CrystalP in #27529
  • Fix ValidateField to correctly detect invalid characters as per issue #26044. by @Dave-Lowndes in #27561
  • [Cmake] windows globals/linker cleanup/improvements by @fuzzard in #27565
  • JSON RPC : added Player.GetChapters method by @albaintor in #27560
  • [linux] Implement custom PowerSyscall class. by @aanderse in #27556
  • [webOS] Add allow passthrough setting by @sundermann in #27551
  • [Depends] Bump cec 7.1.1 by @fuzzard in #27585
  • Translations update from Kodi Weblate by @weblate in #27591
  • Support Tag Line for TV Shows in core - DB Bump by @CrystalP in #27566
  • [python] Update to Python 3.14.2 by @sundermann in #27391
  • [Windows] Bump Python to 3.14.2 / Pillow to 12.0.0 by @thexai in #27554
  • [cmake] Fix internal brotli with ninja, remove FHPSA from nghttp by @fuzzard in #27597
  • [Depends] Bump spdlog 1.16.0 and fmt 12.1 by @fuzzard in #27596
  • [depends][target] Fix fmt version by @sundermann in #27603
  • [Video] Fix #27121 broke Bluray menus. by @78andyp in #27595
  • Skin resources and enable resource:// paths in skin includes by @garbear in #27525
  • [playlists][video] Fix browse for subtitles for items contained in playlists and strm files. by @ksooo in #27593
  • [webOS] Set fontconfig environment variables by @sundermann in #27602
  • Translations update from Kodi Weblate by @weblate in #27610
  • [Cmake] Enable internal build mariadb-c-connector by @fuzzard in #27504
  • GUIFontTTF: Fix crash in a edge case by @thexai in #27608
  • Visual Studio 2026 support. Minimum version Visual Studio 2022. by @78andyp in #27473
  • [cmake] Fix build version checks for webOS by @sundermann in #27605
  • Move video database cXX columns definitions to a separate file - Fix episode air date filter by @CrystalP in #27587
  • [Build][Windows] Restore VS 2022 UWP and ARM64 build instructions by @CrystalP in #27618
  • [i18n] Add BCP47 Language Tags Parsing by @CrystalP in #27532
  • UPnP AV bug fixes by @enen92 in #27614
  • JSON RPC : added notifications (Player.OnPropertyChanged) when video… by @albaintor in #27449
  • [Depends] Update Harfbuzz to v12.3.0 by @enen92 in #27631
  • [macOS] Nuke XBMCHelper by @enen92 in #23580
  • [tools/depends][target] Bump libiconv 1.18 by @fuzzard in #27634
  • [JobManager] Add support for multiple callbacks per job by @enen92 in #27624
  • AEStreamInfo: fix AC3 duration when sample rate is different from 48 KHz by @thexai in #27635
  • AESinkAudioTrack: Simplify RAW - buffer did not work anyways by @fritsch in #27621
  • Fix playback of tcp:// streams by @enen92 in #27616
  • [GUI] GUIWindowManager: Use shared_ptr for window ownership by @enen92 in #27620
  • [EDL] Reorganize EDL by @enen92 in #27629
  • [Addons] Implement equals for CAddonInstallJob by @enen92 in #27647
  • MySQL/MariaDB Settings Refactor and new setting for MYSQL_OPT_SSL_ENFORCE option by @CrystalP in #27649
  • Fix Missing Sound on Return from FF/RW to Tempo Play / Remove Tempo Play to Normal Play Unneeded Flush by @CrystalP in #27644
  • Translations update from Kodi Weblate by @weblate in #27648
  • MusicGUIInfo: use streamUrlData as coverURL when its an image (e.g. radio paradise) by @glic3rinu in #27651
  • [dialogs] Fix crash on install add-on from zip file. by @ksooo in #27654
  • [GUIDialogFileBrowser] Use Delete instead of Remove for proper window… by @enen92 in #27659
  • [Addons] Avoid delete since window ownership belongs to CGUIWindowMan… by @enen92 in #27656
  • [macOS] Only disable GUI rendering if the window is not visible by @enen92 in #27658
  • [macOS] improve storage info display by @kambala-decapitator in #27598
  • AESinkAudiotrack: Implement GetLatency API by @fritsch in #27638
  • [webOS] Implement audio volume settings in non-passthrough mode by @sundermann in #27600
  • GUIDialogFileBrowser: Show busy dialog while fetching directory listing by @neo1973 in #27627
  • Translations update from Kodi Weblate by @weblate in #27665
  • [webOS] Change visibility of passthrough settings by @sundermann in #27643
  • [Windows] Fix Execution on Windows 8.1 by @CrystalP in #27661
  • [Video] Fix repetitive calls to UpdateFileItemStreamDetails(). by @78andyp in #27543
  • [Video] Streamdetails are not saved for blurays played through the menu selected via the simple menu. by @78andyp in #27676
  • AESinkPulse: Use also 48 khz for testing by @fritsch in #27681
  • ActiveAE: Fix missing initial ~200 ms of audio at playback start by @thexai in #27652
  • [PipeWire] Fix deadlock in format enumeration by @neo1973 in #27615
  • [Wayland] InputProcessorKeyboard: Support long-press by @neo1973 in #27677
  • ModuleHelpers.cmake: handle empty options as [] not [''] by @glic3rinu in #27668
  • [Windows] WASAPI rework by @thexai in #27675
  • [Windows][Settings] Change the default audio devices to XAUDIO and WASAPI by @thexai in #27682
  • [WASAPI] Improve code formatting, comments and const variables by @thexai in #27688
  • [GUIInfoManager] Announce Info.OnChanged on SetCurrentSongTag/SetCurrentVideoTag by @glic3rinu in #27697
  • [Games] Refactor handling of video shader textures by @KOPRajs in #27694
  • Translations update from Kodi Weblate by @weblate in #27705
  • [LocalizeStrings] Remove unused g_localizeStringsTemp by @enen92 in #27709
  • [ActiveAE] Improve "Low latency mode" by @thexai in #27701
  • [guilib] GUIScrollBarControl Fix SetInvalid() by @pannal in #27711
  • [webOS] Relax holding locks inside processing threads by @sundermann in #27678
  • Prefer constrained algorithms by @notspiff in #27708
  • VideoPlayer: Reset PTS offset on flush by @neo1973 in #27662
  • [GUI] Kill g_SkinInfo global, move to CGUIComponent by @enen92 in #27707
  • [Subtitles][CC] Add support for H264 AVCC to bitstream parser by @enen92 in #27672
  • [Skin] Check GUI in reloadskin by @enen92 in #27723
  • Translations update from Kodi Weblate by @weblate in #27721
  • SetInfoTag: clean up includes by @notspiff in #27725
  • (Program)ThumbLoader: Some cleanup by @notspiff in #27726
  • [LocalizedStrings] Remove special handling for skins by @enen92 in #27712
  • [Windows] Updates Microsoft Visual C++ runtime to be compatible with VS2017 to VS2026 by @thexai in #27623
  • [MySQL/MariaDB] Fix build by @CrystalP in #27724
  • [ActiveAE] Allow configure "Low latency mode" during playback by @thexai in #27729
  • [Stacks] Fix playback of a regular stack does not automatically advance to the next item in the stack. by @78andyp in #27713
  • [Art][VideoInfoScanner] Local movie and season art may not be found on library (re)scan. by @78andyp in #27717
  • [GUI] Fix culling issues with smart redraw by @neo1973 in #27674
  • [Windows] Remove dead code IsUSBDevice() by @thexai in #27731
  • ContextMenus: some cleanups by @notspiff in #27730
  • [GHA] Make Claude Code Review comments collapsed by default by @keithah in #27734
  • [ZipManager] Add ZIP64 (files > 4GB) support. by @78andyp in #27692
  • Addons: Clear addon strings on addon removal by @enen92 in #27728
  • Use bullet (U+2022) instead of math dot as UI separator by @qzydustin in #27742
  • DatabaseQuery: Fix translation for OPERATOR_BETWEEN by @neo1973 in #27663
  • [GHA] Improve Claude Code workflow feedback quality by @keithah in #27749
  • [FreeBSD][Zip] Change temporary directory location from RAM to disc to avoid issues decompressing large compressed files. by @78andyp in #27744
  • [Windows] Bump Pillow to 12.1.0 by @thexai in #27639
  • target/depends: Update libxkbcommon to v1.13.1 by @garbear in #27716
  • [PVR] PVR components power management improvements by @ksooo in #27746
  • [GHA] Allow Claude to access gh issue and gh pr list commands by @keithah in #27756
  • [GHA] SECURITY FIX: Fix overly permissive issue permissions + add missing commands by @keithah in #27757
  • [GHA] CRITICAL: Fix security issue + add git commands for code review by @keithah in #27759
  • [GUI] Fix some regressions regarding skin strings by @enen92 in #27755
  • [guilib] Optimize GUIBaseContainer page control message caching by @pannal in #27735
  • [guilib] Optimize GUIControlGroupList page control message caching by @pannal in #27736
  • [guilib] Optimize GUIButtonControl focus pulse alpha updates by @pannal in #27737
  • [guilib] Optimize GUIScrollBarControl to reduce constant dirty region marking by @pannal in #27739
  • [guilib] Optimize CGUITexture to only mark dirty on ready state transitions by @pannal in #27740
  • [guilib] Optimize GUIBorderedImage border position recalculation by @pannal in #27741
  • [GHA] Strengthen zero-positive-feedback rule for Claude reviews by @keithah in #27761
  • [Subtitles] Fix WebVTT subtitles that make use of persistent overlay not shown after seek. by @78andyp in #27714
  • Android: Fix display mode matching with padded hardware decoder surfaces by @jahutchi in #27754
  • [VideoPlayer] Fix hardcoded value of 8s is not correct due is currently a variable time by @thexai in #27774
  • Fix interference between unit tests and portable mode by @CrystalP in #27626
  • Move video database DDL code to a separate file by @CrystalP in #27592
  • [WASAPI] Remove initialized but not used variables by @thexai in #27773
  • EventClient: move implementation to TU by @notspiff in #27777
  • [Windows] WASAPI Sink Buffer Size Improvements by @CrystalP in #27719
  • Fix Claude not posting when no issues found + enable debug logging by @keithah in #27781
  • avoid ServiceBroker.h include in header by @notspiff in #27778
  • GraphicContext: avoid RenderSystem.h include by @notspiff in #27784
  • GraphicContext: avoid include of WinSystem.h by @notspiff in #27786
  • Fix Claude workflows: prevent validation issues + add acknowledgment by @keithah in #27790
  • [Windows] FromW/ToW Improvements by @CrystalP in #27789
  • Convert RENDER_STEREO_VIEW to enum class by @notspiff in #27792
  • [Windows] D3D11 Implementation of Front to Back Rendering by @CrystalP in #27751
  • [Windows] Fix build / Conflict on RenderStereoView Changes by @CrystalP in #27798
  • [Threading][Windows] Log app/thread priorities and use MMCSS for AE Sink by @CrystalP in #27748
  • Render stereo mode enum class and rename by @notspiff in #27797
  • C++23 fixes by @sundermann in #27801
  • [WASAPI] Improve Drain() - Allow write pending frames in m_buffer by @thexai in #27722
  • [Games] Improvements for libretro shader presets support by @KOPRajs in #27768
  • CMusicRole::operator==: move to TU by @notspiff in #27807
  • [System] Fixes for path manipulation with tests. by @78andyp in #27580
  • Fix Claude Code workflow: resolve all critical issues by @keithah in #27814
  • [Datacachecore] do reset audio cache only on format change by @Portisch in #27808
  • [guilib] Remove redundant IsScrolling() dirty marking in GUIBaseContainer by @pannal in #27762
  • [guilib] Consolidate GUIFadeLabelControl dirty marking during scroll/fade by @pannal in #27763
  • Update to cmake v3.31.10 - fix compile error: assigning to 'curl_proxytype' from incompatible type 'long' by @cscd98 in #27657
  • [guilib] Use binary search for letter navigation in GUIBaseContainer by @pannal in #27766
  • [LocalizeStrings] Introduce ResourcesComponent, move localized string… by @enen92 in #27752
  • [Python] Look for skin string ids in xbmc.getLocalizedstring by @enen92 in #27804
  • [PVR] Fix range lookup for channel group by @enen92 in #27824
  • Optimize emplace_back calls by @CrystalP in #27795
  • [JSON-RPC] Add bitspersample enum to currentaudiostream and bump api to 13.9.0 by @scott967 in #27404
  • chore(ci): remove Claude GitHub Actions workflows by @keithah in #27833
  • [Settings] Add Advanced Settings Reload Notification + Use in FileExtensionsProvider and Renderers by @CrystalP in #27772
  • [Android] Fix Pillow is broken since the bump to 12.0.0 by @joseluismarti in #27715
  • Don't return const values by @notspiff in #27806
  • Fix crash of addon install from 0 byte .zip by @CrystalP in #27803
  • Drop some typedefs by @notspiff in #27848
  • [webOS] Fix stream closing logic by @sundermann in #27817
  • CDDARipJob: some cleanups by @notspiff in #27811
  • gitignore: add tools/android/packaging/build by @cscd98 in #27823
  • [Windows] Bump dnssd to 2881.60.4 by @thexai in #27835
  • CArtist: drop related typedefs by @notspiff in #27856
  • [Windows] Bump harfbuzz to 12.3.2 / freetype to 2.14.1 by @thexai in #27829
  • LibInputKeyboard: trim newlines from [xkb] debug log messages by @chewitt in #27826
  • [Windows] Bump libxml2 to 2.15.1 / libplist to 2.7.0 by @thexai in #27839
  • [Games] RetroPlayer OpenGL rendering cleanup by @KOPRajs in #27843
  • LocalizeStrings: drop typedefs by @notspiff in #27857
  • Update metadata addons by @garbear in #27793
  • VECALBUMS: drop typedef by @notspiff in #27861
  • [MediaDrm] Code changes for libandroidjni dep modifications by @CastagnaIT in #27812
  • drop unused CMusicDatabase::GetSongsByWhere by @notspiff in #27873
  • Use forwarding by @notspiff in #27878
  • WinSystemGbm: Fix direct-to-plane video tearing by @Kwiboo in #27809
  • DVDVideoCodecDRMPRIME: Fix AV1 playback using v4l2request hwaccel by @Kwiboo in #27579
  • Reorder parameters and drop default value by @notspiff in #27879
  • Translations update from Kodi Weblate by @weblate in #27881
  • SortOrder: convert to enum class by @notspiff in #27883
  • [JobManager] Prevent deadlock in OnJobComplete() by @neo1973 in #27780
  • Revert "[tools/depends][target] Pythonmodule-pil set install location" by @joseluismarti in #27869
  • [Video][Art] Fix art without the movie name is skipped in movie folders. by @78andyp in #27880
  • SortSpecial: convert to enum class by @notspiff in #27885
  • [Windows] use https in mirrors url by @CrystalP in #27872
  • Update controller addons by @garbear in #27886
  • [depends][target] Bump font libraries by @sundermann in #27854
  • [depends][target] Bump libxml2 to 2.15.1 / libplist to 2.7.0 by @sundermann in #27855
  • [Games] Make LUTs not pass specific by @KOPRajs in #27863
  • [RetroPlayer] Add a frame-ended callback for FBO plumbing (needed for GL support) by @garbear in #27007
  • [Windows][doc] Add download link for Visual Studio 2022 by @thexai in #27871
  • [PVR] Parse daily wake-up time as a local time by @hughmcmaster in #27851
  • guilib: Split up GUIMessage.h header by @garbear in #27888
  • [Video][Library] Check for parsing nfos to ensure episode grouping respected when adding additional episodes. by @78andyp in #27877
  • [Build] Use https for mirrors URL by @thexai in #27898
  • [Windows] Remove unsupported platforms by @thexai in #27841
  • SortUtils: various cleanup by @notspiff in #27887
  • [addons] Fix typo in add-on function name by @Rainer-Keller in #26395
  • [windows] PlatformDefs.h update typedef for ssize_t by @fuzzard in #27372
  • RetroPlayer: Fix crash on stream close/re-open by @garbear in #27791
  • Add IANA language subtag registry support by @CrystalP in #27893
  • CGUIDialogNetworkSetup: fix missing folder label by @Portisch in #27908
  • [ActiveAE] Fix audio stall and infinite loop during tempo seek by @linzack in #27911
  • SortBy: convert to enum class by @notspiff in #27909
  • Fix black screen for some games with non-256-byte-aligned stride by @garbear in #27895
  • Linux: Respect CORE_PLATFORM_NAME for depends builds by @garbear in #27896
  • Remove unused variable and method from CAndroidStorageProvider by @joseluismarti in #27905
  • [Windows] Bump libbdplus to 0.2.0 by @thexai in #27819
  • [Windows] Bump libcdio to 2.3.0 by @thexai in #27858
  • [depends][target] Bump libcdio to 2.3.0 by @sundermann in #27860
  • [Windows] Bump Python to 3.14.3 / OpenSSL to 3.0.19 by @thexai in #27813
  • [depends] Bump openssl to 3.0.19 / python3 to 3.14.3 by @sundermann in #27818
  • [Windows] Bump libaacs to 0.11.1 by @thexai in #27822
  • [depends] Bump zlib 1.3.2 by @sundermann in #27900
  • [GUI][DV] Prefer first video stream found for thumbnail extraction by @graham8 in #27889
  • Replace PRETTY_FUNCTION with FUNCTION when logging on Android by @joseluismarti in #27859
  • [Windows] Refresh fstrcmp 0.7 by @thexai in #27870
  • [Windows] Bump Detours to 9764ceb by @thexai in #27865
  • [pictures] catch exiv2 exceptions by @enen92 in #27933
  • [Android] Fix AFR not working after standby/wake cycle by @fritsch in #27928
  • [Windows] Refresh tinyxml 2.6.2 by @thexai in #27866
  • Fix build for libfmt < 10.0 by @CrystalP in #27927
  • [Estuary] Change the display of tagline in DialogVideoInfo by @jjd-uk in #27867
  • cmake: accept crossguid2 for CrossGUID by @jdieter in #27820
  • [cmake] Enable building Lzo2 by @fuzzard in #27641
  • [libUPnP] drop unused sources by @Portisch in #27846
  • [libUPnP] Restore removed source by @garbear in #27942
  • [Android] add XBMCMediaDrmOnKeyStatusChangeListener.java by @CastagnaIT in #27923
  • Input: remove legacy "Hardy keycode" fallback by @HiassofT in #27946
  • dbwrappers: support Fedora MariaDB header layout by @jdieter in #27821
  • [Dependencies] Bump Libbluray/libudfread by @fuzzard in #27369
  • chore: add .kodiai.yml to enable kodiai write mode by @keithah in #27955
  • [filesystem] Log additional details for unsupported zip compression method by @CrystalP in #27957
  • [database][mysql] Change MySQL/MariaDB charset/collation to utf8mb4/utf8mb4_general_ci by @CrystalP in #27952
  • [Video] Adjust getting movie names from archives. by @78andyp in #27921
  • LibInputKeyboard: log xkb keysym and name by @HiassofT in #27953
  • [Android] Use relative class name path by @CastagnaIT in #27944
  • [Database] Fix existing zip:// and rar:// paths in database following recent paths PR. by @78andyp in #27849
  • [Video] Fix unable to set episode bookmarks. by @78andyp in #27910
  • Clean up .gitignore files related to Android by @joseluismarti in #27967
  • [cmake] Fix FetchContent re-download on each build by @thexai in #27966
  • [dbwrappers] Remove Database class member last_err by @CrystalP in #27962
  • [guilib] Fix heap corruption from sws_scale SIMD buffer overrun in texture allocation by @MikeSiLVO in #27970
  • [Android] Remove legacy storage mount parsing by @joseluismarti in #27934
  • [i18n] Fix pcre2 assert/crash in BCP47 full parser by @CrystalP in #27977
  • VideoPlayer Chapter Change Accuracy by @CrystalP in #27969
  • [webOS] VideoPlayer: Allow tempo by @sundermann in #27919
  • Field: convert to enum class by @notspiff in #27920
  • Fix loading savestate when starting Mupen64Plus-NX by @garbear in #27948
  • cmake/linux: Fix building for VDPAU without GLX by @garbear in #27950
  • [application] Fix video info not available when playing strm files. by @ksooo in #27980
  • [PVR] CPVRGUIInfo::Start(): Ensure worker thread is stopped before creating it. by @ksooo in #27979
  • [Piers] Release 22.0 Alpha 3 by @garbear in #27981

New Contributors

Full Changelog: 22.0a2-Piers...22.0a3-Piers

Don't miss a new xbmc release

NewReleases is sending notifications on new releases.