What's Changed
- Complete list of changes can be viewed at 20.0-Nexus...21.0-Omega
- [guilib][EditControl] Improved rendering of label texts by @CastagnaIT in #22691
- SavestateFlatBuffer: Remove forward declararion of FlatBufferBuilder by @neo1973 in #23332
- [macos][nativewindowing] Suport HiDPI (retina) displays by @enen92 in #23259
- Add .gradle directory to .gitignore by @joseluismarti in #23339
- [platform] macOS,iOS: Add speech recognition and microphone usage des… by @ksooo in #23337
- [subtitles] Avoid calls to virtual methods on destructor by @enen92 in #23343
- [webOS] Audio sink improvements by @sundermann in #23295
- [buildsteps] osx-arm add test execution by @fuzzard in #23349
- depends/libmicrohttpd: bump to the new version by @Karlson2k in #23342
- [Windows] Add DXVA Video Super Resolution upscaler by @thexai in #23336
- Translations update from Kodi Weblate by @weblate in #23330
- Sync of addon metadata translations by @github-actions in #23356
- [guillib] Handle Page Up/Down/Home/End in settings / CGUIControlGroupList by @CrystalP in #22894
- [Buildsteps] Use xcode 14.2 and relevant SDK's for Apple platforms by @fuzzard in #23348
- [depends] Update flatbuffers to 23.3.3 and raise min OSX version to 10.14 by @neo1973 in #23266
- SysfsPath: Have CSysfsPath::Get() return a std::optional because reads can fail by @neo1973 in #23283
- CAppParamParserLinux: add --audio-backend= switch by @lrusak in #23148
- [Depends][native] Bump cmake 3.26.4 by @fuzzard in #23322
- [macos][nativewindow] Support fullscreen move / Fix display lost by @enen92 in #23335
- [Windows] DXVA: check if HDR10 color spaces are supported by video processor by @thexai in #23358
- CTextureBundleXBT: return std::optional by @lrusak in #23168
- threads: linux: simplify setting thread priority by @lrusak in #23227
- TextureFormats.h: use XB_FMT as an enum by @lrusak in #23240
- [Windows] remove unnecessary log for Intel without super resolution scaler support by @CrystalP in #23372
- Maintain the selection position after end of playback / watched status change by @CrystalP in #23311
- [Estuary] Reset 1110_seekbar timer on seeks by @enen92 in #23380
- AudioTrack: Check Head Movement to detect stuck sinks by @fritsch in #23375
- [PVR] Timer settings dialog: Set certain settings to default on change of timer type by @ksooo in #23384
- [tools/depends][target] fix removed download target by @fuzzard in #23379
- [Windowing] Fix regression for resolution label by @enen92 in #23371
- [Windows] HLG > PQ HDR Playback Fixes by @CrystalP in #23362
- [video] Fix watched/unwatched filter not working when creating playli… by @ksooo in #23394
- Pipewire: Catch exceptions in CPipewire::Create() by @neo1973 in #23282
- [Estuary] Also start timer (with reset) on seeks by @enen92 in #23399
- [Windows][dxva] Disable processor tone mapping for AMD and HDR to HDR by @CrystalP in #23404
- [Windows] Add render method information to the debug OSD by @CrystalP in #23377
- [Omega] Alpha 2 by @fuzzard in #23407
- Native Flatbuffers update and minor cmake module update by @fuzzard in #23395
- [tools/depends][target] config.site remove PYTHON_VERSION variable by @fuzzard in #23378
- [Android][cmake] adjust macros according to the API we are targeting by @joseluismarti in #23414
- [Windows][dxva] refactor video processor code by @CrystalP in #23408
- [windows] Distinguish between host/native download/tools for windows build by @fuzzard in #23409
- [tools/depends][native] texturepacker update and use cmake to build by @fuzzard in #23396
- [Windows] Remove workaround for Video Super Resolution by @thexai in #23416
- [PVR] Dynamic timer types: Update timer types from client whenever a … by @ksooo in #23393
- [windows] remove doxygen from native dep list by @fuzzard in #23418
- [skin, gui] Look for definitions in xml files in /fonts directory by @smfontes in #22993
- [windows] Dont ship vswhere executable by @fuzzard in #23425
- [Windows][dxva] Test support of the video processor for SDR to SDR conversion by @CrystalP in #23423
- [Windows][deps] Bump libass to 0.17.1 by @CastagnaIT in #23420
- [Windows] Add "Graphics" log component for Direct3D by @CrystalP in #23422
- [Windowing] Make HiDPI more generic/platform agnostic by @enen92 in #23410
- Build jsonschemabuilder for all platforms from source by @fuzzard in #23419
- [cmake] TexturePacker: don't force static libraries by @lrusak in #23428
- Windowing: fix dialog confirmation not showing when moving fullscreen… by @enen92 in #23432
- [macOS] Default to nativewindowing by @enen92 in #23438
- [Windows] DXVAHD: simplifies parameters in CProcessorHD::Open() by @thexai in #23440
- [Android] Remove unnecessary if and use MediaFormat constants by @joseluismarti in #23442
- Translations update from Kodi Weblate by @weblate in #23370
- Sync of addon metadata translations by @github-actions in #23446
- [Subtitles] Add support to font collection (.ttc) by @CastagnaIT in #23429
- [Subtitles][libass] Enable bidi brackets for adapted subs by @CastagnaIT in #23421
- [Windows] Setting for high precision processing / HDR tone mapping by @CrystalP in #23359
- [Android] Prefer Google raw decoder over MediaTek on old Android devices by @joseluismarti in #23447
- [Windows] refactor DXGI_FORMAT to std::string for Debug Info OSD by @thexai in #23456
- [Windows] refactor Video Super Resolution by @CrystalP in #23458
- [video] Fix auto play next video not working from inside video info dialog by @ksooo in #23460
- [clang-tidy] fix performance-* warnings by @Rechi in #22812
- [Windows] Remove unused code in DeviceResources.cpp by @thexai in #23464
- [Windows] remove unused extra frame rate doubling for interlaced resolutions in CVideoSyncD3D by @CrystalP in #23463
- [PVR] Fix some CPPCheck and clang-tidy warnings by @ksooo in #23459
- [input] remove unused tinyxml usage in InputCodineTableFactory by @fuzzard in #23465
- [Windows] Fix: show 119.88Hz and future higher fractional refresh rates correctly by @CrystalP in #23461
- [addons] fix debug assert because of non-deterministic comparison of dependencies by @CrystalP in #23469
- Revert "[Android][cmake] adjust macros according to the API we are targeting" by @joseluismarti in #23475
- [video] Take 2 to fix auto play next video not working from inside video info dialog. by @ksooo in #23474
- [music][video] Context menu play items: Set playlist_type_hint before… by @ksooo in #23478
- [Estuary] Reset timer as long as the osd is shown by @enen92 in #23476
- Peripheral API v3.0.1: Expose keyboard/mouse types to add-on by @garbear in #23468
- [Windows] RetroPlayer: Fix blue/pink washed out colors on 10-bit displays by @garbear in #23467
- [guilib][vfs][imagecache] Load video thumbnail images into texture cache when viewed, like standard images by @rmrector in #23134
- [Windows] Remove unused variables by @thexai in #23491
- [Windows][dxva] refactor CProcessorHD/CEnumeratorHD to remove direct access to the D3D enumerator interfaces by @CrystalP in #23484
- [macos][nativewindowing] Check and update monitor setting on startup by @enen92 in #23496
- Games: Stable player assignment by @garbear in #23482
- Savestate Manager: Map "delete" key in savestate dialogs by @garbear in #23471
- CWinSystemGbm: fix issues if drm connector doesn't list any modes by @lrusak in #23415
- Sync controller add-ons for 21 Alpha 3 by @garbear in #23486
- Fix Visual Studio warning C4701: potentially uninitialized local variable used by @thexai in #23492
- Game OSD: Move controller ID from core to the skin by @garbear in #23501
- Port Dialog: Fix segfault when choosing a controller, and minor improvements by @garbear in #23499
- [Windows] Refactor DXVA renderer to enumerate and use the supported conversions by @CrystalP in #23513
- [Windows] Fix refresh rate switch for Intel and nVidia when changing colorspace by @CrystalP in #23522
- [GUIWindowVideoBase] Fix wrong item data pointer by @CastagnaIT in #23520
- [discs] Rename HAS_DVD_DRIVE to HAS_OPTICAL_DRIVE by @enen92 in #23523
- [clang-tidy] modernize-use-default-member-init by @Rechi in #23470
- [Windows] improve user experience when Windows HDR is ON by default by @thexai in #23509
- [discs][settings] Fix missing HAS_DVD_DRIVE renames by @enen92 in #23530
- Add "Student submission" check mark in PR template by @garbear in #23515
- [tools/depends][native] Fix requirement for TexturePacker in makefile by @fuzzard in #23462
- [Windows][Android] Remove some settings includes and better HDR settings code reuse by @thexai in #23527
- Port Dialog: Highlight active controllers by @garbear in #23521
- [python] pass sys.argv strings in logical order to python addons by @scott967 in #23532
- Fix DVD disc device playback (#20048) by fixing device url initialization by @dmahurin in #23488
- [discs] Improve Linux dvd playback without mounting by @enen92 in #23531
- [docs][python] improve documentation of windowed play arg by @enen92 in #23559
- [upnp] Move upnp item resolve to IDirectory implementation by @enen92 in #23555
- [depends] Bump libbluray to 1.3.4 by @enen92 in #23536
- [Windows] DXVA: minor code improvements by @thexai in #23552
- [webOS] Appstore submission media fixes by @sundermann in #23537
- Games: Add Player Viewer (aka "Player Manager Light") by @garbear in #23548
- Fix building with fmt >= 10 by @lrusak in #23453
- [plugins] Move plugin resolve to IDirectory implementation by @enen92 in #23554
- [AddonSettings] Fix setting persistency when acessing raw Settings interface by @enen92 in #23558
- Translations update from Kodi Weblate by @weblate in #23473
- Sync of addon metadata translations by @github-actions in #23572
- [macos][nativewindowing] Fix low fps on the GUI rendering code by @enen92 in #23578
- [guilib][vfs][imagecache] Load picture folder images into texture cache when viewed, like standard images by @rmrector in #23517
- [PVR] Refactor channel groups class hierarchy. by @ksooo in #23570
- fixed: fix compiling with libfmt8 by @fuzzard in #23582
- RetroPlayer: Two minor code improvements by @garbear in #23568
- PythonBindings: TypeInfo: add initialization of tp_watched for PyTypeObject by @lrusak in #23508
- [InputStream] Fix extradata size casts by @CastagnaIT in #23539
- ALSA: Ensure pcm name conflicts resolve to descriptive names by @runderwo in #23290
- android_printf: va_copy should be used if reuse va_list by @joseluismarti in #23347
- [dxva] Refactor the choice of conversions / restore support for RGB input by @CrystalP in #23573
- guilib: Two minor code cleanups by @garbear in #23569
- [dxva] Fix flash/wrong picture when skipping by @CrystalP in #23542
- VideoPlayer: ffmpeg change default software deinterlacer from yadif to bwdif by @alanswanson in #23298
- [Windows] improve GetAdapterDesc() - return struct by value by @thexai in #23585
- Update mouse controller profile to fix misspelling by @garbear in #23590
- [depends] bump curl to 8.1.2 by @joseluismarti in #23466
- [playlist] add b4s playlist recognition to music and tests by @fuzzard in #23450
- [Windows][Linux] Improve dither settings by @thexai in #23550
- [macOS][nativewindowing] Fix moving between different hidpi screens w… by @enen92 in #23579
- [Android] Target selection: unneeded explicit definition of ANDROID_API by @joseluismarti in #23369
- [cmake][macOS] Allow building without xbmchelper - default for arm64 by @enen92 in #23584
- Use 64K file read chunk size for local files: USB files, external hard drives, etc. by @thexai in #22941
- [video] Fix default select action by @ksooo in #23594
- [macos] Remove unneeded include from CApp by @enen92 in #23593
- [webOS] Forcefully disable Pulseaudio by @sundermann in #23562
- Implement tinyxml2 and start migration of some tinyxml1 usage by @fuzzard in #23441
- [depends][windows] Fixup for libbluray version by @enen92 in #23565
- [webOS] AESinkStarfish: Passthrough sink improvements by @sundermann in #23538
- [webOS] Video decoder improvements by @sundermann in #23597
- [discs] fix playback of iso-files by @howie-f in #23604
- [videoplayer] use ffmpeg types in VideoPicture by @CrystalP in #23596
- [cmake] FindTinyXML2 handle further corner cases distro packaged cmake config by @fuzzard in #23605
- [Skintimers] Fix log line and remove unused include by @enen92 in #23608
- DVDDemuxFFmpeg: Fix issues after st->cur_pts replacement by @popcornmix in #23557
- [cmake] FindTinyXML2 linux corner case for internal build if sys lib exists by @fuzzard in #23609
- [Windows][dxva] Don't send repeated frames through the processor / Fix nVidia deinterlacing / VSR with deinterlacing by @CrystalP in #23606
- [Windows] Extend high precision setting to use 10 bit or better for all streams by @CrystalP in #23617
- [imagecache] Don't check special generated images for file changes every 24 hours by @rmrector in #23567
- [SkinTimers] Add unit tests for skin timer parsing by @enen92 in #23620
- AdvancedSettings: exclude '@eadir' from scan, auto generated by DSM (Synology) by @thexai in #23632
- Player Viewer: Two fixes by @garbear in #23610
- [Windows] fix 'FileTimeToLocalFileTime' to account for daylight saving by @thexai in #23631
- [docs] Fix for-the-badge badges by @enen92 in #23628
- [cleanup] change deprecated 'CAddonMgr::IsCompatible(const IAddon& ad… by @howie-f in #23602
- [Android] CXBMCApp: unnecessary check of the API level currently running… by @joseluismarti in #23635
- DVDDemuxFFmpeg: Fix issues after st->cur_pts replacement part 2 by @popcornmix in #23629
- [Android] CXBMCApp: remove unnecessary GetSDKVersion method by @joseluismarti in #23626
- CURL: Take advantage of std::string move semantic by @neo1973 in #23345
- [dbiplus] String optimiziations + prevent copies by @neo1973 in #23344
- [CGUIDialogContextMenu] fix memory leak by @repojohnray in #22477
- [GUI][macos][nativewindowing] Kill XBMC_FULLSCREEN_UPDATE event by @enen92 in #23637
- [SkinTimers] Migrate to tinyxml2 by @enen92 in #23627
- [Windows] fix WASAPI devices enumeration: "WASAPI:default" is repeated multiple times by @thexai in #23645
- [tinyxml2] Assorted further migrations by @fuzzard in #23601
- [input] migrate to tinyxml2 by @fuzzard in #23600
- [clang-tidy] fix performance-* warnings by @Rechi in #23611
- [video]]Estuary] Improve support for "video information" for movie sets and TV show seasons by @ksooo in #23613
- [windowing][dx] Implement ForceFullScreen to get rid of CApp ifdef by @enen92 in #23634
- [DVDDemux] Add new audio codec descriptions by @CastagnaIT in #23524
- [InputStream] Add support to audio codec profiles / ClearKey crypto type by @CastagnaIT in #23541
- [PVR][Settings] Recording timer padding by @ivanllc in #23644
- [macOS][nativewindowing] Event location only makes sense for mouse ev… by @enen92 in #23630
- [MUSIC][GUI]Fix flickering when updating multiple song items via json… by @the-black-eagle in #23647
- [macos][nativewindowing] Signal mouse enabled/disabled when window becomes … by @enen92 in #23659
- [macos][nativewindowing] Add support for mediakeys by @enen92 in #23661
- [tools/depends][python3] Bump to 3.11.5 by @fuzzard in #23665
- [video] Fix watched state / last played not preserved on internet update by @ksooo in #23667
- [video][PVR][Estuary] Watched Information Improvements by @ksooo in #23658
- [PVR] Fix TV channel subtitles not displayed on playback start, … by @ksooo in #23669
- [video] VIDEO_UTILS: Simplify GetFolderItemResumeInformation implementation by @ksooo in #23672
- [video] Unify code paths for 'choose art'… by @ksooo in #23675
- [Wayland] Skip unknown key events by @sundermann in #23654
- [Estuary] View_501_Banner.xml: Fixed syntax error (unmatched parentheses). by @ksooo in #23678
- [macos] Return 'not available' instead of 0.0 for cpu/gpu temps by @enen92 in #23676
- [video] Unify code paths for 'show video information' … by @ksooo in #23674
- VideoPlayer: VAAPI - fix VP9 Profile 2 playback by @smp79 in #23683
- [info] Move network infos to sysinfo by @enen92 in #23680
- [PVR] CPVRChannelsPath: fix typo. by @ksooo in #23690
- [video] Fix movie set overview not updated when refreshing data. by @ksooo in #23691
- [video] Improve library refresh progress dialog content a bit. by @ksooo in #23692
- [Android] bump Gradle Wrapper to 8.3 by @joseluismarti in #23697
- [macos][network][info] Improvements to DNS determination by @enen92 in #23689
- [video] VIDEO_UTILS::CAsyncGetItemsForPlaylist::GetItemsForPlaylist: … by @ksooo in #23694
- [guilib][guiinfo][Estuary] LISTITEM_IS_RESUMABLE: Added support for folders. by @ksooo in #23693
- Games: Fix clang-formatting after tinyxml2 update by @garbear in #23695
- ActiveAESink: Use AddPause for DD+ again in RAW mode by @fritsch in #23687
- CWebSocketFrame: Fix alignment issues by @neo1973 in #23643
- [Cmake] Several fixes for TARGET usage by @fuzzard in #23612
- call -eventWithCGEvent: on the main queue by @enen92 in #23704
- [listproviders][Estuary][PVR] Add special 'more...' item to size limited lists in case there are more items available. by @ksooo in #23682
- CPUInfoLinux: Support cpu_thermal hwmon temperature module by @popcornmix in #23703
- [Android] Replaces some value strings used directly in the code... by @joseluismarti in #23625
- [Android] MediaCodec: Add support for AV1 Dolby Vision codec selection by @quietvoid in #23595
- Install wayland session entry by @amazingfate in #23621
- [video] Fix art selection dialog re-appearing endless on 'Set actor … by @ksooo in #23707
- [depends][Android] Add base dependencies setup for libdovi by @quietvoid in #22546
- [ActiveAESink] Improves sinks enumeration names and fallback logic when exact sink name not exists by @thexai in #23650
- [cmake] fix comments referencing incorrect names by @fuzzard in #23719
- [video] Fix 'Local art' missing in art selection dialog. by @ksooo in #23717
- [video] Fix no information dialog for music videos. by @ksooo in #23723
- [Estuary][PVR] Revert showing 'in progress' movies/episodes along with the watched status. by @ksooo in #23725
- [ActiveAE] Fix parsing audio devices names when names contains ':' character by @thexai in #23728
- DVDDemuxFFmpeg: Fix issues after st->cur_pts replacement part 3 by @popcornmix in #23709
- [video] Art selection dialog: Fix support for embedded art. by @ksooo in #23726
- [video] Fix 'Scan to library' on a directory containing a movie file doesn't work anymore. by @ksooo in #23733
- [Omega] Alpha3 by @fuzzard in #23730
- [doxygen] System.HasNetwork is not implemented. Document this by @fuzzard in #23736
- [cmake][buildtools] use flatbuffers::flatc target for executable by @fuzzard in #23714
- [cmake] convert some find modules to full TARGET usage by @fuzzard in #23727
- [webOS] Support relaunch by @sundermann in #23684
- Some small simplifications by @notspiff in #23740
- [cmake][win] Generate complete build dir layout for Multiconfig gen (VS) by @fuzzard in #22112
- [macos][network] Avoid executing shell commands to get the DefaultGateway and nameserver list by @enen92 in #23724
- [XBMCTinyXML2] Resolve warnings by @enen92 in #23744
- [video] Refactor artwork selection (last step) by @ksooo in #23734
- [PVR] Fix CPVRRecordingsPath path directory/params parsing. by @ksooo in #23751
- [Cmake] fix dav1d ENABLE_INTERNAL build by @fuzzard in #23746
- [cmake] Add FindDetours for windows by @fuzzard in #23747
- [info] Platform code for GPUInfo by @enen92 in #23741
- Fixup warnings macos by @enen92 in #23756
- [cmake] Remove XBT_FILES as a dependency of generate-packaging TARGET by @fuzzard in #23761
- [cmake] Migrate more modules to TARGET usage by @fuzzard in #23748
- [MUSIC] Scrape, store and process yt links from TADB for songs in a users local library by @the-black-eagle in #22654
- [Video] Fix crash when scan to library on a directory containing new movies by @joseluismarti in #23767
- [Windows] Fix 24Hz refresh rate when HDR is ON on AMD systems by @thexai in #23766
- [video] CVideoTagExtractionHelper::ExtractEmbeddedArtFor: Use item's dyn path by @ksooo in #23774
- [VideoPlayer] Fixed: Infinite video halt when cache is full & valid by @honest-mule in #23760
- [pipewire] Fix heap-use-after-free in AE::SINK::CAESinkPipewire::EnumerateDevicesEx by @dobo90 in #23716
- tools/depends: Fix rustup by delegating shell choice to shebang by @garbear in #23755
- [cmake] Fix linux Install.cmake after PR 22112 by @fuzzard in #23754
- [cmake] Add platform specific cmake search configurations by @fuzzard in #23776
- [android] Allow packaging other themes for bundled skins by @fuzzard in #23782
- [cmake] gen_skin_pack move to add_custom_command by @fuzzard in #23779
- [guilib][vfs][imagecache] Load video chapter images into texture cache when viewed, like standard images by @rmrector in #23639
- [video] 'Choose art' improvements by @ksooo in #23775
- [PVR][Estuary] Add ParentalRatingCode availability for Skins by @DeltaMikeCharlie in #23586
- [depends][native] Bump meson 1.2.1 by @fuzzard in #23790
- [darwin] Fix header inclusion for Xcode 15 by @fuzzard in #23791
- [cmake] Add build targets always for multi config generators by @fuzzard in #23750
- [cmake] gen_skin_pack remove BYPRODUCT to fix ninja build by @fuzzard in #23795
- [webOS] Signal Dolby Vision with AV1 codec by @quietvoid in #23771
- [depends] Bump zlib to 1.3 by @joseluismarti in #23794
- [FileCache] code improvements, no functional changes by @thexai in #23802
- [Estuary] Update aspect ratio of InfoWallMovieLayout by @gemedet in #23745
- [video] Video info dialog: Reinit cast list on re-open of dialog afte… by @ksooo in #23810
- [webOS] RendererStarfish: Derive from CBaseRenderer by @sundermann in #23815
- Fix build of native/waylandpp-scanner with GCC 13 by @throwaway96 in #23825
- [cmake] add_custom_command only use OUTPUT genex for multi config generators by @fuzzard in #23823
- [Cmake] Create build_internal_depends for MultiConfig Generators by @fuzzard in #23807
- [Cmake] assorted updates to search paths and fixes to *_LIBRARIES usage by @fuzzard in #23809
- [Cmake] FindASS migrate to TARGET usage by @fuzzard in #23824
- [tools/depends][native] gettext force am_cv_func_iconv_works for apple host by @fuzzard in #23829
- [webOS] Don't assume libraries in RUNPATH to be available by @sundermann in #23826
- [webOS] Tune for Cortex-A53 by @throwaway96 in #23822
- [cmake] More TARGET usage (opengl/opengles/iconv/Pulseaudio) by @fuzzard in #23749
- [Android] Replace enum HDRTypes with Display.HdrCapabilities constants by @joseluismarti in #23769
- [upnp] Fix smart playlist folder definitions by @enen92 in #23831
- Fix detect strm file for resume. by @Acidzero2020 in #23841
- [video] use ffmpeg av_display_rotation_get for rotation from metadata by @enen92 in #23832
- [cmake] add EXCLUDE_FROM_ALL when adding to build_internal_depends by @fuzzard in #23842
- [listproviders] CDirectoryProvider: Add attribute 'browse' … by @ksooo in #23814
- [edl] Allow EDL files on private subnets for network shares rather than the one the Kodi host in on by @enen92 in #23836
- [db][streamdetails] Reintroduce external subtitles into streamdetails by @enen92 in #23835
- [guilib] let oninfo propagate from the item to the container if the c… by @enen92 in #23843
- [docs] minors for streamdetails by @enen92 in #23849
- [windows] Fix CGUIMediaWindow::WaitGetDirectoryItems to leave 'wait f… by @ksooo in #23844
- [listproviders][video][PVR][utils][builtins] Fix and Refactor Video Select Actions by @ksooo in #23848
- Revert "[docs] Fix for-the-badge badges" by @enen92 in #23852
- Add infolabels for video width and height by @graham8 in #23850
- [cmake] windows remove superfluous installdata by @fuzzard in #23853
- [macos][depends] Add Smctemp to depends by @enen92 in #23770
- [macos][input] Support NSEnterCharacter for XBMCK_RETURN by @enen92 in #23860
- [favourites][listproviders] Add support for Video Select Actions for Favourites by @ksooo in #23857
- [webOS] Acb (webOS 4.x) support by @mariotaku in #23834
- [webOS] Fix timezone reading by @sundermann in #23847
- [cmake] FindRapidJSON update to newer module standards by @fuzzard in #23851
- Build curl without libpsl dependency by @throwaway96 in #23837
- [Android] Neon is being enabled by default by @joseluismarti in #23830
- [settings][video][PVR][listproviders][favourites] Add default play action setting. by @ksooo in #23863
- [Estuary][Estouchy] Retire Favourites dialog, use Favourites window instead. by @ksooo in #23861
- [favourites] Remove CGUIDialogFavourites. by @ksooo in #23862
- [macOS] Drop SDL windowing implementation by @enen92 in #22990
- [cmake] Refactor and simplify FindFmt.cmake by @fuzzard in #23876
- [fileitem] Fix playlist favourites not working as expected by @ksooo in #23881
- CAddonSettings: Prevent reference cycle with CAddon by @neo1973 in #23864
- [macos][cocoainterface] Address deprecations by @enen92 in #23880
- [VideoPlayer] Updates audio/video queues for nowadays maximum bitrates by @thexai in #23883
- [cmake][linux] remove unused variables by @fuzzard in #23891
- [favourites] Fix CFavouritesService::IsFavourited to only compare man… by @ksooo in #23885
- [video] Fix 'Play using' and external default player not working. by @ksooo in #23894
- [Teletext] Only override the language code from header if it is actua… by @enen92 in #23890
- [DRMPRIME] Remove pitch check by @jernejsk in #23889
- [GUIDialogTeletext] Mark dirty if data has changed in the decoder by @enen92 in #23896
- [favourites] Add selected items of the target to favourite's context menu by @ksooo in #23895
- [video] CGUIWindowVideoBase: Fix CVideoSelectActionProcessor::OnResumeSelected by @ksooo in #23902
- Translations update from Kodi Weblate by @weblate in #23666
- [video] Fix play/resume of DB and DVD disc images not working from Homescreen widgets by @ksooo in #23905
- [Android][docs] Install NDK using Android SDK Manager by @joseluismarti in #23888
- [windows] CGUIMediaWindow::OnContextButton: Fix 'Browse into' … by @ksooo in #23909
- [video][music] Migrate 'Play using...' to "new" context menu system. by @ksooo in #23901
- [webOS] Acb: Install empty dummy library by @sundermann in #23906
- [upnp] Fix upnp thumbs when using Kodi as a renderer by @enen92 in #23910
- [webOS] Revert "webos: Disable getauxval" by @sundermann in #23911
- [video][music] Migrate last pieces of 'Browse into' to new context menu system. by @ksooo in #23915
- [upnp] clang-format UPnPInternal.cpp by @enen92 in #23916
- [cmake] FindIconv dont add target if libc is the detected provider for iconv by @fuzzard in #23912
- [cmake] FindOpenGLES add IMPORTED_NO_SONAME property by @fuzzard in #23913
- [clang-tidy] modernize-make-(shared|unique) by @Rechi in #23904
- [video][music] Hide play-related context menu items for party mode pl… by @ksooo in #23919
- [cores] Fix external player not recognized as default player. by @ksooo in #23923
- [webOS] Set required memory by @sundermann in #23805
- [favourites] Fix context menu item 'play' and 'resume' not working. by @ksooo in #23925
- add missing c++ headers by @mlauss2 in #23920
- changed: Redact paths in audio/video error toasts by @arnova in #23918
- [favourites][listproviders] Favourites: Add support for action 'info'. by @ksooo in #23924
- fix python XBMCAddon::xbmcgui::Window::onAction() action.getButtonCode() by @icr8ions in #23789
- [fileitem][pvr] Fix context menu item "information" not working... by @ksooo in #23930
- [application] Fix bd selection menu shown when external player is used. by @ksooo in #23931
- [webOS] Pause video on minimize by @sundermann in #23854
- [Windows][UWP] VSync Detection Fixes and Improvements by @CrystalP in #23893
- [PVR] Fix 'switch to previous channel' not working if it is in anothe… by @ksooo in #23932
- [fileitem] Fix mimetype not set/updated properly on loading details. by @ksooo in #23939
- [wayland][input] Remove dead code by @enen92 in #23938
- [webOS] Renderer: Fix render region by @sundermann in #23917
- [favourites] Fix crash on moving items in favourites widget and favourites window. by @ksooo in #23946
- [Android] Clang -march flag is not needed by @joseluismarti in #23872
- [clang-tidy] fix performance-* warnings by @Rechi in #23941
- [linux] add --gl-interface= switch by @lrusak in #23907
- CPlatformFreebsd: use app params to set audio backend by @lrusak in #23886
- CNetworkPosix: implement ping using sockets instead of system call to ping by @lrusak in #23870
- [uPnP] Fix playback of files accessed with curl (ftp, http, ...) by @CrystalP in #23711
- [Android][FFmpeg] flag --enable-neon has no actual effects on Android targets by @joseluismarti in #23839
- [keymaps] Remove leftovers from favourites dialog. by @ksooo in #23951
- [rendering] use default luminance for tone mapping of streams with bad metadata by @CrystalP in #23078
- [Eventlog] fix eventlog messages by @DaVukovic in #23827
- [cmake] FindPulseAudio fix compile definition by @fuzzard in #23955
- [Omega] Beta1 by @fuzzard in #23948
- [webOS] Platform: Fix HOME variable append by @sundermann in #23954
- [cores] Fix CDVDInputStreamBluray::Open check for item being resumable. by @ksooo in #23967
- [playlistplayer] Fix PVR items not handled correctly. Those need to b… by @ksooo in #23961
- [video] CGUIWindowVideoBase::OnItemInfo: Skip check whether a video i… by @ksooo in #23969
- [GUI][Skins] Bump to xbmc.gui 5.17.0 by @jjd-uk in #23926
- [PVR] Fix playing channel not always highlighted in dialogs/windows. by @ksooo in #23971
- [interfaces] Fix PVR channel playback from remote app 'favourites' by @ksooo in #23972
- [video] Fix 'Play using' offering RetroPlayer for playback of iso bd/dvd disc images. by @ksooo in #23983
- [video] Fix CVideoDatabase::GetMusicVideosByWhere to set dyn path … by @ksooo in #23980
- [tools/depends] Bump wayland related dependencies by @fuzzard in #23982
- Fix Visual Studio warnings by @thexai in #23976
- [PVR] Fix/Improve recently played channels widget (e.g. respect hidden groups and channels). by @ksooo in #23985
- [Windows] Disable video settings not supported by the DXVA processor. by @CrystalP in #23988
- [tvos] Resolve some build issues with Xcode 15 by @fuzzard in #23949
- [cmake] Create FindPythonInterpreter for host information by @fuzzard in #23877
- [docs] Coding guidelines changes by @ksooo in #23998
- [cmake] add ${CORE_PLATFORM_NAME_LC}_SEARCH_CONFIG NO_DEFAULT_PATH for windows by @fuzzard in #23997
- Switch remote poweroff button behaviour to show shutdown menu, like on keyboards by @HiassofT in #23806
- [tools/depends] Bump Python 3.11.6 by @fuzzard in #23995
- VDPAU: fix hq scalers by @smp79 in #23973
- Format GUIControlFactory.cpp/h by @garbear in #23979
- [python][window] Delete pcontrol after SendGUIMessage by @CastagnaIT in #24002
- [upnp] Alternative fix for serving smartplaylists via upnp by @enen92 in #24008
- [docs] Coding guideline: Add, that we are using prefix operators in t… by @ksooo in #24004
- [depends][Python] Set setuptools library suffix by @sundermann in #23994
- Don't flush ffmpeg buffers if it holds any refs on close by @smp79 in #23996
- [Estuary] OSD showing wrong value for ‘Next’ programme when playing radio. by @FergusGeorge in #24017
- [Estuary] Fix home categories focus position by @Hitcher in #24000
- [wayland][input] Add xkb compose and dead-keys support by @enen92 in #23943
- Fix 'Shift' view for Collections by @Hitcher in #24024
- [video][music][interfaces][fileitem] STRM file fixes by @ksooo in #24025
- [FileSystem] Add GUI settings for NFS and SMB chunk size by @thexai in #24019
- Fix controller not rendering for copied gamecontroller controls by @garbear in #23987
- [PVR] const correctness improvements. by @ksooo in #24029
- [GUI] [Skins] Add locale InfoLabels for Skins by @DeltaMikeCharlie in #24028
- [video][PVR] Info dialogs: Add support for default play action by @ksooo in #24031
- [contextmenumanager] Fix 'More...' context menu item displayed for favourites… by @ksooo in #24037
- [Estuary] Fix alignment of counter labels in File Manager by @Hitcher in #24041
- [python] Fix xmbc.getRegion("time") by @mglae in #24009
- [xkbcommon] Unify xkbLogger by @enen92 in #24045
- [builtins] PlayerBuiltins: PlayOrQueueMedia: Fixes by @ksooo in #24048
- [fileitem] Fix 'action play' not working for favourites for strm files. by @ksooo in #24047
- VAAPI: increase maxReferences for AV1 by @smp79 in #24042
- [PVR] Fix recordings with a path containing a ':' not displayed in recordings window. by @ksooo in #24053
- [CApp] Kill XBMC to Kodi migration by @enen92 in #24052
- [python] Add songVideoURL to InfoTagMusic by @the-black-eagle in #24061
- [PVR][Estuary] PVR core should not set label2 for PVR recording folde… by @ksooo in #24059
- [cmake] copy_file_to_buildtree make sure we create ExportFiles.cmake by @fuzzard in #24056
- [tools/depends] Bump openssl 1.1.1w by @fuzzard in #24003
- Use std::make_(shared|unique) by @notspiff in #23757
- [Cmake] enable_internal_cec by @fuzzard in #21585
- [imagecache] CVideoGeneratedImageFileLoader check setting to extract thumb by @rmrector in #24006
- [imagecache] clarify logic around image revalidation, fixing some images returning 404 via HTTP by @rmrector in #23956
- [input] Use smartpointers to wrap raw xkb pointers in libinput by @enen92 in #24036
- [libinput] Add dead-key xkbcommon-compose support by @enen92 in #24044
- [Documentation] Update doxygen for v20 and v21 game-related changes by @garbear in #24055
- [Discs] Fix ISOs are opened using File Cache in some cases and bad read size (sector size) by @thexai in #24060
- [Estuary] Player Viewer: Give example static content for skin devs by @garbear in #24073
- Picture: Switch internal functions to use smart pointers by @neo1973 in #24022
- Fix crash due nullptr surface using DXVA2 by @fritsch in #24085
- [Estuary] Fix weather layout when busy by @Hitcher in #24090
- Backport weather fix by @Hitcher in #24091
- Revert "Backport weather fix" by @Hitcher in #24092
- [FileSystem] Move File Cache settings to GUI settings by @thexai in #24049
- [video] GUIWindowVideoNav.cpp: Remove unused include. by @ksooo in #24094
- [Rendering] Share the heuristics guessing SD/HD primaries across platforms by @CrystalP in #23953
- [macOS][Jenkins] migrate from altool to notarytool by @kambala-decapitator in #24032
- [Doxy] Improve documentation of game windows by @garbear in #24079
- [cmake] FindEGL set CMAKE_REQUIRED_INCLUDES for check_include_files by @lrusak in #24099
- [Xbox] Add support for HDR10 passthrough by @thexai in #24083
- tools/depends: curl adjust configure options by @lrusak in #24089
- [Xbox] Fix crash on close App by @thexai in #24104
- [Doxy] Fix formatting of Window IDs table by @garbear in #24106
- Fix/update strings.po with translations for game window IDs by @garbear in #24071
- Add tranlation for Peripherals dialog with ID 10149 by @garbear in #24105
- windowing/gbm: add EGL fencing for atomic drm by @lrusak in #23921
- [builtins] PlayerBuiltins::PlayOrQueueMedia: Fix logging and slightly optimize by @ksooo in #24114
- [Android] Unused variable m_colorFormat in MediaCodec by @joseluismarti in #24103
- [videoplayer] Go to Chapter Start for "Previous Chapter" Past Grace Period by @CrystalP in #24066
- [guilib][vfs][imagecache][pvr] Load PVR group images into texture cache when viewed, like standard images by @rmrector in #24087
- ffmpeg: Bump to version 6.0.1 by @fritsch in #24080
- [PVR] CGUIWindowPVRBase: Prevent concurrent updates caused by GUI_MSG_UPDATE by @ksooo in #24118
- [fileitem] CFileItem::LoadDetails: Add support for strm files containing an audio item. by @ksooo in #24119
- [PVR] Fix racing problems due to ACTION_CHANNEL_SWITCH message being … by @ksooo in #24116
- [video] CAsyncItemsForPlaylist: If we shall resume but can't, default… by @ksooo in #24120
- [Settings] Adjust the "Use display HDR capabilities" setting by @CrystalP in #24100
- [Settings][Windows] Update the description of the DXVA VSR setting by @CrystalP in #24123
- [VideoPlayer] Fix cache level calculation and add to Debug Info OSD by @thexai in #24117
- [clang-tidy] modernize-use-emplace by @Rechi in #23960
- Correctly handle 'Disc n' subdirectories in scraping and set creation. by @78andyp in #24076
- [Estuary] Modify settings decription field to avoid unnecessary autoscroll by @CrystalP in #24124
- [VideoPlayer] Remove unused code by @thexai in #24126
- [Feature][video]Added Video Versions feature by @xodidox in #14972
- [VideoVersion] Added VideoVersionPlay dialog by @xodidox in #24132
- [Android] Check if dovi profile is supported by the codec by @joseluismarti in #23577
- Remove article from summary by @razzeee in #24084
- [video] Fix auto play next item not working if 'uncategorized' is not… by @ksooo in #24134
- Fix Visual Studio warnings by @thexai in #24139
- [Android] Set codec profile 8 in DOVI compatibility mode by @quietvoid in #24143
- [cleanup][Windows] Remove a few compiler warnings and unnecessary global by @CrystalP in #24138
- XBMCTinyXML2: Strip trailing '\0' when writing to file by @neo1973 in #24141
- [Windows] address recommendations of VS code analysis tools for WinMain by @CrystalP in #24149
- [Estuary] Add Theora video codec flag image by @joseluismarti in #24154
- [VideoVersion] Fixed unexpected VideoVersion dialog in VideoInfo dial… by @xodidox in #24156
- [Games] Remove hard-coded button combos by @garbear in #24147
- [media] Consistency across platforms splash screens (avoid versions) by @enen92 in #24137
- [Estuary] Cleanup noise from DefaultVideoVersions icon by @the-black-eagle in #24127
- Add LoongArch support to system info by @212dandan in #23989
- [metadata.generic.artists] 1.0.18 by @ronie in #24163
- [Estuary] Add media flags for music by @jjd-uk in #24162
- [swig] Fix misleading indentation warnings by @fuzzard in #24140
- [linux][docs] add note about libdisplay-info when building kodi with gbm windowing by @lrusak in #24018
- [Addons] Remove GLES3/gl3ext.h include by @sundermann in #23855
- [Android] Ignore obsolete DOVI profiles from codec selection by @quietvoid in #24172
- Fix websocket pong by @a1rwulf in #23875
- [Android] Change the directory used to verify the SDK path by @joseluismarti in #23977
- [Estuary] Video Version skin redesign + cleanup by @jjd-uk in #24146
- [Estuary] Adjust plot height in video fullscreen info by @CrystalP in #24174
- [cmake] FindRapidJSON fix capitalisation by @fuzzard in #24179
- Translations update from Kodi Weblate by @weblate in #23963
- Sync of addon metadata translations by @github-actions in #24190
- [EDL] Migrate to tinyxml2 by @enen92 in #24185
- [VideoDatabase] Fix unnecessary query is always made to obtain cast by @thexai in #24177
- Remove use of pcrecpp from Kodi by @rschupp in #24128
- [tools/depends][target] Bump curl 8.4.0 by @fuzzard in #24011
- [LanguageCodes] Narrow mode for finding language code by @CastagnaIT in #23780
- [video] Video Versions: Refactor play/select logic by @ksooo in #24180
- [Scraper] Support for filename identifiers by @sundermann in #23840
- DNSNameCache: check hostname can be an IPv6 address by @joseluismarti in #24200
- [video] Refactor Video Action Processors by @ksooo in #24204
- Add OEM 102 key (OEM key on 102-key keyboards) by @garbear in #24202
- [tools/depends] Bump Python 3.11.7 by @fuzzard in #24194
- Sync game controller add-ons by @garbear in #24191
- [UPnP] Make m_delegate a unique_ptr by @enen92 in #24205
- AddonSettings: Correct order of destructor calls by @neo1973 in #24197
- [Estuary] Fix Shift view overlays by @jjd-uk in #24168
- [VideoVersions] Optimize retrieval of video versions existence by @CrystalP in #24183
- CGBMUtils: return references to objects in getters by @lrusak in #23869
- [UPnP] Player: Make transport state thread safe by @enen92 in #24201
- [VideoPlayer] Double the initial refresh rate for interlaced streams by @CrystalP in #24121
- [Omega] Beta2 by @fuzzard in #24207
- [GUI] [Skins] Bump skins backwards-compatibility abi to 5.17.0 by @jjd-uk in #23927
- Network: dns lookup can return an IPv6 address by @joseluismarti in #24209
- [UPnP] Fix crash when adding UPnP source while UPnP is disabled by @neo1973 in #24215
- [groovy] Remove bundled groovy/apache commons binaries by @fuzzard in #24199
- [DllLibCurl][TestXBMCTinyXML2] Fix memory leaks by @neo1973 in #24211
- [Estuary] Fix shift view overlay by @jjd-uk in #24217
- [VideoVersion] Improved the same video detection by @xodidox in #24157
- [Windows] Fix chroma upsampling for software render method by @CrystalP in #24222
- [video] Video Versions Playback: Fixes and Cleanup by @ksooo in #24224
- [Windows] Fix chroma upsampling for pixel shaders render method by @CrystalP in #24221
- [video] Video versions: Add context menu item "Play using..." and "Play version using..." by @ksooo in #24234
- [Windows] fix chroma upscaling with software render method v2 by @CrystalP in #24237
- [application] Fix a race condition on CApplicationPlayerCallback::m_itemCurrentFile by @dobo90 in #23710
- [info] Deprecated Process and Colour picture/slideshow infos by @enen92 in #24218
- [video][guilib][input] Change video versions and extra selection to use Kodi's stock select dialog by @ksooo in #24249
- [video] CVideoInfoTag: Remove CVideoDataBase dependency. by @ksooo in #24253
- [Estuary] Fix video version dialog 'add extras' and 'add version' button not always visible. by @ksooo in #24260
- [video] Video version select: Hide extras/versions button if no extras/versions available. by @ksooo in #24261
- [UPnP] Fix playback restore after pause by @enen92 in #24257
- [guilib][GUIFadeLabelControl] Fix text right alignment by @CastagnaIT in #24266
- Fix compiler warning in BlurayCallback.cpp by @garbear in #24265
- [VideoPlayer] Call EnableStream when playback start disabled subtitles by @CastagnaIT in #24186
- [info] Add Player.IsRemote and Player.IsExternal by @enen92 in #24268
- [cmake] FindFFMPEG refactor target creation by @fuzzard in #24241
- Fix potential segfault when missing "layoutList" element by @garbear in #24242
- [Estuary] Hide next if conditions for next don't met by @enen92 in #24270
- [UPnP] Move Player to its own thread by @enen92 in #24262
- [UPnP] Player: Make hasvideo and hasaudio conditional on the item type by @enen92 in #24272
- [Discs][UPnP] Don't show simplified menu if playing to remote players by @enen92 in #24273
- [RSS] Fix parsing logic by @neo1973 in #24231
- [Windows] Fix chroma upsampling for AMD dxva processor and 10 bit output of SDR sources by @CrystalP in #24227
- [VideoDB] fix movie title index creation and version bump by @CrystalP in #24226
- Fix edge case when downloading subtitles for http(s) streams by @Pedrock in #24252
- [Estuary] Fix selected colours by @Hitcher in #24256
- [Estuary] Make all views consistent with PR#24168 by @Hitcher in #24258
- [UPnP] Player: Add option to avoid volume synchronization to target by @enen92 in #24263
- [tvOS] Fix binary addons (PVR) multi instance settings reset by @sy6sy2 in #24259
- [UPnP] Fix playlist playback on remote players by @enen92 in #24274
- [UPnP] Remove unuseful code block plus strong dependency on CApp by @enen92 in #24275
- [Settings] Disable video version scan by @jjd-uk in #24279
- [Estuary] Fix collection info layout by @Hitcher in #24254
- [UPnP] Assorted include cleanups by @enen92 in #24281
- [Estuary][GUI] Do not activate fullscreen window if rendering video to remote targets (UPnP) by @enen92 in #24280
- [video] Video version dialog: Fix artwork refresh. by @ksooo in #24282
- [video] Video Version Dialog Cleanup by @ksooo in #24290
- [video] Video version dialog: Fix wrong item played. by @ksooo in #24292
- [ContextMenus] Don't show move up/down if single favourite by @enen92 in #24298
- [dialogs] Fix CGUIDialogSubtitleSettings::BrowseForSubtitle to use it… by @ksooo in #24303
- [Pictures] Implement Slideshow delegator design pattern by @enen92 in #24291
- [ContextMenus][PVR] Do not show play using for live tv by @enen92 in #24297
- [UPnP] Access to g_UserData must be protected by @enen92 in #24296
- [video][Estuary] Separate video versions from video extras at GUI level by @ksooo in #24302
- [video] Versions/Extras Manage Dialogs: Selection improvements by @ksooo in #24316
- [video] Fix crash on strm file playback. by @ksooo in #24318
- [video] Fix playback of multi-version movies. Do not prompt for versi… by @ksooo in #24327
- Update some video versions messages by @CrystalP in #24326
- [video] Cleanup translation of versions/extras dialog messages by @CrystalP in #24332
- [Estuary] Fix button visibility in video versions manager by @Hitcher in #24325
- [cmake] FindTagLib Add version test for internal build by @fuzzard in #24313
- [video] Video versions select dialog: Highlight default version in list of versions by @ksooo in #24336
- [video] Fix no video information available when playing strm files, … by @ksooo in #24333
- [video][dialogs] Video versions: Fix delay before "Convert to version" video select dialog opens by @ksooo in #24331
- [depends][Windows] msys2 fixes and update to 20231026 by @CrystalP in #24133
- [tools/depends][target] Bump Harfbuzz + Android NDK26+ build fixes by @fuzzard in #24312
- [guilib][GUITextBox] Use vecText to determine text width by @CastagnaIT in #24315
- [InputStreamAddon] Fix memory leak by @neo1973 in #24214
- [GUI] Fix focus behaviour when scrolling to the bottom of the panel by @joseluismarti in #24232
- [Pictures] Fix exif parsing regression from v19 by @enen92 in #24344
- [video] Separate video versions and extras items by @ksooo in #24340
- Translations update from Kodi Weblate by @weblate in #24230
- Sync of addon metadata translations by @github-actions in #24357
- [video] Video Versions/Extras: More smaller cleanup and fixes by @ksooo in #24356
- [Estuary] Update versions icon for views by @Hitcher in #24317
- [CACerts] Update to 2023-12-12 by @fuzzard in #24361
- Support build with taglib-2.0 by @heitbaum in #24339
- [Video] Improve default folder for "Add Extra" file picker by @CrystalP in #24362
- [video] Remove context menu item 'Add as version to...' by @ksooo in #24365
- [Videodb] Fix of previous data migration and refactors by @CrystalP in #24370
- [video] Video Versions: Fix empty context menu item label. by @ksooo in #24373
- [Estuary] Better visual indicator of focused item by @Hitcher in #24323
- [Android] Fix audio engine initialisation after sleep by @hugbug in #24369
- langinfo.xml: Change Canadian shortdate format to YYYY-MM-DD by @neo1973 in #24328
- [Pictures addons] support Date Taken sort for pics decoded via addons by @rubpa in #24307
- [Video] Redesign of the "Add version" dialog of Manage versions by @CrystalP in #24364
- [UPnP] Renderer: use app messenger instead of calling into g_App by @enen92 in #24376
- [video] Fix/cleanup: We never want to obtain all video versions and all extras at the same time. by @ksooo in #24387
- [video] Movies window: Movies/Versions node: Context menu fixes by @ksooo in #24389
- [MUSIC] Only drop music db triggers on clean if they exist by @the-black-eagle in #24388
- [VIDEO] Prefer nfo streamdetails over file details where possible by @the-black-eagle in #24386
- [Video] Add a shortcut to the video dir in the Add version/extra file browsers by @CrystalP in #24394
- [Games] Filter out "virtual" Android joysticks by @garbear in #24382
- [fix build on linux] forward declare CMediaSource in GUIDialogVideoMa… by @howie-f in #24405
- Format my CODEOWNERS code with clang-format-14 by @garbear in #24381
- [Playlists] Rename song methods to generic item index by @enen92 in #24400
- [upnp] Renderer: playlist changed is an event that should e emitted b… by @enen92 in #24396
- [UPnP] Remove dependency on AppVolumeHandling by @enen92 in #24397
- [Estuary] Video Versions Dialog Redesign by @jjd-uk in #24286
- remove inclusion of MediaSource.h in GUIDialogVideoInfo.h by @howie-f in #24408
- [GUIWindowVideoBase] Library thumbnail not updated by @78andyp in #24176
- [Pictures] Better control of play/stop annoucements by @enen92 in #24412
- [video] Fix disappearing artwork on end of multi-version movie playback. by @ksooo in #24415
- [Estuary] Update DefaultVideoVersions.png by @Hitcher in #24423
- [Estuary] Fix duplicate music flags by @jjd-uk in #24416
- [UPnP] Fix OnSetAVTransportURI by @enen92 in #24413
- [UPnP] Renderer: Avoid calling into the main thread for playlist play… by @enen92 in #24414
- [UPnP] Renderer: Remove dependency on ApplicationPlayer by @enen92 in #24418
- [videodb] Move the extras of a movie converted to a version by @CrystalP in #24434
- [video] Refresh library list after changes in Info > Manage versions by @CrystalP in #24419
- [Peripherals] Fix missing controller icons in Peripheral Dialog by @garbear in #24384
- [Android] Enable logging of debug messages even if disabled system-wide (e.g. Fire TV) by @hugbug in #24432
- Peripheral API v3.0.2: Stable peripheral locations by @garbear in #24392
- [video][Estuary] Video Versions: Improvements and Fixes by @ksooo in #24430
- [Posix][Filesystem] Fixed SMB logging by @hugbug in #24417
- [CImageFile] Fix texture cache handling by @neo1973 in #24433
- [tools/depends][target] Bump freetyppe 2.13.2 by @fuzzard in #24407
- [UPnP] Translate object id when marked as watched by @enen92 in #24438
- [video] CVideoDatabase::GetVideoVersionsNav cleanup after c84fdfa… by @ksooo in #24443
- [video] Remove item 'New version...' from node 'Movies/Versions'. … by @ksooo in #24444
- [video] Video Versions: Remove more dead code by @ksooo in #24445
- [UPnP] Fix broadcast of item updates by @enen92 in #24450
- [UPnP] Clang-format main files by @enen92 in #24452
- [video] Video versions: Fix certain default select action handling scenarios by @ksooo in #24451
- [guilib] Kill CGUIListItemLayoutPtr typedef by @enen92 in #24454
- Update Kodi Icon for Linux packaging by @razzeee in #24310
- Players: Always reset CDataCacheCore on close file by @enen92 in #24402
- [guilib][utils] Set IsPlayable false on add items by @enen92 in #24461
- [gui] Move listproviders to guilib by @enen92 in #24463
- [FileItem][video] Remove dead code (we no longer have any videoversion items… by @ksooo in #24464
- [video] Detect similar movies when scanning movies with nfo files by @CrystalP in #24457
- [guillib][estuary] Make the existence of extras visible in the library by @CrystalP in #24456
- [video] Fix video versions folder navigation. by @ksooo in #24462
- [video] CVideoInfoTag::Reset(): Set m_isDefaultVideoVersion to false,… by @ksooo in #24473
- [videodb] fix miss in field renaming of PR#24370 by @CrystalP in #24469
- [video] Video versions/extras chooser: Fix button labels. by @ksooo in #24474
- [Estuary][video] Refactor video versions select dialog to use movie items by @ksooo in #24475
- DVDVideoCodecAndroidMediaCodec: Remove logspam when debug logging by @fritsch in #24479
- [video] Adjust the validations and messages in add version/extra by @CrystalP in #24477
- [clang-tidy] fix modernize-* and performance-* warnings by @Rechi in #24436
- [video] Refresh library list after the addition of extras in Info > Manage extras by @CrystalP in #24487
- [cppcheck] fix performance checks by @Rechi in #24411
- [Android] Fix audio engine initialisation on startup by @hugbug in #24484
- AndroidMediaCodec: Retry VC1 as mime type is confusing vendors by @fritsch in #24491
- [video] correct description of 'Adjust display HDR mode' by @chewitt in #24497
- [video] Change the name of the Manage Versions/Extras dialog by @CrystalP in #24499
- [Estuary] Fix hasvideextras overlay for views by @CrystalP in #24482
- [Android] ABI check removal by @joseluismarti in #24515
- [video] Fix watched overlay image of parent movie item by @CrystalP in #24509
- [FileSystem] Refactored and improved logic to use CFileStreamBuffer by @thexai in #24504
- added: enable .avif image support in ffmpeg image by @notspiff in #24520
- AndroidMediaCodec: Retry VC1 fix by @dbarkar in #24516
- [Player Viewer] Three improvements by @garbear in #24406
- [Android] ABI check removal: xbmc.properties file by @joseluismarti in #24519
- [Datacachecore] Initiallize SStateInfo with sane values by @enen92 in #24522
- [Input] Refactor to improve code organization by @garbear in #24501
- [Windows] AESinkWASAPI: improve fallback when is not supported exact output channel layout by @thexai in #24534
- [PVR] "Play EPG Tags as Movies" by @ksooo in #24528
- [ContextMenus] Don't populate python context items if browsing sub-menus by @enen92 in #24543
- AESinkPipewire: Set Samplerate for the node by @fritsch in #24363
- [tvOS] fix assigning bundle ID to the generated frameworks by @kambala-decapitator in #24541
- [video] rework dimensions by @DaVukovic in #24527
- [VideoDB] restore compatibility with MariaDB < 10.5.2 by @andred in #24505
- AESinkAudioTrack: Allow multi-channel float for new devices by @fritsch in #24553
- AudioTrack: Simplify Channel selection by @fritsch in #24554
- MacOS: add missing key mappings by @enen92 in #24556
- [video] Change Versions Art Handling by @CrystalP in #24538
- [Input] Default buttonmaps for keyboard and mouse by @garbear in #24512
- Fix the scourge of game add-on build failures by @garbear in #24531
- Revert "[guilib][utils] Set IsPlayable false on add items" by @enen92 in #24563
- [Joysticks] Fix broken focus on emulated analog stick by @garbear in #24513
- Game API v3.0.2: Mouse/keyboard addressing by @garbear in #24518
- [tools/depends] Fix android pycryptodome package, Bump rustup 1.75.0 by @fuzzard in #24551
- EGLUtils: Fix nullptr usage in EglErrorCallback by @neo1973 in #24523
- [Android] Remove special versioning for Android arch types by @fuzzard in #24494
- [video] Remove non-working context menu manage / info dialog buttons for versions by @CrystalP in #24569
- [Keyboard] Optimize keyboard symbol translation by @garbear in #24525
- [Estuary] Refactor of poster/widget overlay icons by @jjd-uk in #24521
- Add another msys2 binary to fix game add-on build failures by @garbear in #24567
- [Android][windowing] Initialize m_bWindowCreated by @joseluismarti in #24572
- Player Viewer: Add keyboard and mouse input by @garbear in #24524
- [video] Fix multi version movie playback by @ksooo in #24575
- [video] Restore selection of extras in "Choose" dialog by @CrystalP in #24558
- add renderbuffer index to RenderCapture() (like for RenderUpdate()), fixes sporadic black captures under Linux by @fightforlife in #24439
- Fix Input method on X11 by @wengxt in #24393
- Support build with taglib-2.0 with the removed integer type definitions in the release by @heitbaum in #24577
- [guilib] VideoThumbLoader don't look for basic local artwork when library items are displayed by @rmrector in #24483
- Bump VERSION_CODE one unit to fix Android install over current by @thexai in #24581
- [cmake] Don't append target sysroot in native toolchainfile by @sundermann in #24590
- [Android][windowing] Revert 'Initialize m_bWindowCreated' and remove … by @joseluismarti in #24587
- [Video] Always respect video versions/extras ignore setting by @CrystalP in #24391
- [Android] Add HDR allowed dynamic metadata formats setting by @quietvoid in #24584
- [tools/depends] Bump swig 4.2.0 by @fuzzard in #24552
- [Scraper] Check for filename identifers during refresh job by @sundermann in #24571
- changed: log to error (thanks @dmittiga) issue #24506 by @malard in #24596
- [FileCache] adjust Read Factor algorithm by @thexai in #24582
- [video] Fix playback of .rm files by @CrystalP in #24607
- [webOS] Add setting to select allowed HDR dynamic metadata formats by @quietvoid in #24600
- [VIDEO] fix tv show episodes not probed for streamdetails when refres… by @the-black-eagle in #24532
- [Estuary] Fix player controls dialog by @Hitcher in #24606
- [Estuary] Extras - change layout by @jjd-uk in #24609
- Android joystick fixes by @garbear in #24604
- webOS: Remove leftover libcec depend by @garbear in #24621
- [video] Remove fallback to movie art for undefined extra art types by @CrystalP in #24619
- tools/depends: Update waylandpp patch to fix build again with gcc 13 by @garbear in #24626
- Fix WebVTT compiler warning by @garbear in #24620
- [video] Fix playlist window select and play actions by @ksooo in #24617
- [docs] Use gh markdown highlights of warnings, tips and notes by @enen92 in #24613
- [darwin] fix retain cycle in Gamecontroller by @kambala-decapitator in #24634
- AESinkAudioTrack: Help broken firmwares to make kodi ignore broken delay by @fritsch in #24597
- [video] Only consider matches of same media type when looking for similar movies by @CrystalP in #24598
- [video] Modify versions/extras related texts by @CrystalP in #24591
- [video] Fix text of the context menu Choose version button by @CrystalP in #24648
- [favourites][listproviders] Fix select action not to show the choose … by @ksooo in #24638
- [Android] Exec wake-up routine only after hdmi handshake by @hugbug in #24632
- [video] fill GUIListItem properties with streamdetails for the hybrid… by @CrystalP in #24645
- [video] Fix video info dialog play button to always play the version … by @ksooo in #24652
- [skin] Remove estouchy from core by @fuzzard in #24655
- [video] Fix 'play version using' version select dialog having 'extras' button. by @ksooo in #24661
- [Keyboard] Fix special handling of Num Lock states for XKB common library by @garbear in #24639
- [Omega] Update controller add-ons for new keyboard layout and translations by @garbear in #24635
- Optimize keyboard/mouse input on first action by @garbear in #24651
- Minor game improvements by @garbear in #24650
- [strings] Reword remove movie from library by @DaVukovic in #24476
- [video] Fix the refresh of movies with additional versions or extras by @CrystalP in #24647
- [CPACK] Adjust dependencies to build packages compatible with focal to noble by @Gujal00 in #24662
- [iOS/tvOS] disable VTB for real-time interlaced videos by @kambala-decapitator in #24671
- [video] Hide 'Choose version' and 'Play version using' context menu i… by @ksooo in #24670
- Teletext: Fix crash due to invalid FTC_Node by @enen92 in #24673
- Screensaver: Do not force dim if another modal is being shown by @enen92 in #24664
- [VideoPlayer] Adjust lastseekpts on FlushBuffers by @enen92 in #24674
- Kill CGUIListItemPtr typedef by @enen92 in #24676
- [posix] PosixMountProvider excludes +efivarfs +systemd-1 by @sky42src in #24642
- [webOS][Power management] Implement shutdown/reboot by @sundermann in #24244
- [VideoDatabase] Do not overwrite Set Overview if no field in NFO by @78andyp in #24533
- [VideoInfoScanner] Fix processing of in TV show's NFO. by @78andyp in #24565
- [MUSIC] Only set libraryartfilled property if we actually found art by @the-black-eagle in #24675
- [FileCache] Implements adaptative read factor based on cache level by @thexai in #24640
- [JSON-RPC] Add GUI.ActivateScreenSaver by @DaVukovic in #24181
- [Android] Adjust copying of resource files to cache folder by @joseluismarti in #24666
- added: non standard language codes used by some DVDs (thanks @jsgh) by @malard in #24599
- [JSON-RPC] add command to change playback speed (tempo) by @kambala-decapitator in #24633
- [webOS] Disable core dumps by @sundermann in #24441
- [tools/depends] Bump gettext 0.22.4 by @fuzzard in #24630
- CXbtManager: Synchronize access to internal data structures by @neo1973 in #24685
- [webOS] Map info key by @sundermann in #24684
- [GUIEditControl] Use left truncate (and relative ellipses) for edit controls only by @CastagnaIT in #24624
- [video] Fix 'Play using...' context menu item not visible for version… by @ksooo in #24677
- VideoInfoScanner: Support .nomedia files in TV show subdirectories by @neo1973 in #24330
- [VideoInfoScanner] Fix scraping of episodes in Blu-ray folders (BDMV). by @78andyp in #24314
- [MUSIC] Allow navigating from artist directly to songs via AS.xml setting by @the-black-eagle in #24649
- [Estuary] Add video version name to playlist + Add 3D info + Cleanup by @jjd-uk in #24681
- [Android] Include missing binary addon libs in the apk package by @joseluismarti in #24688
- [CGUIPassword] Media served through plugins is not shown when there is a master lock. by @78andyp in #24446
- [keymaps] change show shutdownmenu to poweroff action by @DaVukovic in #24536
- [Estuary] Video Version Choose Dialog Fix by @jjd-uk in #24693
- [apple][xcode] use literal make command instead of variable in Xcode by @kambala-decapitator in #24691
- [guilib] Add Infolabels for versions by @CrystalP in #24695
- Videodb versions by @CrystalP in #24683
- Translations update from Kodi Weblate by @weblate in #24698
- Sync of addon metadata translations by @github-actions in #24699
- VideoPlayer: Fix error window for tempo/fractional play speeds by @enen92 in #24692
- VideoPlayer: Fix stalls when seeking with tempo enabled by @enen92 in #24701
- DXVA: Use at least 8 surfaces for H.264 decoding by @thexai in #24704
- Revert Android joystick fixes by @garbear in #24707
- Android: add colorMode config to .Main activity in AndroidManifest.xml by @spdfrk in #24710
- TagLoaderTagLib: Avoid potential crash when exception is thrown by @philipturnbull in #24706
- [Omega] Beta 3 by @fuzzard in #24690
- Fix player controls by @Hitcher in #24715
- [Settings] Fix Read Factor displayed as 0.0x in logs when setting value is "Adaptive" by @thexai in #24722
- [Android] Fix Zip Path Traversal vulnerability by @joseluismarti in #24730
- Add branding color to metainfo for linux by @razzeee in #24734
- [Android] Remove unused code and improve extraction of the apk file by @joseluismarti in #24735
- [FileSystem] Fix: not use CFileStreamBuffer in all network files by @thexai in #24733
- [plugins] Ignore fileaction (play) if item is not playable... by @enen92 in #24743
- macos: remove dead code by @enen92 in #24759
- [Android] zipAlignEnabled has been deprecated for a while by @joseluismarti in #24761
- [MUSIC] Get correct duration of stream from FFMPEG for audiobook chap… by @the-black-eagle in #24732
- [guiinfo] Fix LISTITEM_LABEL for movies with multiple versions only … by @ksooo in #24753
- VideoPlayer: Reset stale stream times after a flush by @popcornmix in #24748
- MacOS: Implement hotkeycontroller to fix exclusive mediakey usage by @enen92 in #24765
- [Android] Use compileSdk, minSdk and targetSdk by @joseluismarti in #24778
- [Android] Adjustments in manifest file by @joseluismarti in #24781
- AESinkPipewire: Properly identify HDMI devices by @fritsch in #24740
- [Windows] Fix inaccurate 10-bit SDR / HDR color using Pixel Shaders by @thexai in #24739
- Fix regression for play actions by @enen92 in #24789
- [VideoPlayer] Fix initial interlaced stream refresh rate switch by @CrystalP in #24785
- [video] fix selection after changing video or extra art by @CrystalP in #24792
- [PVR] Channel Manager: Fix refresh channel icons; old icons still shown after refresh. by @ksooo in #24793
- [video] fix selected item after removing version/extra by @CrystalP in #24791
- [doc] Fix incorrect tag name for the disabled slider bar texture by @CrystalP in #24804
- Bump androidx.tvprovider:tvprovider by @joseluismarti in #24805
- [video] remove unused string by @CrystalP in #24807
- [Docs] Fix doxygen references for cutlist deprecation by @enen92 in #24801
- [Android] Adjust GUI SRD peak luminance when display is in HDR PQ mode by @thexai in #24756
- Store streamed video subtitle on custom subtitles path if defined by user by @hagaygo in #24752
- [Omega] Release RC1 by @fuzzard in #24783
- [BP][macOS] fall back to legacy OpenGL profile on NSOpenGLContext creation error #24822 by @kambala-decapitator in #24823
- [BP][cmake] UWP fix escaping generate-UWP-pythonfix script by @fuzzard in #24839
- [BP][tools/depends] LLVM15 support - reduce errors to warnings by @fuzzard in #24840
- Install scalable svg icon by @razzeee in #24853
- [Omega][video] Fix regression when playing deleted movie. by @ksooo in #24863
- [Omega] RC2 by @fuzzard in #24848
- stacks: make InitializeStackStartPartAndOffset return optional and ha… by @enen92 in #24881
- [backport] Fix typo in Zeroconf service identifier by @joseluismarti in #24877
- Backport #24886 " Enforce minimum interval between add-on repository updates" by @yol in #24889
- [Omega][addons] Fix addonmgr/profilemgr deadlock when switching profiles by @ksooo in #24884
- [cores] DllLoader wrapper fstatvfs64 - Backport by @phunkyfish in #24894
- Info: 'Un-deprecate' color and process info labels by @enen92 in #24903
- [Omega] 21.0 Release by @fuzzard in #24871
New Contributors
- @sscobici made their first contribution in #22423
- @heirecka made their first contribution in #22631
- @mobidyc made their first contribution in #22717
- @TwilightMercy made their first contribution in #22690
- @jdrouhard made their first contribution in #22739
- @rschupp made their first contribution in #22707
- @csdougliss made their first contribution in #22520
- @stevehartwell made their first contribution in #22789
- @fhriley made their first contribution in #22454
- @KyleSanderson made their first contribution in #22852
- @throwaway96 made their first contribution in #23020
- @DeltaMikeCharlie made their first contribution in #22969
- @w4kodi made their first contribution in #23070
- @fixthething made their first contribution in #22933
- @bluikko made their first contribution in #23297
- @dmahurin made their first contribution in #23488
- @runderwo made their first contribution in #23290
- @ivanllc made their first contribution in #23644
- @amazingfate made their first contribution in #23621
- @honest-mule made their first contribution in #23760
- @dobo90 made their first contribution in #23716
- @Acidzero2020 made their first contribution in #23841
- @graham8 made their first contribution in #23850
- @mariotaku made their first contribution in #23834
- @mlauss2 made their first contribution in #23920
- @icr8ions made their first contribution in #23789
- @FergusGeorge made their first contribution in #24017
- @212dandan made their first contribution in #23989
- @hugbug made their first contribution in #24369
- @dbarkar made their first contribution in #24516
- @andred made their first contribution in #24505
- @fightforlife made their first contribution in #24439
- @wengxt made their first contribution in #24393
- @Gujal00 made their first contribution in #24662
- @sky42src made their first contribution in #24642
- @spdfrk made their first contribution in #24710
- @philipturnbull made their first contribution in #24706
- @hagaygo made their first contribution in #24752
Full Changelog: 20.5-Nexus...21.0-Omega