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 Oliver Woodman
parent bc3360e5d4
commit 5d2df83496
2 changed files with 18 additions and 2 deletions

View file

@ -2,6 +2,13 @@
### 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)
* Core Library:

View file

@ -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,
@ -488,7 +489,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
* com.google.android.exoplayer2.mediacodec.MediaCodecRenderer} instances.
*/
protected MediaCodecAdapter.Factory getCodecAdapterFactory() {
return codecAdapterFactory;
}
}