v22.3.16 (2026-06-21)
- Add support to other HTTP encodings such as x-gzip
- Add support to play Clearkey streams without DRM configuration (e.g. HLS)
- [HLS] Add support to m4f extension
- [HLS] Add support to encrypted AES-128 init data
- Improved TS demuxer to handle non standard data (missing PAT)
- Fix TS demuxer to handle HEVC with 3 byte startcode NAL
- Fix a crash that occurs when a DRM stream playback fails

v22.3.15 (2026-06-12)
- Fix broken playback with TS H264 streams that use higher codec levels
- Fix broken playback regression when changing video quality by using OSD

v22.3.14 (2026-06-06)
- [inputstream.adaptive.config] New parameters to override media flags, see wiki
- [inputstream.adaptive.original_audio_language] property is deprecated, see wiki
- [Dash] Improved support to MPD SegmentBase with multi-periods
- Fix missing subtitles due to unsupported SegmentBase with multi-periods
- [Widevine] Fix decryption problems introduced from 22.3.13
- Fix support for Common CENC DRM encryption info

v22.3.13 (2026-05-29)
- DRM sessions will now be created by default for streams that are actually used only
- DRM info from media init segments now takes precedence, otherwise fallback to manifest info
- [inputstream.adaptive.config] check_hdcp parameter is now effective and disabled by default
- [inputstream.adaptive.manifest_config] removed ignore_fmp4_defaultkid parameter, issue solved
- [inputstream.adaptive.manifest_config] new ignore_media_defaultkid parameter, see wiki
- Fix possible ClearKey decryption problem using custom license parameters
- Fix regression that prevent to use DRM on older Android OS

v22.3.12 (2026-05-18)
- Fix WebM video resume bug
- Updated translations

v22.3.11 (2026-05-11)
- [Android] Fix crashes caused by attempts to use unsupported DRMs
- [WebM] Block playback and add explicit log message to unsupported encrypted streams
- Kodi inputstream API update to videocodec version 2.2.0
- Updated translations

v22.3.10 (2026-03-09)
- [widevine][android] Implemented KID status change callbacks
- [widevine][android] Fix crash due to custom Kodi package name
- Updated translations

v22.3.9 (2026-02-26)
- Fix problem detecting resolution change (adaptive stream selection)
- Fix audio deadlock during quality change
- Kodi InputStream API update (min version 2.0.3)

v22.3.8 (2026-02-16)
- Add new libandroidjni dependency (and removed custom JNI code)
- Video seek can be more fast with MP4 streaming contents
- Fix possible video seek stall/freeze near the end of playback
- Fix possible video loop at the end of playback

v22.3.7 (2026-01-24)
- Add new ignore_fmp4_defaultkid on manifest_config property (see wiki)
- Speedup video seeking, now can reuse existing buffer
- Fix case of DRM session creation, where only one session was created even for different media types
- Fix video seek (SIDX) problem from v22.3.4, cause playback to freeze
- Fix TS demuxer video seek from v22.3.3, cause playback to freeze
- Fix occasional playback freeze on video seek across chapters on TS stream
- Partially fixed possible double downloaded segments on video seek
- Bento4 version bump to 1.6.0-641-5-Piers
- Updated translations

v22.3.6 (2025-12-25)
- Fix regression from v22.3.4 where FMP4 live streaming playback could stop

v22.3.5 (2025-12-23)
- Fixed video seek to broken timeshift and possible crashes from v22.3.4
- Bento4 dependecy version bump 1.6.0-641-4-Piers for cleanup only
- Updated translations

v22.3.4 (2025-12-18)
- [HLS] Add support to MP4 a/v muxed streams (single audio track only)

v22.3.3 (2025-12-02)
- [HLS] Fix playing live segments in a loop regression
- Fix possible forced stop of playback with live streaming while seeking
- Fix possible corrupted PPS/SPS data on TS H264

v22.3.2 (2025-11-13)
- Fix no picture on MP4 videos with mixed encrypted/unencrypted contents

v22.3.1 (2025-10-26)
- [SmoothStreaming] Implemented live stream timeshift
- [SmoothStreaming] Implemented scheduled manifest updates
- [SmoothStreaming] Fix segments memleak
- Updated translations

v22.3.0 (2025-10-16)
- [webOS] Add support to widevine L1 (until 4k)
- [webOS] Fix dolby vision support
- [HLS] Fix timeshift on some live streams that use EXT-X-PROGRAM-DATE-TIME
- [HLS] Fix possible crashes on live streams with discontinuities
- Fix to prevent multiple stream openings by Kodi core
- Fix regression about rare case of playback freeze on start
- Kodi inputstream API update to version 3.4.0

v22.2.9 (2025-09-29)
- [HLS] Fix case of misdetection of impaired subtitles
- Fix no picture on MP4 videos with mixed encrypted/unencrypted contents
- Fix a regression crash on playback start with some MP4 AVC streams

v22.2.8 (2025-09-21)
- Refactor segment buffer management code
- Improved video seek performances
- Improved multithreading data access on segment buffers
- Less delay on stream quality switching
- Fix occasional small buffering/stuttering that occurred after starting video or seeking
- Fix webm adaptive stream quality switching
- Fix case of broken subtitles on video seek

v22.2.7 (2025-07-28)
- Implemented webOS Widevine support (L3 only, no secure decoder)
- [DashTree] Fix VOD regression where playback dont start

v22.2.6 (2025-07-23)
- [Dash] Improvements to timeshift buffer live streams
- [Dash] On live streaming fixed video seek back to live
- [Dash] On live streaming GUI time bar is now updated appropriately
- [HLS] Fix broken and missing subtitles when enabled/disabled
- Fix black screen video with some android devices
- Subtitles will be restored even when a segment cannot be downloaded

v22.2.5 (2025-07-06)
- Implemented support to play Fairplay with ClearKey (MP4 container only)
- [Dash] Fix playback when a manifest contains unsupported streams
- Fix playback with IP with port number
- Fix crash when parsing some widevine PSSHs
- Updated translations

v22.2.4 (2025-05-15)
- [ClearKey] Implemented CBCS support (MP4 container)
- Fix playback problem due to URLs containing dots on paths
- Replaced RapidJSON dependency with Nlohmann JSON
- Updated translations

v22.2.3 (2025-05-04)
- Fix crash with Widevine CDM 4.10.2891.0
- [Widevine] Updated CDM interface
- [Dash] Add «urn:tva:metadata:cs:AudioPurposeCS:2007» scheme parsing

v22.2.2 (2025-04-27)
- Implemented GUI messages for common playback problems
- [Dash] Implemented UTCTiming for more accurate live streaming start
- [Dash] Fix SegmentTemplate TSB to prevent use extra live delay workarounds
- [TTML] Fix missing subtitles when read nested Span tag with timing
- New «dash_utctiming» parameter to inputstream.adaptive.manifest_config, see wiki for details
- Updated translations

v22.2.1 (2025-04-15)
- Add new setting «Resolution limit» to Stream selection «Ask Quality»
- Implemented Color Transfer Characteristic to detect HDR types (if manifest provides it)
- TRC implementation should solve GUI/Subtitles brightness problem with HDR/DV videos
- «Ask quality» dialog can now show info about HDR types (if manifest provides it)
- Fix regression double video quality change with «Ask quality»
- Fix regression on adaptive quality that dont change while in playback
- Fix regression on DASH AdaptationSet «default» override parameter for video stream
- Fix and improved live delay, that worst cases was causing buffering or broken playback
- Fix missing profiles on AAC codec name due to recent changes on Kodi GUI
- [HLS] Fix video streams groupings (HDR types) due to unmanaged VIDEO-RANGE tag (TRC)
- Updated translations

v22.2.0 (2025-04-06)
- IMPORTANT CHANGE, FROM THIS VERSION FOLLOWING OLD DRM PROPERTIES ARE DEPRECATED:
inputstream.adaptive.license_type
inputstream.adaptive.license_key
inputstream.adaptive.license_data
inputstream.adaptive.server_certificate
inputstream.adaptive.license_flags
inputstream.adaptive.pre_init_data
IT IS RECOMMENDED TO BEGIN THE TRANSITION TO USE THE NEW DRM PROPERTIES:
inputstream.adaptive.drm_legacy
inputstream.adaptive.drm
To learn more about all the changes read:
Wiki page: «Integration DRM»
PR: https://github.com/xbmc/inputstream.adaptive/pull/1724
- INFO: Widevine CDM 4.10.2891.0 cannot be used to play videos, if you installed it reinstall an old version
- Implemented DRM auto-selection to «inputstream.adaptive.drm»
- HDCP breaking changes, to learn about changes read Wiki page «HDCP resolution limit»
- Removed «Ignore HDCP status» setting, now its disabled by default
- New «check_hdcp» parameter to inputstream.adaptive.config property
- New «resolution_limit» parameter to inputstream.adaptive.config property
- The new DRM properties «drm_legacy» and «drm» no longer force a single DRM session
- Add support to show all codec variants to stream selection «Ask quality»
- Initial implementation of codec priority order, for now internally only
- Fix playback problem due to UUID KID uppercase/lowercase format mismatch
- [ClearKey] Add support to set license data as URI «data» scheme format
- [ClearKey] Fix playback with streams that have mixed unencrypted/encrypted segments
- [Widevine] Fix JSON traverse used on JSON license to find data, now correctly traverse arrays
- [HLS] Fix possible parsing problem due to malformed KEYID tag value
- [HLS] Removed hack that used DRM objects to store segments AES data
- [HLS] Fix timeshift on single period video stream
- [HLS] Fix possible repeated frames on live stream with discontinuities
- [DASH] Fix playback when ContentProtection does not contain PSSH in CENC format
- [SMOOTHSTREAMING] Add support to override PlayReady with ClearKey DRM
- Fix playback with SMIL URL manifests
- Fix video seek hung/freeze problem with some DRM videos
- Fix json bool type parsing on path_data_traverse/path_hdcp_res_traverse parameters
- Reworked hack to reject audio streams that require Widevine secure path decoder (non-android)
- Removed various code workarounds

v22.1.13 (2025-03-07)
- Fix possible persistent data in memory between played videos (cause of playback errors)
- Fix building errors when more recents Windows SDK are used
- Fix building with CMake 4.0
- Updated pugixml dependency to 1.15
- Updated rapidjson dependency to upstream
- Updated dlfcn-win32 dependency to 1.4.2
- Updated googletest dependency to 1.16.0
- Add ARM64 config support to CDM library
- [DASH] Deprecated custom «role» tag with «forced» value
- [DASH] Add support to «role» tag with «forced-subtiltle» value
- Add log warning for unsupported TTML image-based subtitles
- Updated translations

v22.1.12 (2025-01-13)
- Implemented thread pool to prevent intensive thread uses on demux read
- Fix crash due to ODR violation on tests project
- Fixes to solve GCC-15 compilation problems
- Cleanups to avc / annexb conversion
- Cleanups to Atmos profiles to sync with Kodi core changes

v22.1.11 (2024-12-20)
- Fix aarch64 widevine library loading
- Unknown subtitles are now set correctly as Undetermined
- [HLS] Add support to read subtitle codec from manifest (fix TTML subtitles)

v22.1.10 (2024-11-16)
- Changes/cleanups to MP4 AVCC/HVCC extradata conversions
- Removed deprecated API ADDON_READ_CHUNKED uses
- Replaced API ADDON_READ_AUDIO_VIDEO with ADDON_READ_NO_BUFFER
- Other code cleanups

v22.1.9 (2024-11-05)
- New test samples python addon (on github sources or see wiki)
- [SmoothStreaming] Fix corrupted playback regression
- [HLS] Fix VOD playback problems with periods
- [HLS] Fix possible crash on stream quality change

v22.1.8 (2024-10-28)
- Fixed playback problems when playing videos with different drm in sequence

v22.1.7 (2024-10-16)
- Default DRM headers are always added to prevent possible license request errors
- Fix old DRM config backward compatibilty for cases such as playready
- [widevine] fix a problem that caused error: cannot translate license wrapper
- [widevine] fix malformed saved debug license files
- [widevine] fix regression that prevent unwrapping of license certificate response
- Add new verbose debug expert setting
- Removed atomic library linking (solve linux build problems)

v22.1.6 (2024-10-12)
- New property: inputstream.adaptive.common_headers, allow to set HTTP headers to all HTTP request
- Fix decoding with some out-of-spec mp4 DRM encrypted streams
- Fix crash due to regex uses
- Code cleanups to session / service broker / chooser interface

v22.1.5 (2024-10-01)
- New DRM config property inputstream.adaptive.drm, future replacement to old properties
- Add support to custom widevine XML wrapped license (new drm property)
- [DASH] Add PSSH parsing from ContentProtection pro tag
- inputstream.adaptive.license_data cannot be used anymore to set Playready CDM optional parameter PRCustomData (use new drm property)
- The secure decoder add-on setting, now can be overrided/configured by add-ons (new drm property)
- PSSH placeholder for license data is now available to all OS and not limited to android (new drm property)
- [HLS] Removed undocumented feature, renew license key by using add-on callbacks
- Removed HB type suport from [Response-Data] field on inputstream.adaptive.license_key
- Widevine wrappers/unwrappers behaviours now can be debugged by using save license data setting
- Many code cleanups about PSSH/KID
- Decrypters changes/cleanups to use smartpointers
- Updated wiki Integration DRM page: https://github.com/xbmc/inputstream.adaptive/wiki/Integration-DRM
- Details about new drm property and breaking changes: https://github.com/xbmc/inputstream.adaptive/pull/1672

v22.1.4 (2024-08-28)
- [ClearKey] Fix bad license data encoding/decoding
- Fix to prevent initialize decrypters already initialized
- Fix a possible problem on KID extraction from mp4box
- Fix a problem that can cause delay to perform live streams manifest updates, causing buffering problems

v22.1.3 (2024-08-24)
- INFO: Playback problems with PlayReady DRM are known, we are investigating for a solution
- [HLS] Add support to PlayReady
- [Widevine] Improved synthesized PSSH for smooth streaming with Playready
- Removed unofficial pipe support from manifest url to prevent possible playback problems
- [ClearKey] Add support to set license server url from drm_legacy property
- [ClearKey] Add support to set license server headers from drm_legacy property
- [ClearKey] Improved compatibility to override manifests with other DRM's
- [HLS] Fix non-stop playback problem when the decrypter is not initialised for some problem
- Fix a license data regression with smooth streaming
- Fix a smooth streaming regression that caused decryption problems

v22.1.2 (2024-08-10)
- [HLS] Fix playback stop problem with some AAC streams
- Fix builds with GCC-14

v22.1.1 (2024-08-03)
- [Dash] Fix playback stall/crash with manifest having default kid as non-UUID format
- [Dash] Fix some live streams affected by playback stop regression
- Reverted bento4 dependency improvements, that has broken Dolby Digital audio
- Deprecated inputstream.adaptive.license_url / inputstream.adaptive.license_url_append (PVR bug fixed)

v22.1.0 (2024-07-30)
- Implemented DRM ClearKey support (for Dash, HLS only)
- New property inputstream.adaptive.drm_legacy easy way to configure DRM, see details on Wiki
- New property inputstream.adaptive.config allow to configure curl SSL verify peer and cookies, see details on Wiki
- [HLS] Fix crash / video freeze when switching stream quality with adaptive streaming
- [DASH] Fix regression on live streaming video seek
- [DASH] Fix lost attribute data with manifests that have adaptation set switching
- Deprecated inputstream.adaptive.internal_cookies, moved to the new inputstream.adaptive.config
- Updated bento4 dependency to upstream (C++20 compatibility)
- Updated rapidjson dependency to upstream
- Deprecated inputstream.adaptive.live_delay, moved to inputstream.adaptive.manifest_config
- Removed deprecated property inputstream.adaptive.manifest_type
- Removed deprecated property inputstream.adaptive.manifest_update_parameter

v21.4.10 (2024-06-24)
- Fix problem on live streams where buffering block subtitles processing
- Limited subtitles PTS workaround to HLS attempt to make Dash work
- Updated google tests dependency to v1.14

v21.4.9 (2024-05-29)
- Fixed some use cases where the period change was not working correctly

v21.4.8 (2024-05-19)
[HLS] Fix a problem that can cause video freezes or repeated frames
[HLS] Fix parsing of EXT-X-KEY protection on segments
Fix a problem that was filter out valid cookies
Fix regression caused unrecognized DTS streams

v21.4.7 (2024-05-09)
- [HLS] Fix wrong encryption between discontinuities that can cause crashes

v21.4.6 (2024-05-02)
- [HLS] New manifest_config property params to try fix faulty live services: hls_ignore_endlist, hls_fix_mediasequence, hls_fix_discsequence, see Wiki for details
- [HLS] Fix crash/playback freeze due to unhandled encryption transition
- [HLS] Removed forced manifest download at chapter/period change
- [Widevine] Fix a problem that prevent to create DRM folder on linux systems
- Try multiple download attempts with HTTP 500 errors before aborting playback

v21.4.5 (2024-04-13)
- [Dash] Implemented segment-controlled live stream
- [Dash] Introduced new property inputstream.adaptive.manifest_config to configure manifest, see Wiki for details
- [Dash] Handled TimeShiftBuffer between multiple periods
- [Dash] Limited TimeShiftBuffer to 4 hours to avoid excessive memory consumption, configurable by using the new manifest_config property
- [Dash] Fix TimeShiftBuffer, regression of v21.4.4
- [Dash] Fix wrong start period on live streams
- [Dash] Fix broken playback with MPD providing availabilityStartTime
- Fixes to not displayed subtitles, regressions of v21.4.4
- Fix broken playback with avc3/avc4 codecs (Kodi 21 patched on next release)
- Add RapidJSON dependency

v21.4.4 (2024-03-29)
- [Dash] Fix video freeze/buffering on live streaming
- [Dash] Improved live streaming manifest update
- [Dash] Fixed and improved live streaming with multiple periods/chapters
- [Dash] Improved live streaming with misaligned segments
- [Dash] Improved SegmentTemplate, SegmentTimeline tag parsing
- [Dash] Fix 'default' attribute parsing on AdaptationSet tag
- [Dash] Fix wrong video duration with SegmentList case
- [Dash] Fix possible wrong duration/timescale into periods
- [Dash] Various cleanup of parsing code
- [Dash] Fix possible broken playback due to wrongly parsed encryption
- [HLS] Add support to EXT-X-PROGRAM-DATE-TIME tag
- [TTML] Fix missing text on multiline subtitles
- [TTML] Fix broken subtitles when they have same begin PTS
- [TTML] Add workaround to try improve display of overlapping subtitles
- [TTML] Improved time parsing was potentially causing display problems
- [TTML] Add support to DFXP fourcc (Smooth Streaming)
- [TTML] Fixed a problem that could cause doubled display of text
- Fix possible broken (segmented) subtitles when disabled/re-enabled
- Updated bento4 library to v1.6.0-641

v21.4.3 (2024-02-21)
- [Dash] Fix broken playback on streams with widevine encrypted subs (not supported)
- [Dash] Removed timeline segments limit based on SIDX max references
- [Widevine] Fix decrypter issue that was causing corrupted AVC videos
- [Widevine] Fix library loading on MacOs
- Fix inputstream.adaptive.manifest_params which params was not applied to manifest request
- Fix inputstream.adaptive.stream_params which data could be corrupted

v21.4.2 (2024-02-03)
- Allowed manifest URLs until to 8000 chars
- Allowed inputstream.adaptive.stream_params to add params to URLs that already have params
- Fix crash when playing some widevine videos (e.g. amazon)
- Fix video starting with lower resolution with Manual OSD stream selector
- Fix Response-Data template field on inputstream.adaptive.license_key to accept R for raw binary format
- [HLS] Fix stopping of live stream playback after some time
- [HLS] Fix stopping playback after stream quality switching (not fully but improved a lot)
- [HLS] Fix audio with 0 channels when a rendition has no CHANNELS info param
- [HLS] On live streaming no more subtitles child manifest downloaded when disabled
- [HLS] Fix broken WebVTT subtitles on live streaming due to not downloaded segments
- [HLS] Fix broken WebVTT subtitles with playlists having multiple discontinuities (D+)
- [HLS] Fix broken WebVTT subtitles after disabled and re-enabled (D+)
- [HLS] Fix possible multiple included audio tracks shown on GUI that point to the same stream
- Ask Quality stream selector will no longer display empty resolution when unavailable

v21.4.1 (2023-12-24)
- New properties license_url / license_url_append, workaround for PVR playlist bug, see wiki
- New property internal_cookies, enable add-on to handle persistent cookies, see wiki
- [Dash] Implemented support to last segment signal
- [HLS] Fix issue that caused audio tracks to be missing
- [HLS] Fix possible playback freeze on videos with ADS
- [Settings] Lowered the minimum threshold for initial bandwidth to 50kbps
- Add support to LoongArch systems

v21.4.0 (2023-11-21)
- Restored TTML stpp mime type support
- Fix crashes when a subtitle format is not supported

v21.3.1 (2023-11-02)
- [Dash] Add support to Location tag with relative url
- [HLS] Implemented EXT-X-KEY URI parsing with base64 data support
- [HLS] Improved PSSH parsing
- Fix mishandled license failure after refactor
- Fix missing http requests params and headers when downloading subtitle streams
- Fix crash when playback fails to start
- [Widevine] No more empty folders will be created under the cdm folder
- Changes on how to implement custom manifest/license, search note for <addon_name> on Wiki: https://github.com/xbmc/inputstream.adaptive/wiki/How-to-provide-custom-manifest-and-license
- Code cleanup to PSSH/KID extraction
- Code cleanup to handle data as uint8_t instead of string
- Code cleanup through implementation sample reader factory
- Code cleanup through implementation service broker
- Enabled multiprocess builds for VS

v21.3.0 (2023-09-22)
- Massive refactoring of decrypters (thanks @glennguy)
- Fix missing headers to manifest request (fix HTTP error 403)
- [HLS] Fix playback of some manifests that dont provide info to detect the stream type
- [DASH] Fix a possible crash when you stop a live video playback
- Cleanups to CMake build files
- Dev info: changes have been made to the binaries that are compiled, the libssd_wv.xxx library file no longer exists, instead for linux aarch64/arm64 platform only, a new library file libcdm_aarch64_loader.xxx will be created, which must be included in the add-on folder

v21.2.1 (2023-09-07)
- [HLS] Fixed possible duplicated audio/video streams
- [HLS] Fixed broken playback with some manifests containing EXT-X-DISCONTINUITY
- [HLS] Fixed possible playback problems with audio/subtitles tracks
- [DASH] Fixed inputstream.adaptive.license_data property
- Removed support to KID placeholder on inputstream.adaptive.license_data property

v21.2.0 (2023-08-25)
- Kodi inputstream API update to version 3.3.0
- Kodi inputstream videocodec API update to version 2.1.0
- Improved codecs detection from malformed manifests
- [wvdecrypter] Fix memory heap corruption
- [DASH] Fix and improved SIDX parsing
- [DASH] Fix a regression on live streams caused unstable playback
- [DASH] Fix SegmentTemplate WebVTT support
- [DASH/HLS] Improved parsing of impaired stream types
- [HLS] Reworked multivariant playlist parser
- [HLS] Add support to multivariant audio only streams
- [HLS] Fix audio streams misdetected as video
- [HLS] Fix Ask quality stream selector was showing multi-codecs
- Add support to audio profiles (shown on GUI tracks list) DD Atmos included

v21.1.3 (2023-07-17)
- [DASH] Rework of manifest update parameters. NOTE: inputstream.adaptive.manifest_update_parameter is now deprecated and replaced by inputstream.adaptive.manifest_upd_params which has a different implementation - add-on devs please see the wiki
- [DASH] fix rounding of segment count calculation - allows affected VOD streams to finish correctly
- [AdaptiveTree] rework and cleanup of segment objects, fixing some live DASH streams
- [TS] improved logging capabilities
- multiple improvements for live manifest refresh handling
- [HLS] fix wrong offset for byteranged downloads
- Cleanup of codec names/fourcc codes, fix incorrect codec displaying in quality chooser
- [AdaptiveTree] Preserve path to save manifest on cloning class
- [DASH] Fix replaced init segment from SegmentTemplate
- [HLS] fix file extension (container) detection
- Fixes relating to high memory allocation (was causing crashes on high bitrate streams due to memory exhaustion)
- [AdaptiveStream] On ResetSegment check for byterange not url
- [SmoothTree] big rework to fix regressions and improve logging. Many affected streams are now playable
- [HLS] fix for directly playing variant playlists

v21.1.2 (2023-06-09)
- [DASH] - allow contentprotection tag without systemID URN
- [ADTS] - add support for AC-3 and EAC-3 in ADTS container
- [HLS] fix key url resolution
- Remove getinfo checks from getnextsample (fixes Amazon stuttering issues)
- [AdaptiveTree] - introduce feature to autodetect manifest type
- [DASH] - always set startNumber from SegmentTemplate

v21.1.1 (2023-05-30)
- [AdaptiveStream] Overhaul threading (fixes some freezes/deadlocks)
- [AdaptiveTree] Massive overhaul of manifest and ttml parsers (thanks @CastagnaIT !)
- [Widevine] Remove multi-subsample decrypting, use only 1 session where possible
- Improved debug logging and add option to save manifest files
- [AdaptiveTree] fix possible deadlocking
- Several code cleanups
- [ADTS] fix missing audio for some streams
- Add Live Delay property to force distance between live edge
- [webm] Parse audio track extradata (fixes audio)
- [MP4] Fix memory leak
- [DASH] Don't start update thread for temp update tree

v21.1.0 (2023-04-04)
- Minor version bump - missed at time of v21.0.3

v21.0.4 (2023-04-04)
- [DASH] Fix live period sequence numbers
- [DASH] Fix live duration updates on some manifests
- [MP4] Fix for crash when missing STSD atom
- [DRM] rework CDM timer handling, fixes crashing after playback stop on non-Android devices

v21.0.3 (2023-03-24)
- [DASH] better period matching for live refreshes
- [AdaptiveStream] rework/update of download retries, allowing for VOD retry attempts
- [SSD] add xbmcaltbinaddons to search path
- [SSD][Widevine] Add new video formats

v21.0.2 (2023-03-10)
- Reimplement saving license data, controllable in settings
- [DASH] fix representation updates for identical adaptationsets
- [Widevine] add support for linux arm64
- reduce logging when waiting for new segments in live manifests
- [DASH] fix url calculation issues
- bump gtest
- handle PIFF protection scheme

v21.0.1 (2023-02-23)
- overhaul url utils to follow RFC 3986
- [Debug] option to save manifests to disk for debugging purposes
- remove deprecated properties and pipe support for manifest url
- [DRM] fix bug when supplying license_data property

v20.3.3 (2023-02-08)
- [Repchooser] Don't give stream selector dialog when only one available
- [DRM] handle empty headers with license request
- fix crashing on malformed url params
- New properties for separate stream/manifest headers/params and overhaul of behaviour, fixing some manifests that wouldn't play. Add-on devs please see integration page on our wiki.
- [HLS] default to TS filetype when file extension missing/unable to be determined
- [fMP4] handle changing track IDs between streams, fixes crashing on stream change
- [WV] improved capability logging
- Fix regression with seeking
- [HLS][WEBVTT] Various fixes including duplicate subtitle issue, alignment for some streams, bad behaviour of filling segment buffer before starting playback
- [Bento4] upstream updates fixing building on powerpc linux
- [DASH] fix for live videos with segmenttimeline in representations, correct manifest parameter automatically set

v20.3.2 (2023-01-11)
- [HLS] fix for incomplete length sub streams
- Fix memory leak
- [ISM] allow case insensitive live flag
- Fix crashing when missing track ID
- Fix issue where manifest files without an extension would not play
- [ISM] fix regression preventing protection being parsed correctly
- Bump Bento4 to 1.6.0-639-5-Nexus

v20.3.1 (2022-10-07)
- Print stream ids in log when seeking
- [DASH] Fix possible crash for live streams
- [DASH] Fix issue with baseurls/template causing incorrect url calculation
- [DRM] Fix regression with unknown keyids sending uninitialised data to decrypter
- [HLS] Support EXT-X-Byterange tags that don't contain start byte value
- Allow for playlists to set crypto mode
- [DRM] Partial refactor, fix for decrypting CBC with multi subsamples

v20.3.0 (2022-09-16)
- Kodi inputstream API update to version 3.2.0
- Implemented AV1 support
- Handled limited GUI resolution with Adjust refresh rate
- Fix video resume with seek
- Fix use after free crash from readsample thread
- Fix condition check for chunked transfers
- Fix relating to subtitle playback
- [Subtitles][WebVTT] Sync to current period start (chapter)

v20.2.3 (2022-07-02)
- [DASH] Fix crash when SegmentList is in root of Period
- [HLS] fix PKCS7 stripping on chunked transfers
- Kodi now buffers correctly on slow connections

v20.2.2 (2022-06-13)
- Fix stream selection property parsing
- [HLS] handle PKCS7 padding
- [DRM] only reinitialize video decoder when codec changes
- Improved base64 decoding (fixes some DRM streams not starting)

v20.2.1 (2022-05-19)
- Fix wrongly encoded urls
- Fix wrong parsing of license template
- [Bento4] fix several security vulnerabilities
- Fix wrong HEVC extradata (was causing crashing)
- Add missing codecs in decrypter interface
- Fix Dolby Vision metadata
- [HLS] allow edge case for byteranged init segments

v20.2.0 (2022-05-01)
- [dash] handle multiple repid tags in urls
- improved logging, numerous code cleanups and refactorings
- [drm] support for pre-initialising the drm session
- add icon and fanart
- overhaul settings
- add several representation chooser types: adaptive, fixed, ask, manual osd, test (pls see wiki for details)
- fix estimate segment count
- [drm] add capability to decrypt AES-CBC streams

v20.1.2 (2022-01-29)
- [WebVTT] - Fix sending segments packages
- [HLS] - Handle playlists with large media sequences
- [DASH] - Fix stream switching for byteranged types

v20.1.0 (2021-12-23)
- Translation updates by Weblate
- Kodi main API update to version 2.0.0

v20.0.3 (2021-12-10)
- Fix compile error by GCC 11
- Fix build about global Kodi API version 1.3.1
  - Lower versions also still usable
- Moved changelog text within addon.xml to new changelog.txt

v20.0.2 (2021-10-09)
- Fix crash when no data sent to DemuxRead
- Update Bento4 lib
- Fix pixellation issue when seeking to head
- [DASH] support suggestedPresentationDelay
- increase 'no-seek' area default for live streams to 16 seconds

v20.0.1 (2021-09-28)
- Adaptive bitrate switching and buffering initial support!
- Change default license if no pipes in license url
- Remove old unused Android ndk files
- Better WebVTT format checking
- [DASH] handle adaptationset switching tag to merge adaptationsets

v20.0.0 (2021-09-14)
- Change test builds to 'Kodi 20 Nexus'
- Increase version to 20.0.0
  - With start of Kodi 20 Nexus, takes addon as major the same version number as Kodi.
    This done to know easier to which Kodi the addon works.

v2.6.23 (2021-08-06)
- Translations from weblate - de_de, ja_jp, ko_kr
 - [Android] use multiple drm sessions (solves stuttering)
 - [DASH] allow for misaligned segs in SegmentTimeline

v2.6.22 (2021-07-18)
- Automation test release

v2.6.21 (2021-07-18)
- Automation test release

v2.6.20 (2021-07-17)
Translations updates from Weblate
    - de_de, el_gr, es_es, fr_fr, he_il, hi_in, hr_hr, hu_hu, it_it, ja_jp, ko_kr, nl_nl, pl_pl, ro_ro, ru_ru, sk_sk, sv_se

v2.6.19 (2021-07-17)
- Translations updates from Weblate
    - af_za, am_et, ar_sa, ast_es, az_az, be_by, bg_bg, bs_ba, ca_es, cs_cz, cy_gb, da_dk, de_de, el_gr, en_au, en_gb, en_nz, en_us, eo, es_ar, es_es, es_mx, et_ee, eu_es, fa_af, fa_ir, fi_fi, fo_fo, fr_ca, fr_fr, gl_es, he_il, hi_in, hr_hr, hu_hu, hy_am, id_id, is_is, it_it, ja_jp, kn_in, ko_kr, lt_lt, lv_lv, ml_in, mn_mn, mt_mt, my_mm, nb_no, nl_nl, os_os, pl_pl, pt_br, pt_pt, ro_md, ro_ro, ru_ru, scn, si_lk, sk_sk, sq_al, sr_rs, sr_rs@latin, sv_se, szl, ta_in, tg_tj, th_th, tr_tr, uk_ua, uz_uz, vi_vn, zh_cn, zh_tw

v2.6.18 (2021-07-13)
- Add support to pre-initialise DRM
- Fix intermittent crash when stopping Widevine videos

v2.6.17 (2021-06-20)
- Fix decrypt errors on non-Android platforms
- [DASH] fix representation base urls
- Don't use filecache for subtitle downloads

v2.6.16 (2021-05-21)
- Allow download retries for VOD
- [DASH] fix for minimumUpdatePeriod=0
- [DASH] remove media_renewal_url and media_renewal_time
- License renewal for widevine
- [HLS] Fix SSD being deleted with multiple encrypted streams
- Overhaul manifest redirect logic
- fix seeking into separate chapters/resume time
- fix HEVC extra data crash
- improve settings

v2.6.15 (2021-05-18)
- [HLS] support webvtt subtitle extensions
- [DASH] fix segmentTemplate calculation
- [HEVC] use constant frame rate if average is 0
- [HLS] don't reset pts on new periods
- Don't remove secure decoder cap if not requested in manifest_type
- [Android] fallback to widevine L3 if L1 provisioning fails

v2.6.14 (2021-04-22)
- Don't overwrite manifest headers with stream headers
- Stream headers default to manifest headers
- ac3 is recognised separately to eac3
- [DASH] time and number placeholders can be used simultaneously
- [DASH] manifest_update_parameter property defaults to 'full' for SegmentTimeline
- [DASH] pssh attribute in ContentProtection tag allowed without cenc namespace
- [DASH] support ttml subs where codec isn't specified

v2.6.13 (2021-04-10)
- Fix Debian packaging

v2.6.12 (2021-04-09)
- Remove Android specific decrypter search paths
- Move Android addon to binary addons repo

v2.6.11 (2021-04-08)
- Fix ampersand in changelog causing issues from v2.6.9 and v2.6.10

v2.6.10 (2021-04-08)
- Fix release build

v2.6.9 (2021-04-08)
- Fix MPD Timing (remove publishTime and presentationTimeOffset)
- [Dash] Correctly set timeshift_buffer (live)
- [Dash] Support fpsScale in AdaptationSets
- [Dash] Fix missing audio languages
- [DASH] Support ec-3 channel count (urn:mpeg:mpegB:cicp:ChannelConfiguration)

v2.6.8 (2021-03-26)
- [Dash] Append / to baseurl if required
- Fix Base Domain (fixes uri=/path/)

v2.6.7 (2021-02-10)
- Fix build for ios/tvos
- Use the full BaseUrl if it's a real url inside an AdaptationSet

v2.6.6 (2020-11-21)
- Matrix VideoCodec API change to v2.0.2 - Fix crypto session id handling

v2.6.5 (2020-11-09)
- Matrix API change to v3.0.1 - Fix wrong flags bit shift

v2.6.4 (2020-10-31)
- Fix protocol search in manifest URL

v2.6.3 (2020-10-31)
- New C-api changes
- Fix URL's without domain (files)
- [MPD] Fix SegmentTimeline without given startTime

v2.6.2 (2020-10-30)
- revert / rework effective url issues
- api related changes (buildsystem)

v2.6.1 (2020-10-25)
- Fix effective url if paths beginning with / provided
- Several translations added / fixed
- Fix webvtt subtitles for time formats without leading hour 00:
- Fix segfault when playing PlayReady content (Android)
- Adapt to kodi c api changes

v2.6.0 (2020-05-16)
- Update inputstream API 2.3.1
- Update Global API 1.2.0

v2.5.6 (2020-04-25)
- Matrix API change to v2.3.0 - Pass mime type to inputstreams if available
- Matrix API change to v2.2.0 - Allows upto 256 streams, useful for netflix etc.

v2.5.5 (2020-04-06)
- Matrix API change - Remove CanPauseSteram() and CanSeekStream()
- Update .gitignore

v2.5.4 (2020-01-19)
- [HLS] url based initialization segment
- [DASH] Use effective URL for manifest update
- Implement Media Renewal Time
- Fixed WebVTT rlm and lrm
- Fixed and improved subtitle properties)
- Add multiple languages
- [DASH] Fix zero devision segfault

v2.5.3 (2019-11-21)
- Fix retrieving SIDX from indexRange streams (youtube)
- Rework seek (use lead stream)

v2.5.2 (2019-11-18)
- More languages added
- DolbyVision codec (dvhe) support, kodi changes required to get it work
- Add property to start LiveStreams from beginning (play_timeshift_buffer)
- Pass media_headers when downloading pssh-search segment
- Minor DASH full update / timing / url generation fixes

v2.5.1 (2019-10-07)
- Language spain added
- multi period support
- mp4 webtt binary representation added
- minor fixes

v2.5.0 (2019-09-02)
- New major versions for Matrix

v2.4.0 (2019-08-16)
- Update Kodi VFS API 1.0.3
- Build script cleanups
- Implement VP9 static HDR metadata
- MPD: location attibute added
- MPD: livestream bugfixes (uninitialized startPTS)

v2.3.22 (2019-06-14)
- Bento4: sample duration workaround (24/1)
- WVDecrypter: remove sleep between decrypt calls

v2.3.21 (2019-06-07)
- [DASH] initialize segment::range_begin_ for URL segments (youtube)

v2.3.20 (2019-06-07)
- Fix parsing PR ContentProtection KID

v2.3.19 (2019-06-02)
- [widevine] remove API 8 / Add API 11
- [TS] Signal configuration change if extra-data has changed
- [DASH] Use PlayReady WRMHEADER to retrieve DefaultKID
- [DASH] Allow URL_SEGMENTS + Range-Bytes

v2.3.18 (2019-05-11)
- align settings with internal resolution check
- [HLS] support single playlists

v2.3.17 (2019-04-16)
- Fix KID's with 0 char inside

v2.3.16 (2019-03-25)
- TTML parser fix
- [HLS] Add HEVC streams / Fix extra_data_size in ts parser
- [HLS] effective URL for license

v2.3.15 (2019-02-11)
- Fix windows build

v2.3.14 (2019-02-10)
- Add WebM container parser
