Describe the changes
Upgrade ExoPlayer to version 2.17.1
Provide an example of how to test the change
Tested with a forked of react-native-video-test
* Update exoplayer to v2.15.1
* feat: upgrade ExoPlayer to version 2.17.1
* chore: update CHANGELOG
* remove ExoPlayerFullscreenVideoActivity
* Fix build issues
* Fix build & runtime issues
Co-authored-by: Eran Hammer <eran@hammer.io>
Co-authored-by: Armands Malejev <armands.malejevs@gmail.com>
Fix RNV-3005 errors when exiting the player and loading a new video immediately. In most cases this error was just happening internally and the user would not experience it, but it skewed the error rate reporting.
When moving init logic to a different thread we missed one function that was not captured if an error occurred. This PR wraps the source init function that happens on a different thread in a try/catch to capture any errors that occur.
This PR handles autoplay after disconnection
Jira: VEX-6625
There was an error in react-native-video not being properly handled, in addition, the state of the player when reconnecting using a free user was not the expected one, requesting the player to keep playing when ready, made the behavior consistent in all scenarios
Velocity PR: crunchyroll/velocity#2430
Reviews
Major reviewer (domain expert): @jctorresM
Minor reviewer: @jacob-livingston
This PR will fix the crash from the experiment on react-native-video
Jira: VEX-7093
velocity PR: crunchyroll/velocity#2443
The crash was caused by using the player object before it was set by another thread, the change simply waits for the player to be available before executing any player interaction after DRM initialization.
Reviews
Major reviewer (domain expert): @jctorresM
Minor reviewer: @jacob-livingston
On low end devices when replaying same content too quickly DRM could fail with an uncaptured error (DrmSessionException). To prevent this we now check for that error and retry DRM one more time.
Updates disableDisconnectError retry condition to be more specific.
Jira: VEX-6518
Reviews
Major reviewer (domain expert): @armadilio3
Minor reviewer: @gabriel-rivero
This PR changes the behavior on old devices that have poor memory management.
Jira: VEX-6030
https://jira.tenkasu.net/browse/VEX-6030
The solution implied customizing the method shouldContinueLoading from RNVLoadControl to use only the available heap, performing tests on an old Nexus 5 it was determined the ideal bytes allocation to half the reported heap, that provided some buffering during ads but smooth playback during the video with no crashes (23:39 of 23:39 at the moment of writing this, video kept playing as expected after 3 ad breaks)
The fix is only targeting Marshmallow as the reduction of buffer is substantial and other versions that work properly should not get affected.
Depending on the test result of VEX-5758, this same fix can be applied to Nougat
Reviews
Major reviewer (domain expert): @armadilio3
Minor reviewer: @nickfujita