diff options
| -rw-r--r-- | media/java/android/media/LoudnessCodecController.java | 10 | ||||
| -rw-r--r-- | media/java/android/media/LoudnessCodecDispatcher.java | 10 |
2 files changed, 11 insertions, 9 deletions
diff --git a/media/java/android/media/LoudnessCodecController.java b/media/java/android/media/LoudnessCodecController.java index 43e34cae82b3..61c913166e1c 100644 --- a/media/java/android/media/LoudnessCodecController.java +++ b/media/java/android/media/LoudnessCodecController.java @@ -32,12 +32,13 @@ import androidx.annotation.Nullable; import java.util.HashMap; import java.util.HashSet; -import java.util.Map; +import java.util.Map.Entry; import java.util.Objects; import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Consumer; /** * Class for getting recommended loudness parameter updates for audio decoders as they are used @@ -334,9 +335,12 @@ public class LoudnessCodecController implements SafeCloseable { } /** @hide */ - /*package*/ Map<LoudnessCodecInfo, Set<MediaCodec>> getRegisteredMediaCodecs() { + /*package*/ void mediaCodecsConsume( + Consumer<Entry<LoudnessCodecInfo, Set<MediaCodec>>> consumer) { synchronized (mControllerLock) { - return mMediaCodecs; + for (Entry<LoudnessCodecInfo, Set<MediaCodec>> entry : mMediaCodecs.entrySet()) { + consumer.accept(entry); + } } } diff --git a/media/java/android/media/LoudnessCodecDispatcher.java b/media/java/android/media/LoudnessCodecDispatcher.java index 46be54be55ec..fa08658a214f 100644 --- a/media/java/android/media/LoudnessCodecDispatcher.java +++ b/media/java/android/media/LoudnessCodecDispatcher.java @@ -32,7 +32,6 @@ import androidx.annotation.NonNull; import java.util.HashMap; import java.util.Iterator; -import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.Set; @@ -81,16 +80,15 @@ public class LoudnessCodecDispatcher implements CallbackUtil.DispatcherStub { mConfiguratorListener.computeIfPresent(listener, (l, lcConfig) -> { // send the appropriate bundle for the user to update if (lcConfig.getSessionId() == sessionId) { - final Map<LoudnessCodecInfo, Set<MediaCodec>> mediaCodecsMap = - lcConfig.getRegisteredMediaCodecs(); - for (LoudnessCodecInfo codecInfo : mediaCodecsMap.keySet()) { + lcConfig.mediaCodecsConsume(mcEntry -> { + final LoudnessCodecInfo codecInfo = mcEntry.getKey(); final String infoKey = Integer.toString(codecInfo.hashCode()); Bundle bundle = null; if (params.containsKey(infoKey)) { bundle = new Bundle(params.getPersistableBundle(infoKey)); } - final Set<MediaCodec> mediaCodecs = mediaCodecsMap.get(codecInfo); + final Set<MediaCodec> mediaCodecs = mcEntry.getValue(); for (MediaCodec mediaCodec : mediaCodecs) { final String mediaCodecKey = Integer.toString( mediaCodec.hashCode()); @@ -121,7 +119,7 @@ public class LoudnessCodecDispatcher implements CallbackUtil.DispatcherStub { break; } } - } + }); } return lcConfig; }); |