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 adds core actions to enable or disable screenshots
Jira: VEX-6540
https://jira.tenkasu.net/browse/VEX-6540
velocity PR: crunchyroll/velocity#2248
New core actions were added to control the player surface and mark it as secure. Sending the prop to react-native-video will recreate the surface of the player changing it to a SurfaceView and enabling security
Reviews
Major reviewer (domain expert): @nickfujita
Minor reviewer: @armadilio3
This PR is intended to prevent memory crashes when the free memory runs out
Jira: VEX-6030
https://jira.tenkasu.net/browse/VEX-6030
Velocity PR: crunchyroll/velocity#2043
By forcefully calling the garbage collector the memory crashes, specially on lower resolutions (<720p) are gone on devices with 2GB of ram or less and Android 6, also testing 3GB Android 7 with this patch, so far is working as intended
Reviews
Major reviewer (domain expert): @nickfujita
Minor reviewer: @jctorresM
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
Adds offline decryption key and uses it to decrypt content during offline playback
Jira: VEX-5938
https://jira.tenkasu.net/browse/VEX-5938
- Update to accept scheme for key required to play offline playback
- Uses provided scheme to intercept call from player and return the key
- Fixes player item observer removal pattern
### Reviews
- Major reviewer (domain expert): @armadilio3
- Allow player to be init before source is provided, and later update once a source is provided.
- Adds handling for providing a empty source in order to stop playback and clear out any existing content
This PR adds the property disableBuffering: boolean for android. The PR was initally created as a personal fork and referenced in crunchyroll/vilos#1227
also updated RNVLoadControl constructor and method to reflect new ExoPlayer.LoadControl api
related ticket: https://jira.tenkasu.net/browse/VEX-3776
Fix AudioFocus bug that could cause the player to stop responding to play/pause in some instances.
Fixes issue react-native-video#1945
This was caused by the player requesting audio focus on each play (un-pause) and that resulted in a small window of Audio focus loss and then gain. The focus loss results in the player being paused while the player was supposed to play at the time. The solution is to keep track of Audio focus and not request new focus if we already have it.