Allow sink provider speed to be set at any time
VideoSink.initialize will be added in a next CL and we want to allow setPlaybackSpeed to be called at any time. PiperOrigin-RevId: 624942845
This commit is contained in:
parent
42335893da
commit
0a741cad36
@ -212,14 +212,16 @@ public final class CompositingVideoSinkProvider
|
|||||||
@Nullable private Pair<Surface, Size> currentSurfaceAndSize;
|
@Nullable private Pair<Surface, Size> currentSurfaceAndSize;
|
||||||
private int pendingFlushCount;
|
private int pendingFlushCount;
|
||||||
private @State int state;
|
private @State int state;
|
||||||
|
private float playbackSpeed;
|
||||||
|
|
||||||
private CompositingVideoSinkProvider(Builder builder) {
|
private CompositingVideoSinkProvider(Builder builder) {
|
||||||
this.context = builder.context;
|
context = builder.context;
|
||||||
videoEffects = ImmutableList.of();
|
videoEffects = ImmutableList.of();
|
||||||
previewingVideoGraphFactory = checkStateNotNull(builder.previewingVideoGraphFactory);
|
previewingVideoGraphFactory = checkStateNotNull(builder.previewingVideoGraphFactory);
|
||||||
listeners = new CopyOnWriteArraySet<>();
|
listeners = new CopyOnWriteArraySet<>();
|
||||||
clock = Clock.DEFAULT;
|
clock = Clock.DEFAULT;
|
||||||
state = STATE_CREATED;
|
state = STATE_CREATED;
|
||||||
|
playbackSpeed = 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -248,6 +250,7 @@ public final class CompositingVideoSinkProvider
|
|||||||
this.videoFrameReleaseControl = videoFrameReleaseControl;
|
this.videoFrameReleaseControl = videoFrameReleaseControl;
|
||||||
videoFrameRenderControl =
|
videoFrameRenderControl =
|
||||||
new VideoFrameRenderControl(/* frameRenderer= */ this, videoFrameReleaseControl);
|
new VideoFrameRenderControl(/* frameRenderer= */ this, videoFrameReleaseControl);
|
||||||
|
videoFrameRenderControl.setPlaybackSpeed(playbackSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -524,7 +527,10 @@ public final class CompositingVideoSinkProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setPlaybackSpeed(float speed) {
|
private void setPlaybackSpeed(float speed) {
|
||||||
checkStateNotNull(videoFrameRenderControl).setPlaybackSpeed(speed);
|
this.playbackSpeed = speed;
|
||||||
|
if (videoFrameRenderControl != null) {
|
||||||
|
videoFrameRenderControl.setPlaybackSpeed(speed);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onStreamOffsetChange(long bufferPresentationTimeUs, long streamOffsetUs) {
|
private void onStreamOffsetChange(long bufferPresentationTimeUs, long streamOffsetUs) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user