diff --git a/shared/video-sdk/develop/stream-raw-video/project-implementation/android.mdx b/shared/video-sdk/develop/stream-raw-video/project-implementation/android.mdx index 7517a2d6c..0ef93458e 100644 --- a/shared/video-sdk/develop/stream-raw-video/project-implementation/android.mdx +++ b/shared/video-sdk/develop/stream-raw-video/project-implementation/android.mdx @@ -9,6 +9,10 @@ 1. Implement the `onCaptureVideoFrame` and `onRenderVideoFrame` callbacks. After obtaining the video data, you can process it according to your specific scenario. + + When modifying parameters in a `VideoFrame`, ensure that the updated parameters match the actual video frame in the buffer. Failure to do so may result in unexpected rotation or distortion in both the local preview and the remote video. + + ```java private final IVideoFrameObserver iVideoFrameObserver = new IVideoFrameObserver() { @Override diff --git a/shared/video-sdk/develop/stream-raw-video/project-implementation/ios.mdx b/shared/video-sdk/develop/stream-raw-video/project-implementation/ios.mdx index fbb59d81e..544f71f12 100644 --- a/shared/video-sdk/develop/stream-raw-video/project-implementation/ios.mdx +++ b/shared/video-sdk/develop/stream-raw-video/project-implementation/ios.mdx @@ -4,6 +4,10 @@ 2. Implement the `onCaptureVideoFrame` and `onRenderVideoFrame` callbacks to handle the capture and rendering of video frames. + + When modifying parameters in a `videoFrame`, ensure that the updated parameters match the actual video frame in the buffer. Failure to do so may result in unexpected rotation or distortion in both the local preview and the remote video. + + ```swift class RawVideoDataMain: BaseViewController { var localVideo = Bundle.loadVideoView(type: .local, audioOnly: false) diff --git a/shared/video-sdk/develop/stream-raw-video/project-implementation/macos.mdx b/shared/video-sdk/develop/stream-raw-video/project-implementation/macos.mdx index af9acf52e..f4505f318 100644 --- a/shared/video-sdk/develop/stream-raw-video/project-implementation/macos.mdx +++ b/shared/video-sdk/develop/stream-raw-video/project-implementation/macos.mdx @@ -4,6 +4,10 @@ 2. Implement the `onCaptureVideoFrame` and `onRenderVideoFrame` callbacks to handle the capture and rendering of video frames. + + When modifying parameters in a `videoFrame`, ensure that the updated parameters match the actual video frame in the buffer. Failure to do so may result in unexpected rotation or distortion in both the local preview and the remote video. + + ```swift class RawVideoDataMain: BaseViewController { var localVideo = Bundle.loadVideoView(type: .local, audioOnly: false) diff --git a/shared/video-sdk/develop/stream-raw-video/project-implementation/windows.mdx b/shared/video-sdk/develop/stream-raw-video/project-implementation/windows.mdx index 04ca2e4bb..10b0d949a 100644 --- a/shared/video-sdk/develop/stream-raw-video/project-implementation/windows.mdx +++ b/shared/video-sdk/develop/stream-raw-video/project-implementation/windows.mdx @@ -3,6 +3,10 @@ 1. Before joining the channel, create an instance of `IVideoFrameObserver` and call `registerVideoFrameObserver` to register the video observer. + + When modifying parameters in a `VideoFrame`, ensure that the updated parameters match the actual video frame in the buffer. Failure to do so may result in unexpected rotation or distortion in both the local preview and the remote video. + + ```cpp // Register or unregister the video observer BOOL CGrayVideoProcFrameObserver::RegisterVideoFrameObserver(