Commit graph

818 commits

Author SHA1 Message Date
Avently
05e7a25ad8 Better equals check
It ensures that queues are not the same. Without this check when you have multiple videos in the backstack and navigating back via Back button you'll get duplicated videos
2022-02-19 22:12:31 +03:00
Stypox
c974190a1d Fix fast seek overlay arc not correctly centered
This happened in fullscreen player: while play-pause, brightness, volume, ... buttons were correctly centered in the app UI, the fast seek overlay was centered in the system UI, causing a mismatch between the two that looked ugly
2022-02-18 22:34:55 +01:00
litetex
3ce8875b39 Merge pull request #7704 from Stypox/fix-stream-menu-crash
Fix crash when long-pressing stream while player is starting
2022-02-09 19:53:09 +01:00
TiA4f8R
fda5eb6182 Add JavaDoc for PlayerDataSource.PLAYLIST_STUCK_TARGET_DURATION_COEFFICIENT 2022-01-30 20:42:02 +01:00
TiA4f8R
a8c06bb435 Apply suggested changes and remove the CustomHlsPlaylistTracker class 2022-01-30 20:42:02 +01:00
TiA4f8R
79ea722908 Suppress SonarLint NullPointerException warnings in CustomHlsPlaylistTracker
They seem to be wrong, by looking at the class work and at the return of CustomHlsPlaylistTracker's methods.
2022-01-30 20:42:02 +01:00
TiA4f8R
a03872cb51 Use a custom HlsPlaylistTracker, based on DefaultHlsPlaylistTracker to allow more stucking on HLS livestreams
ExoPlayer's default behavior is to use a multiplication of target segment by a coefficient (3,5).
This coefficient (and this behavior) cannot be customized without using a custom HlsPlaylistTracker right now.

New behavior is to wait 15 seconds before throwing a PlaylistStuckException.
This should improve a lot HLS live streaming on (very) low-latency livestreams with buffering issues, especially on YouTube with their HLS manifests.
2022-01-30 20:42:01 +01:00
TiA4f8R
76fdba9c9d Catch properly BehindLiveWindowExceptions
Instead of trying to reload the play queue manager and then throwing an error, BehindLiveWindowExceptions now make the app seek to the default playback position, like recommended by ExoPlayer.
The buffering state is shown in this case.

Error handling of other exceptions is not changed.
2022-01-30 20:42:01 +01:00
litetex
7077184903 Merge pull request #4833 from vkay94/youtube-rewind-forward
YouTube's Fast Forward/Rewind behavior
2022-01-30 17:07:15 +01:00
Stypox
a9f6c8d726 Do not show enqueue button if play queue not ready 2022-01-27 17:11:16 +01:00
litetex
3e23aa0071 Fixed "Changing the seeks duration does not update the displayed seconds" 2022-01-25 20:44:49 +01:00
Stypox
6295d88145 Fix NPE and add some @Nullables
Fix NullPointerException in PlayerHolder.getQueueSize() and add `@Nullable` here and there so that the linter reports risks of NPEs
2022-01-25 17:37:20 +01:00
TiA4f8R
e83d964fca Fix first item played in playlists when switching player type or resolution
The issue was caused by an ExoPlayer change, which when setting a media source, resets the current playback position and the current window index by default.

Also set player recovery in more places to fix playback position not propely set in some cases after a player type switch.
2022-01-24 21:40:16 +01:00
litetex
b291b5ca3c Improved docs 2022-01-21 22:49:25 +01:00
litetex
35abba3eb5 Apply seek conditions based on direction
* When rewinding: Check if <0,5s
* When fast-forwarding: Check if player has completed or the current playback has ended

This allows rewinding on the endscreen
2022-01-21 22:49:25 +01:00
litetex
a0dda12849 Code cleanup 2022-01-21 22:49:25 +01:00
litetex
4651c242cc Fixed SonarLint problems
* Removed alphaRelativeDuration as there is no use for it
2022-01-21 22:49:24 +01:00
litetex
1921583ff0 Fixed naming 2022-01-21 22:49:24 +01:00
litetex
f6e58104bd Removed related import 2022-01-21 22:49:24 +01:00
litetex
bcc441289b Removed unused field 2022-01-21 22:49:24 +01:00
litetex
f0de6c73b7 Removed all animations to be consistent with the current behavior 2022-01-21 22:49:23 +01:00
litetex
1fb7f36897 Refactored code 2022-01-21 22:49:23 +01:00
litetex
f56439e568 Code cleanup and minimization
* Deduplicated and simplified a lot of code
* Fixed ``invalidSeekConditions`` so that it's possible to seek while the player is loading (like currently the case)
2022-01-21 22:49:23 +01:00
TobiGr
18a6e22d45 Replace NotNull annotation with NonNull annotation 2022-01-21 22:49:23 +01:00
Stypox
39f415f741 Small improvements to player 2022-01-21 22:49:22 +01:00
Stypox
a9d0d300fe Fix controls not hiding correctly when switching player 2022-01-21 22:49:22 +01:00
vkay94
de2e6a2d8c SeekOverlay: Switch to merge for SecondsView and other adjustments 2022-01-21 22:49:21 +01:00
vkay94
6252704bbc SeekOverlay: Add seek overlay logic to player 2022-01-21 22:49:21 +01:00
litetex
1f7c6dfdc9 Workaround: Set recovery before switching player
Quick fix
2022-01-17 20:52:07 +01:00
Tobi
44af59cbe4 Merge pull request #7562 from TeamNewPipe/code-quality
Small improvements to code quality and readability
2021-12-23 23:54:29 +01:00
TobiGr
778f57b422 Small improvements to code quality and readability
Add annotations to methods and parameters.
Replace Jetbrains' @NotNull with Androidx' @NonNull annotatiation.
Make class variables static if possible.
Use constants for some Strings.
Simplify if conditions.
2021-12-21 20:55:41 +01:00
TobiGr
c12552f7e7 Make PlayerHolder.bound private 2021-12-21 20:51:18 +01:00
litetex
476ae318b7 Removed/Reverted MediaParser support (Android 11+) due to bugs 2021-12-19 20:16:10 +01:00
Stypox
8eec9b55bf Remove PlayerErrorHandler and correctly set ErrorInfo msg 2021-12-04 10:36:36 +01:00
Stypox
9ac1add14c Prevent exception from being serialized in ErrorInfo
The wrong @Decorator was put in the wrong place to mark the throwable fieldd as transient, now this is fixed and the exception is not serialized. So if a non-serializable throwable is passed, that's not an issue, since it's not going to be serialized. The need for EnsureExceptionSerializable is also gone.
2021-12-04 10:36:36 +01:00
Stypox
5583f71a8e Replace ErrorActivity with ErrorUtil 2021-12-04 10:36:36 +01:00
litetex
e9468197cb Added a workaround for not serializable exceptions 2021-11-23 20:12:14 +01:00
litetex
5f56989161 PlayerErrorHandler refactor + docs 2021-11-23 20:12:12 +01:00
litetex
95d5274b7c Added option to report player errors
* Added a new setting so that player errors are reported (under Video and Audio > Player)
* Moved the player error logic to separate class specially created for this purpose
2021-11-23 20:12:07 +01:00
Stypox
3427253824 Merge pull request #7412 from litetex/code-cleanup
Some code cleanup(s)
2021-11-23 08:59:34 +01:00
litetex
8a1018e8b2 Removed useless lines 2021-11-22 19:49:52 +01:00
litetex
dcfa4511f7 Formatted code 2021-11-21 19:56:50 +01:00
litetex
010c38f389 Removed useless doc 2021-11-21 19:46:11 +01:00
litetex
cbd0fc6ac5 Merge pull request #7406 from Redirion/usedefaultloadcontrol
Use DefaultLoadcontrol
2021-11-21 15:11:21 +01:00
XiangRongLin
b785c1ccc2 Merge pull request #7381 from litetex/prevent-automatic-replay-after-returning-from-background
Prevent automatic replay after returning from background
2021-11-17 09:38:09 +01:00
litetex
5c1315641d setRecovery: Remove checks and use Math.min/max 2021-11-15 19:56:14 +01:00
litetex
ca37d7cb66 Prevent automatic replay after returning from background
See also https://github.com/TeamNewPipe/NewPipe/pull/7195#issuecomment-962624380
2021-11-15 19:47:08 +01:00
Robin
b85196aa4f Fixed Period Transition 2021-11-14 21:19:36 +01:00
Robin
7d8e1e43be Use DefaultLoadcontrol 2021-11-14 20:12:12 +01:00
Robin
a86e819a35 Merge pull request #7363 from litetex/playback-speed-ctrls-simple-landscape-improvements
Simple playback-speed-controls improvements
2021-11-12 21:19:17 +01:00