- use displays refresh rate
- execute needs drawing with higher priority
- run create() with higher priority
- determine the number of threads used for rendering
- enable VSYNC and change video-sync to display-resample
- iOS/tvOS: set new display refresh rate on change
- run setSize with higher priority
- add more options to MPVClient
- get refresh rate updates
- sync refresh rate to fps
- update CADisplayLink to current refresh rate
- update refresh rate on macOS
- Add experimental feature to sync display with content fps
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
- iPad: rotate to device orientation on startup
- fixed controls in portrait fullscreen
- iOS: don’t call setNeedsDrawing multiple times
- On iOS we call set needs drawing only once.
- Added cooldown time to MPV.Client setNeedsDrawing to avoid multiple successive calls
- make fullscreen animation smoother
- dragGesture now calls toggleFullScreenAction
- fix tvOS and macOS build
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
Currently when returning from background, the app is fullscreen but the video is in portrait mode.
Now when entering background we leave fullscreen and enter it again the the app is in foreground.
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
- MP4 contains av1 encoded video which is not hardware accelerated.
- MP4 format removed from AVPlayer
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
- Don’t use System Controls with AVPlayer by default
- Changed default order of the formats
- no default AVPlayer profiles except for tvOS
- new constants isIOS, isTvOS, isMacOS
- ArtWork for nowPlaying is .medium on iPhone .maxres on all other platforms
- changes to the player bar defaults
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
with #745 I left som testing changes in the PR that resulted in currentChapter index not being updated. This is fixed now.
Also, the ScrollViewReader waiter 0.5s before jumping to the current Chapter. So it is always drawn correctly.
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
Invidious now reports the actual resolution and doesn’t hardcode them anymore.
See: https://github.com/iv-org/invidious/pull/4586
- Extended the list of possible resolutions in the StreamModel
- trigger videoLoadFailureHandler if no streams are available
- more logging for backend.bestPlayable
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
This should circumvent edge cases where videos are marked as watch when they failed to play back.
Fixes#660
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
fixes#691
add `--initial-audio-sync=<yes|no>` to MPV settings. Might fix#690 but needs to be toggled by the user. We leave the standard settings.
Also added links to the icons on macOS.
We don't test every single stream anymore. If we get an 200, 206 or 403 we immediately stop testing streams. Unknown streams are also skipped. This speeds up starting playback, since we don'T have to wait for the network anymore.
New options for captions in `Settings-Player`:
- Always show captions
- Default language
User can now select whether they want to show captions automatically when the video starts, and select the language.
Captions selector now shows proper name -> `English (en)` instead of only `en`
`cache-pause-initial` status can now be selected by the user.
Also, on macOS and iOS, a link next to the option leads the user to the info on the mpv website.
fixes#674
I accidentally broke PiP when using MPV. While testing this, I noticed that PiP sometimes does not start, so I tried to make MPV to PiP a bit more robust.