mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
2306 lines
72 KiB
Smali
2306 lines
72 KiB
Smali
.class public abstract Landroidx/media3/exoplayer/video/DecoderVideoRenderer;
|
|
.super Landroidx/media3/exoplayer/BaseRenderer;
|
|
.source "DecoderVideoRenderer.java"
|
|
|
|
|
|
# static fields
|
|
.field private static final REINITIALIZATION_STATE_NONE:I = 0x0
|
|
|
|
.field private static final REINITIALIZATION_STATE_SIGNAL_END_OF_STREAM:I = 0x1
|
|
|
|
.field private static final REINITIALIZATION_STATE_WAIT_END_OF_STREAM:I = 0x2
|
|
|
|
.field private static final TAG:Ljava/lang/String; = "DecoderVideoRenderer"
|
|
|
|
|
|
# instance fields
|
|
.field private final allowedJoiningTimeMs:J
|
|
|
|
.field private buffersInCodecCount:I
|
|
|
|
.field private consecutiveDroppedFrameCount:I
|
|
|
|
.field private decoder:Landroidx/media3/decoder/Decoder;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Landroidx/media3/decoder/Decoder<",
|
|
"Landroidx/media3/decoder/DecoderInputBuffer;",
|
|
"+",
|
|
"Landroidx/media3/decoder/VideoDecoderOutputBuffer;",
|
|
"+",
|
|
"Landroidx/media3/decoder/DecoderException;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field protected decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.field private decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
.field private decoderReceivedBuffers:Z
|
|
|
|
.field private decoderReinitializationState:I
|
|
|
|
.field private droppedFrameAccumulationStartTimeMs:J
|
|
|
|
.field private droppedFrames:I
|
|
|
|
.field private final eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
.field private final flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.field private final formatQueue:Landroidx/media3/common/util/TimedValueQueue;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Landroidx/media3/common/util/TimedValueQueue<",
|
|
"Landroidx/media3/common/Format;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field private frameMetadataListener:Landroidx/media3/exoplayer/video/VideoFrameMetadataListener;
|
|
|
|
.field private initialPositionUs:J
|
|
|
|
.field private inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.field private inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.field private inputStreamEnded:Z
|
|
|
|
.field private joiningDeadlineMs:J
|
|
|
|
.field private lastRenderTimeUs:J
|
|
|
|
.field private final maxDroppedFramesToNotify:I
|
|
|
|
.field private mayRenderFirstFrameAfterEnableIfNotStarted:Z
|
|
|
|
.field private output:Ljava/lang/Object;
|
|
|
|
.field private outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.field private outputBufferRenderer:Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
.field private outputFormat:Landroidx/media3/common/Format;
|
|
|
|
.field private outputMode:I
|
|
|
|
.field private outputStreamEnded:Z
|
|
|
|
.field private outputStreamOffsetUs:J
|
|
|
|
.field private outputSurface:Landroid/view/Surface;
|
|
|
|
.field private renderedFirstFrameAfterEnable:Z
|
|
|
|
.field private renderedFirstFrameAfterReset:Z
|
|
|
|
.field private reportedVideoSize:Landroidx/media3/common/VideoSize;
|
|
|
|
.field private sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
.field private waitingForFirstSampleInFormat:Z
|
|
|
|
|
|
# direct methods
|
|
.method protected constructor <init>(JLandroid/os/Handler;Landroidx/media3/exoplayer/video/VideoRendererEventListener;I)V
|
|
.locals 1
|
|
|
|
const/4 v0, 0x2
|
|
|
|
.line 171
|
|
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/BaseRenderer;-><init>(I)V
|
|
|
|
iput-wide p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->allowedJoiningTimeMs:J
|
|
|
|
iput p5, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maxDroppedFramesToNotify:I
|
|
|
|
const-wide p1, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
iput-wide p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
.line 175
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearReportedVideoSize()V
|
|
|
|
.line 176
|
|
new-instance p1, Landroidx/media3/common/util/TimedValueQueue;
|
|
|
|
invoke-direct {p1}, Landroidx/media3/common/util/TimedValueQueue;-><init>()V
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->formatQueue:Landroidx/media3/common/util/TimedValueQueue;
|
|
|
|
.line 177
|
|
invoke-static {}, Landroidx/media3/decoder/DecoderInputBuffer;->newNoDataInstance()Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
move-result-object p1
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 178
|
|
new-instance p1, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
invoke-direct {p1, p3, p4}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;-><init>(Landroid/os/Handler;Landroidx/media3/exoplayer/video/VideoRendererEventListener;)V
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
const/4 p1, 0x0
|
|
|
|
iput p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
const/4 p1, -0x1
|
|
|
|
iput p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private clearRenderedFirstFrame()V
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterReset:Z
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private clearReportedVideoSize()V
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->reportedVideoSize:Landroidx/media3/common/VideoSize;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private drainOutputBuffer(JJ)Z
|
|
.locals 4
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;,
|
|
Landroidx/media3/decoder/DecoderException;
|
|
}
|
|
.end annotation
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 788
|
|
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->dequeueOutputBuffer()Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
return v1
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 792
|
|
iget v2, v0, Landroidx/media3/exoplayer/DecoderCounters;->skippedOutputBufferCount:I
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
iget v3, v3, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->skippedOutputBufferCount:I
|
|
|
|
add-int/2addr v2, v3
|
|
|
|
iput v2, v0, Landroidx/media3/exoplayer/DecoderCounters;->skippedOutputBufferCount:I
|
|
|
|
iget v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 793
|
|
iget v2, v2, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->skippedOutputBufferCount:I
|
|
|
|
sub-int/2addr v0, v2
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
:cond_1
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 796
|
|
invoke-virtual {v0}, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->isEndOfStream()Z
|
|
|
|
move-result v0
|
|
|
|
const/4 v2, 0x0
|
|
|
|
if-eqz v0, :cond_3
|
|
|
|
iget p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
const/4 p2, 0x2
|
|
|
|
if-ne p1, p2, :cond_2
|
|
|
|
.line 799
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->releaseDecoder()V
|
|
|
|
.line 800
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeInitDecoder()V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 802
|
|
invoke-virtual {p1}, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->release()V
|
|
|
|
iput-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
const/4 p1, 0x1
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamEnded:Z
|
|
|
|
:goto_0
|
|
return v1
|
|
|
|
.line 809
|
|
:cond_3
|
|
invoke-direct {p0, p1, p2, p3, p4}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->processOutputBuffer(JJ)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_4
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 811
|
|
iget-wide p2, p2, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->timeUs:J
|
|
|
|
invoke-virtual {p0, p2, p3}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onProcessedOutputBuffer(J)V
|
|
|
|
iput-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
:cond_4
|
|
return p1
|
|
.end method
|
|
|
|
.method private feedInputBuffer()Z
|
|
.locals 7
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/decoder/DecoderException;,
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-eqz v0, :cond_8
|
|
|
|
iget v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
const/4 v3, 0x2
|
|
|
|
if-eq v2, v3, :cond_8
|
|
|
|
iget-boolean v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputStreamEnded:Z
|
|
|
|
if-eqz v2, :cond_0
|
|
|
|
goto/16 :goto_0
|
|
|
|
:cond_0
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
.line 729
|
|
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->dequeueInputBuffer()Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
return v1
|
|
|
|
:cond_1
|
|
iget v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
const/4 v2, 0x0
|
|
|
|
const/4 v4, 0x1
|
|
|
|
if-ne v0, v4, :cond_2
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
const/4 v4, 0x4
|
|
|
|
.line 736
|
|
invoke-virtual {v0, v4}, Landroidx/media3/decoder/DecoderInputBuffer;->setFlags(I)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
iget-object v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 737
|
|
invoke-interface {v0, v4}, Landroidx/media3/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
|
|
|
|
iput-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
iput v3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
return v1
|
|
|
|
.line 743
|
|
:cond_2
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->getFormatHolder()Landroidx/media3/exoplayer/FormatHolder;
|
|
|
|
move-result-object v0
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 744
|
|
invoke-virtual {p0, v0, v3, v1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->readSource(Landroidx/media3/exoplayer/FormatHolder;Landroidx/media3/decoder/DecoderInputBuffer;I)I
|
|
|
|
move-result v3
|
|
|
|
const/4 v5, -0x5
|
|
|
|
if-eq v3, v5, :cond_7
|
|
|
|
const/4 v0, -0x4
|
|
|
|
if-eq v3, v0, :cond_4
|
|
|
|
const/4 p0, -0x3
|
|
|
|
if-ne v3, p0, :cond_3
|
|
|
|
return v1
|
|
|
|
.line 771
|
|
:cond_3
|
|
new-instance p0, Ljava/lang/IllegalStateException;
|
|
|
|
invoke-direct {p0}, Ljava/lang/IllegalStateException;-><init>()V
|
|
|
|
throw p0
|
|
|
|
:cond_4
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 751
|
|
invoke-virtual {v0}, Landroidx/media3/decoder/DecoderInputBuffer;->isEndOfStream()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
iput-boolean v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputStreamEnded:Z
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 753
|
|
invoke-interface {v0, v3}, Landroidx/media3/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
|
|
|
|
iput-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
return v1
|
|
|
|
:cond_5
|
|
iget-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->waitingForFirstSampleInFormat:Z
|
|
|
|
if-eqz v0, :cond_6
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->formatQueue:Landroidx/media3/common/util/TimedValueQueue;
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 758
|
|
iget-wide v5, v3, Landroidx/media3/decoder/DecoderInputBuffer;->timeUs:J
|
|
|
|
iget-object v3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
invoke-virtual {v0, v5, v6, v3}, Landroidx/media3/common/util/TimedValueQueue;->add(JLjava/lang/Object;)V
|
|
|
|
iput-boolean v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->waitingForFirstSampleInFormat:Z
|
|
|
|
:cond_6
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 761
|
|
invoke-virtual {v0}, Landroidx/media3/decoder/DecoderInputBuffer;->flip()V
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 762
|
|
iput-object v1, v0, Landroidx/media3/decoder/DecoderInputBuffer;->format:Landroidx/media3/common/Format;
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 763
|
|
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onQueueInputBuffer(Landroidx/media3/decoder/DecoderInputBuffer;)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 764
|
|
invoke-interface {v0, v1}, Landroidx/media3/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
|
|
|
|
iget v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
add-int/2addr v0, v4
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
iput-boolean v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReceivedBuffers:Z
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 767
|
|
iget v1, v0, Landroidx/media3/exoplayer/DecoderCounters;->queuedInputBufferCount:I
|
|
|
|
add-int/2addr v1, v4
|
|
|
|
iput v1, v0, Landroidx/media3/exoplayer/DecoderCounters;->queuedInputBufferCount:I
|
|
|
|
iput-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
return v4
|
|
|
|
.line 748
|
|
:cond_7
|
|
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onInputFormatChanged(Landroidx/media3/exoplayer/FormatHolder;)V
|
|
|
|
return v4
|
|
|
|
:cond_8
|
|
:goto_0
|
|
return v1
|
|
.end method
|
|
|
|
.method private hasOutput()Z
|
|
.locals 1
|
|
|
|
iget p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
const/4 v0, -0x1
|
|
|
|
if-eq p0, v0, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isBufferLate(J)Z
|
|
.locals 2
|
|
|
|
const-wide/16 v0, -0x7530
|
|
|
|
cmp-long p0, p0, v0
|
|
|
|
if-gez p0, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private static isBufferVeryLate(J)Z
|
|
.locals 2
|
|
|
|
const-wide/32 v0, -0x7a120
|
|
|
|
cmp-long p0, p0, v0
|
|
|
|
if-gez p0, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method private maybeInitDecoder()V
|
|
.locals 10
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
.line 682
|
|
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setDecoderDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 686
|
|
invoke-interface {v0}, Landroidx/media3/exoplayer/drm/DrmSession;->getCryptoConfig()Landroidx/media3/decoder/CryptoConfig;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_3
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
.line 688
|
|
invoke-interface {v1}, Landroidx/media3/exoplayer/drm/DrmSession;->getError()Landroidx/media3/exoplayer/drm/DrmSession$DrmSessionException;
|
|
|
|
move-result-object v1
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
return-void
|
|
|
|
:cond_2
|
|
const/4 v0, 0x0
|
|
|
|
:cond_3
|
|
:goto_0
|
|
const/16 v1, 0xfa1
|
|
|
|
.line 700
|
|
:try_start_0
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v2
|
|
|
|
iget-object v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 701
|
|
invoke-virtual {p0, v4, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->createDecoder(Landroidx/media3/common/Format;Landroidx/media3/decoder/CryptoConfig;)Landroidx/media3/decoder/Decoder;
|
|
|
|
move-result-object v0
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
iget v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
.line 702
|
|
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setDecoderOutputMode(I)V
|
|
|
|
.line 703
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v6
|
|
|
|
iget-object v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 705
|
|
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v5
|
|
|
|
sub-long v8, v6, v2
|
|
|
|
.line 704
|
|
invoke-virtual/range {v4 .. v9}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->decoderInitialized(Ljava/lang/String;JJ)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 708
|
|
iget v2, v0, Landroidx/media3/exoplayer/DecoderCounters;->decoderInitCount:I
|
|
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
iput v2, v0, Landroidx/media3/exoplayer/DecoderCounters;->decoderInitCount:I
|
|
:try_end_0
|
|
.catch Landroidx/media3/decoder/DecoderException; {:try_start_0 .. :try_end_0} :catch_1
|
|
.catch Ljava/lang/OutOfMemoryError; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
return-void
|
|
|
|
:catch_0
|
|
move-exception v0
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 715
|
|
invoke-virtual {p0, v0, v2, v1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;I)Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
|
|
move-result-object p0
|
|
|
|
throw p0
|
|
|
|
:catch_1
|
|
move-exception v0
|
|
|
|
const-string v2, "DecoderVideoRenderer"
|
|
|
|
const-string v3, "Video codec error"
|
|
|
|
.line 710
|
|
invoke-static {v2, v3, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
.line 711
|
|
invoke-virtual {v2, v0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->videoCodecError(Ljava/lang/Exception;)V
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 712
|
|
invoke-virtual {p0, v0, v2, v1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;I)Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
|
|
move-result-object p0
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
.method private maybeNotifyDroppedFrames()V
|
|
.locals 6
|
|
|
|
iget v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
if-lez v0, :cond_0
|
|
|
|
.line 956
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v0
|
|
|
|
iget-wide v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrameAccumulationStartTimeMs:J
|
|
|
|
sub-long v2, v0, v2
|
|
|
|
iget-object v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget v5, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
.line 958
|
|
invoke-virtual {v4, v5, v2, v3}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->droppedFrames(IJ)V
|
|
|
|
const/4 v2, 0x0
|
|
|
|
iput v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrameAccumulationStartTimeMs:J
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method private maybeNotifyRenderedFirstFrame()V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x1
|
|
|
|
iput-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterEnable:Z
|
|
|
|
iget-boolean v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterReset:Z
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
iput-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterReset:Z
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->output:Ljava/lang/Object;
|
|
|
|
.line 925
|
|
invoke-virtual {v0, p0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->renderedFirstFrame(Ljava/lang/Object;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method private maybeNotifyVideoSizeChanged(II)V
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->reportedVideoSize:Landroidx/media3/common/VideoSize;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 940
|
|
iget v0, v0, Landroidx/media3/common/VideoSize;->width:I
|
|
|
|
if-ne v0, p1, :cond_0
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->reportedVideoSize:Landroidx/media3/common/VideoSize;
|
|
|
|
iget v0, v0, Landroidx/media3/common/VideoSize;->height:I
|
|
|
|
if-eq v0, p2, :cond_1
|
|
|
|
.line 943
|
|
:cond_0
|
|
new-instance v0, Landroidx/media3/common/VideoSize;
|
|
|
|
invoke-direct {v0, p1, p2}, Landroidx/media3/common/VideoSize;-><init>(II)V
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->reportedVideoSize:Landroidx/media3/common/VideoSize;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
.line 944
|
|
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->videoSizeChanged(Landroidx/media3/common/VideoSize;)V
|
|
|
|
:cond_1
|
|
return-void
|
|
.end method
|
|
|
|
.method private maybeRenotifyRenderedFirstFrame()V
|
|
.locals 1
|
|
|
|
iget-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterReset:Z
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->output:Ljava/lang/Object;
|
|
|
|
.line 931
|
|
invoke-virtual {v0, p0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->renderedFirstFrame(Ljava/lang/Object;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method private maybeRenotifyVideoSizeChanged()V
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->reportedVideoSize:Landroidx/media3/common/VideoSize;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
.line 950
|
|
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->videoSizeChanged(Landroidx/media3/common/VideoSize;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method private onOutputChanged()V
|
|
.locals 2
|
|
|
|
.line 890
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeRenotifyVideoSizeChanged()V
|
|
|
|
.line 892
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearRenderedFirstFrame()V
|
|
|
|
.line 893
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->getState()I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x2
|
|
|
|
if-ne v0, v1, :cond_0
|
|
|
|
.line 894
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setJoiningDeadlineMs()V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method private onOutputRemoved()V
|
|
.locals 0
|
|
|
|
.line 899
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearReportedVideoSize()V
|
|
|
|
.line 900
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearRenderedFirstFrame()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private onOutputReset()V
|
|
.locals 0
|
|
|
|
.line 906
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeRenotifyVideoSizeChanged()V
|
|
|
|
.line 907
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeRenotifyRenderedFirstFrame()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private processOutputBuffer(JJ)Z
|
|
.locals 11
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;,
|
|
Landroidx/media3/decoder/DecoderException;
|
|
}
|
|
.end annotation
|
|
|
|
iget-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->initialPositionUs:J
|
|
|
|
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
cmp-long v0, v0, v2
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
iput-wide p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->initialPositionUs:J
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 833
|
|
iget-wide v0, v0, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->timeUs:J
|
|
|
|
sub-long/2addr v0, p1
|
|
|
|
.line 834
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->hasOutput()Z
|
|
|
|
move-result v2
|
|
|
|
const/4 v3, 0x1
|
|
|
|
const/4 v4, 0x0
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
.line 836
|
|
invoke-static {v0, v1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->isBufferLate(J)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 837
|
|
invoke-virtual {p0, p1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->skipOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;)V
|
|
|
|
return v3
|
|
|
|
:cond_1
|
|
return v4
|
|
|
|
:cond_2
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 843
|
|
iget-wide v5, v2, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->timeUs:J
|
|
|
|
iget-wide v7, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamOffsetUs:J
|
|
|
|
sub-long/2addr v5, v7
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->formatQueue:Landroidx/media3/common/util/TimedValueQueue;
|
|
|
|
.line 844
|
|
invoke-virtual {v2, v5, v6}, Landroidx/media3/common/util/TimedValueQueue;->pollFloor(J)Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/common/Format;
|
|
|
|
if-eqz v2, :cond_3
|
|
|
|
iput-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 849
|
|
:cond_3
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v7
|
|
|
|
invoke-static {v7, v8}, Landroidx/media3/common/util/Util;->msToUs(J)J
|
|
|
|
move-result-wide v7
|
|
|
|
iget-wide v9, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->lastRenderTimeUs:J
|
|
|
|
sub-long/2addr v7, v9
|
|
|
|
.line 851
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->getState()I
|
|
|
|
move-result v2
|
|
|
|
const/4 v9, 0x2
|
|
|
|
if-ne v2, v9, :cond_4
|
|
|
|
move v2, v3
|
|
|
|
goto :goto_0
|
|
|
|
:cond_4
|
|
move v2, v4
|
|
|
|
:goto_0
|
|
iget-boolean v9, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterEnable:Z
|
|
|
|
if-nez v9, :cond_5
|
|
|
|
if-nez v2, :cond_7
|
|
|
|
iget-boolean v9, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->mayRenderFirstFrameAfterEnableIfNotStarted:Z
|
|
|
|
if-eqz v9, :cond_6
|
|
|
|
goto :goto_1
|
|
|
|
:cond_5
|
|
iget-boolean v9, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterReset:Z
|
|
|
|
if-nez v9, :cond_6
|
|
|
|
goto :goto_1
|
|
|
|
:cond_6
|
|
if-eqz v2, :cond_8
|
|
|
|
.line 858
|
|
invoke-virtual {p0, v0, v1, v7, v8}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->shouldForceRenderOutputBuffer(JJ)Z
|
|
|
|
move-result v7
|
|
|
|
if-eqz v7, :cond_8
|
|
|
|
:cond_7
|
|
:goto_1
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 859
|
|
invoke-virtual {p0, p1, v5, v6, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;JLandroidx/media3/common/Format;)V
|
|
|
|
return v3
|
|
|
|
:cond_8
|
|
if-eqz v2, :cond_c
|
|
|
|
iget-wide v7, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->initialPositionUs:J
|
|
|
|
cmp-long v2, p1, v7
|
|
|
|
if-nez v2, :cond_9
|
|
|
|
goto :goto_2
|
|
|
|
.line 868
|
|
:cond_9
|
|
invoke-virtual {p0, v0, v1, p3, p4}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->shouldDropBuffersToKeyframe(JJ)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_a
|
|
|
|
.line 869
|
|
invoke-virtual {p0, p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeDropBuffersToKeyframe(J)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_a
|
|
|
|
return v4
|
|
|
|
.line 871
|
|
:cond_a
|
|
invoke-virtual {p0, v0, v1, p3, p4}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->shouldDropOutputBuffer(JJ)Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_b
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
.line 872
|
|
invoke-virtual {p0, p1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->dropOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;)V
|
|
|
|
return v3
|
|
|
|
:cond_b
|
|
const-wide/16 p1, 0x7530
|
|
|
|
cmp-long p1, v0, p1
|
|
|
|
if-gez p1, :cond_c
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 877
|
|
invoke-virtual {p0, p1, v5, v6, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;JLandroidx/media3/common/Format;)V
|
|
|
|
return v3
|
|
|
|
:cond_c
|
|
:goto_2
|
|
return v4
|
|
.end method
|
|
|
|
.method private setDecoderDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
.line 673
|
|
invoke-static {v0, p1}, Landroidx/media3/exoplayer/drm/DrmSession;->replaceSession(Landroidx/media3/exoplayer/drm/DrmSession;Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private setJoiningDeadlineMs()V
|
|
.locals 4
|
|
|
|
iget-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->allowedJoiningTimeMs:J
|
|
|
|
const-wide/16 v2, 0x0
|
|
|
|
cmp-long v0, v0, v2
|
|
|
|
if-lez v0, :cond_0
|
|
|
|
.line 913
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v0
|
|
|
|
iget-wide v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->allowedJoiningTimeMs:J
|
|
|
|
add-long/2addr v0, v2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
:goto_0
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private setSourceDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
.locals 1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
.line 668
|
|
invoke-static {v0, p1}, Landroidx/media3/exoplayer/drm/DrmSession;->replaceSession(Landroidx/media3/exoplayer/drm/DrmSession;Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method protected canReuseDecoder(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;)Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
.locals 6
|
|
|
|
.line 661
|
|
new-instance p0, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
const/4 v4, 0x0
|
|
|
|
const/4 v5, 0x1
|
|
|
|
move-object v0, p0
|
|
|
|
move-object v1, p1
|
|
|
|
move-object v2, p2
|
|
|
|
move-object v3, p3
|
|
|
|
invoke-direct/range {v0 .. v5}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method protected abstract createDecoder(Landroidx/media3/common/Format;Landroidx/media3/decoder/CryptoConfig;)Landroidx/media3/decoder/Decoder;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Landroidx/media3/common/Format;",
|
|
"Landroidx/media3/decoder/CryptoConfig;",
|
|
")",
|
|
"Landroidx/media3/decoder/Decoder<",
|
|
"Landroidx/media3/decoder/DecoderInputBuffer;",
|
|
"+",
|
|
"Landroidx/media3/decoder/VideoDecoderOutputBuffer;",
|
|
"+",
|
|
"Landroidx/media3/decoder/DecoderException;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/decoder/DecoderException;
|
|
}
|
|
.end annotation
|
|
.end method
|
|
|
|
.method protected dropOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;)V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x0
|
|
|
|
const/4 v1, 0x1
|
|
|
|
.line 494
|
|
invoke-virtual {p0, v0, v1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->updateDroppedBufferCounters(II)V
|
|
|
|
.line 496
|
|
invoke-virtual {p1}, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->release()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected flushDecoder()V
|
|
.locals 3
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
iget v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
if-eqz v1, :cond_0
|
|
|
|
.line 343
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->releaseDecoder()V
|
|
|
|
.line 344
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeInitDecoder()V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v1, 0x0
|
|
|
|
iput-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
if-eqz v2, :cond_1
|
|
|
|
.line 348
|
|
invoke-virtual {v2}, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->release()V
|
|
|
|
iput-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
:cond_1
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 351
|
|
invoke-interface {v1}, Landroidx/media3/decoder/Decoder;->flush()V
|
|
|
|
iput-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReceivedBuffers:Z
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public handleMessage(ILjava/lang/Object;)V
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
const/4 v0, 0x1
|
|
|
|
if-ne p1, v0, :cond_0
|
|
|
|
.line 261
|
|
invoke-virtual {p0, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setOutput(Ljava/lang/Object;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 v0, 0x7
|
|
|
|
if-ne p1, v0, :cond_1
|
|
|
|
.line 263
|
|
check-cast p2, Landroidx/media3/exoplayer/video/VideoFrameMetadataListener;
|
|
|
|
iput-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->frameMetadataListener:Landroidx/media3/exoplayer/video/VideoFrameMetadataListener;
|
|
|
|
goto :goto_0
|
|
|
|
.line 265
|
|
:cond_1
|
|
invoke-super {p0, p1, p2}, Landroidx/media3/exoplayer/BaseRenderer;->handleMessage(ILjava/lang/Object;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public isEnded()Z
|
|
.locals 0
|
|
|
|
iget-boolean p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamEnded:Z
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public isReady()Z
|
|
.locals 9
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
const/4 v1, 0x1
|
|
|
|
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 237
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->isSourceReady()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
:cond_0
|
|
iget-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterReset:Z
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
.line 238
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->hasOutput()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_2
|
|
|
|
:cond_1
|
|
iput-wide v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
return v1
|
|
|
|
:cond_2
|
|
iget-wide v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
cmp-long v0, v4, v2
|
|
|
|
const/4 v4, 0x0
|
|
|
|
if-nez v0, :cond_3
|
|
|
|
return v4
|
|
|
|
.line 245
|
|
:cond_3
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v5
|
|
|
|
iget-wide v7, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
cmp-long v0, v5, v7
|
|
|
|
if-gez v0, :cond_4
|
|
|
|
return v1
|
|
|
|
:cond_4
|
|
iput-wide v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
return v4
|
|
.end method
|
|
|
|
.method protected maybeDropBuffersToKeyframe(J)Z
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 509
|
|
invoke-virtual {p0, p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->skipSource(J)I
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_0
|
|
|
|
const/4 p0, 0x0
|
|
|
|
return p0
|
|
|
|
:cond_0
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 513
|
|
iget v0, p2, Landroidx/media3/exoplayer/DecoderCounters;->droppedToKeyframeCount:I
|
|
|
|
const/4 v1, 0x1
|
|
|
|
add-int/2addr v0, v1
|
|
|
|
iput v0, p2, Landroidx/media3/exoplayer/DecoderCounters;->droppedToKeyframeCount:I
|
|
|
|
iget p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
.line 516
|
|
invoke-virtual {p0, p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->updateDroppedBufferCounters(II)V
|
|
|
|
.line 518
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->flushDecoder()V
|
|
|
|
return v1
|
|
.end method
|
|
|
|
.method protected onDisabled()V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 314
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearReportedVideoSize()V
|
|
|
|
.line 315
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearRenderedFirstFrame()V
|
|
|
|
.line 317
|
|
:try_start_0
|
|
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setSourceDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
|
|
.line 318
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->releaseDecoder()V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 320
|
|
invoke-virtual {v0, p0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->disabled(Landroidx/media3/exoplayer/DecoderCounters;)V
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
invoke-virtual {v1, p0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->disabled(Landroidx/media3/exoplayer/DecoderCounters;)V
|
|
|
|
.line 321
|
|
throw v0
|
|
.end method
|
|
|
|
.method protected onEnabled(ZZ)V
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 274
|
|
new-instance p1, Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
invoke-direct {p1}, Landroidx/media3/exoplayer/DecoderCounters;-><init>()V
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
.line 275
|
|
invoke-virtual {v0, p1}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->enabled(Landroidx/media3/exoplayer/DecoderCounters;)V
|
|
|
|
iput-boolean p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->mayRenderFirstFrameAfterEnableIfNotStarted:Z
|
|
|
|
const/4 p1, 0x0
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderedFirstFrameAfterEnable:Z
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onInputFormatChanged(Landroidx/media3/exoplayer/FormatHolder;)V
|
|
.locals 8
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
const/4 v0, 0x1
|
|
|
|
iput-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->waitingForFirstSampleInFormat:Z
|
|
|
|
.line 382
|
|
iget-object v1, p1, Landroidx/media3/exoplayer/FormatHolder;->format:Landroidx/media3/common/Format;
|
|
|
|
invoke-static {v1}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v1
|
|
|
|
move-object v5, v1
|
|
|
|
check-cast v5, Landroidx/media3/common/Format;
|
|
|
|
.line 383
|
|
iget-object p1, p1, Landroidx/media3/exoplayer/FormatHolder;->drmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setSourceDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
|
|
iget-object v4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
iput-object v5, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
if-nez p1, :cond_0
|
|
|
|
.line 388
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeInitDecoder()V
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 389
|
|
invoke-virtual {p1, p0, v0}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->inputFormatChanged(Landroidx/media3/common/Format;Landroidx/media3/exoplayer/DecoderReuseEvaluation;)V
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
|
|
|
|
if-eq v1, v2, :cond_1
|
|
|
|
.line 395
|
|
new-instance p1, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 397
|
|
invoke-interface {v1}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
const/4 v6, 0x0
|
|
|
|
const/16 v7, 0x80
|
|
|
|
move-object v2, p1
|
|
|
|
invoke-direct/range {v2 .. v7}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 403
|
|
:cond_1
|
|
invoke-interface {p1}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p0, p1, v4, v5}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->canReuseDecoder(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;)Landroidx/media3/exoplayer/DecoderReuseEvaluation;
|
|
|
|
move-result-object p1
|
|
|
|
.line 406
|
|
:goto_0
|
|
iget v1, p1, Landroidx/media3/exoplayer/DecoderReuseEvaluation;->result:I
|
|
|
|
if-nez v1, :cond_3
|
|
|
|
iget-boolean v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReceivedBuffers:Z
|
|
|
|
if-eqz v1, :cond_2
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
goto :goto_1
|
|
|
|
.line 412
|
|
:cond_2
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->releaseDecoder()V
|
|
|
|
.line 413
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeInitDecoder()V
|
|
|
|
:cond_3
|
|
:goto_1
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
.line 416
|
|
invoke-virtual {v0, p0, p1}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->inputFormatChanged(Landroidx/media3/common/Format;Landroidx/media3/exoplayer/DecoderReuseEvaluation;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onPositionReset(JZ)V
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
const/4 p1, 0x0
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputStreamEnded:Z
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamEnded:Z
|
|
|
|
.line 284
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->clearRenderedFirstFrame()V
|
|
|
|
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->initialPositionUs:J
|
|
|
|
iput p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->consecutiveDroppedFrameCount:I
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
.line 288
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->flushDecoder()V
|
|
|
|
:cond_0
|
|
if-eqz p3, :cond_1
|
|
|
|
.line 291
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setJoiningDeadlineMs()V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
:goto_0
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->formatQueue:Landroidx/media3/common/util/TimedValueQueue;
|
|
|
|
.line 295
|
|
invoke-virtual {p0}, Landroidx/media3/common/util/TimedValueQueue;->clear()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onProcessedOutputBuffer(J)V
|
|
.locals 0
|
|
|
|
iget p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
add-int/lit8 p1, p1, -0x1
|
|
|
|
iput p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onQueueInputBuffer(Landroidx/media3/decoder/DecoderInputBuffer;)V
|
|
.locals 0
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onStarted()V
|
|
.locals 2
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
.line 301
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v0
|
|
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrameAccumulationStartTimeMs:J
|
|
|
|
.line 302
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-static {v0, v1}, Landroidx/media3/common/util/Util;->msToUs(J)J
|
|
|
|
move-result-wide v0
|
|
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->lastRenderTimeUs:J
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onStopped()V
|
|
.locals 2
|
|
|
|
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
iput-wide v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->joiningDeadlineMs:J
|
|
|
|
.line 308
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeNotifyDroppedFrames()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected onStreamChanged([Landroidx/media3/common/Format;JJ)V
|
|
.locals 0
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
iput-wide p4, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamOffsetUs:J
|
|
|
|
.line 331
|
|
invoke-super/range {p0 .. p5}, Landroidx/media3/exoplayer/BaseRenderer;->onStreamChanged([Landroidx/media3/common/Format;JJ)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected releaseDecoder()V
|
|
.locals 3
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBuffer:Landroidx/media3/decoder/VideoDecoderOutputBuffer;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
iput v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReinitializationState:I
|
|
|
|
iput-boolean v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderReceivedBuffers:Z
|
|
|
|
iput v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->buffersInCodecCount:I
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
if-eqz v1, :cond_0
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 365
|
|
iget v2, v1, Landroidx/media3/exoplayer/DecoderCounters;->decoderReleaseCount:I
|
|
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
iput v2, v1, Landroidx/media3/exoplayer/DecoderCounters;->decoderReleaseCount:I
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 366
|
|
invoke-interface {v1}, Landroidx/media3/decoder/Decoder;->release()V
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
iget-object v2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 367
|
|
invoke-interface {v2}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v1, v2}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->decoderReleased(Ljava/lang/String;)V
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
.line 370
|
|
:cond_0
|
|
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setDecoderDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public render(JJ)V
|
|
.locals 3
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
}
|
|
.end annotation
|
|
|
|
iget-boolean v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamEnded:Z
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
if-nez v0, :cond_3
|
|
|
|
.line 193
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->getFormatHolder()Landroidx/media3/exoplayer/FormatHolder;
|
|
|
|
move-result-object v0
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 194
|
|
invoke-virtual {v1}, Landroidx/media3/decoder/DecoderInputBuffer;->clear()V
|
|
|
|
iget-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
const/4 v2, 0x2
|
|
|
|
.line 195
|
|
invoke-virtual {p0, v0, v1, v2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->readSource(Landroidx/media3/exoplayer/FormatHolder;Landroidx/media3/decoder/DecoderInputBuffer;I)I
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, -0x5
|
|
|
|
if-ne v1, v2, :cond_1
|
|
|
|
.line 197
|
|
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onInputFormatChanged(Landroidx/media3/exoplayer/FormatHolder;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p1, -0x4
|
|
|
|
if-ne v1, p1, :cond_2
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
|
|
|
|
.line 200
|
|
invoke-virtual {p1}, Landroidx/media3/decoder/DecoderInputBuffer;->isEndOfStream()Z
|
|
|
|
move-result p1
|
|
|
|
invoke-static {p1}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
const/4 p1, 0x1
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputStreamEnded:Z
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputStreamEnded:Z
|
|
|
|
:cond_2
|
|
return-void
|
|
|
|
.line 211
|
|
:cond_3
|
|
:goto_0
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeInitDecoder()V
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
if-eqz v0, :cond_6
|
|
|
|
:try_start_0
|
|
const-string v0, "drainAndFeed"
|
|
|
|
.line 216
|
|
invoke-static {v0}, Landroidx/media3/common/util/TraceUtil;->beginSection(Ljava/lang/String;)V
|
|
|
|
.line 217
|
|
:goto_1
|
|
invoke-direct {p0, p1, p2, p3, p4}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->drainOutputBuffer(JJ)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_4
|
|
|
|
goto :goto_1
|
|
|
|
.line 218
|
|
:cond_4
|
|
:goto_2
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->feedInputBuffer()Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_5
|
|
|
|
goto :goto_2
|
|
|
|
.line 219
|
|
:cond_5
|
|
invoke-static {}, Landroidx/media3/common/util/TraceUtil;->endSection()V
|
|
:try_end_0
|
|
.catch Landroidx/media3/decoder/DecoderException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 225
|
|
invoke-virtual {p0}, Landroidx/media3/exoplayer/DecoderCounters;->ensureUpdated()V
|
|
|
|
goto :goto_3
|
|
|
|
:catch_0
|
|
move-exception p1
|
|
|
|
const-string p2, "DecoderVideoRenderer"
|
|
|
|
const-string p3, "Video codec error"
|
|
|
|
.line 221
|
|
invoke-static {p2, p3, p1}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->eventDispatcher:Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;
|
|
|
|
.line 222
|
|
invoke-virtual {p2, p1}, Landroidx/media3/exoplayer/video/VideoRendererEventListener$EventDispatcher;->videoCodecError(Ljava/lang/Exception;)V
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->inputFormat:Landroidx/media3/common/Format;
|
|
|
|
const/16 p3, 0xfa3
|
|
|
|
.line 223
|
|
invoke-virtual {p0, p1, p2, p3}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;I)Landroidx/media3/exoplayer/ExoPlaybackException;
|
|
|
|
move-result-object p0
|
|
|
|
throw p0
|
|
|
|
:cond_6
|
|
:goto_3
|
|
return-void
|
|
.end method
|
|
|
|
.method protected renderOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;JLandroidx/media3/common/Format;)V
|
|
.locals 7
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/decoder/DecoderException;
|
|
}
|
|
.end annotation
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->frameMetadataListener:Landroidx/media3/exoplayer/video/VideoFrameMetadataListener;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 573
|
|
invoke-static {}, Ljava/lang/System;->nanoTime()J
|
|
|
|
move-result-wide v3
|
|
|
|
const/4 v6, 0x0
|
|
|
|
move-wide v1, p2
|
|
|
|
move-object v5, p4
|
|
|
|
.line 572
|
|
invoke-interface/range {v0 .. v6}, Landroidx/media3/exoplayer/video/VideoFrameMetadataListener;->onVideoFrameAboutToBeRendered(JJLandroidx/media3/common/Format;Landroid/media/MediaFormat;)V
|
|
|
|
.line 575
|
|
:cond_0
|
|
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
|
|
|
|
move-result-wide p2
|
|
|
|
invoke-static {p2, p3}, Landroidx/media3/common/util/Util;->msToUs(J)J
|
|
|
|
move-result-wide p2
|
|
|
|
iput-wide p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->lastRenderTimeUs:J
|
|
|
|
.line 576
|
|
iget p2, p1, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->mode:I
|
|
|
|
const/4 p3, 0x0
|
|
|
|
const/4 p4, 0x1
|
|
|
|
if-ne p2, p4, :cond_1
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputSurface:Landroid/view/Surface;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
move v0, p4
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
move v0, p3
|
|
|
|
:goto_0
|
|
if-nez p2, :cond_2
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBufferRenderer:Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
if-eqz p2, :cond_2
|
|
|
|
move p2, p4
|
|
|
|
goto :goto_1
|
|
|
|
:cond_2
|
|
move p2, p3
|
|
|
|
:goto_1
|
|
if-nez p2, :cond_3
|
|
|
|
if-nez v0, :cond_3
|
|
|
|
.line 580
|
|
invoke-virtual {p0, p1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->dropOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;)V
|
|
|
|
goto :goto_3
|
|
|
|
.line 582
|
|
:cond_3
|
|
iget v0, p1, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->width:I
|
|
|
|
iget v1, p1, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->height:I
|
|
|
|
invoke-direct {p0, v0, v1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeNotifyVideoSizeChanged(II)V
|
|
|
|
if-eqz p2, :cond_4
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBufferRenderer:Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
.line 584
|
|
invoke-interface {p2, p1}, Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;->setOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;)V
|
|
|
|
goto :goto_2
|
|
|
|
:cond_4
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputSurface:Landroid/view/Surface;
|
|
|
|
.line 586
|
|
invoke-virtual {p0, p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->renderOutputBufferToSurface(Landroidx/media3/decoder/VideoDecoderOutputBuffer;Landroid/view/Surface;)V
|
|
|
|
:goto_2
|
|
iput p3, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->consecutiveDroppedFrameCount:I
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 589
|
|
iget p2, p1, Landroidx/media3/exoplayer/DecoderCounters;->renderedOutputBufferCount:I
|
|
|
|
add-int/2addr p2, p4
|
|
|
|
iput p2, p1, Landroidx/media3/exoplayer/DecoderCounters;->renderedOutputBufferCount:I
|
|
|
|
.line 590
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeNotifyRenderedFirstFrame()V
|
|
|
|
:goto_3
|
|
return-void
|
|
.end method
|
|
|
|
.method protected abstract renderOutputBufferToSurface(Landroidx/media3/decoder/VideoDecoderOutputBuffer;Landroid/view/Surface;)V
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/decoder/DecoderException;
|
|
}
|
|
.end annotation
|
|
.end method
|
|
|
|
.method protected abstract setDecoderOutputMode(I)V
|
|
.end method
|
|
|
|
.method protected final setOutput(Ljava/lang/Object;)V
|
|
.locals 2
|
|
|
|
.line 609
|
|
instance-of v0, p1, Landroid/view/Surface;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 610
|
|
move-object v0, p1
|
|
|
|
check-cast v0, Landroid/view/Surface;
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputSurface:Landroid/view/Surface;
|
|
|
|
iput-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBufferRenderer:Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
const/4 v0, 0x1
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
goto :goto_0
|
|
|
|
.line 613
|
|
:cond_0
|
|
instance-of v0, p1, Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
iput-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputSurface:Landroid/view/Surface;
|
|
|
|
.line 615
|
|
move-object v0, p1
|
|
|
|
check-cast v0, Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
iput-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBufferRenderer:Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
const/4 v0, 0x0
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
iput-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputSurface:Landroid/view/Surface;
|
|
|
|
iput-object v1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputBufferRenderer:Landroidx/media3/exoplayer/video/VideoDecoderOutputBufferRenderer;
|
|
|
|
const/4 p1, -0x1
|
|
|
|
iput p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
move-object p1, v1
|
|
|
|
:goto_0
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->output:Ljava/lang/Object;
|
|
|
|
if-eq v0, p1, :cond_4
|
|
|
|
iput-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->output:Ljava/lang/Object;
|
|
|
|
if-eqz p1, :cond_3
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoder:Landroidx/media3/decoder/Decoder;
|
|
|
|
if-eqz p1, :cond_2
|
|
|
|
iget p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->outputMode:I
|
|
|
|
.line 628
|
|
invoke-virtual {p0, p1}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->setDecoderOutputMode(I)V
|
|
|
|
.line 630
|
|
:cond_2
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onOutputChanged()V
|
|
|
|
goto :goto_1
|
|
|
|
.line 634
|
|
:cond_3
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onOutputRemoved()V
|
|
|
|
goto :goto_1
|
|
|
|
:cond_4
|
|
if-eqz p1, :cond_5
|
|
|
|
.line 638
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->onOutputReset()V
|
|
|
|
:cond_5
|
|
:goto_1
|
|
return-void
|
|
.end method
|
|
|
|
.method protected shouldDropBuffersToKeyframe(JJ)Z
|
|
.locals 0
|
|
|
|
.line 462
|
|
invoke-static {p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->isBufferVeryLate(J)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method protected shouldDropOutputBuffer(JJ)Z
|
|
.locals 0
|
|
|
|
.line 449
|
|
invoke-static {p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->isBufferLate(J)Z
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method protected shouldForceRenderOutputBuffer(JJ)Z
|
|
.locals 0
|
|
|
|
.line 475
|
|
invoke-static {p1, p2}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->isBufferLate(J)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_0
|
|
|
|
const-wide/32 p0, 0x186a0
|
|
|
|
cmp-long p0, p3, p0
|
|
|
|
if-lez p0, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method protected skipOutputBuffer(Landroidx/media3/decoder/VideoDecoderOutputBuffer;)V
|
|
.locals 1
|
|
|
|
iget-object p0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 484
|
|
iget v0, p0, Landroidx/media3/exoplayer/DecoderCounters;->skippedOutputBufferCount:I
|
|
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
iput v0, p0, Landroidx/media3/exoplayer/DecoderCounters;->skippedOutputBufferCount:I
|
|
|
|
.line 485
|
|
invoke-virtual {p1}, Landroidx/media3/decoder/VideoDecoderOutputBuffer;->release()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method protected updateDroppedBufferCounters(II)V
|
|
.locals 2
|
|
|
|
iget-object v0, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 532
|
|
iget v1, v0, Landroidx/media3/exoplayer/DecoderCounters;->droppedInputBufferCount:I
|
|
|
|
add-int/2addr v1, p1
|
|
|
|
iput v1, v0, Landroidx/media3/exoplayer/DecoderCounters;->droppedInputBufferCount:I
|
|
|
|
add-int/2addr p1, p2
|
|
|
|
iget-object p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 534
|
|
iget v0, p2, Landroidx/media3/exoplayer/DecoderCounters;->droppedBufferCount:I
|
|
|
|
add-int/2addr v0, p1
|
|
|
|
iput v0, p2, Landroidx/media3/exoplayer/DecoderCounters;->droppedBufferCount:I
|
|
|
|
iget p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
add-int/2addr p2, p1
|
|
|
|
iput p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
iget p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->consecutiveDroppedFrameCount:I
|
|
|
|
add-int/2addr p2, p1
|
|
|
|
iput p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->consecutiveDroppedFrameCount:I
|
|
|
|
iget-object p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
|
|
|
|
.line 537
|
|
iget v0, p1, Landroidx/media3/exoplayer/DecoderCounters;->maxConsecutiveDroppedBufferCount:I
|
|
|
|
.line 538
|
|
invoke-static {p2, v0}, Ljava/lang/Math;->max(II)I
|
|
|
|
move-result p2
|
|
|
|
iput p2, p1, Landroidx/media3/exoplayer/DecoderCounters;->maxConsecutiveDroppedBufferCount:I
|
|
|
|
iget p1, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maxDroppedFramesToNotify:I
|
|
|
|
if-lez p1, :cond_0
|
|
|
|
iget p2, p0, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->droppedFrames:I
|
|
|
|
if-lt p2, p1, :cond_0
|
|
|
|
.line 540
|
|
invoke-direct {p0}, Landroidx/media3/exoplayer/video/DecoderVideoRenderer;->maybeNotifyDroppedFrames()V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|