Lots of groundwork for upcoming changes and giving plugins even more capabilities, especially in relation to low-level media handling. Features: - New Source: Bitchute - New Source: DailyMotion - Setting to allow video to go under cutout (true by default) - Setting to disable quality deduplication (Simplify sources) - Setting to prioritize webm over mp4 containers/codecs - Plugin DashManifestRaw support (plugin-generated dash manifests) - Plugin DashManifestRaw.generate support (lazily generated dash manifests) - Plugin RequestExecutor support (full media data handling by plugin) - Plugin HTTP now supports binary body and responses - Plugin whitelist wildcard subdomain support - Plugin can now limit concurreny threads using "maxDownloadParallelism" - Plugins now have a polyfill implementation for atob/btoa by default Improvements: - Rotation total rework - mDNS Discovery total rework (casting devices should now show up instantly) - Download and qualities now show codecs and estimated download size - Option buttons are now slightly bigger - Unsupported source types are now ignored - Polycentric profiles now link to Harbor instead - DOMParser now has tagName and parentElement aliases - Youtube: Hide toasts by default, can be enabled in settings Fixes: - Youtube: Generated subtitles no longer overlap as much - Youtube: Comment author names fixed - Rumble: Fixed creator search - Fixed HLS audio downloads in a playlist - Fixed issue where download requests timed out too quickly - Dialog code view now has a max height - Fixed resource leak when downloading HLS - Fixed quality selection when clicking download with HLS selected by default - Fixed issue where media session could time out after 10 minutes causing the video to close (when paused) and possible issues with headphone controls not working And various other minor improvements. In next release (not this one), we are aiming to have proper landscape support on all views.