mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Implement DefaultVideoSink.render()
PiperOrigin-RevId: 688948682
This commit is contained in:
parent
e5133e78f5
commit
75f29b6997
@ -21,6 +21,7 @@ import androidx.media3.common.Effect;
|
|||||||
import androidx.media3.common.Format;
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.common.util.Size;
|
import androidx.media3.common.util.Size;
|
||||||
import androidx.media3.common.util.TimestampIterator;
|
import androidx.media3.common.util.TimestampIterator;
|
||||||
|
import androidx.media3.exoplayer.ExoPlaybackException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
@ -177,8 +178,12 @@ import java.util.concurrent.Executor;
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(long positionUs, long elapsedRealtimeUs) {
|
public void render(long positionUs, long elapsedRealtimeUs) throws VideoSinkException {
|
||||||
throw new UnsupportedOperationException();
|
try {
|
||||||
|
videoFrameRenderControl.render(positionUs, elapsedRealtimeUs);
|
||||||
|
} catch (ExoPlaybackException e) {
|
||||||
|
throw new VideoSinkException(e, inputFormat);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -444,8 +444,8 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video
|
|||||||
* @param elapsedRealtimeUs {@link android.os.SystemClock#elapsedRealtime()} in microseconds,
|
* @param elapsedRealtimeUs {@link android.os.SystemClock#elapsedRealtime()} in microseconds,
|
||||||
* taken approximately at the time the playback position was {@code positionUs}.
|
* taken approximately at the time the playback position was {@code positionUs}.
|
||||||
*/
|
*/
|
||||||
private void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException {
|
private void render(long positionUs, long elapsedRealtimeUs) throws VideoSink.VideoSinkException {
|
||||||
videoFrameRenderControl.render(positionUs, elapsedRealtimeUs);
|
defaultVideoSink.render(positionUs, elapsedRealtimeUs);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void flush(boolean resetPosition) {
|
private void flush(boolean resetPosition) {
|
||||||
@ -806,12 +806,7 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(long positionUs, long elapsedRealtimeUs) throws VideoSinkException {
|
public void render(long positionUs, long elapsedRealtimeUs) throws VideoSinkException {
|
||||||
try {
|
PlaybackVideoGraphWrapper.this.render(positionUs, elapsedRealtimeUs);
|
||||||
PlaybackVideoGraphWrapper.this.render(positionUs, elapsedRealtimeUs);
|
|
||||||
} catch (ExoPlaybackException e) {
|
|
||||||
throw new VideoSinkException(
|
|
||||||
e, inputFormat != null ? inputFormat : new Format.Builder().build());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user