@pictor-sdk/video-android 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/dev/pictor/video/CompositionSpike.kt +49 -9
- package/android/src/main/java/dev/pictor/video/ResumeReadiness.kt +82 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/compositionSpike.ts +10 -0
- package/src/useCompositionPlayback.ts +14 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pictor-sdk/video-android",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Optional Android video playback and export adapter for Pictor. Requires Android API 29+.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"react": ">=18.0.0",
|
|
30
30
|
"@expo/config-plugins": ">=54.0.0",
|
|
31
31
|
"react-native-reanimated": ">=3.16.0",
|
|
32
|
-
"@pictor-sdk/video-core": "^0.1.
|
|
32
|
+
"@pictor-sdk/video-core": "^0.1.2"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"react-native": "^0.81.0",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@types/react": "^19.0.0",
|
|
41
41
|
"@expo/config-plugins": "^54.0.5",
|
|
42
42
|
"react-native-reanimated": "^4.1.0",
|
|
43
|
-
"@pictor-sdk/video-core": "0.1.
|
|
43
|
+
"@pictor-sdk/video-core": "0.1.2"
|
|
44
44
|
},
|
|
45
45
|
"codegenConfig": {
|
|
46
46
|
"name": "PictorVideoSpec",
|
package/src/compositionSpike.ts
CHANGED
|
@@ -106,6 +106,16 @@ export interface CompositionSpikeState {
|
|
|
106
106
|
releases?: number
|
|
107
107
|
readinessTimeouts?: number
|
|
108
108
|
readinessFailure?: string | null
|
|
109
|
+
/**
|
|
110
|
+
* How many resumes had to be re-primed because no frame could satisfy them.
|
|
111
|
+
*
|
|
112
|
+
* A resume whose target sits past the newest frame cannot be released on
|
|
113
|
+
* anything that exists, so playback seeks to the frame on screen to make the
|
|
114
|
+
* decoder produce one. Counted because it is a recovery, not a normal path:
|
|
115
|
+
* a number that climbs steadily is the renderer falling behind the transport
|
|
116
|
+
* more often than it should.
|
|
117
|
+
*/
|
|
118
|
+
primedResumes?: number
|
|
109
119
|
/** How long the last hold lasted before playback was released. */
|
|
110
120
|
holdMs?: number
|
|
111
121
|
/**
|
|
@@ -105,6 +105,19 @@ export interface CompositionPlaybackState {
|
|
|
105
105
|
width: number
|
|
106
106
|
height: number
|
|
107
107
|
error: string | null
|
|
108
|
+
/**
|
|
109
|
+
* Why the transport refused to start, or null.
|
|
110
|
+
*
|
|
111
|
+
* Playback is released on a frame that shows the position asked for, and if
|
|
112
|
+
* no such frame arrives the hold times out and the transport stays stopped
|
|
113
|
+
* rather than starting on an unverified picture. That used to be invisible:
|
|
114
|
+
* the control stayed enabled, the press was accepted, and nothing happened,
|
|
115
|
+
* with no way for a host to tell that apart from a person who had not pressed
|
|
116
|
+
* it yet. Pressing play again clears it and tries afresh.
|
|
117
|
+
*
|
|
118
|
+
* @experimental
|
|
119
|
+
*/
|
|
120
|
+
readinessFailure: string | null
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
function composedState(snapshot: CompositionSpikeState): CompositionPlaybackState {
|
|
@@ -130,6 +143,7 @@ function composedState(snapshot: CompositionSpikeState): CompositionPlaybackStat
|
|
|
130
143
|
width: 0,
|
|
131
144
|
height: 0,
|
|
132
145
|
error: snapshot.error ?? null,
|
|
146
|
+
readinessFailure: snapshot.readinessFailure ?? null,
|
|
133
147
|
}
|
|
134
148
|
}
|
|
135
149
|
|