From 76bc16fba1cdbfbedea058fe54ec420c8eed0961 Mon Sep 17 00:00:00 2001 From: thegobot Date: Mon, 6 Dec 2021 12:16:34 +0800 Subject: [PATCH] adjusting timestamps when hot switching the camera When switching cameras, the encoders must be paused. Otherwise, there will be problems with the DTS on the client, SRS server with enabled time_jitter incorrectly corrects video DTS (with enabled ATC there is no problem) --- .../src/main/java/net/ossrs/yasea/SrsPublisher.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/library/src/main/java/net/ossrs/yasea/SrsPublisher.java b/library/src/main/java/net/ossrs/yasea/SrsPublisher.java index 39155bb..a8c9988 100644 --- a/library/src/main/java/net/ossrs/yasea/SrsPublisher.java +++ b/library/src/main/java/net/ossrs/yasea/SrsPublisher.java @@ -309,6 +309,11 @@ public class SrsPublisher { } public void switchCameraFace(int id) { + + if (mEncoder != null && mEncoder.isEnabled()) { + mEncoder.pause(); + } + mCameraView.stopCamera(); mCameraView.setCameraId(id); if (id == 0) { @@ -320,6 +325,11 @@ public class SrsPublisher { mCameraView.enableEncoding(); } mCameraView.startCamera(); + + if (mEncoder != null && mEncoder.isEnabled()) { + mEncoder.resume(); + } + } public void setRtmpHandler(RtmpHandler handler) {