mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Allow setting VideoFrameMetadataListener on CompositionPlayer
PiperOrigin-RevId: 743607386
This commit is contained in:
parent
feae2dadeb
commit
9785c1fd92
@ -77,6 +77,7 @@ import androidx.media3.exoplayer.trackselection.ExoTrackSelection;
|
|||||||
import androidx.media3.exoplayer.upstream.Allocator;
|
import androidx.media3.exoplayer.upstream.Allocator;
|
||||||
import androidx.media3.exoplayer.util.EventLogger;
|
import androidx.media3.exoplayer.util.EventLogger;
|
||||||
import androidx.media3.exoplayer.video.PlaybackVideoGraphWrapper;
|
import androidx.media3.exoplayer.video.PlaybackVideoGraphWrapper;
|
||||||
|
import androidx.media3.exoplayer.video.VideoFrameMetadataListener;
|
||||||
import androidx.media3.exoplayer.video.VideoFrameReleaseControl;
|
import androidx.media3.exoplayer.video.VideoFrameReleaseControl;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
@ -320,6 +321,7 @@ public final class CompositionPlayer extends SimpleBasePlayer
|
|||||||
private @MonotonicNonNull Composition composition;
|
private @MonotonicNonNull Composition composition;
|
||||||
private @MonotonicNonNull Size videoOutputSize;
|
private @MonotonicNonNull Size videoOutputSize;
|
||||||
private @MonotonicNonNull PlaybackVideoGraphWrapper playbackVideoGraphWrapper;
|
private @MonotonicNonNull PlaybackVideoGraphWrapper playbackVideoGraphWrapper;
|
||||||
|
private @MonotonicNonNull VideoFrameMetadataListener pendingVideoFrameMetadatListener;
|
||||||
|
|
||||||
private long compositionDurationUs;
|
private long compositionDurationUs;
|
||||||
private boolean playWhenReady;
|
private boolean playWhenReady;
|
||||||
@ -606,6 +608,15 @@ public final class CompositionPlayer extends SimpleBasePlayer
|
|||||||
return Futures.immediateVoidFuture();
|
return Futures.immediateVoidFuture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Sets the {@link VideoFrameMetadataListener}. */
|
||||||
|
public void setVideoFrameMetadataListener(VideoFrameMetadataListener videoFrameMetadataListener) {
|
||||||
|
if (players.isEmpty()) {
|
||||||
|
pendingVideoFrameMetadatListener = videoFrameMetadataListener;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
players.get(0).setVideoFrameMetadataListener(videoFrameMetadataListener);
|
||||||
|
}
|
||||||
|
|
||||||
// CompositionPlayerInternal.Listener methods
|
// CompositionPlayerInternal.Listener methods
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -770,6 +781,9 @@ public final class CompositionPlayer extends SimpleBasePlayer
|
|||||||
|
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
setPrimaryPlayerSequence(player, editedMediaItemSequence);
|
setPrimaryPlayerSequence(player, editedMediaItemSequence);
|
||||||
|
if (pendingVideoFrameMetadatListener != null) {
|
||||||
|
player.setVideoFrameMetadataListener(pendingVideoFrameMetadatListener);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
setSecondaryPlayerSequence(player, editedMediaItemSequence, primarySequenceDurationUs);
|
setSecondaryPlayerSequence(player, editedMediaItemSequence, primarySequenceDurationUs);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user