mirror of
https://github.com/androidx/media.git
synced 2025-04-29 22:36:54 +08:00
Clear cached encoders in ShadowMediaCodecConfig#after()
Instead of calling it in the tests setup, the change modifies ShadowMediaCodecConfig#after() method to call EncoderUtil#clearCachedEncoders(). PiperOrigin-RevId: 748625111
This commit is contained in:
parent
a64d51c909
commit
52db3a240d
@ -30,6 +30,7 @@ dependencies {
|
|||||||
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
||||||
implementation 'org.robolectric:robolectric:' + robolectricVersion
|
implementation 'org.robolectric:robolectric:' + robolectricVersion
|
||||||
api project(modulePrefix + 'lib-exoplayer')
|
api project(modulePrefix + 'lib-exoplayer')
|
||||||
|
api project(modulePrefix + 'lib-transformer')
|
||||||
api project(modulePrefix + 'test-utils')
|
api project(modulePrefix + 'test-utils')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import android.media.MediaFormat;
|
|||||||
import androidx.media3.common.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.exoplayer.mediacodec.MediaCodecUtil;
|
import androidx.media3.exoplayer.mediacodec.MediaCodecUtil;
|
||||||
|
import androidx.media3.transformer.EncoderUtil;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.primitives.Ints;
|
import com.google.common.primitives.Ints;
|
||||||
@ -327,6 +328,7 @@ public final class ShadowMediaCodecConfig extends ExternalResource {
|
|||||||
@Override
|
@Override
|
||||||
protected void after() {
|
protected void after() {
|
||||||
MediaCodecUtil.clearDecoderInfoCache();
|
MediaCodecUtil.clearDecoderInfoCache();
|
||||||
|
EncoderUtil.clearCachedEncoders();
|
||||||
ShadowMediaCodecList.reset();
|
ShadowMediaCodecList.reset();
|
||||||
ShadowMediaCodec.clearCodecs();
|
ShadowMediaCodec.clearCodecs();
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,6 @@ import androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig;
|
|||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@ -62,12 +61,6 @@ public class CompositionExportTest {
|
|||||||
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW),
|
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW),
|
||||||
/* encoders= */ ImmutableList.of(CODEC_INFO_AAC));
|
/* encoders= */ ImmutableList.of(CODEC_INFO_AAC));
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
// TODO(b/406463016): Investigate moving this call to ShadowMediaCodecConfig#after() method.
|
|
||||||
EncoderUtil.clearCachedEncoders();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void start_audioVideoTransmuxedFromDifferentSequences_matchesSingleSequenceResult()
|
public void start_audioVideoTransmuxedFromDifferentSequences_matchesSingleSequenceResult()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
@ -105,7 +105,6 @@ import java.util.concurrent.CountDownLatch;
|
|||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -152,12 +151,6 @@ public final class MediaItemExportTest {
|
|||||||
ShadowMediaCodecConfig.withCodecs(
|
ShadowMediaCodecConfig.withCodecs(
|
||||||
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW), /* encoders= */ ImmutableList.of());
|
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW), /* encoders= */ ImmutableList.of());
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
// TODO(b/406463016): Investigate moving this call to ShadowMediaCodecConfig#after() method.
|
|
||||||
EncoderUtil.clearCachedEncoders();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void start_gapOnlyExport_outputsSilence() throws Exception {
|
public void start_gapOnlyExport_outputsSilence() throws Exception {
|
||||||
shadowMediaCodecConfig.addEncoders(CODEC_INFO_AAC);
|
shadowMediaCodecConfig.addEncoders(CODEC_INFO_AAC);
|
||||||
|
@ -44,7 +44,6 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@ -137,12 +136,6 @@ public final class ParameterizedAudioExportTest {
|
|||||||
private final CapturingMuxer.Factory muxerFactory =
|
private final CapturingMuxer.Factory muxerFactory =
|
||||||
new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true);
|
new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true);
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
// TODO(b/406463016): Investigate moving this call to ShadowMediaCodecConfig#after() method.
|
|
||||||
EncoderUtil.clearCachedEncoders();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void export() throws Exception {
|
public void export() throws Exception {
|
||||||
Transformer transformer =
|
Transformer transformer =
|
||||||
|
@ -38,7 +38,6 @@ import androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig;
|
|||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
@ -99,12 +98,6 @@ public final class ParameterizedItemExportTest {
|
|||||||
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW),
|
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW),
|
||||||
/* encoders= */ ImmutableList.of(CODEC_INFO_AAC));
|
/* encoders= */ ImmutableList.of(CODEC_INFO_AAC));
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
// TODO(b/406463016): Investigate moving this call to ShadowMediaCodecConfig#after() method.
|
|
||||||
EncoderUtil.clearCachedEncoders();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void export() throws Exception {
|
public void export() throws Exception {
|
||||||
boolean handleAudioAsPcm = !ENCODED_AUDIO_ASSETS.contains(assetFile);
|
boolean handleAudioAsPcm = !ENCODED_AUDIO_ASSETS.contains(assetFile);
|
||||||
|
@ -43,7 +43,6 @@ import androidx.media3.test.utils.robolectric.ShadowMediaCodecConfig;
|
|||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -73,12 +72,6 @@ public final class SequenceExportTest {
|
|||||||
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW),
|
/* decoders= */ ImmutableList.of(CODEC_INFO_RAW),
|
||||||
/* encoders= */ ImmutableList.of(CODEC_INFO_AAC));
|
/* encoders= */ ImmutableList.of(CODEC_INFO_AAC));
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
// TODO(b/406463016): Investigate moving this call to ShadowMediaCodecConfig#after() method.
|
|
||||||
EncoderUtil.clearCachedEncoders();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void start_concatenateSameMediaItemWithTransmux_completesSuccessfully() throws Exception {
|
public void start_concatenateSameMediaItemWithTransmux_completesSuccessfully() throws Exception {
|
||||||
CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ false);
|
CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user