# Release notes (/en/realtime-media/rtc-server-sdk/reference/release-notes/linux-java)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

This document tracks important changes and improvements to the Server Gateway.

    ## v4.4.32 [#v4432-1]

    Released on June 6, 2025.

    ### New features [#new-features-2]

    This release adds the following new features:

    #### Audio metadata support [#audio-metadata-support]

    This version adds the ability to send and receive audio metadata. In use-cases where you need to send auxiliary audio information, such as playback progress, call the `sendAudioMetadata` method to transmit metadata. Remote users receive this information through the `onAudioMetadataReceived` callback.

    #### Get VAD information from raw audio data [#get-vad-information-from-raw-audio-data]

    Enable voice activity detection (VAD) for raw audio data using the new `registerAudioFrameObserver` method with the `enableVad` parameter. Access VAD status through the `vadResult` parameter in the `onPlaybackAudioFrameBeforeMixing` callback.

    #### Receive encoded audio data [#receive-encoded-audio-data]

    Access encoded audio data using these new interfaces:

    * `registerAudioEncodedFrameObserver`: Register an observer for encoded audio data.
    * `IAudioEncodedFrameObserver`: Receive encoded audio data through the `onEncodedAudioFrameReceived` callback.

    #### Set custom color spaces for external video [#set-custom-color-spaces-for-external-video]

    Use the new `colorSpace` attribute in `ExternalVideoFrame` to specify custom color spaces for externally captured video data.

    #### Manage connection domains [#manage-connection-domains]

    Control connection domains using the new `domainLimit` parameter in `AgoraServiceConfig`.

    ### Improvements [#improvements-4]

    This release includes the following improvements:

    #### Improved audio and video data sending interfaces [#improved-audio-and-video-data-sending-interfaces]

    Method names are now more descriptive:

    * `sendAudioPcmData` replaces the deprecated `send` in `AgoraAudioPcmDataSender`.
    * `sendEncodedAudioFrame` replaces `send` in `AgoraAudioEncodedFrameSender`.
    * `sendEncodedVideoImage` replaces `send` in `AgoraVideoEncodedImageSender`.
    * `sendVideoFrame` replaces `send` in `AgoraVideoFrameSender`.

    #### Send stream messages with byte arrays [#send-stream-messages-with-byte-arrays]

    Use the new `sendStreamMessage` overload to send byte array data without specifying a length parameter. The `message` parameter now accepts `byte[]` instead of `String`.

    ### Issues fixed [#issues-fixed-1]

    This release resolves the following issues:

    * Fixed `alphaBuffer` and `metadataBuffer` handling in `VideoFrame`.
    * Fixed potential crashes in the `destroy` method.
    * Fixed memory leaks and multi-threading issues for improved stability.

    ## v4.4.30 [#v4430-1]

    Released on December 11, 2024.

    ### Compatibility changes [#compatibility-changes-1]

    #### Log encryption behavior changes [#log-encryption-behavior-changes-1]

    For security and performance reasons, as of this release, the SDK encrypts logs and no longer supports printing plaintext logs via the console.

    Refer to the following solutions for different needs:

    * If you need to know the API call status, check the API logs and print the SDK callback logs yourself.
    * For any other special requirements, contact technical support and provide the corresponding encrypted logs.

    ### New features [#new-features-3]

    #### Maven integration method [#maven-integration-method]

    This release supports integrating the SDK through Maven. After creating a Maven project, open the `pom.xml` file and replace its contents with the following:

    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>agora-rtc-linux-java</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
        <groupId>io.agora.rtc</groupId>
        <artifactId>linux-java-sdk</artifactId>
        <version>4.4.30</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <build>
        <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.3</version>
            <configuration>
            <createDependencyReducedPom>true</createDependencyReducedPom>
            </configuration>
            <executions>
            <execution>
                <phase>package</phase>
                <goals>
                <goal>shade</goal>
                </goals>
                <configuration>
                <transformers>
                    <transformer
                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                    <mainClass>App</mainClass>
                    </transformer>
                </transformers>
                </configuration>
            </execution>
            </executions>
        </plugin>
        </plugins>
    </build>
    </project>
    ```

    #### Audio send buffer settings [#audio-send-buffer-settings-1]

    In use-cases such as AI interaction, the frequency of sending audio frames may be uneven. If the SDK sends to the Agora server according to the actual sending frequency, the receiver may experience issues such as stuttering or frame loss. To optimize audio transmission performance, this release adds methods to set the audio send buffer in the `AgoraLocalAudioTrack` class:

    * `setMaxBufferedAudioFrameNumber`: Sets the maximum capacity of the audio send buffer.
    * `clearSenderBuffer`: Clears the current audio send buffer, applicable to interrupt audio in human-machine dialogue use-cases.
    * `setSendDelayMs`: Sets the minimum data duration allowed to be sent by the audio send buffer, applicable to precise control of audio transmission delay.

    #### Audio labels [#audio-labels-1]

    This release introduces the audio labeling capability (`AudioLabel`). By adding audio labels, you can intuitively obtain audio information such as user audio energy, fundamental frequency, and voice type, making it convenient for post-processing. Contact technical support to enable and use this feature.

    #### 22050 Hz audio send sample rate [#22050-hz-audio-send-sample-rate-1]

    This release supports a 22050 Hz audio send sample rate, and you can set the sample rate when calling the `AgoraAudioPcmDataSender.send` method to send raw audio data.

    #### SDK global custom parameters [#sdk-global-custom-parameters-1]

    This release adds the `getAgoraParameter` method in the `AgoraService` class. The difference between this method and the `getAgoraParameter` method in the `AgoraRtcConn` class is as follows:

    * `AgoraService.getAgoraParameter` is effective globally for the SDK.
    * `AgoraRtcConn.getAgoraParameter` is only effective for the current connection.

    ### Improvements [#improvements-5]

    This release includes the following improvements:

    * Reduces CPU consumption in multi-channel use-cases.
    * Optimizes memory management mechanism for audio frame callbacks `onPlaybackAudioFrameBeforeMixing`, `onRecordAudioFrame`, `onPlaybackAudioFrame`, and `onMixedAudioFrame`, improving the efficiency and stability of `AudioFrame` processing.

    ### Fixed issues [#fixed-issues-2]

    This release fixed the following issues:

    * Issues caused by a null `channelId` pointer in the `onPlaybackAudioFrameBeforeMixing` callback.
    * Occasional crashes in the `onRemoteAudioTrackStatistics`, `onUserAudioTrackSubscribed`, `onUserAudioTrackStateChanged`, `onUserVideoTrackSubscribed`, `onUserVideoTrackStateChanged`, or `onRemoteVideoTrackStatistics` callbacks.

    
  
      
  
      
  
