Loading core/api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -22102,7 +22102,7 @@ package android.media { } @FlaggedApi("android.media.audio.loudness_configurator_api") public class LoudnessCodecConfigurator { method @FlaggedApi("android.media.audio.loudness_configurator_api") public void addMediaCodec(@NonNull android.media.MediaCodec); 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); media/java/android/media/LoudnessCodecConfigurator.java +9 −5 Original line number Diff line number Diff line Loading @@ -234,19 +234,21 @@ public class LoudnessCodecConfigurator { * @param mediaCodec the codec to start receiving asynchronous loudness * updates. The codec has to be in a configured or started * state in order to add it for loudness updates. * @throws IllegalArgumentException if the {@code mediaCodec} was not configured, * does not contain loudness metadata or if it * was already added before * @throws IllegalArgumentException if the same {@code mediaCodec} was already * added before. * @return {@code false} if the {@code mediaCodec} was not configured or does * not contain loudness metadata, {@code true} otherwise. */ @FlaggedApi(FLAG_LOUDNESS_CONFIGURATOR_API) public void addMediaCodec(@NonNull MediaCodec mediaCodec) { public boolean addMediaCodec(@NonNull MediaCodec mediaCodec) { final MediaCodec mc = Objects.requireNonNull(mediaCodec, "MediaCodec for addMediaCodec cannot be null"); int piid = PLAYER_PIID_INVALID; final LoudnessCodecInfo mcInfo = getCodecInfo(mc); if (mcInfo == null) { throw new IllegalArgumentException("Could not extract codec loudness information"); Log.v(TAG, "Could not extract codec loudness information"); return false; } synchronized (mConfiguratorLock) { final AtomicBoolean containsCodec = new AtomicBoolean(false); Loading @@ -271,6 +273,8 @@ public class LoudnessCodecConfigurator { if (piid != PLAYER_PIID_INVALID) { mLcDispatcher.addLoudnessCodecInfo(piid, mediaCodec.hashCode(), mcInfo); } return true; } /** Loading media/tests/LoudnessCodecApiTest/src/com/android/loudnesscodecapitest/LoudnessCodecConfiguratorTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.loudnesscodecapitest; import static android.media.audio.Flags.FLAG_LOUDNESS_CONFIGURATOR_API; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; Loading Loading @@ -189,6 +190,18 @@ public class LoudnessCodecConfiguratorTest { } } @Test @RequiresFlagsEnabled(FLAG_LOUDNESS_CONFIGURATOR_API) public void addUnconfiguredMediaCodec_returnsFalse() throws Exception { final MediaCodec mediaCodec = MediaCodec.createDecoderByType("audio/mpeg"); try { assertFalse(mLcc.addMediaCodec(mediaCodec)); } finally { mediaCodec.release(); } } @Test @RequiresFlagsEnabled(FLAG_LOUDNESS_CONFIGURATOR_API) public void setClearTrack_removeAllAudioServicePiidCodecs() throws Exception { Loading Loading
core/api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -22102,7 +22102,7 @@ package android.media { } @FlaggedApi("android.media.audio.loudness_configurator_api") public class LoudnessCodecConfigurator { method @FlaggedApi("android.media.audio.loudness_configurator_api") public void addMediaCodec(@NonNull android.media.MediaCodec); 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);
media/java/android/media/LoudnessCodecConfigurator.java +9 −5 Original line number Diff line number Diff line Loading @@ -234,19 +234,21 @@ public class LoudnessCodecConfigurator { * @param mediaCodec the codec to start receiving asynchronous loudness * updates. The codec has to be in a configured or started * state in order to add it for loudness updates. * @throws IllegalArgumentException if the {@code mediaCodec} was not configured, * does not contain loudness metadata or if it * was already added before * @throws IllegalArgumentException if the same {@code mediaCodec} was already * added before. * @return {@code false} if the {@code mediaCodec} was not configured or does * not contain loudness metadata, {@code true} otherwise. */ @FlaggedApi(FLAG_LOUDNESS_CONFIGURATOR_API) public void addMediaCodec(@NonNull MediaCodec mediaCodec) { public boolean addMediaCodec(@NonNull MediaCodec mediaCodec) { final MediaCodec mc = Objects.requireNonNull(mediaCodec, "MediaCodec for addMediaCodec cannot be null"); int piid = PLAYER_PIID_INVALID; final LoudnessCodecInfo mcInfo = getCodecInfo(mc); if (mcInfo == null) { throw new IllegalArgumentException("Could not extract codec loudness information"); Log.v(TAG, "Could not extract codec loudness information"); return false; } synchronized (mConfiguratorLock) { final AtomicBoolean containsCodec = new AtomicBoolean(false); Loading @@ -271,6 +273,8 @@ public class LoudnessCodecConfigurator { if (piid != PLAYER_PIID_INVALID) { mLcDispatcher.addLoudnessCodecInfo(piid, mediaCodec.hashCode(), mcInfo); } return true; } /** Loading
media/tests/LoudnessCodecApiTest/src/com/android/loudnesscodecapitest/LoudnessCodecConfiguratorTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.loudnesscodecapitest; import static android.media.audio.Flags.FLAG_LOUDNESS_CONFIGURATOR_API; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; Loading Loading @@ -189,6 +190,18 @@ public class LoudnessCodecConfiguratorTest { } } @Test @RequiresFlagsEnabled(FLAG_LOUDNESS_CONFIGURATOR_API) public void addUnconfiguredMediaCodec_returnsFalse() throws Exception { final MediaCodec mediaCodec = MediaCodec.createDecoderByType("audio/mpeg"); try { assertFalse(mLcc.addMediaCodec(mediaCodec)); } finally { mediaCodec.release(); } } @Test @RequiresFlagsEnabled(FLAG_LOUDNESS_CONFIGURATOR_API) public void setClearTrack_removeAllAudioServicePiidCodecs() throws Exception { Loading