diff --git a/markdown/RTC 4.x/release-notes/en-US/framework/release_unity_ng.md b/markdown/RTC 4.x/release-notes/en-US/framework/release_unity_ng.md index 028412ca324..3a9e07977c3 100644 --- a/markdown/RTC 4.x/release-notes/en-US/framework/release_unity_ng.md +++ b/markdown/RTC 4.x/release-notes/en-US/framework/release_unity_ng.md @@ -8,6 +8,84 @@ On Android 14 devices (such as OnePlus 11), screen sharing may not be available AirPods Pro does not support A2DP protocol in communication audio mode, which may lead to connection failure in that mode. +## v4.4.0 + +This version was released on August x, 2024. + +#### Compatibility changes + +This version includes optimizations to some features, including changes to SDK behavior, API renaming and deletion. To ensure normal operation of the project, update the code in the app after upgrading to this release. + +1. To distinguish context information in different extension callbacks, this version removes the original extension callbacks and adds corresponding callbacks that contain context information (see the table below). You can identify the extension name, the user ID, and the service provider name through `ExtensionContext` in each callback. + + | Original callback | Current callback | + | -------------------- | ------------------------------- | + | `onExtensionEvent` | `OnExtensionEventWithContext` | + | `onExtensionStarted` | `OnExtensionStartedWithContext` | + | `onExtensionStopped` | `OnExtensionStoppedWithContext` | + | `onExtensionError` | `OnExtensionErrorWithContext` | + +2. This version renames the following members in `ExternalVideoFrame`: + +- `d3d11_texture_2d` is renamed to `d3d11Texture2d`. +- `texture_slice_index` is renamed to `textureSliceIndex`. +- `metadata_buffer` is renamed to `metadataBuffer`. +- `metadata_size` is renamed to `metadataSize`. + +#### New features + +1. **Alpha transparency effects** + + This version introduces the Alpha transparency effects feature, supporting the transmission and rendering of Alpha channel data in video frames for SDK capture and custom capture scenarios, enabling transparent gift effects, custom backgrounds on the receiver end, etc.: + + - `VideoFrame` and `ExternalVideoFrame` add the `alphaBuffer` member: Sets the Alpha channel data. + - `ExternalVideoFrame` adds the `fillAlphaBuffer` member: For BGRA or RGBA formatted video data, sets whether to automatically extract the Alpha channel data and fill it into `alphaBuffer`. + - `VideoFrame` and `ExternalVideoFrame` add the `alphaStitchMode` member: Sets the relative position of `alphaBuffer` and video frame stitching. + + Additionally, `AdvanceOptions` adds a new member `encodeAlpha`, which is used to set whether to encode and send Alpha information to the remote end. By default, the SDK does not encode and send Alpha information; if you need to encode and send Alpha information to the remote end (for example, when virtual background is enabled), explicitly call `SetVideoEncoderConfiguration` to set the video encoding properties and set `encodeAlpha` to `true`. + +2. **Voice AI tuner** + + This version introduces the voice AI tuner feature, which can enhance the sound quality and tone, similar to a physical sound card. You can enable the voice AI tuner feature by calling the `EnableVoiceAITuner` method and passing in the sound effect types supported in the `VOICE_AI_TUNER_TYPE` enum to achieve effects like deep voice, cute voice, husky singing voice, etc. + +3. **1v1 video call scenario** + + This version adds `APPLICATION_SCENARIO_1V1` (1v1 video call) in `VIDEO_APPLICATION_SCENARIO_TYPE`. You can call `SetVideoScenario` to set the video application scenario to 1v1 video call, the SDK optimizes performance to achieve low latency and high video quality, enhancing image quality, first frame rendering, latency on mid-to-low-end devices, and smoothness under poor network conditions. + +#### Improvements + +1. **Adaptive hardware decoding support (Android, Windows)** + + This release introduces adaptive hardware decoding support, enhancing rendering smoothness on low-end devices and effectively reducing system load. + +2. **Rendering performance enhancement (Windows)** + + DirectX 11 renderer is now enabled by default on Windows devices, providing high-performance and high-quality graphics rendering capabilities. + +3. **Facial region beautification** + + To avoid losing details in non-facial areas during heavy skin smoothing, this version improves the skin smoothing algorithm. The SDK now recognizes various parts of the face, applying smoothing to facial skin areas excluding the mouth, eyes, and eyebrows. In addition, the SDK supports smoothing up to two faces simultaneously. + +4. **Other improvements** + + This version also includes the following improvements: + + - Optimizes transmission strategy: calling `EnableInstantMediaRendering` no longer impacts the security of the transmission link. + - The `LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED` enumerator is added in `OnLocalVideoStateChanged` callback , indicating that the display used for screen capture has been disconnected. (Windows, macOS) + - Optimizes the video link for window sharing, reducing CPU usage. (macOS) + - Improves echo cancellation for screen sharing scenarios. + - Adds the `channelId` parameter to `Metadata`, which is used to get the channel name from which the metadata is sent. + - Deprecates redundant enumeration values `CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT` and `CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED` in `CLIENT_ROLE_CHANGE_FAILED_REASON`. + +#### Issues fixed + +This release fixed the following issues: + +- Occasional app crashes occurred when multiple remote users joined the channel simultaneously during real-time interaction. (iOS) +- Remote video occasionally froze or displayed corrupted images when the app returned to the foreground after being in the background for a while. (iOS) +- After the sender called `StartDirectCdnStreaming` to start direct CDN streaming, frequent switching or toggling of the network occasionally resulted in a black screen on the receiver's end without a streaming failure callback on the sender's end. (iOS) +- Audio playback failed when pushing external audio data using `PushAudioFrame` and the sample rate was not set as a recommended value, such as 22050 Hz and 11025 Hz. + ## v4.3.2 This version was released on May x, 20xx.