* fix: refactor side loaded text tracks management
More textTracks in source.
android/ios: ensure text tracks are not selected by default
android/ios make textTrack field not nullable
clean up doc
check compatibility with the old api
Add comments on deprecated JS apis
Apply API change on basic sample
* chore: fix linter
* fix(ios): fix build with caching & remove warnings
* feat(android): handle navigation bar status in full-screen mode
* chore: update default value of prop
* chore(android): rework fullscreen configuration
---------
Co-authored-by: mostafahasani <seyedmostafahassani@gmail.com>
* fix(android): add subtitleStyle.subtitlesFollowVideo prop to control subtitles positionning
* docs: add new prop description
* docs: add supported platform for subtitleStyle
* chore: use constructor instead of parse
* feat(VideoNativeComponent.ts): add support for cmcd configuration in VideoSrc type to enable cmcd feature on android
feat(video.ts): introduce CmcdMode enum and CmcdConfiguration type to define cmcd configuration options
* feat(Video.tsx): add support for CMCD configuration in Video component to handle Content Management and Delivery (CMCD) headers for Android platform.
* feat(CMCDProps.kt): add CMCDProps class to handle CMCD related properties and parsing logic for React Native module
* feat(CMCDConfig.kt): add CMCDConfig class to handle CMCD configuration for ExoPlayer with support for custom data and configuration options.
* feat(ReactExoplayerViewManager.java): add support for CMCD configuration in ReactExoplayerViewManager to enable Content Management and Control Data (CMCD) for better video playback optimization.
* feat(ReactExoplayerView.java): add support for setting CmcdConfiguration.Factory to customize CMCD configuration for media playback
* feat(Source.kt): add support for CMCD properties linked to the source to enhance functionality and data handling
* docs(props.mdx): add documentation for configuring CMCD parameters in the component, including usage examples and default values
* refactor(ReactExoplayerViewManager.java): remove unused PROP_CMCD and prevCmcdConfig variables to clean up code and improve readability
* refactor(Video.tsx): simplify cmcd configuration logic for better readability and maintainability
* docs(props.mdx): improve props documentation for clarity and consistency
feat(props.mdx): add definitions for CmcdMode enum and CmcdData type to enhance understanding of CMCD data structure and usage
* refactor(CMCDProps.kt): refactor CMCDProps class to data class for improved readability and immutability
- update CMCDProps class to use List instead of Array for properties
* refactor(Video.tsx): refactor createCmcdHeader function to improve code readability and reduce duplication
* fix(CMCDProps.kt): remove import statement for CmcdConfiguration
* feat(ReactExoplayerView.java): add support for CMCD configuration in ReactExoplayerView component
feat(ReactExoplayerViewManager.java): remove redundant CMCD configuration logic from ReactExoplayerViewManager to simplify code and improve maintainability
* fix(Video.tsx): merge _cmcd memo into src memo for optimization
* 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>