Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49ce98e1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add implementation of the API for Audio time delay synchronization in Video Call" into main

parents 4e5ebf4d 5b7654ce
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -42,4 +42,6 @@ interface IImsMediaSession {
  oneway void stopDtmf();
  oneway void sendHeaderExtension(in List<android.hardware.radio.ims.media.RtpHeaderExtension> extensions);
  oneway void setMediaQualityThreshold(in android.hardware.radio.ims.media.MediaQualityThreshold threshold);
  oneway void requestRtpReceptionStats(in int intervalMs);
  oneway void adjustDelay(in int delayMs);
}
+1 −0
Original line number Diff line number Diff line
@@ -42,4 +42,5 @@ interface IImsMediaSessionListener {
  oneway void triggerAnbrQuery(in android.hardware.radio.ims.media.RtpConfig config);
  oneway void onDtmfReceived(char dtmfDigit, int durationMs);
  oneway void onCallQualityChanged(in android.hardware.radio.ims.media.CallQuality callQuality);
  oneway void notifyRtpReceptionStats(in android.hardware.radio.ims.media.RtpReceptionStats stats);
}
+42 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.radio.ims.media;
@VintfStability
parcelable RtpReceptionStats {
  int rtpTimestamp;
  int rtpSequenceNumber;
  int timeDurationMs;
  int jitterBufferMs;
  int roundTripTimeMs;
}
+22 −0
Original line number Diff line number Diff line
@@ -94,4 +94,26 @@ oneway interface IImsMediaSession {
     * This is available when android.hardware.telephony.ims is defined.
     */
    void setMediaQualityThreshold(in MediaQualityThreshold threshold);

    /**
     * Queries the current RTP reception statistics of the RTP stream. It will trigger the
       IImsMediaSessionListener#notifyRtpReceptionStats(RtpReceptionStats).
     *
     * @param intervalMs The interval of the time in milliseconds of the RTP reception
     * notification. When it is zero, the report is disabled.
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void requestRtpReceptionStats(in int intervalMs);

    /**
     * Adjust the delay in the jitter buffer to synchronize the audio with the time of video
     * frames
     *
     * @param delayMs The delay to apply to the jitter buffer. If it is positive, the jitter
     * buffer increases the delay, if it is negative, the jitter buffer decreases the delay.
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void adjustDelay(in int delayMs);
}
+25 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.hardware.radio.ims.media.MediaQualityStatus;
import android.hardware.radio.ims.media.RtpConfig;
import android.hardware.radio.ims.media.RtpError;
import android.hardware.radio.ims.media.RtpHeaderExtension;
import android.hardware.radio.ims.media.RtpReceptionStats;

/**
 * Interface declaring listener functions for unsolicited IMS media notifications per session.
@@ -37,6 +38,8 @@ oneway interface IImsMediaSessionListener {
     *   RtpError :INTERNAL_ERR
     *   RtpError :NO_MEMORY
     *   RtpError :NO_RESOURCES
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void onModifySessionResponse(in RtpConfig config, RtpError error);

@@ -49,6 +52,8 @@ oneway interface IImsMediaSessionListener {
     * packets from the most recently added config.
     *
     * @param config The remote config where the media is received
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void onFirstMediaPacketReceived(in RtpConfig config);

@@ -56,6 +61,8 @@ oneway interface IImsMediaSessionListener {
     * RTP header extension received from the other party
     *
     * @param extensions content of the received RTP header extension
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void onHeaderExtensionReceived(in List<RtpHeaderExtension> extensions);

@@ -64,6 +71,8 @@ oneway interface IImsMediaSessionListener {
     * {@link MediaQualityThreshold} set by {@link IImsMediaSession#setMediaQualityThreshold()}.
     *
     * @param quality The object of MediaQualityStatus with the rtp and the rtcp statistics.
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void notifyMediaQualityStatus(in MediaQualityStatus quality);

@@ -73,6 +82,8 @@ oneway interface IImsMediaSessionListener {
     * See 3GPP TS 26.114.
     *
     * @param config containing desired bitrate and direction
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void triggerAnbrQuery(in RtpConfig config);

@@ -81,6 +92,8 @@ oneway interface IImsMediaSessionListener {
     *
     * @param dtmfDigit single char having one of 12 values: 0-9, *, #
     * @param durationMs The duration to play the tone in milliseconds unit
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void onDtmfReceived(char dtmfDigit, int durationMs);

@@ -88,6 +101,18 @@ oneway interface IImsMediaSessionListener {
     * Notifies when a change to call quality has occurred
     *
     * @param CallQuality The call quality statistics of ongoing call since last report
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void onCallQualityChanged(in CallQuality callQuality);

    /**
     * Notifies the RTP reception statistics periodically after
     * IImsMediaSession#requestRtpReceptionStats(intervalMs) is invoked.
     *
     * @param stats The RTP reception statistics
     *
     * This is available when android.hardware.telephony.ims is defined.
     */
    void notifyRtpReceptionStats(in RtpReceptionStats stats);
}
Loading