diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/EnumerateDecodersTest.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/EnumerateDecodersTest.java index 669a5a5a0d..b9c513fe72 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/EnumerateDecodersTest.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/EnumerateDecodersTest.java @@ -88,33 +88,44 @@ public class EnumerateDecodersTest { } private void enumerateDecoders(String mimeType) throws DecoderQueryException { - logDecoderInfos(MediaCodecUtil.getDecoderInfos(mimeType, /* secure= */ false)); - logDecoderInfos(MediaCodecUtil.getDecoderInfos(mimeType, /* secure= */ true)); + logDecoderInfos(mimeType, /* secure= */ false); + logDecoderInfos(mimeType, /* secure= */ true); } - private void logDecoderInfos(List mediaCodecInfos) { + private void logDecoderInfos(String mimeType, boolean secure) throws DecoderQueryException { + List mediaCodecInfos = MediaCodecUtil.getDecoderInfos(mimeType, secure); for (MediaCodecInfo mediaCodecInfo : mediaCodecInfos) { CodecCapabilities capabilities = Assertions.checkNotNull(mediaCodecInfo.capabilities); metricsLogger.logMetric( - "capabilities_" + mediaCodecInfo.name, codecCapabilitiesToString(capabilities)); + "capabilities_" + mediaCodecInfo.name, codecCapabilitiesToString(mimeType, capabilities)); } } - private static String codecCapabilitiesToString(CodecCapabilities codecCapabilities) { - String mimeType = codecCapabilities.getMimeType(); - boolean isVideo = MimeTypes.isVideo(mimeType); - boolean isAudio = MimeTypes.isAudio(mimeType); + private static String codecCapabilitiesToString( + String requestedMimeType, CodecCapabilities codecCapabilities) { + boolean isVideo = MimeTypes.isVideo(requestedMimeType); + boolean isAudio = MimeTypes.isAudio(requestedMimeType); StringBuilder result = new StringBuilder(); - result.append("[mimeType=").append(mimeType).append(", profileLevels="); - profileLevelsToString(codecCapabilities.profileLevels, result); - result.append(", maxSupportedInstances=").append(codecCapabilities.getMaxSupportedInstances()); - if (isVideo) { - result.append(", videoCapabilities="); - videoCapabilitiesToString(codecCapabilities.getVideoCapabilities(), result); - result.append(", colorFormats=").append(Arrays.toString(codecCapabilities.colorFormats)); - } else if (isAudio) { - result.append(", audioCapabilities="); - audioCapabilitiesToString(codecCapabilities.getAudioCapabilities(), result); + result.append("[requestedMimeType=").append(requestedMimeType); + if (Util.SDK_INT >= 21) { + result.append(", mimeType=").append(codecCapabilities.getMimeType()); + } + result.append(", profileLevels="); + appendProfileLevels(codecCapabilities.profileLevels, result); + if (Util.SDK_INT >= 23) { + result + .append(", maxSupportedInstances=") + .append(codecCapabilities.getMaxSupportedInstances()); + } + if (Util.SDK_INT >= 21) { + if (isVideo) { + result.append(", videoCapabilities="); + appendVideoCapabilities(codecCapabilities.getVideoCapabilities(), result); + result.append(", colorFormats=").append(Arrays.toString(codecCapabilities.colorFormats)); + } else if (isAudio) { + result.append(", audioCapabilities="); + appendAudioCapabilities(codecCapabilities.getAudioCapabilities(), result); + } } if (Util.SDK_INT >= 19 && isVideo @@ -140,7 +151,7 @@ public class EnumerateDecodersTest { return result.toString(); } - private static void audioCapabilitiesToString( + private static void appendAudioCapabilities( AudioCapabilities audioCapabilities, StringBuilder result) { result .append("[bitrateRange=") @@ -152,7 +163,7 @@ public class EnumerateDecodersTest { .append(']'); } - private static void videoCapabilitiesToString( + private static void appendVideoCapabilities( VideoCapabilities videoCapabilities, StringBuilder result) { result .append("[bitrateRange=") @@ -170,8 +181,7 @@ public class EnumerateDecodersTest { .append(']'); } - private static void profileLevelsToString( - CodecProfileLevel[] profileLevels, StringBuilder result) { + private static void appendProfileLevels(CodecProfileLevel[] profileLevels, StringBuilder result) { result.append('['); int count = profileLevels.length; for (int i = 0; i < count; i++) {