From b90f00c7740dca73e132f333a55c6fb56449baa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Muller?= Date: Mon, 15 Jul 2024 22:17:11 +0200 Subject: [PATCH] Revert erroneous changes --- .../exoplayer/playback/gts/DebugRenderersFactory.java | 10 ++++++++-- .../androidx/media3/test/utils/DecodeOneFrameUtil.java | 7 +++++-- .../performance/ExoplayerEffectPlaybackSeekTest.java | 5 +++-- .../java/androidx/media3/transformer/EncoderUtil.java | 6 ++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DebugRenderersFactory.java b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DebugRenderersFactory.java index 1ffbd59102..e676b76101 100644 --- a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DebugRenderersFactory.java +++ b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DebugRenderersFactory.java @@ -237,10 +237,16 @@ import java.util.ArrayList; } @Override - protected void renderOutputBuffer( + protected void renderOutputBuffer(MediaCodecAdapter codec, int index, long presentationTimeUs) { + skipToPositionBeforeRenderingFirstFrame = false; + super.renderOutputBuffer(codec, index, presentationTimeUs); + } + + @Override + protected void renderOutputBufferV21( MediaCodecAdapter codec, int index, long presentationTimeUs, long releaseTimeNs) { skipToPositionBeforeRenderingFirstFrame = false; - super.renderOutputBuffer(codec, index, presentationTimeUs, releaseTimeNs); + super.renderOutputBufferV21(codec, index, presentationTimeUs, releaseTimeNs); } @Override diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java index ba7378939b..3c918457ba 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java @@ -35,6 +35,7 @@ import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; import androidx.media3.common.util.MediaFormatUtil; import androidx.media3.common.util.UnstableApi; +import androidx.media3.common.util.Util; import java.io.IOException; import java.nio.ByteBuffer; @@ -208,7 +209,7 @@ public final class DecodeOneFrameUtil { // Format must not include KEY_FRAME_RATE on API21. // https://developer.android.com/reference/android/media/MediaCodecList#findDecoderForFormat(android.media.MediaFormat) float frameRate = Format.NO_VALUE; - if (format.containsKey(MediaFormat.KEY_FRAME_RATE)) { + if (Util.SDK_INT == 21 && format.containsKey(MediaFormat.KEY_FRAME_RATE)) { try { frameRate = format.getFloat(MediaFormat.KEY_FRAME_RATE); } catch (ClassCastException e) { @@ -220,7 +221,9 @@ public final class DecodeOneFrameUtil { @Nullable String mediaCodecName = mediaCodecList.findDecoderForFormat(format); - MediaFormatUtil.maybeSetInteger(format, MediaFormat.KEY_FRAME_RATE, round(frameRate)); + if (Util.SDK_INT == 21) { + MediaFormatUtil.maybeSetInteger(format, MediaFormat.KEY_FRAME_RATE, round(frameRate)); + } return mediaCodecName; } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/ExoplayerEffectPlaybackSeekTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/ExoplayerEffectPlaybackSeekTest.java index 8322d826c6..1b64e9a06b 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/ExoplayerEffectPlaybackSeekTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/ExoplayerEffectPlaybackSeekTest.java @@ -102,15 +102,16 @@ public final class ExoplayerEffectPlaybackSeekTest { new MediaCodecVideoRenderer(context, MediaCodecSelector.DEFAULT) { private int numberOfFramesRendered; + // Overriding V21 is sufficient as we don't have test running below API26. @Override - protected void renderOutputBuffer( + protected void renderOutputBufferV21( MediaCodecAdapter codec, int index, long presentationTimeUs, long releaseTimeNs) { numberOfFramesRendered++; if (numberOfFramesRendered == frameIndexToSkip) { frameSkippedCondition.open(); return; } - super.renderOutputBuffer(codec, index, presentationTimeUs, releaseTimeNs); + super.renderOutputBufferV21(codec, index, presentationTimeUs, releaseTimeNs); } }; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderUtil.java b/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderUtil.java index 5241d8a16d..d3071a63db 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderUtil.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/EncoderUtil.java @@ -313,7 +313,7 @@ public final class EncoderUtil { // Format must not include KEY_FRAME_RATE on API21. // https://developer.android.com/reference/android/media/MediaCodecList#findDecoderForFormat(android.media.MediaFormat) float frameRate = Format.NO_VALUE; - if (format.containsKey(MediaFormat.KEY_FRAME_RATE)) { + if (Util.SDK_INT == 21 && format.containsKey(MediaFormat.KEY_FRAME_RATE)) { try { frameRate = format.getFloat(MediaFormat.KEY_FRAME_RATE); } catch (ClassCastException e) { @@ -328,7 +328,9 @@ public final class EncoderUtil { ? mediaCodecList.findDecoderForFormat(format) : mediaCodecList.findEncoderForFormat(format); - MediaFormatUtil.maybeSetInteger(format, MediaFormat.KEY_FRAME_RATE, round(frameRate)); + if (Util.SDK_INT == 21) { + MediaFormatUtil.maybeSetInteger(format, MediaFormat.KEY_FRAME_RATE, round(frameRate)); + } return mediaCodecName; }