* chore(js): fix typo
* refactor(js): refactor type code for codegen
* refactor(js): refactor Video component
- parse shutterColor value within JS
- remove internal fullscreen state
* chore(js): add deprecation warning comment
* fix(js): fix return type
* fix(js): fix import path
* refactor(android): apply changed API for new arch
* refactor(ios): apply changed API for new arch
* fix(ios): fix wrong name
* refactor: refactor VideoDecoderProperties
- rename and add wrapper
* refactor(android): Code fixes for backward compatibility with Kotlin
* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* chore(android): refactor DRM props into a dedicated class
* Update android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java
* chore: fix linter
* fix: ensure drm prop is correctly cleaned
* feat(android): move viewType (secure texture) & drm inside the source
The origianl behavior has been kept for interoperability, but marked as deprecated in doc
* chore: fix linter
* chore(ios): move drm prop in source like on android
* chore: fix linter
* chore: clean log
* fix: allow to disable secure View
* chore: fix viewType resolution (source value was not handled)
* chore: use contentDeepEquals instead of manual checks
* chore: fix linter
* fix: ensure player doesn't start when view is unmounted
* Fix/ensure view drop stop playback startup (#3875)
* fix: ensure player doesn't start when view is unmounted
* chore: revert change
* chore: add warning in case of invalid Surface configuration
* chore: code clean
* fix: simplify surface management
* chore: restore previous code
* chore: fix typo
* chore: code cleanup
* feat(android): add multiDrm flag support
* docs: update docs
* chore: fix ios build
* chore: fix deprecated declaration
---------
Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com>
* Fix/ensure view drop stop playback startup (#3875)
* fix: ensure player doesn't start when view is unmounted
* Patch commit to fix the error:
Implicit use of 'self' in closure; use 'self.' to make capture semantics explicit
---------
Co-authored-by: Olivier Bouillet <62574056+freeboub@users.noreply.github.com>
* fix(ios): fix playback status with lifecycle
* chore(ios): fix lint error
* fix(ios): check _playInBackground value within handleExternalPlaybackActiveChange
* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* fix: invert aspect ratio evaluation to find video height / width
* perf: ensure we do not provide callback to native if no callback provided from app
* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size
* chore: improve issue template
* fix(android): avoid video view flickering at playback startup
* chore: fix tvOS supported platform
* chore: fix tvOS build
* chore: update project tvos configuration
* feat(ios): add `showNotificationControls` prop
* feat(android): add `showNotificationControls` prop
* add docs
* feat!: add `metadata` property to srouce
This is breaking change for iOS/tvOS as we are moving some properties, but I believe that this will more readable and more user friendly
* chore(ios): remove UI blocking function
* code review changes for android
* update example
* fix readme
* fix typos
* update docs
* fix typo
* chore: improve sample metadata notification
* update codegen types
* rename properties
* update tvOS example
* reset metadata on source change
* update docs
---------
Co-authored-by: Olivier Bouillet <freeboub@gmail.com>
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix: ensure tracks are well displayed in the sample
* fix(iOS): ensure orientation is correctly reported
* chore: fix build
* fix: ensure poster works as expected and add it to the sample
* chore: drop audioOnly property as not implemented on any platform
* fix(ios): do not save pause state before seeking
* fix(ts): onPlaybackRateChangeData was not correctly typed
* fix(ios): call PictureInPictureStatusChanged callback with native controls
We add RCTPlayerObserver as playerViewController delegate to be notified with PiP lifecycle
should partially fix#3602
* fix(ios): call onRestoreUserInterfaceForPictureInPictureStop callback with native controls
should partially fix#3602