diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java index e812659768..c9e9884358 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java @@ -483,9 +483,31 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer return TAG; } + /** + * Returns the {@link Capabilities} of MediaCodecVideoRenderer for a given {@link Format}. + * + * @param context A context. + * @param mediaCodecSelector The decoder selector. + * @param format The {@link Format} for which to check the {@code MediaCodecVideoRenderer}'s + * support. + * @return The {@link Capabilities} for this format. + * @throws DecoderQueryException Thrown if there was an error querying decoders. + */ + public static @Capabilities int supportsFormat( + Context context, MediaCodecSelector mediaCodecSelector, Format format) + throws DecoderQueryException { + return supportsFormatInternal(context, mediaCodecSelector, format); + } + @Override protected @Capabilities int supportsFormat(MediaCodecSelector mediaCodecSelector, Format format) throws DecoderQueryException { + return supportsFormatInternal(context, mediaCodecSelector, format); + } + + private static @Capabilities int supportsFormatInternal( + Context context, MediaCodecSelector mediaCodecSelector, Format format) + throws DecoderQueryException { String mimeType = format.sampleMimeType; if (!MimeTypes.isVideo(mimeType)) { return RendererCapabilities.create(C.FORMAT_UNSUPPORTED_TYPE);