Add DefaultMediaCodecFactory.getCodecAdapter() method

Add protected method DefaultRenderersFactory.getCodecAdapter(), so that
subclasses of DefaultRenderersFactory that override
buildVideoRenderers() or buildAudioRenderers() can access the
DefaultRenderersFactory codec adapter factory and pass it to
MediaCodecRenderer instances they may create.

#minor-release

PiperOrigin-RevId: 407345431
This commit is contained in:
christosts 2021-11-03 15:45:07 +00:00 committed by Ian Baker
parent 9c32d5ac46
commit 91a0f0203b

View File

@ -31,6 +31,7 @@ import androidx.media3.exoplayer.audio.DefaultAudioSink;
import androidx.media3.exoplayer.audio.DefaultAudioSink.DefaultAudioProcessorChain;
import androidx.media3.exoplayer.audio.MediaCodecAudioRenderer;
import androidx.media3.exoplayer.mediacodec.DefaultMediaCodecAdapterFactory;
import androidx.media3.exoplayer.mediacodec.MediaCodecAdapter;
import androidx.media3.exoplayer.mediacodec.MediaCodecSelector;
import androidx.media3.exoplayer.metadata.MetadataOutput;
import androidx.media3.exoplayer.metadata.MetadataRenderer;
@ -370,7 +371,7 @@ public class DefaultRenderersFactory implements RenderersFactory {
MediaCodecVideoRenderer videoRenderer =
new MediaCodecVideoRenderer(
context,
codecAdapterFactory,
getCodecAdapterFactory(),
mediaCodecSelector,
allowedVideoJoiningTimeMs,
enableDecoderFallback,
@ -489,7 +490,7 @@ public class DefaultRenderersFactory implements RenderersFactory {
MediaCodecAudioRenderer audioRenderer =
new MediaCodecAudioRenderer(
context,
codecAdapterFactory,
getCodecAdapterFactory(),
mediaCodecSelector,
enableDecoderFallback,
eventHandler,
@ -655,4 +656,12 @@ public class DefaultRenderersFactory implements RenderersFactory {
? DefaultAudioSink.OFFLOAD_MODE_ENABLED_GAPLESS_REQUIRED
: DefaultAudioSink.OFFLOAD_MODE_DISABLED);
}
/**
* Returns the {@link MediaCodecAdapter.Factory} that will be used when creating {@link
* androidx.media3.exoplayer.mediacodec.MediaCodecRenderer} instances.
*/
protected MediaCodecAdapter.Factory getCodecAdapterFactory() {
return codecAdapterFactory;
}
}