Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExoPlayer 2.8.2 Update #1392

Merged
merged 22 commits into from
Jul 5, 2018
Merged

Conversation

karyogamy
Copy link
Contributor

This update bumps the player library version and:

  • Reworked the playback speed control dialog to support different step sizes for faster speed change.
  • Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\).
  • Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts.
  • Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened.
  • Various UI fixes: subtitles option doesn't appear anymore in popup mode #1383, background player notification controls now always white, easier to shutdown popup player through flinging

However, there is a potential bug in the current release that breaks livestreams, so we will need to wait until a bugfix or resolution is found before merging.

I've also tried to integrate our players to use the new notification UI, which can reduce all notification code on the background and popup players to about 20 lines and provide dynamic notification coloring from thumbnail on Oreo. Unfortunately, the library hardcoded the broadcast intent strings, which means we can't have two players at the same time. Maybe we can later refactor the notification controls and roll our own solution.

If anyone is interested, here is the link to the new ExoPlayer Google IO talk.

@gregordr
Copy link
Contributor

@karyogamy About the silences: Would there be a way to make an option to only remove them at the beginning and end of tracks?

@karyogamy
Copy link
Contributor Author

It's possible but not with the current ExoPlayer architecture, since the built-in silence skipper uses the AudioProcessor interface, which doesn't pass down the track information.
Later down the road we can rework the base player a bit to expose an interface for adding extra audio processors to allow custom audio plugins, including a track-sensitive silence skipper. But since this is an update PR, I'd prefer not introduce too much complexity.

-Updated MediaSource contracts in ManagedMediaSource.
-Changed PlaceholderMediaSource and FailedMediaSource to use built-in BaseMediaSource implementation.
-Changed deprecated DynamicConcatenatingMediaSource to ConcatenatingMediaSource.
-Removed manual playlist media source disposal in favor of player built-in disposal.
-Added step size selector to playback speed control.
-Added skip silence flag to player intents.
-Moved default preset in playback speed control to neutral dialog button, renamed as reset.
-Removed nightcore preset from playback speed control.
-Baked resolved media metadata into media source for one-way data passing.
… due to full width aspect ratio selector.

-Fixed potential memory leak in media session connector containing player instance.
-Removed background player notification button opacity change.
-Updated Room DB version to 1.1.0.
… instantiate once only during player creation to enforce non-nullity.

-Fixed background and popup player service staying in foreground when playback is paused or completed.
-Fixed player metadata not updating on new stream.
-Fixed player intent playback quality not applied.
-Fixed player auto-queue not applied after stream transition or swapping.
… loading.

-Updated OkHttp to 3.10.0 and RxJava to 2.1.14.
-Changed player recovery seek to use ExoPlayer built-in window seeking instead of seeking after stream window starts playing.
-Changed playback speed changer default step size to 25%.
-Changed player notification to reset on all state changes.
-Fixed gradle dependency version incorrect variable names.
-Fixed video player double tap not working during pause.
-[TeamNewPipe#1412] Fixed NPE when sharing video to main video activity when it was playing but is out of focus: Reset main player state when new intent is received.
-[TeamNewPipe#1410] Fixed fast forwarding and rewinding not working within 10 seconds from beginning or end of a stream window.
…ng exoplayer.

-Fixed livestream not reloading on behind live window exception.
-Added nonnull annotation to player intent strings.
-Fixed potential play queue desynchronization due to fast forwarding on silence.
-Added current thumbnail storing in base player to allow immediate retrieval for notification building.
-Removed video player buffer spinner during interim buffering but not initial buffering.
-Reverted foreground notification stopping on pause and on complete.
-Fixed popup player window not clipped to above soft input keyboard upon expansion.
-Changed background player notification to no longer update bitmap on progress time change.
-Changed popup player to move above soft keyboard when it is opened.
@karyogamy karyogamy changed the title [WIP] ExoPlayer 2.8.0 Update ExoPlayer 2.8.2 Update Jun 28, 2018
@theScrabi theScrabi merged commit 6b66f40 into TeamNewPipe:dev Jul 5, 2018
@theScrabi
Copy link
Member

Should I still block the release of the next version, or did you fix that issue.

@karyogamy
Copy link
Contributor Author

did you fix that issue

The audio processor and conditional skip silence might take some time and I wouldn't include it in this release. Will be doing some code reviews on some PRs and the extractor refactoring before working on any new features.

Should I still block the release of the next version

Might be a good idea to do some more testing and profiling before release, just in case.

Also we might want to fix the number format exception issue when resolving resolution on mobile data before the next release.

@theScrabi
Copy link
Member

theScrabi commented Jul 6, 2018

@karyogamy I grated you advanced writing permissions on the repo, you can now eddid the release node: https://github.com/TeamNewPipe/NewPipe/releases/tag/untagged-30c1321b12d6c8d57604
Be careful with those permissions ;)

Also we might want to fix the number format exception issue when resolving resolution on mobile data before the next release.

Ok, sounds good :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

subtitles option doesn't appear anymore in popup mode
3 participants