package androidx.media3.decoder.av1;

import android.os.Handler;
import android.view.Surface;
import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.TraceUtil;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.decoder.CryptoConfig;
import androidx.media3.decoder.VideoDecoderOutputBuffer;
import androidx.media3.exoplayer.DecoderReuseEvaluation;
import androidx.media3.exoplayer.RendererCapabilities;
import androidx.media3.exoplayer.video.DecoderVideoRenderer;
import androidx.media3.exoplayer.video.VideoRendererEventListener;
import defpackage.rq6;

/* JADX INFO: loaded from: classes.dex */
@UnstableApi
public class Libdav1dVideoRenderer extends DecoderVideoRenderer {
    private static final int DEFAULT_INPUT_BUFFER_SIZE = ((Util.ceilDivide(720, 64) * Util.ceilDivide(1280, 64)) * 6144) / 2;
    private static final int DEFAULT_MAX_FRAME_DELAY = 2;
    private static final int DEFAULT_NUM_OF_INPUT_BUFFERS = 4;
    private static final int DEFAULT_NUM_OF_OUTPUT_BUFFERS = 4;
    private static final String TAG = "Libdav1dVideoRenderer";
    public static final int THREAD_COUNT_DECODER_DEFAULT = 0;
    public static final int THREAD_COUNT_EXPERIMENTAL = -2;
    public static final int THREAD_COUNT_PERFORMACE_CORES = -1;

    @rq6
    private Dav1dDecoder decoder;
    private final int maxFrameDelay;
    private final int numInputBuffers;
    private final int numOutputBuffers;
    private final int threads;
    private final boolean useCustomAllocator;

    public Libdav1dVideoRenderer(long j, @rq6 Handler handler, @rq6 VideoRendererEventListener videoRendererEventListener, int i) {
        this(j, handler, videoRendererEventListener, i, 0, 2, 4, 4, false);
    }

    @Override // androidx.media3.exoplayer.video.DecoderVideoRenderer
    public DecoderReuseEvaluation canReuseDecoder(String str, Format format, Format format2) {
        return new DecoderReuseEvaluation(str, format, format2, 3, 0);
    }

    @Override // androidx.media3.exoplayer.Renderer, androidx.media3.exoplayer.RendererCapabilities
    public String getName() {
        return TAG;
    }

    @Override // androidx.media3.exoplayer.video.DecoderVideoRenderer
    public void renderOutputBufferToSurface(VideoDecoderOutputBuffer videoDecoderOutputBuffer, Surface surface) throws Dav1dDecoderException {
        Dav1dDecoder dav1dDecoder = this.decoder;
        if (dav1dDecoder == null) {
            throw new Dav1dDecoderException("Failed to render output buffer to surface: decoder is not initialized.");
        }
        try {
            dav1dDecoder.renderToSurface(videoDecoderOutputBuffer, surface);
        } finally {
            videoDecoderOutputBuffer.release();
        }
    }

    @Override // androidx.media3.exoplayer.video.DecoderVideoRenderer
    public void setDecoderOutputMode(int i) {
        Dav1dDecoder dav1dDecoder = this.decoder;
        if (dav1dDecoder != null) {
            dav1dDecoder.setOutputMode(i);
        }
    }

    @Override // androidx.media3.exoplayer.RendererCapabilities
    public final int supportsFormat(Format format) {
        return (MimeTypes.VIDEO_AV1.equalsIgnoreCase(format.sampleMimeType) && Dav1dLibrary.isAvailable()) ? format.cryptoType != 0 ? RendererCapabilities.create(2) : RendererCapabilities.create(4, 16, 0) : RendererCapabilities.create(0);
    }

    public Libdav1dVideoRenderer(long j, @rq6 Handler handler, @rq6 VideoRendererEventListener videoRendererEventListener, int i, int i2, int i3, int i4, int i5, boolean z) {
        super(j, handler, videoRendererEventListener, i);
        this.threads = i2;
        this.numInputBuffers = i4;
        this.numOutputBuffers = i5;
        this.maxFrameDelay = i3;
        this.useCustomAllocator = z;
    }

    @Override // androidx.media3.exoplayer.video.DecoderVideoRenderer
    public final Dav1dDecoder createDecoder(Format format, @rq6 CryptoConfig cryptoConfig) throws Dav1dDecoderException {
        TraceUtil.beginSection("createDav1dDecoder");
        int i = format.maxInputSize;
        if (i == -1) {
            i = DEFAULT_INPUT_BUFFER_SIZE;
        }
        Dav1dDecoder dav1dDecoder = new Dav1dDecoder(this.numInputBuffers, this.numOutputBuffers, i, this.threads, this.maxFrameDelay, this.useCustomAllocator);
        this.decoder = dav1dDecoder;
        TraceUtil.endSection();
        return dav1dDecoder;
    }
}
