mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Set VideoFrameMetadataListener on VideoSink
PiperOrigin-RevId: 627652670
This commit is contained in:
parent
3322092070
commit
579386ff27
4 changed files with 20 additions and 9 deletions
|
|
@ -306,11 +306,6 @@ public final class CompositingVideoSinkProvider
|
||||||
currentSurfaceAndSize = null;
|
currentSurfaceAndSize = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setVideoFrameMetadataListener(VideoFrameMetadataListener videoFrameMetadataListener) {
|
|
||||||
this.videoFrameMetadataListener = videoFrameMetadataListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void release() {
|
public void release() {
|
||||||
if (state == STATE_RELEASED) {
|
if (state == STATE_RELEASED) {
|
||||||
|
|
@ -516,6 +511,11 @@ public final class CompositingVideoSinkProvider
|
||||||
checkStateNotNull(videoFrameRenderControl).flush();
|
checkStateNotNull(videoFrameRenderControl).flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setVideoFrameMetadataListener(
|
||||||
|
VideoFrameMetadataListener videoFrameMetadataListener) {
|
||||||
|
this.videoFrameMetadataListener = videoFrameMetadataListener;
|
||||||
|
}
|
||||||
|
|
||||||
private void setPlaybackSpeed(float speed) {
|
private void setPlaybackSpeed(float speed) {
|
||||||
this.playbackSpeed = speed;
|
this.playbackSpeed = speed;
|
||||||
if (videoFrameRenderControl != null) {
|
if (videoFrameRenderControl != null) {
|
||||||
|
|
@ -758,6 +758,12 @@ public final class CompositingVideoSinkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setVideoFrameMetadataListener(
|
||||||
|
VideoFrameMetadataListener videoFrameMetadataListener) {
|
||||||
|
CompositingVideoSinkProvider.this.setVideoFrameMetadataListener(videoFrameMetadataListener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPlaybackSpeed(@FloatRange(from = 0, fromInclusive = false) float speed) {
|
public void setPlaybackSpeed(@FloatRange(from = 0, fromInclusive = false) float speed) {
|
||||||
CompositingVideoSinkProvider.this.setPlaybackSpeed(speed);
|
CompositingVideoSinkProvider.this.setPlaybackSpeed(speed);
|
||||||
|
|
|
||||||
|
|
@ -756,7 +756,9 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer
|
||||||
break;
|
break;
|
||||||
case MSG_SET_VIDEO_FRAME_METADATA_LISTENER:
|
case MSG_SET_VIDEO_FRAME_METADATA_LISTENER:
|
||||||
frameMetadataListener = (VideoFrameMetadataListener) checkNotNull(message);
|
frameMetadataListener = (VideoFrameMetadataListener) checkNotNull(message);
|
||||||
videoSinkProvider.setVideoFrameMetadataListener(frameMetadataListener);
|
if (videoSink != null) {
|
||||||
|
videoSink.setVideoFrameMetadataListener(frameMetadataListener);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case MSG_SET_AUDIO_SESSION_ID:
|
case MSG_SET_AUDIO_SESSION_ID:
|
||||||
int tunnelingAudioSessionId = (int) checkNotNull(message);
|
int tunnelingAudioSessionId = (int) checkNotNull(message);
|
||||||
|
|
@ -1112,6 +1114,9 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer
|
||||||
// Pass a direct executor since the callback handling involves posting on the app looper
|
// Pass a direct executor since the callback handling involves posting on the app looper
|
||||||
// again, so there's no need to do two hops.
|
// again, so there's no need to do two hops.
|
||||||
directExecutor());
|
directExecutor());
|
||||||
|
if (frameMetadataListener != null) {
|
||||||
|
videoSink.setVideoFrameMetadataListener(frameMetadataListener);
|
||||||
|
}
|
||||||
if (enableEffectsForOwnSinkProvider) {
|
if (enableEffectsForOwnSinkProvider) {
|
||||||
if (displaySurface != null && outputResolution != null) {
|
if (displaySurface != null && outputResolution != null) {
|
||||||
videoSinkProvider.setOutputSurfaceInfo(displaySurface, outputResolution);
|
videoSinkProvider.setOutputSurfaceInfo(displaySurface, outputResolution);
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,9 @@ public interface VideoSink {
|
||||||
*/
|
*/
|
||||||
Surface getInputSurface();
|
Surface getInputSurface();
|
||||||
|
|
||||||
|
/** Sets the {@link VideoFrameMetadataListener}. */
|
||||||
|
void setVideoFrameMetadataListener(VideoFrameMetadataListener videoFrameMetadataListener);
|
||||||
|
|
||||||
/** Sets the playback speed. */
|
/** Sets the playback speed. */
|
||||||
void setPlaybackSpeed(@FloatRange(from = 0, fromInclusive = false) float speed);
|
void setPlaybackSpeed(@FloatRange(from = 0, fromInclusive = false) float speed);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,9 +79,6 @@ public interface VideoSinkProvider {
|
||||||
/** Clears the set output surface info. */
|
/** Clears the set output surface info. */
|
||||||
void clearOutputSurfaceInfo();
|
void clearOutputSurfaceInfo();
|
||||||
|
|
||||||
/** Sets a {@link VideoFrameMetadataListener} which is used in the returned {@link VideoSink}. */
|
|
||||||
void setVideoFrameMetadataListener(VideoFrameMetadataListener videoFrameMetadataListener);
|
|
||||||
|
|
||||||
/** Releases the sink provider. */
|
/** Releases the sink provider. */
|
||||||
void release();
|
void release();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue