Skip to content

1.3.19

Latest

Choose a tag to compare

@pannal pannal released this 16 Mar 15:13
· 232 commits to develop_kodi21 since this release

Changelog

Player / Playback

  • Core/Player: Possibly regain compatibility with Audio Offset Manager
  • Player: Adjust resume point by user setting
  • Player: Embedded subtitles: Fix parsing mis-tagged Kodi subtitle offset (stream tagged as "pt (BR)" for example gets parsed by Kodi as "pt-", which is invalid)
  • Player: Avoid "skipping intro" blip when starting fresh with automatically skipping behind intro on start
  • Player: After playback, wait 0.5s to allow for enough time for codec teardown (might hang with a black screen due to kodi dialogs otherwise)
  • Player: Don't error on close when seekdialog is already deleted
  • Player: Only fix embedded subtitles by short seekback if we're not CE p3i >= T2 (T2 fixes this issue already)
  • Core/Player: Don't end up with a broken UI when playback failed due to missing file (wait for the failure dialog to be dismissed by the user, for up to 10 seconds)
  • Core/Player: Fix double pausing on Alternate Seek and edge case (both cosmetic)
  • Core/Player: Only switch LAV modes if not already LAV Full or SB

Seek / SeekDialog

  • CoreELEC/SeekFix: Store reported seek player time and use it, if it massively differs from what the player tells us
  • CoreELEC/SeekFix: Stabilize fast seek fix (thanks @peaceoutt32)
  • CoreELEC/SeekFix: Wait until player actually paused when pausing for seek
  • CoreELEC/SeekFix: Prefer reported seek time over reported current player time if set and valid
  • CoreELEC/Seek back on start/SeekDialog: Implement a blackout screen during seeking back on start
  • Core/Player/Blackout: Show blackout until seek completely done
  • Core/Player: SeekBackOnStart: Add delay between forward and backward seek to give decoders time to stabilize (fixes VC-1 24p HW stuttering at least); default: 500ms
  • SeekDialog/Episodes/Movies: Increase scroll speed for too-long titles (5/15 to 35)
  • SeekDialog: Don't react to SELECT/ENTER events on skip marker buttons during seek
  • SeekDialog: Allow pressing UP on the big seek chapter list with chapters disabled to access the skip marker button
  • Player/Seekdialog: Pre-skip markers before the resume point to avoid race conditions with tick()

Seamless Branching / LAV / Codecs

  • Core: Detect CE U3k builds above B9 that implement the alternative LAV filters for future auto-fixing of seamless branching titles
  • Core/Player: Auto switch to LAV Full/SB if possible (CoreELEC U3k B9+ detected)
  • Core/SB: Update seamless branching titles (thanks @korbus)
  • Core: Detect avdvplus as dynamic seamless branching fix enabled build, starting with R2
  • Core: Detect CoreELEC p3i build as auto seamless branching fix capable build
  • VideoInfo: Show seamless branching state on audio streams of affected videos
  • Core/Codecs: Improve JOC audio detection substantially in some cases; lower JOC bitrate likelihood to 736kbit due to Plex server calculation bug (was 768)

Episodes

  • Episodes: Fill episodes after deletion (thanks @andybkma)
  • Episodes: Fix long scrolling episode titles cutting off remaining time pill
  • Episodes: Fix deleting an episode created a pagination placeholder
  • Episodes: Drastically improve initial loading time of episode view (> x10)
  • Episodes: Reduce wait on initial episode select
  • Episodes: Fix To Show and To Section in rare circumstances
  • Episodes: Be more resilient against missing item data and hung connections when closing window
  • Episodes: Delay initial busy state for 2.5 seconds
  • Episodes: Use thread for changing background on initial load
  • Episodes: Improve load times by batch fetching all to-be-reloaded episodes' data in one go
  • Episodes: Optimize task load order
  • Episodes: Improve resilience against closing during initial load
  • Episode: During initial load, wait up to 4 seconds before executing user actions and debounce other input during that time

Watchlist

  • Watchlist: Adhere to new plex.tv watchlist limit of 100 items (was: 300; unannounced)
  • Watchlist: Fix watchlisted shows "To Show" menu option error on other than current server
  • Watchlist: Fix fully watched TV Shows not properly removed from Watchlist
  • Core/Watchlist: Show notification once an item has been automatically successfully removed from the watchlist
  • Core/Watchlist: Check for item watchlist existence before blindly trying to remove it
  • Watchlist/Movies: Don't attempt to set codec info on watchlist items

Home / Hubs

  • Home: Resolve old fixme for update exit event
  • Home/LibraryHubs: Use poster view for in progress TV/Movie library hubs (was 16x9 view)
  • Home/LibraryHubs: Add "Remove from continue watching" option to TV/Movie library's hubs in progress items as well
  • Home/Main/UserSelect: Refresh home users when receiving a 401 from plex.tv when switching home users, as its protected bit might have changed (pin set), retry two times
  • Home: Fix when entering a library quickly without showing its hubs, returning would show the wrong hubs
  • Home: Reinitialize properly and update hubs when GoHome action was triggered by Home button bind
  • Home: Consolidate multi list iteration for no reason
  • Home: Fix hub stops paginating when returning from library hubs to home hubs without clean update

Library

  • Library: Add PostersCompact and PostersSmallCompact views with no text (thanks @Rick_Williams)
  • Library: Go home when screensaver is activated (saves CPU usage)
  • LibraryWindow: Fix chunk callback edge case resulting in infinite recursion (rare case, when closing)

Movies

  • Movies: Reload video info after clearing cache or refreshing metadata PMS-side
  • Movies: Skip cache when reloading video info on reinit (returning from playback) (only when cache active)

Shows / Seasons

  • Show/Seasons: Don't show fully watched state when an on-deck episode is being re-watched
  • Episodes/Movies/Shows: Include or exclude directors in cast lists

PostPlay

  • PostPlay: Fix wrong next-up item after re-playing the previously played item (e.g. played EP2, replaying EP2 from post-play, EP4 will be next up)

Settings (AddonSettings / User Interface / Video)

  • Settings: Fix 'Video play completion behaviour' options and translations
  • AddonSettings: CoreELEC Resume Seek Wait: Unclamp further down to 10ms, actually set correct default of 100ms
  • AddonSettings: Add "Use alternate seek" prefer reported time; default: On
  • AddonSettings: Add "Use alternate seek" wait for valid player time; default: Off
  • Settings: Add setting to blackout the screen while seeking back to start (Default: Off, CE/LG: On)
  • Settings/User Interface: Add setting to include or exclude directors in cast lists (user-setting, default: On (include))
  • Settings: Add "Ensure Kodi Addon position" (default: On)
  • Settings: Add setting to return home when screensaver is activated on a library screen (default: on)
  • Settings/Video: Add setting for auto seamless branching LAV mode fix
  • Settings/Videoplayer: Add setting to adjust resume points negatively on resume, to avoid lost content due to keyframes/seek behaviour (default: -3.5s)
  • AddonSettings: Add "Seamless branching LAV mode (CoreELEC U3k B9+)", default: LAV SB
  • AddonSettings: Allow specifying a custom background color (when dynamic backgrounds are disabled); overrides preset colors if set
  • AddonSettings: Make Seek back on start delay configurable
  • Main: Allow not showing any played/unplayed indicators at all
  • Settings: Extend User Interface/Played indicators with option "None"

Core / Internal

  • Core: Ensure we're updating our lastused value by running our plugin endpoint with a stub value after exiting
  • Plugin-Endpoint: Support stub-run
  • Core: Do not update lastused value when ran from plugin endpoint initially
  • Core: Re-jig waitForOpen
  • Core/SignIn/Auth: Fix wonky first start of plugin (home shown briefly after device auth and user select)
  • Core: Future-proof template engine (ibis) (thanks @tuffghost)
  • Core: Fix compatibility with Python 3.14 (3.14.2) (might break certain assumptions) (U3k B10)
  • Core/Mixins: Implement TasksMixin
  • Core/AddonSettings: Reduce default requests cache expiry from 7 days to 3 (increasing sqlite db size could yield diminishing returns)
  • Core/Plexobjects: On data retrieval error, clear cache for item(s)
  • PlexObjects: ListItems() and reload(): Allow returning and using raw etree data instead of parsing elements
  • Seasons/Episodes/Movies: Postpone less important tasks to speed up initial load
  • Main/Core: Show busy background on user switch

Theme Music

  • ThemeMusic: Only locally cache theme music if server is remote (not on local LAN nor plex.tv/watchlist)
  • ThemeMusic: When fading, only use sync/wait on final setVolume value, not on the intermediates (reduces blocking)

Translations

  • i18n: Update Spanish and Hungarian translations