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

Commit ba60668f authored by Vlad Popa's avatar Vlad Popa
Browse files

CTA2075: Refactored the LCC API

Avoiding setting the AudioTrack. The LCC is now created by passing the
AudioAttributes and sessionId of the tracks that will receive loudness
annotated pcm values.

The new API makes it easier to send out the initial update for a media
codec by calculating the standard routing for the passed
AudioAttributes even though no AudioTrack is registered.

Test: adb shell device_config put media_audio android.media.audio.loudness_configurator_api true
Test: atest LoundessCodecHelperTest
Test: atest LoudnessCodecControllerTest
Bug: 298463873
Bug: 312529024
Bug: 314961545

Change-Id: Ic437bb6114aa3aa14debf5b443afdd0b9638ff8f
parent 28774a4f
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -22103,16 +22103,17 @@ package android.media {
    method public void onJetUserIdUpdate(android.media.JetPlayer, int, int);
  }
  @FlaggedApi("android.media.audio.loudness_configurator_api") public class LoudnessCodecConfigurator {
  @FlaggedApi("android.media.audio.loudness_configurator_api") public class LoudnessCodecController implements java.lang.AutoCloseable {
    method @FlaggedApi("android.media.audio.loudness_configurator_api") public boolean addMediaCodec(@NonNull android.media.MediaCodec);
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public static android.media.LoudnessCodecConfigurator create();
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public static android.media.LoudnessCodecConfigurator create(@NonNull java.util.concurrent.Executor, @NonNull android.media.LoudnessCodecConfigurator.OnLoudnessCodecUpdateListener);
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public android.os.Bundle getLoudnessCodecParams(@NonNull android.media.AudioTrack, @NonNull android.media.MediaCodec);
    method public void close();
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public static android.media.LoudnessCodecController create(int);
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public static android.media.LoudnessCodecController create(int, @NonNull java.util.concurrent.Executor, @NonNull android.media.LoudnessCodecController.OnLoudnessCodecUpdateListener);
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public android.os.Bundle getLoudnessCodecParams(@NonNull android.media.MediaCodec);
    method @FlaggedApi("android.media.audio.loudness_configurator_api") public void release();
    method @FlaggedApi("android.media.audio.loudness_configurator_api") public void removeMediaCodec(@NonNull android.media.MediaCodec);
    method @FlaggedApi("android.media.audio.loudness_configurator_api") public void setAudioTrack(@Nullable android.media.AudioTrack);
  }
  @FlaggedApi("android.media.audio.loudness_configurator_api") public static interface LoudnessCodecConfigurator.OnLoudnessCodecUpdateListener {
  @FlaggedApi("android.media.audio.loudness_configurator_api") public static interface LoudnessCodecController.OnLoudnessCodecUpdateListener {
    method @FlaggedApi("android.media.audio.loudness_configurator_api") @NonNull public default android.os.Bundle onLoudnessCodecUpdate(@NonNull android.media.MediaCodec, @NonNull android.os.Bundle);
  }
+6 −5
Original line number Diff line number Diff line
@@ -754,15 +754,16 @@ interface IAudioService {

    void unregisterLoudnessCodecUpdatesDispatcher(in ILoudnessCodecUpdatesDispatcher dispatcher);

    oneway void startLoudnessCodecUpdates(int piid, in List<LoudnessCodecInfo> codecInfoSet);
    oneway void startLoudnessCodecUpdates(int sessionId);

    oneway void stopLoudnessCodecUpdates(int piid);
    oneway void stopLoudnessCodecUpdates(int sessionId);

    oneway void addLoudnessCodecInfo(int piid, int mediaCodecHash, in LoudnessCodecInfo codecInfo);
    oneway void addLoudnessCodecInfo(int sessionId, int mediaCodecHash,
            in LoudnessCodecInfo codecInfo);

    oneway void removeLoudnessCodecInfo(int piid, in LoudnessCodecInfo codecInfo);
    oneway void removeLoudnessCodecInfo(int sessionId, in LoudnessCodecInfo codecInfo);

    PersistableBundle getLoudnessParams(int piid, in LoudnessCodecInfo codecInfo);
    PersistableBundle getLoudnessParams(in LoudnessCodecInfo codecInfo);

    @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)")
+2 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.media;

import android.media.AudioAttributes;
import android.os.PersistableBundle;

/**
@@ -26,6 +27,6 @@ import android.os.PersistableBundle;
 */
oneway interface ILoudnessCodecUpdatesDispatcher {

    void dispatchLoudnessCodecParameterChange(int piid, in PersistableBundle params);
    void dispatchLoudnessCodecParameterChange(int sessionId, in PersistableBundle params);

}
 No newline at end of file
+27 −23

File changed.

Preview size limit exceeded, changes collapsed.

Loading