40 Commits

Author SHA1 Message Date
Gabriel Rivero
292b53916a
VEX-6030: Reduce buffer size based on heap (#13)
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
2021-11-09 14:37:52 -04:00
Armands Malejev
f712eecb4f
VEX-6011: Align AVOD resolutions with available resolutions on Content (#14)
Add support for content tracks and improve track selection to work even during ads playback.
2021-11-09 14:22:32 +02:00
Gabriel Rivero
7dbc5eb078 add config parameter maxHeapAllocationPercent 2021-11-04 13:54:43 -04:00
Nick Fujita
cba88fa9d8
VEX-5044: Allow exoplayer to preinit with empty source (#6)
- 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
2021-06-30 10:24:21 +09:00
Armands Malejev
80873102a4
VEX-4579: Network loss handling (#5)
Add support for customizing back buffer duration and handle network errors gracefully to prevent releasing the player when network is lost.
2021-05-17 13:09:09 +03:00
Adrian Mui
61e6535b2f
Feature/toggle buffering (#3)
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
2021-03-18 12:58:04 +02:00
Daniel Mariño
81b42e7ca7
Add iOS and Android basic DRM support (#1445)
This PR adds support for DRM streams on iOS (Fairplay) and Android (Playready, Widevine, Clearkey)

I am neither Android nor iOS developer, so feel free to provide feedback to improve this PR.

**Test stream for ANDROID:**
```
testStream = {
        uri: 'http://profficialsite.origin.mediaservices.windows.net/c51358ea-9a5e-4322-8951-897d640fdfd7/tearsofsteel_4k.ism/manifest(format=mpd-time-csf)',
        type: 'mpd',
        drm: {
            type: DRMType.PLAYREADY,
            licenseServer: 'http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,sl:150)'
        }
    };
```

or 
```
{
    uri: 'https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd',
    drm: {
        type: 'widevine', //or DRMType.WIDEVINE
        licenseServer: 'https://drm-widevine-licensing.axtest.net/AcquireLicense',
        headers: {
            'X-AxDRM-Message': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU'
        },
    }
}
```

**Test stream for iOS:**
Sorry but I can not provide free streams to test. If anyone can provide test streams, or found some we can use, please let me know to also test them.

It has been tested with a private provider and they work, at least with the `getLicense` override method. (An example implementation is provided in the README)
2020-08-12 18:56:21 -07:00
Anders Lemke
8962720f56
Support preventsDisplaySleepDuringVideoPlayback (#2019)
* Add flag on iOS

* Add flag in Android

* Add documentation

* Add changelog entry

* Also set setKeepScreenOn

* Fix prop not being set

* add preventsDisplaySleepDuringVideoPlayback to exoplayer

* Update android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java

* Update android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java

Co-authored-by: Jens Andersson <jens@fritan.com>

Co-authored-by: Anton Tanderup <antontandrup@gmail.com>
Co-authored-by: Jens Andersson <jens@fritan.com>
2020-06-16 14:31:23 +02:00
Benoit Dion
3e38f88869 Remove Exoplayer deprecations
- Bump Exoplayer to 2.10.4
- Remove deprecated usages of Exoplayer methdos
- Add `ReactExoplayerConfig` as extension points to configure the Exoplayer instance
2019-09-23 08:52:05 -04:00
Hampton Maxwell
4424774ca3
Merge pull request #1448 from sridhard/master
Feature Implementation: Recovery from transient internet failures
2019-02-10 20:07:29 -08:00
Hampton Maxwell
e4763c9d10
Rename failureRetryCount to minLoadRetryCount 2019-02-10 19:47:07 -08:00
sridhar
172954de5a Feature implementation: Failure Retry Count
Feature implementation: Failure Retry Count
2019-01-24 18:49:37 +05:30
Ibrahim Sulaiman
4cc9a4d374 Support for controls in android exoplayer 2019-01-04 14:58:32 +05:30
Hampton Maxwell
45a851e79a
Merge branch 'master' into master 2018-12-31 21:36:49 -08:00
Hampton Maxwell
a43f9c7ce1
Merge branch 'master' into maximumBitRate-adaptive-streaming 2018-12-12 22:30:52 -08:00
vadim
96c42844fe ExoPlayer - Add possibility to hide shutterView 2018-11-28 14:56:58 +02:00
Ash Mishra
5ab8165c3d renamed maximumBitRate to maxBitRate. Added applyModifiers support 2018-11-26 14:50:31 -08:00
Ash Mishra
11db343987 Support for HLS maximum bit rate adaptive streaming 2018-11-26 10:33:09 -08:00
sridhar
5dce3e2161 Code cleanup
Code cleanup
2018-11-01 21:41:57 +05:30
sridhar
aa526206d2 Merge branch 'master' of git://github.com/react-native-community/react-native-video into react-native-community-master
Merge branch 'master' of git://github.com/react-native-community/react-native-video into react-native-community-master
2018-10-27 09:19:28 +05:30
Hampton Maxwell
2d76e491d3
Switch useTextureView to default to true (#1286)
A number of people run into SurfaceView layering issues. It seems better to default to the more compatible option and let people reconfigure if they need the extra SurfaceView performance.
2018-10-13 20:23:30 -07:00
sridhar
6480a6462b Reporting estimatedBandwidth
Reporting estimatedBandwidth
2018-08-25 21:53:11 +05:30
sridhar
16688cef0f Youtube like video track selection
1. Loaded event will give the information about available video tracks
2. selectedVideoTrack prop will give the interface to select the video track. This prop will take the height of the video (Similar to youtube like 144p, 350p etc) and set the video track. If height is 0 then all video tracks will be added to list so that it will work like 'Auto' in youtube
2018-08-24 15:33:46 +05:30
Hampton Maxwell
a60a1277b7
Remove extra space 2018-08-03 15:54:55 -07:00
Bryan van Wijk
cd75e72180 Rename to bufferConfig and use stopPlayback 2018-08-02 09:20:08 +02:00
Bryan van Wijk
dde27a320e Pass loadControl parameters as video props 2018-08-01 15:58:02 +02:00
Hampton Maxwell
06eb1c57d8 Support selecting audio tracks
Implements audio track selection on iOS & Android ExoPlayer. The prop mirrors the API for selectedTextTrack.
2018-07-17 14:14:21 -07:00
Hampton Maxwell
c67dd7b8ef
Merge branch 'master' into master 2018-06-22 18:57:58 -07:00
Hampton Maxwell
e684ba65b6 Fix crash when selectedTextTrack is null or undefined 2018-06-20 15:34:36 -07:00
Hampton Maxwell
e2ea849d9e Add ability to sideload text tracks and report them in onLoad 2018-06-11 21:25:58 -07:00
Emrah
2d89a3fd54
Merge branch 'master' into master 2018-06-09 21:36:09 +02:00
Hampton Maxwell
066a0c9c16 Add support for using a TextureView in ExoPlayer 2018-06-08 00:01:13 -07:00
Hampton Maxwell
9764fe3be4 First pass at text track selection, mostly complete 2018-06-02 02:24:13 -07:00
Hampton Maxwell
fefbe801ef
Merge branch 'master' into master 2018-05-29 15:08:24 -07:00
Hampton Maxwell
4f6baaa2ac Add missing prop for enabling fullscreen 2018-05-18 13:30:01 -07:00
Emrah Kaya
db1d83b83e constants renamed to requestheader 2018-01-13 21:29:53 +01:00
Emrah Kaya
270fdfb657 added optional request headers for remote assests (android & ios) 2017-10-02 20:12:59 +02:00
RalfNieuwenhuizen
c45f5f5b38 Add progressUpdateInterval to android-exoplayer (#540) 2017-03-31 12:15:39 -04:00
Jhen-Jie Hong
d450afc83b [Android] Fix require(...) file resource on production (#429)
* Fix require(...) file resource on Android production

* Update example (use require for ./broadchurch.mp4)

* Fix MainApplication.java of example

* Add default source type
2017-01-31 07:49:23 -05:00
Andrew Jack
9a936c9e8f ExoPlayer (#426) 2017-01-11 07:51:45 -05:00