client-sdk-swift icon indicating copy to clipboard operation
client-sdk-swift copied to clipboard

switchCameraPosition on CameraCapturer causes the VideoView to be flipped horizontally for split of a second

Open patryk-sredzinski opened this issue 1 year ago • 1 comments

Describe the bug When you want to switch camera between front and rear camera, VideoView shows frame flipped horizontally.

SDK Version 2.0.5

iOS/macOS Version iPhone 15 Pro, iOS 17.5

Minimal Example code I've made a few changes to uikit-minimal repository to show this effect.

branch: bug/switch-camera-position-flipped-horizontally

PR showing the changes: https://github.com/patryk-sredzinski/client-sdk-swift/pull/1/files

Steps to Reproduce

  1. Create LocalVideoTrack
  2. Create VideoView
  3. Start LocalVideoTrack
  4. Set VideoView's track to LocalVideoTrack
  5. Execute switchCameraPosition on LocalVideoTrack's capturer
  6. Observe
// If this myVideoTrack is added to a videoView, the ugly mirror/horizontal flip occours 
try await (myVideoTrack.capturer as? CameraCapturer)?.switchCameraPosition()

Expected behavior VideoView should probably just keep the last valid frame, and flip only when new frame from new camera is available

Screenshots output

This just looks bad and breaks a nice user experience. or maybe I am doing something wrong here?

patryk-sredzinski avatar Apr 05 '24 09:04 patryk-sredzinski

Thanks I have noticed this too. It needs some timing tweaking etc.

hiroshihorie avatar Apr 07 '24 22:04 hiroshihorie

Further improvements in this PR: https://github.com/livekit/client-sdk-swift/pull/383

hiroshihorie avatar May 25 '24 09:05 hiroshihorie