Commit 5d2df834 by christosts Committed by Oliver Woodman

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
parent bc3360e5
...@@ -2,6 +2,13 @@ ...@@ -2,6 +2,13 @@
### dev-v2 (not yet released) ### dev-v2 (not yet released)
* Core Library:
* Add protected method `DefaultRenderersFactory.getCodecAdapterFactory()`
so that subclasses of `DefaultRenderersFactory` that override
`buildVideoRenderers()` or `buildAudioRenderers()` can access the codec
adapter factory and pass it to `MediaCodecRenderer` instances they
create.
### 2.16.0 (2021-11-04) ### 2.16.0 (2021-11-04)
* Core Library: * Core Library:
......
...@@ -29,6 +29,7 @@ import com.google.android.exoplayer2.audio.DefaultAudioSink; ...@@ -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.DefaultAudioSink.DefaultAudioProcessorChain;
import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer; import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer;
import com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory; 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.mediacodec.MediaCodecSelector;
import com.google.android.exoplayer2.metadata.MetadataOutput; import com.google.android.exoplayer2.metadata.MetadataOutput;
import com.google.android.exoplayer2.metadata.MetadataRenderer; import com.google.android.exoplayer2.metadata.MetadataRenderer;
...@@ -368,7 +369,7 @@ public class DefaultRenderersFactory implements RenderersFactory { ...@@ -368,7 +369,7 @@ public class DefaultRenderersFactory implements RenderersFactory {
MediaCodecVideoRenderer videoRenderer = MediaCodecVideoRenderer videoRenderer =
new MediaCodecVideoRenderer( new MediaCodecVideoRenderer(
context, context,
codecAdapterFactory, getCodecAdapterFactory(),
mediaCodecSelector, mediaCodecSelector,
allowedVideoJoiningTimeMs, allowedVideoJoiningTimeMs,
enableDecoderFallback, enableDecoderFallback,
...@@ -488,7 +489,7 @@ public class DefaultRenderersFactory implements RenderersFactory { ...@@ -488,7 +489,7 @@ public class DefaultRenderersFactory implements RenderersFactory {
MediaCodecAudioRenderer audioRenderer = MediaCodecAudioRenderer audioRenderer =
new MediaCodecAudioRenderer( new MediaCodecAudioRenderer(
context, context,
codecAdapterFactory, getCodecAdapterFactory(),
mediaCodecSelector, mediaCodecSelector,
enableDecoderFallback, enableDecoderFallback,
eventHandler, eventHandler,
...@@ -655,4 +656,12 @@ public class DefaultRenderersFactory implements RenderersFactory { ...@@ -655,4 +656,12 @@ public class DefaultRenderersFactory implements RenderersFactory {
? DefaultAudioSink.OFFLOAD_MODE_ENABLED_GAPLESS_REQUIRED ? DefaultAudioSink.OFFLOAD_MODE_ENABLED_GAPLESS_REQUIRED
: DefaultAudioSink.OFFLOAD_MODE_DISABLED); : 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;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment