You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The root problem is that, the start positions of the wrapped `ProgressiveMS`
and `silenceMS` are different.
This start position is set from the `ClippingMS` that wraps the `ProgressiveMS`.
This start position is propagated up to the top level media source in
`onChildSourceInfoRefreshed()`.
For example, if the media is 6s long, and clipped from 3s, slowed down 2x.
- `ClippingMS` sets start time to 3s, propagated up to the top level
- Hence TrackSelection instruct the `SpeedChangingMS` to start from 3s.
- `SpeedChangingMS` would scale this to 1.5s because of the slowdown
- **This is an error!** Because the media should start from 3s.
- In a subsequent `readDiscontinuity()` (from `EPII.updatePlaybackPositions()`),
`ProgressiveMS` reports a discontinuity at 1.5s (the last seek position)
- Next, `silenceMS` is seeked to this discontinuity and **this is another issue**: the clipping is from 3s, and thus the
`clippingMS` seeks to 3s. This causes the `MergingMS` to throw "Unexpected child seekToUs result": seeking to 1.5s but actually seeked to 3.
This CL solves this issue by setting correct, speed adjusted start position
on the `SpeedChangingMS`
PiperOrigin-RevId: 786239170
Copy file name to clipboardExpand all lines: libraries/transformer/src/androidTest/java/androidx/media3/transformer/CompositionPlayerParameterizedPlaybackTest.java
0 commit comments