* Migrate to media3
* Update docs
* Move display_extended_title to AppPreferences
* Move display_extended_title to AppPreferences p2
* Add MediaSession support to the player
* Fix mpv player
* Disable animations on tv player controls and rename the tv_control_view file
* New media3 decoder ffmpeg
* Add mpv options: hwdec, hwdec-codecs, vo, gpu-api
* Add audio output option
* Use AppPreferences in companion object to set the vo
* Remove unused strings
* Use strings for mpv prefs
* Change default ao to audiotrack
* Clean up preferred language settings
* Fix MPV subtitles zoom in
Closes#162
Some .ass subtitles will still be broken due to their forced stylings unless stripped.
* Move everything in a single if statement
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* Upgrade ExoPlayer to 2.18
* Change the position polling from every 2 to every 5 sec
* Make internalMediaItems non-nullable
* Clean up mpv track names
* Reduce explayer ffmpeg extension size by not including all decoders
Removed decoders vorbis, opus, flac, pcm_mulaw, pcm_alaw, mp3, aac because these are already supported by Android.
* Clean up preferredLanguage preferences
* Add support for external subtitles in exoplayer
* Enable ASS/SSA external subtitles
* Enable VTT external subtitles
* Clean up
* Fix srt and vtt
Jellyfin currently converts vtt to srt without changing the codec tag. This makes the player unable to decode the subs because it thinks the file is vtt while in fact it is srt.
* Fix for vtt subs
Jellyfin return a srt stream when it should return a vtt stream
* add empty subtitle track
* toggle selected variable
* does this work
* Revert "toggle selected variable"
This reverts commit 87589f1d34e741205674e66855b53d79a1f70adb.
* this should work
* this should work 2.0
* remove empty track if there are no subtitle tracks
* Add offline playback
* Remove unused values
* Replace downloadutilities extension functions with normal functions
This is to not polute the namespace of fragment and context.
* Replace default Android icons with those from lucide
* Fix deleting downloaded movie
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Add ability to swipe up and down to adjust volume
Created AudioController to adjust global volume for media channel. Alarm, system and other volume levels are unaffected. This way it doesn't need specific implementation for separate players. During swiping system volume slider is shown and it is possible to change direction mid-swipe.
AudioController should probably be singleton and provided by DI but currently PlayerActivity is handling all the playback so it seemed unnecessarily complicated.
Sensitivity can be adjusted by threshold value in VerticalSwipeListener.
* Add audio controller class
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>