@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pictor-sdk/video-android",
3
- "version": "0.1.5",
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.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.1"
43
+ "@pictor-sdk/video-core": "0.1.2"
44
44
  },
45
45
  "codegenConfig": {
46
46
  "name": "PictorVideoSpec",
@@ -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