Skip to content

Commit

Permalink
Merge pull request #416 from bitmovin/release/v0.19.0
Browse files Browse the repository at this point in the history
Release 0.19.0
  • Loading branch information
rolandkakonyi authored Mar 22, 2024
2 parents ca3fd2e + 97f0097 commit 63618dd
Show file tree
Hide file tree
Showing 27 changed files with 909 additions and 355 deletions.
8 changes: 6 additions & 2 deletions .github/actions/setup-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ inputs:
description: Setup node and install root and subproject node modules (overrides `node` input)
default: false
required: false
brew:
description: Setup Homebrew
default: false
required: false
ios:
description: Setup xcode and install dependencies
description: Setup xcode and install dependencies (overrides `brew` input)
default: false
required: false
restore-pods:
Expand Down Expand Up @@ -68,7 +72,7 @@ runs:
xcode-version: '14.3'

- name: Install dependencies
if: ${{ inputs.ios == 'true' }}
if: ${{ inputs.ios == 'true' || inputs.brew == 'true' }}
shell: bash
run: brew bundle install

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/create-sdk-update-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ jobs:
with:
node: true
restore-pods: true
brew: true

- name: Bump iOS player SDK version
if: ${{ inputs.sdk_name == 'ios' }}
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## [0.19.0]

### Added

- `CueEnterEvent` and `CueExitEvent` to signal when a subtitle entry transitions into an active or inactive status respectively

### Changed

- Update Bitmovin's native Android SDK version to `3.63.0`
- Update Bitmovin's native iOS SDK version to `3.57.2`

### Fixed

- Fix potential event name conflicts with other 3rd party libraries

## [0.18.0] (2024-03-06)

### Changed
Expand Down
2 changes: 1 addition & 1 deletion RNBitmovinPlayer.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Pod::Spec.new do |s|
s.source_files = "ios/**/*.{h,m,mm,swift}"

s.dependency "React-Core"
s.dependency "BitmovinPlayer", "3.56.3"
s.dependency "BitmovinPlayer", "3.57.2"
s.ios.dependency "GoogleAds-IMA-iOS-SDK", "3.18.4"
s.tvos.dependency "GoogleAds-IMA-tvOS-SDK", "4.8.2"
end
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -103,5 +103,5 @@ dependencies {
// Bitmovin
implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.31.0'
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'com.bitmovin.player:player:3.61.0+jason'
implementation 'com.bitmovin.player:player:3.63.0+jason'
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ private val EVENT_CLASS_TO_REACT_NATIVE_NAME_MAPPING = mapOf(
PlayerEvent.CastStopped::class to "castStopped",
PlayerEvent.CastWaitingForDevice::class to "castWaitingForDevice",
PlayerEvent.CastTimeUpdated::class to "castTimeUpdated",
PlayerEvent.CueEnter::class to "cueEnter",
PlayerEvent.CueExit::class to "cueExit",
)

private val EVENT_CLASS_TO_REACT_NATIVE_NAME_MAPPING_UI = mapOf<KClass<out Event>, String>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,65 +68,67 @@ class RNPlayerViewManager(private val context: ReactApplicationContext) : Simple
* be accessed from React.
*/
private val bubblingEventsMapping: Map<String, String> = mapOf(
"event" to "onEvent",
"playerError" to "onPlayerError",
"playerWarning" to "onPlayerWarning",
"destroy" to "onDestroy",
"muted" to "onMuted",
"unmuted" to "onUnmuted",
"ready" to "onReady",
"paused" to "onPaused",
"play" to "onPlay",
"playing" to "onPlaying",
"playbackFinished" to "onPlaybackFinished",
"seek" to "onSeek",
"seeked" to "onSeeked",
"timeShift" to "onTimeShift",
"timeShifted" to "onTimeShifted",
"stallStarted" to "onStallStarted",
"stallEnded" to "onStallEnded",
"timeChanged" to "onTimeChanged",
"sourceLoad" to "onSourceLoad",
"sourceLoaded" to "onSourceLoaded",
"sourceUnloaded" to "onSourceUnloaded",
"sourceError" to "onSourceError",
"sourceWarning" to "onSourceWarning",
"audioAdded" to "onAudioAdded",
"audioChanged" to "onAudioChanged",
"audioRemoved" to "onAudioRemoved",
"subtitleAdded" to "onSubtitleAdded",
"subtitleChanged" to "onSubtitleChanged",
"subtitleRemoved" to "onSubtitleRemoved",
"downloadFinished" to "onDownloadFinished",
"videoDownloadQualityChanged" to "onVideoDownloadQualityChanged",
"pictureInPictureAvailabilityChanged" to "onPictureInPictureAvailabilityChanged",
"pictureInPictureEnter" to "onPictureInPictureEnter",
"pictureInPictureExit" to "onPictureInPictureExit",
"adBreakFinished" to "onAdBreakFinished",
"adBreakStarted" to "onAdBreakStarted",
"adClicked" to "onAdClicked",
"adError" to "onAdError",
"adFinished" to "onAdFinished",
"adManifestLoad" to "onAdManifestLoad",
"adManifestLoaded" to "onAdManifestLoaded",
"adQuartile" to "onAdQuartile",
"adScheduled" to "onAdScheduled",
"adSkipped" to "onAdSkipped",
"adStarted" to "onAdStarted",
"videoPlaybackQualityChanged" to "onVideoPlaybackQualityChanged",
"fullscreenEnabled" to "onFullscreenEnabled",
"fullscreenDisabled" to "onFullscreenDisabled",
"fullscreenEnter" to "onFullscreenEnter",
"fullscreenExit" to "onFullscreenExit",
"castStart" to "onCastStart",
"castPlaybackFinished" to "onCastPlaybackFinished",
"castPaused" to "onCastPaused",
"castPlaying" to "onCastPlaying",
"castStarted" to "onCastStarted",
"castAvailable" to "onCastAvailable",
"castStopped" to "onCastStopped",
"castWaitingForDevice" to "onCastWaitingForDevice",
"castTimeUpdated" to "onCastTimeUpdated",
"event" to "onBmpEvent",
"playerError" to "onBmpPlayerError",
"playerWarning" to "onBmpPlayerWarning",
"destroy" to "onBmpDestroy",
"muted" to "onBmpMuted",
"unmuted" to "onBmpUnmuted",
"ready" to "onBmpReady",
"paused" to "onBmpPaused",
"play" to "onBmpPlay",
"playing" to "onBmpPlaying",
"playbackFinished" to "onBmpPlaybackFinished",
"seek" to "onBmpSeek",
"seeked" to "onBmpSeeked",
"timeShift" to "onBmpTimeShift",
"timeShifted" to "onBmpTimeShifted",
"stallStarted" to "onBmpStallStarted",
"stallEnded" to "onBmpStallEnded",
"timeChanged" to "onBmpTimeChanged",
"sourceLoad" to "onBmpSourceLoad",
"sourceLoaded" to "onBmpSourceLoaded",
"sourceUnloaded" to "onBmpSourceUnloaded",
"sourceError" to "onBmpSourceError",
"sourceWarning" to "onBmpSourceWarning",
"audioAdded" to "onBmpAudioAdded",
"audioChanged" to "onBmpAudioChanged",
"audioRemoved" to "onBmpAudioRemoved",
"subtitleAdded" to "onBmpSubtitleAdded",
"subtitleChanged" to "onBmpSubtitleChanged",
"subtitleRemoved" to "onBmpSubtitleRemoved",
"downloadFinished" to "onBmpDownloadFinished",
"videoDownloadQualityChanged" to "onBmpVideoDownloadQualityChanged",
"pictureInPictureAvailabilityChanged" to "onBmpPictureInPictureAvailabilityChanged",
"pictureInPictureEnter" to "onBmpPictureInPictureEnter",
"pictureInPictureExit" to "onBmpPictureInPictureExit",
"adBreakFinished" to "onBmpAdBreakFinished",
"adBreakStarted" to "onBmpAdBreakStarted",
"adClicked" to "onBmpAdClicked",
"adError" to "onBmpAdError",
"adFinished" to "onBmpAdFinished",
"adManifestLoad" to "onBmpAdManifestLoad",
"adManifestLoaded" to "onBmpAdManifestLoaded",
"adQuartile" to "onBmpAdQuartile",
"adScheduled" to "onBmpAdScheduled",
"adSkipped" to "onBmpAdSkipped",
"adStarted" to "onBmpAdStarted",
"videoPlaybackQualityChanged" to "onBmpVideoPlaybackQualityChanged",
"fullscreenEnabled" to "onBmpFullscreenEnabled",
"fullscreenDisabled" to "onBmpFullscreenDisabled",
"fullscreenEnter" to "onBmpFullscreenEnter",
"fullscreenExit" to "onBmpFullscreenExit",
"castStart" to "onBmpCastStart",
"castPlaybackFinished" to "onBmpCastPlaybackFinished",
"castPaused" to "onBmpCastPaused",
"castPlaying" to "onBmpCastPlaying",
"castStarted" to "onBmpCastStarted",
"castAvailable" to "onBmpCastAvailable",
"castStopped" to "onBmpCastStopped",
"castWaitingForDevice" to "onBmpCastWaitingForDevice",
"castTimeUpdated" to "onBmpCastTimeUpdated",
"cueEnter" to "onBmpCueEnter",
"cueExit" to "onBmpCueExit",
)

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,18 @@ fun PlayerEvent.toJson(): WritableMap {
json.putString("deviceName", deviceName)
}

is PlayerEvent.CueEnter -> {
json.putDouble("start", start)
json.putDouble("end", end)
json.putString("text", text)
}

is PlayerEvent.CueExit -> {
json.putDouble("start", start)
json.putDouble("end", end)
json.putString("text", text)
}

else -> {
// Event is not supported yet or does not have any additional data
}
Expand Down
24 changes: 12 additions & 12 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
PODS:
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.0):
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.1):
- BitmovinAnalyticsCollector/Core
- BitmovinPlayerCore (~> 3.48)
- BitmovinAnalyticsCollector/Core (3.6.0)
- BitmovinPlayer (3.56.3):
- BitmovinAnalyticsCollector/Core (3.6.1)
- BitmovinPlayer (3.57.2):
- BitmovinAnalyticsCollector/BitmovinPlayer (~> 3.0)
- BitmovinPlayerCore (= 3.56.3)
- BitmovinPlayerCore (3.56.3)
- BitmovinPlayerCore (= 3.57.2)
- BitmovinPlayerCore (3.57.2)
- boost (1.83.0)
- DoubleConversion (1.1.6)
- FBLazyVector (0.73.4-0)
Expand Down Expand Up @@ -1051,8 +1051,8 @@ PODS:
- React-jsi (= 0.73.4-0)
- React-logger (= 0.73.4-0)
- React-perflogger (= 0.73.4-0)
- RNBitmovinPlayer (0.18.0):
- BitmovinPlayer (= 3.56.3)
- RNBitmovinPlayer (0.19.0):
- BitmovinPlayer (= 3.57.2)
- GoogleAds-IMA-iOS-SDK (= 3.18.4)
- GoogleAds-IMA-tvOS-SDK (= 4.8.2)
- React-Core
Expand Down Expand Up @@ -1248,9 +1248,9 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
BitmovinAnalyticsCollector: 70f10cfc67f7e4bf38daddf4362f54bd6125683d
BitmovinPlayer: 307f5fda61d0a91c3c820207dd6ae0f183a06c27
BitmovinPlayerCore: a0022248b42971e7df20435790703f17fb08359d
BitmovinAnalyticsCollector: cc31a7ffd96850f5bd4f41b39ea22b467734e9c9
BitmovinPlayer: 4e054aa7959995a779ecaf5e8d995567b8c3437a
BitmovinPlayerCore: 2f5cc0b8233c162f6279ea050c5123ced204aae8
boost: 88202336c3ba1e7a264a83c0c888784b0f360c28
DoubleConversion: 234abba95e31cc2aada0cf3b97cdb11bc5b90575
FBLazyVector: 33a271a7e8de0bd321e47356d8bc3b2d5fb9ddba
Expand Down Expand Up @@ -1305,12 +1305,12 @@ SPEC CHECKSUMS:
React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8
React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74
ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2
RNBitmovinPlayer: 94f75de44ed2e9e640c55ed1a89a867b149f6176
RNBitmovinPlayer: e071744c1452eaa7b70fd119aece83014d83e897
RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca
RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Yoga: ab50eb8f7fcf1b36aad1801b5687b66b2c0aa000

PODFILE CHECKSUM: 6a89a6e0087c419fcb3ad7474478c93dc48f198d

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
2 changes: 2 additions & 0 deletions example/src/screens/SubtitlePlayback.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ export default function SubtitlePlayback() {
<PlayerView
player={player}
style={styles.player}
onCueEnter={onEvent}
onCueExit={onEvent}
onSubtitleAdded={onEvent}
onSubtitleChanged={onEvent}
onSubtitleRemoved={onEvent}
Expand Down
30 changes: 15 additions & 15 deletions integration_test/ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
PODS:
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.0):
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.1):
- BitmovinAnalyticsCollector/Core
- BitmovinPlayerCore (~> 3.48)
- BitmovinAnalyticsCollector/Core (3.6.0)
- BitmovinPlayer (3.56.3):
- BitmovinAnalyticsCollector/Core (3.6.1)
- BitmovinPlayer (3.57.2):
- BitmovinAnalyticsCollector/BitmovinPlayer (~> 3.0)
- BitmovinPlayerCore (= 3.56.3)
- BitmovinPlayerCore (3.56.3)
- BitmovinPlayerCore (= 3.57.2)
- BitmovinPlayerCore (3.57.2)
- boost (1.83.0)
- DoubleConversion (1.1.6)
- FBLazyVector (0.73.4-0)
Expand Down Expand Up @@ -1040,8 +1040,8 @@ PODS:
- React-jsi (= 0.73.4-0)
- React-logger (= 0.73.4-0)
- React-perflogger (= 0.73.4-0)
- RNBitmovinPlayer (0.17.0):
- BitmovinPlayer (= 3.56.3)
- RNBitmovinPlayer (0.18.0):
- BitmovinPlayer (= 3.57.2)
- GoogleAds-IMA-iOS-SDK (= 3.18.4)
- GoogleAds-IMA-tvOS-SDK (= 4.8.2)
- React-Core
Expand Down Expand Up @@ -1215,15 +1215,15 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
BitmovinAnalyticsCollector: 70f10cfc67f7e4bf38daddf4362f54bd6125683d
BitmovinPlayer: 307f5fda61d0a91c3c820207dd6ae0f183a06c27
BitmovinPlayerCore: a0022248b42971e7df20435790703f17fb08359d
BitmovinAnalyticsCollector: cc31a7ffd96850f5bd4f41b39ea22b467734e9c9
BitmovinPlayer: 4e054aa7959995a779ecaf5e8d995567b8c3437a
BitmovinPlayerCore: 2f5cc0b8233c162f6279ea050c5123ced204aae8
boost: 88202336c3ba1e7a264a83c0c888784b0f360c28
DoubleConversion: 74cb0ce4de271b23e772567504735c87134edf0a
DoubleConversion: 234abba95e31cc2aada0cf3b97cdb11bc5b90575
FBLazyVector: 33a271a7e8de0bd321e47356d8bc3b2d5fb9ddba
FBReactNativeSpec: 55b7e93b71f300a051190f63c2afeccd839b7e9a
fmt: 745abaaffe4da13101ae15d70dc68ec3d6a666a2
glog: f0ddebfc00a905e9213e37801095a0a705d2e5f6
glog: a2ded9bf28f0cb2fce90ad21eb419299a500ff6c
GoogleAds-IMA-iOS-SDK: b01284e3bf3d64ba948de6692ffda531452c3713
hermes-engine: e7981489a718dff7c3a2dacd6302b8761375928d
libevent: a6d75fcd7be07cbc5070300ea8dbc8d55dfab88e
Expand Down Expand Up @@ -1267,10 +1267,10 @@ SPEC CHECKSUMS:
React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8
React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74
ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2
RNBitmovinPlayer: d171860884acad7345ce49474f4f907d5445d54a
RNBitmovinPlayer: 205b1ee254cd950b99517c1e23109f86ef357bb9
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Yoga: e7f2a2256464d4ef7b3825d216bd22aac3b449c1
Yoga: ab50eb8f7fcf1b36aad1801b5687b66b2c0aa000

PODFILE CHECKSUM: 0bfe194f5e28f1cf54d3d732eda8c78fadbeeedd

COCOAPODS: 1.15.2
COCOAPODS: 1.14.3
2 changes: 2 additions & 0 deletions integration_test/playertesting/EventType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ export enum EventType {
CastStopped = 'onCastStopped',
CastTimeUpdated = 'onCastTimeUpdated',
CastWaitingForDevice = 'onCastWaitingForDevice',
CueEnter = 'onCueEnter',
CueExit = 'onCueExit',
Destroy = 'onDestroy',
Event = 'onEvent',
FullscreenEnabled = 'onFullscreenEnabled',
Expand Down
Loading

0 comments on commit 63618dd

Please sign in to comment.