From 84c24fb6776b057e1f1c151e3fa05e9c0400c08e Mon Sep 17 00:00:00 2001 From: christosts Date: Wed, 3 Nov 2021 15:45:07 +0000 Subject: [PATCH] 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. PiperOrigin-RevId: 407345431 --- .../android/exoplayer2/DefaultRenderersFactory.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java index b9895d60ae..2033bc1599 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java @@ -29,6 +29,7 @@ import com.google.android.exoplayer2.audio.DefaultAudioSink; import com.google.android.exoplayer2.audio.DefaultAudioSink.DefaultAudioProcessorChain; import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer; import com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory; +import com.google.android.exoplayer2.mediacodec.MediaCodecAdapter; import com.google.android.exoplayer2.mediacodec.MediaCodecSelector; import com.google.android.exoplayer2.metadata.MetadataOutput; import com.google.android.exoplayer2.metadata.MetadataRenderer; @@ -368,7 +369,7 @@ public class DefaultRenderersFactory implements RenderersFactory { MediaCodecVideoRenderer videoRenderer = new MediaCodecVideoRenderer( context, - codecAdapterFactory, + getCodecAdapterFactory(), mediaCodecSelector, allowedVideoJoiningTimeMs, enableDecoderFallback, @@ -462,7 +463,7 @@ public class DefaultRenderersFactory implements RenderersFactory { MediaCodecAudioRenderer audioRenderer = new MediaCodecAudioRenderer( context, - codecAdapterFactory, + getCodecAdapterFactory(), mediaCodecSelector, enableDecoderFallback, eventHandler, @@ -629,4 +630,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 + * com.google.android.exoplayer2.mediacodec.MediaCodecRenderer} instances. + */ + protected MediaCodecAdapter.Factory getCodecAdapterFactory() { + return codecAdapterFactory; + } }