Rabbit-R1/android (non root)/smali/smali_classes2/androidx/media3/exoplayer/audio/DecoderAudioRenderer.smali
2024-05-21 17:08:36 -04:00

2113 lines
69 KiB
Smali

.class public abstract Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;
.super Landroidx/media3/exoplayer/BaseRenderer;
.source "DecoderAudioRenderer.java"
# interfaces
.implements Landroidx/media3/exoplayer/MediaClock;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/media3/exoplayer/audio/DecoderAudioRenderer$AudioSinkListener;,
Landroidx/media3/exoplayer/audio/DecoderAudioRenderer$Api23;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroidx/media3/decoder/Decoder<",
"Landroidx/media3/decoder/DecoderInputBuffer;",
"+",
"Landroidx/media3/decoder/SimpleDecoderOutputBuffer;",
"+",
"Landroidx/media3/decoder/DecoderException;",
">;>",
"Landroidx/media3/exoplayer/BaseRenderer;",
"Landroidx/media3/exoplayer/MediaClock;"
}
.end annotation
# static fields
.field private static final MAX_PENDING_OUTPUT_STREAM_OFFSET_COUNT:I = 0xa
.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; = "DecoderAudioRenderer"
# instance fields
.field private allowFirstBufferPositionDiscontinuity:Z
.field private allowPositionDiscontinuity:Z
.field private final audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.field private audioTrackNeedsConfigure:Z
.field private currentPositionUs:J
.field private decoder:Landroidx/media3/decoder/Decoder;
.annotation system Ldalvik/annotation/Signature;
value = {
"TT;"
}
.end annotation
.end field
.field private decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.field private decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
.field private decoderReceivedBuffers:Z
.field private decoderReinitializationState:I
.field private encoderDelay:I
.field private encoderPadding:I
.field private final eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
.field private experimentalKeepAudioTrackOnSeek:Z
.field private firstStreamSampleRead:Z
.field private final flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.field private inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.field private inputFormat:Landroidx/media3/common/Format;
.field private inputStreamEnded:Z
.field private outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.field private outputStreamEnded:Z
.field private outputStreamOffsetUs:J
.field private pendingOutputStreamOffsetCount:I
.field private final pendingOutputStreamOffsetsUs:[J
.field private sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
# direct methods
.method public constructor <init>()V
.locals 2
const/4 v0, 0x0
new-array v0, v0, [Landroidx/media3/common/audio/AudioProcessor;
const/4 v1, 0x0
.line 166
invoke-direct {p0, v1, v1, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;-><init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;[Landroidx/media3/common/audio/AudioProcessor;)V
return-void
.end method
.method public varargs constructor <init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;Landroidx/media3/exoplayer/audio/AudioCapabilities;[Landroidx/media3/common/audio/AudioProcessor;)V
.locals 2
.line 196
new-instance v0, Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;
invoke-direct {v0}, Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;-><init>()V
sget-object v1, Landroidx/media3/exoplayer/audio/AudioCapabilities;->DEFAULT_AUDIO_CAPABILITIES:Landroidx/media3/exoplayer/audio/AudioCapabilities;
.line 201
invoke-static {p3, v1}, Lcom/google/common/base/MoreObjects;->firstNonNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p3
check-cast p3, Landroidx/media3/exoplayer/audio/AudioCapabilities;
.line 200
invoke-virtual {v0, p3}, Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;->setAudioCapabilities(Landroidx/media3/exoplayer/audio/AudioCapabilities;)Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;
move-result-object p3
.line 202
invoke-virtual {p3, p4}, Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;->setAudioProcessors([Landroidx/media3/common/audio/AudioProcessor;)Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;
move-result-object p3
.line 203
invoke-virtual {p3}, Landroidx/media3/exoplayer/audio/DefaultAudioSink$Builder;->build()Landroidx/media3/exoplayer/audio/DefaultAudioSink;
move-result-object p3
.line 196
invoke-direct {p0, p1, p2, p3}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;-><init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;Landroidx/media3/exoplayer/audio/AudioSink;)V
return-void
.end method
.method public constructor <init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;Landroidx/media3/exoplayer/audio/AudioSink;)V
.locals 2
const/4 v0, 0x1
.line 216
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/BaseRenderer;-><init>(I)V
.line 217
new-instance v1, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
invoke-direct {v1, p1, p2}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;-><init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;)V
iput-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iput-object p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 219
new-instance p1, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer$AudioSinkListener;
const/4 p2, 0x0
invoke-direct {p1, p0, p2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer$AudioSinkListener;-><init>(Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;Landroidx/media3/exoplayer/audio/DecoderAudioRenderer$1;)V
invoke-interface {p3, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->setListener(Landroidx/media3/exoplayer/audio/AudioSink$Listener;)V
.line 220
invoke-static {}, Landroidx/media3/decoder/DecoderInputBuffer;->newNoDataInstance()Landroidx/media3/decoder/DecoderInputBuffer;
move-result-object p1
iput-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
const/4 p1, 0x0
iput p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
iput-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioTrackNeedsConfigure:Z
const-wide p1, -0x7fffffffffffffffL # -4.9E-324
.line 223
invoke-direct {p0, p1, p2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setOutputStreamOffsetUs(J)V
const/16 p1, 0xa
new-array p1, p1, [J
iput-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetsUs:[J
return-void
.end method
.method public varargs constructor <init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;[Landroidx/media3/common/audio/AudioProcessor;)V
.locals 1
const/4 v0, 0x0
.line 179
invoke-direct {p0, p1, p2, v0, p3}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;-><init>(Landroid/os/Handler;Landroidx/media3/exoplayer/audio/AudioRendererEventListener;Landroidx/media3/exoplayer/audio/AudioCapabilities;[Landroidx/media3/common/audio/AudioProcessor;)V
return-void
.end method
.method static synthetic access$100(Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;)Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
.locals 0
.line 94
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
return-object p0
.end method
.method private drainOutputBuffer()Z
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;,
Landroidx/media3/decoder/DecoderException;,
Landroidx/media3/exoplayer/audio/AudioSink$ConfigurationException;,
Landroidx/media3/exoplayer/audio/AudioSink$InitializationException;,
Landroidx/media3/exoplayer/audio/AudioSink$WriteException;
}
.end annotation
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
const/4 v1, 0x0
if-nez v0, :cond_2
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 408
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->dequeueOutputBuffer()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
if-nez v0, :cond_0
return v1
.line 412
:cond_0
iget v0, v0, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->skippedOutputBufferCount:I
if-lez v0, :cond_1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 413
iget v2, v0, Landroidx/media3/exoplayer/DecoderCounters;->skippedOutputBufferCount:I
iget-object v3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
iget v3, v3, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->skippedOutputBufferCount:I
add-int/2addr v2, v3
iput v2, v0, Landroidx/media3/exoplayer/DecoderCounters;->skippedOutputBufferCount:I
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 414
invoke-interface {v0}, Landroidx/media3/exoplayer/audio/AudioSink;->handleDiscontinuity()V
:cond_1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.line 416
invoke-virtual {v0}, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->isFirstSample()Z
move-result v0
if-eqz v0, :cond_2
.line 417
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->processFirstSampleOfStream()V
:cond_2
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.line 421
invoke-virtual {v0}, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->isEndOfStream()Z
move-result v0
const/4 v2, 0x0
const/4 v3, 0x1
if-eqz v0, :cond_4
iget v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
const/4 v4, 0x2
if-ne v0, v4, :cond_3
.line 424
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->releaseDecoder()V
.line 425
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->maybeInitDecoder()V
iput-boolean v3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioTrackNeedsConfigure:Z
goto :goto_0
:cond_3
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.line 429
invoke-virtual {v0}, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->release()V
iput-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.line 432
:try_start_0
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->processEndOfStream()V
:try_end_0
.catch Landroidx/media3/exoplayer/audio/AudioSink$WriteException; {:try_start_0 .. :try_end_0} :catch_0
:goto_0
return v1
:catch_0
move-exception v0
.line 434
iget-object v1, v0, Landroidx/media3/exoplayer/audio/AudioSink$WriteException;->format:Landroidx/media3/common/Format;
iget-boolean v2, v0, Landroidx/media3/exoplayer/audio/AudioSink$WriteException;->isRecoverable:Z
const/16 v3, 0x138a
invoke-virtual {p0, v0, v1, v2, v3}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;ZI)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
:cond_4
iget-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioTrackNeedsConfigure:Z
if-eqz v0, :cond_5
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 443
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->getOutputFormat(Landroidx/media3/decoder/Decoder;)Landroidx/media3/common/Format;
move-result-object v0
.line 444
invoke-virtual {v0}, Landroidx/media3/common/Format;->buildUpon()Landroidx/media3/common/Format$Builder;
move-result-object v0
iget v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->encoderDelay:I
.line 445
invoke-virtual {v0, v4}, Landroidx/media3/common/Format$Builder;->setEncoderDelay(I)Landroidx/media3/common/Format$Builder;
move-result-object v0
iget v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->encoderPadding:I
.line 446
invoke-virtual {v0, v4}, Landroidx/media3/common/Format$Builder;->setEncoderPadding(I)Landroidx/media3/common/Format$Builder;
move-result-object v0
.line 447
invoke-virtual {v0}, Landroidx/media3/common/Format$Builder;->build()Landroidx/media3/common/Format;
move-result-object v0
iget-object v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 448
invoke-interface {v4, v0, v1, v2}, Landroidx/media3/exoplayer/audio/AudioSink;->configure(Landroidx/media3/common/Format;I[I)V
iput-boolean v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioTrackNeedsConfigure:Z
:cond_5
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
iget-object v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.line 452
iget-object v4, v4, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->data:Ljava/nio/ByteBuffer;
iget-object v5, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
iget-wide v5, v5, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->timeUs:J
invoke-interface {v0, v4, v5, v6, v3}, Landroidx/media3/exoplayer/audio/AudioSink;->handleBuffer(Ljava/nio/ByteBuffer;JI)Z
move-result v0
if-eqz v0, :cond_6
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 454
iget v1, v0, Landroidx/media3/exoplayer/DecoderCounters;->renderedOutputBufferCount:I
add-int/2addr v1, v3
iput v1, v0, Landroidx/media3/exoplayer/DecoderCounters;->renderedOutputBufferCount:I
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
.line 455
invoke-virtual {v0}, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->release()V
iput-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
return v3
:cond_6
return v1
.end method
.method private feedInputBuffer()Z
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/decoder/DecoderException;,
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
const/4 v1, 0x0
if-eqz v0, :cond_8
iget v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
const/4 v3, 0x2
if-eq v2, v3, :cond_8
iget-boolean v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputStreamEnded:Z
if-eqz v2, :cond_0
goto/16 :goto_0
:cond_0
iget-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
if-nez v2, :cond_1
.line 493
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/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
if-nez v0, :cond_1
return v1
:cond_1
iget v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
const/4 v2, 0x0
const/4 v4, 0x1
if-ne v0, v4, :cond_2
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
const/4 v4, 0x4
.line 500
invoke-virtual {v0, v4}, Landroidx/media3/decoder/DecoderInputBuffer;->setFlags(I)V
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
iget-object v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 501
invoke-interface {v0, v4}, Landroidx/media3/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
iput-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
iput v3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
return v1
.line 507
:cond_2
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->getFormatHolder()Landroidx/media3/exoplayer/FormatHolder;
move-result-object v0
iget-object v3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 508
invoke-virtual {p0, v0, v3, v1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->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 534
: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/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 515
invoke-virtual {v0}, Landroidx/media3/decoder/DecoderInputBuffer;->isEndOfStream()Z
move-result v0
if-eqz v0, :cond_5
iput-boolean v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputStreamEnded:Z
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
iget-object v3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 517
invoke-interface {v0, v3}, Landroidx/media3/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
iput-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
return v1
:cond_5
iget-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->firstStreamSampleRead:Z
if-nez v0, :cond_6
iput-boolean v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->firstStreamSampleRead:Z
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
const/high16 v1, 0x8000000
.line 523
invoke-virtual {v0, v1}, Landroidx/media3/decoder/DecoderInputBuffer;->addFlag(I)V
:cond_6
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 525
invoke-virtual {v0}, Landroidx/media3/decoder/DecoderInputBuffer;->flip()V
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
.line 526
iput-object v1, v0, Landroidx/media3/decoder/DecoderInputBuffer;->format:Landroidx/media3/common/Format;
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 527
invoke-virtual {p0, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->onQueueInputBuffer(Landroidx/media3/decoder/DecoderInputBuffer;)V
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 528
invoke-interface {v0, v1}, Landroidx/media3/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
iput-boolean v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReceivedBuffers:Z
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 530
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/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
return v4
.line 512
:cond_7
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->onInputFormatChanged(Landroidx/media3/exoplayer/FormatHolder;)V
return v4
:cond_8
:goto_0
return v1
.end method
.method private flushDecoder()V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
iget v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
if-eqz v0, :cond_0
.line 545
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->releaseDecoder()V
.line 546
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->maybeInitDecoder()V
goto :goto_0
:cond_0
const/4 v0, 0x0
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
if-eqz v1, :cond_1
.line 550
invoke-virtual {v1}, Landroidx/media3/decoder/SimpleDecoderOutputBuffer;->release()V
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
:cond_1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 553
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->flush()V
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReceivedBuffers:Z
:goto_0
return-void
.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/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
if-eqz v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
.line 706
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setDecoderDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
if-eqz v0, :cond_2
.line 710
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/audio/DecoderAudioRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
.line 712
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 724
:try_start_0
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v2
const-string v4, "createAudioDecoder"
.line 725
invoke-static {v4}, Landroidx/media3/common/util/TraceUtil;->beginSection(Ljava/lang/String;)V
iget-object v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
.line 726
invoke-virtual {p0, v4, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createDecoder(Landroidx/media3/common/Format;Landroidx/media3/decoder/CryptoConfig;)Landroidx/media3/decoder/Decoder;
move-result-object v0
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 727
invoke-static {}, Landroidx/media3/common/util/TraceUtil;->endSection()V
.line 728
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v6
iget-object v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 730
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
move-result-object v5
sub-long v8, v6, v2
.line 729
invoke-virtual/range {v4 .. v9}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->decoderInitialized(Ljava/lang/String;JJ)V
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 733
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/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
.line 740
invoke-virtual {p0, v0, v2, v1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->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, "DecoderAudioRenderer"
const-string v3, "Audio codec error"
.line 735
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/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
.line 736
invoke-virtual {v2, v0}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->audioCodecError(Ljava/lang/Exception;)V
iget-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
.line 737
invoke-virtual {p0, v0, v2, v1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;I)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
.end method
.method private onInputFormatChanged(Landroidx/media3/exoplayer/FormatHolder;)V
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
.line 770
iget-object v0, p1, Landroidx/media3/exoplayer/FormatHolder;->format:Landroidx/media3/common/Format;
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
move-object v4, v0
check-cast v4, Landroidx/media3/common/Format;
.line 771
iget-object p1, p1, Landroidx/media3/exoplayer/FormatHolder;->drmSession:Landroidx/media3/exoplayer/drm/DrmSession;
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setSourceDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
iget-object v3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
iput-object v4, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
.line 774
iget p1, v4, Landroidx/media3/common/Format;->encoderDelay:I
iput p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->encoderDelay:I
.line 775
iget p1, v4, Landroidx/media3/common/Format;->encoderPadding:I
iput p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->encoderPadding:I
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
if-nez p1, :cond_0
.line 778
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->maybeInitDecoder()V
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
const/4 v0, 0x0
.line 779
invoke-virtual {p1, p0, v0}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->inputFormatChanged(Landroidx/media3/common/Format;Landroidx/media3/exoplayer/DecoderReuseEvaluation;)V
return-void
:cond_0
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
if-eq v0, v1, :cond_1
.line 785
new-instance p1, Landroidx/media3/exoplayer/DecoderReuseEvaluation;
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 787
invoke-interface {v0}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
move-result-object v2
const/4 v5, 0x0
const/16 v6, 0x80
move-object v1, p1
invoke-direct/range {v1 .. v6}, Landroidx/media3/exoplayer/DecoderReuseEvaluation;-><init>(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;II)V
goto :goto_0
.line 793
:cond_1
invoke-interface {p1}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1, v3, v4}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->canReuseDecoder(Ljava/lang/String;Landroidx/media3/common/Format;Landroidx/media3/common/Format;)Landroidx/media3/exoplayer/DecoderReuseEvaluation;
move-result-object p1
.line 796
:goto_0
iget v0, p1, Landroidx/media3/exoplayer/DecoderReuseEvaluation;->result:I
if-nez v0, :cond_3
iget-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReceivedBuffers:Z
const/4 v1, 0x1
if-eqz v0, :cond_2
iput v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
goto :goto_1
.line 802
:cond_2
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->releaseDecoder()V
.line 803
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->maybeInitDecoder()V
iput-boolean v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioTrackNeedsConfigure:Z
:cond_3
:goto_1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
.line 807
invoke-virtual {v0, p0, p1}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->inputFormatChanged(Landroidx/media3/common/Format;Landroidx/media3/exoplayer/DecoderReuseEvaluation;)V
return-void
.end method
.method private processEndOfStream()V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/audio/AudioSink$WriteException;
}
.end annotation
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputStreamEnded:Z
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 540
invoke-interface {p0}, Landroidx/media3/exoplayer/audio/AudioSink;->playToEndOfStream()V
return-void
.end method
.method private processFirstSampleOfStream()V
.locals 4
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 464
invoke-interface {v0}, Landroidx/media3/exoplayer/audio/AudioSink;->handleDiscontinuity()V
iget v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetsUs:[J
const/4 v1, 0x0
.line 466
aget-wide v2, v0, v1
invoke-direct {p0, v2, v3}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setOutputStreamOffsetUs(J)V
iget v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
const/4 v2, 0x1
sub-int/2addr v0, v2
iput v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetsUs:[J
.line 468
invoke-static {p0, v2, p0, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
:cond_0
return-void
.end method
.method private releaseDecoder()V
.locals 3
const/4 v0, 0x0
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
const/4 v1, 0x0
iput v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReinitializationState:I
iput-boolean v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderReceivedBuffers:Z
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
if-eqz v1, :cond_0
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 751
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/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 752
invoke-interface {v1}, Landroidx/media3/decoder/Decoder;->release()V
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iget-object v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 753
invoke-interface {v2}, Landroidx/media3/decoder/Decoder;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->decoderReleased(Ljava/lang/String;)V
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
.line 756
:cond_0
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setDecoderDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
return-void
.end method
.method private setDecoderDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
.locals 1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
.line 765
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/audio/DecoderAudioRenderer;->decoderDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
return-void
.end method
.method private setOutputStreamOffsetUs(J)V
.locals 2
iput-wide p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputStreamOffsetUs:J
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long v0, p1, v0
if-eqz v0, :cond_0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 480
invoke-interface {p0, p1, p2}, Landroidx/media3/exoplayer/audio/AudioSink;->setOutputStreamOffsetUs(J)V
:cond_0
return-void
.end method
.method private setSourceDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
.locals 1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
.line 760
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/audio/DecoderAudioRenderer;->sourceDrmSession:Landroidx/media3/exoplayer/drm/DrmSession;
return-void
.end method
.method private updateCurrentPosition()V
.locals 4
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 823
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->isEnded()Z
move-result v1
invoke-interface {v0, v1}, Landroidx/media3/exoplayer/audio/AudioSink;->getCurrentPositionUs(Z)J
move-result-wide v0
const-wide/high16 v2, -0x8000000000000000L
cmp-long v2, v0, v2
if-eqz v2, :cond_1
iget-boolean v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowPositionDiscontinuity:Z
if-eqz v2, :cond_0
goto :goto_0
:cond_0
iget-wide v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->currentPositionUs:J
.line 828
invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
:goto_0
iput-wide v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->currentPositionUs:J
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowPositionDiscontinuity:Z
:cond_1
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 397
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;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/decoder/DecoderException;
}
.end annotation
.end method
.method public experimentalSetEnableKeepAudioTrackOnSeek(Z)V
.locals 0
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->experimentalKeepAudioTrackOnSeek:Z
return-void
.end method
.method public getMediaClock()Landroidx/media3/exoplayer/MediaClock;
.locals 0
return-object p0
.end method
.method protected abstract getOutputFormat(Landroidx/media3/decoder/Decoder;)Landroidx/media3/common/Format;
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)",
"Landroidx/media3/common/Format;"
}
.end annotation
.end method
.method public getPlaybackParameters()Landroidx/media3/common/PlaybackParameters;
.locals 0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 584
invoke-interface {p0}, Landroidx/media3/exoplayer/audio/AudioSink;->getPlaybackParameters()Landroidx/media3/common/PlaybackParameters;
move-result-object p0
return-object p0
.end method
.method public getPositionUs()J
.locals 2
.line 571
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->getState()I
move-result v0
const/4 v1, 0x2
if-ne v0, v1, :cond_0
.line 572
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->updateCurrentPosition()V
:cond_0
iget-wide v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->currentPositionUs:J
return-wide v0
.end method
.method protected final getSinkFormatSupport(Landroidx/media3/common/Format;)I
.locals 0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 285
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->getFormatSupport(Landroidx/media3/common/Format;)I
move-result p0
return p0
.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, 0x2
if-eq p1, v0, :cond_5
const/4 v0, 0x3
if-eq p1, v0, :cond_4
const/4 v0, 0x6
if-eq p1, v0, :cond_3
const/16 v0, 0xc
if-eq p1, v0, :cond_2
const/16 v0, 0x9
if-eq p1, v0, :cond_1
const/16 v0, 0xa
if-eq p1, v0, :cond_0
.line 696
invoke-super {p0, p1, p2}, Landroidx/media3/exoplayer/BaseRenderer;->handleMessage(ILjava/lang/Object;)V
goto :goto_0
:cond_0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 682
check-cast p2, Ljava/lang/Integer;
invoke-virtual {p2}, Ljava/lang/Integer;->intValue()I
move-result p1
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->setAudioSessionId(I)V
goto :goto_0
:cond_1
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 679
check-cast p2, Ljava/lang/Boolean;
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
move-result p1
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->setSkipSilenceEnabled(Z)V
goto :goto_0
.line 685
:cond_2
sget p1, Landroidx/media3/common/util/Util;->SDK_INT:I
const/16 v0, 0x17
if-lt p1, v0, :cond_6
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 686
invoke-static {p0, p2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer$Api23;->setAudioSinkPreferredDevice(Landroidx/media3/exoplayer/audio/AudioSink;Ljava/lang/Object;)V
goto :goto_0
.line 675
:cond_3
check-cast p2, Landroidx/media3/common/AuxEffectInfo;
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 676
invoke-interface {p0, p2}, Landroidx/media3/exoplayer/audio/AudioSink;->setAuxEffectInfo(Landroidx/media3/common/AuxEffectInfo;)V
goto :goto_0
.line 671
:cond_4
check-cast p2, Landroidx/media3/common/AudioAttributes;
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 672
invoke-interface {p0, p2}, Landroidx/media3/exoplayer/audio/AudioSink;->setAudioAttributes(Landroidx/media3/common/AudioAttributes;)V
goto :goto_0
:cond_5
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 668
check-cast p2, Ljava/lang/Float;
invoke-virtual {p2}, Ljava/lang/Float;->floatValue()F
move-result p1
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->setVolume(F)V
:cond_6
:goto_0
return-void
.end method
.method public isEnded()Z
.locals 1
iget-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputStreamEnded:Z
if-eqz v0, :cond_0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 560
invoke-interface {p0}, Landroidx/media3/exoplayer/audio/AudioSink;->isEnded()Z
move-result p0
if-eqz p0, :cond_0
const/4 p0, 0x1
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return p0
.end method
.method public isReady()Z
.locals 1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 565
invoke-interface {v0}, Landroidx/media3/exoplayer/audio/AudioSink;->hasPendingData()Z
move-result v0
if-nez v0, :cond_1
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
if-eqz v0, :cond_0
.line 566
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->isSourceReady()Z
move-result v0
if-nez v0, :cond_1
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputBuffer:Landroidx/media3/decoder/SimpleDecoderOutputBuffer;
if-eqz p0, :cond_0
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p0, 0x1
:goto_1
return p0
.end method
.method protected onDisabled()V
.locals 3
const/4 v0, 0x0
iput-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
const/4 v1, 0x1
iput-boolean v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioTrackNeedsConfigure:Z
const-wide v1, -0x7fffffffffffffffL # -4.9E-324
.line 633
invoke-direct {p0, v1, v2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setOutputStreamOffsetUs(J)V
.line 635
:try_start_0
invoke-direct {p0, v0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setSourceDrmSession(Landroidx/media3/exoplayer/drm/DrmSession;)V
.line 636
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->releaseDecoder()V
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 637
invoke-interface {v0}, Landroidx/media3/exoplayer/audio/AudioSink;->reset()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 639
invoke-virtual {v0, p0}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->disabled(Landroidx/media3/exoplayer/DecoderCounters;)V
return-void
:catchall_0
move-exception v0
iget-object v1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
invoke-virtual {v1, p0}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->disabled(Landroidx/media3/exoplayer/DecoderCounters;)V
.line 640
throw v0
.end method
.method protected onEnabled(ZZ)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
.line 590
new-instance p1, Landroidx/media3/exoplayer/DecoderCounters;
invoke-direct {p1}, Landroidx/media3/exoplayer/DecoderCounters;-><init>()V
iput-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
iget-object p2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
.line 591
invoke-virtual {p2, p1}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->enabled(Landroidx/media3/exoplayer/DecoderCounters;)V
.line 592
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->getConfiguration()Landroidx/media3/exoplayer/RendererConfiguration;
move-result-object p1
iget-boolean p1, p1, Landroidx/media3/exoplayer/RendererConfiguration;->tunneling:Z
if-eqz p1, :cond_0
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 593
invoke-interface {p1}, Landroidx/media3/exoplayer/audio/AudioSink;->enableTunnelingV21()V
goto :goto_0
:cond_0
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 595
invoke-interface {p1}, Landroidx/media3/exoplayer/audio/AudioSink;->disableTunneling()V
:goto_0
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 597
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->getPlayerId()Landroidx/media3/exoplayer/analytics/PlayerId;
move-result-object p0
invoke-interface {p1, p0}, Landroidx/media3/exoplayer/audio/AudioSink;->setPlayerId(Landroidx/media3/exoplayer/analytics/PlayerId;)V
return-void
.end method
.method protected onPositionDiscontinuity()V
.locals 1
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowPositionDiscontinuity:Z
return-void
.end method
.method protected onPositionReset(JZ)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
iget-boolean p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->experimentalKeepAudioTrackOnSeek:Z
if-eqz p3, :cond_0
iget-object p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 603
invoke-interface {p3}, Landroidx/media3/exoplayer/audio/AudioSink;->experimentalFlushWithoutAudioTrackRelease()V
goto :goto_0
:cond_0
iget-object p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 605
invoke-interface {p3}, Landroidx/media3/exoplayer/audio/AudioSink;->flush()V
:goto_0
iput-wide p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->currentPositionUs:J
const/4 p1, 0x1
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowFirstBufferPositionDiscontinuity:Z
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowPositionDiscontinuity:Z
const/4 p1, 0x0
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputStreamEnded:Z
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputStreamEnded:Z
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
if-eqz p1, :cond_1
.line 614
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->flushDecoder()V
:cond_1
return-void
.end method
.method protected onQueueInputBuffer(Landroidx/media3/decoder/DecoderInputBuffer;)V
.locals 4
iget-boolean v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowFirstBufferPositionDiscontinuity:Z
if-eqz v0, :cond_1
.line 811
invoke-virtual {p1}, Landroidx/media3/decoder/DecoderInputBuffer;->isDecodeOnly()Z
move-result v0
if-nez v0, :cond_1
.line 815
iget-wide v0, p1, Landroidx/media3/decoder/DecoderInputBuffer;->timeUs:J
iget-wide v2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->currentPositionUs:J
sub-long/2addr v0, v2
invoke-static {v0, v1}, Ljava/lang/Math;->abs(J)J
move-result-wide v0
const-wide/32 v2, 0x7a120
cmp-long v0, v0, v2
if-lez v0, :cond_0
.line 816
iget-wide v0, p1, Landroidx/media3/decoder/DecoderInputBuffer;->timeUs:J
iput-wide v0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->currentPositionUs:J
:cond_0
const/4 p1, 0x0
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->allowFirstBufferPositionDiscontinuity:Z
:cond_1
return-void
.end method
.method protected onStarted()V
.locals 0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 620
invoke-interface {p0}, Landroidx/media3/exoplayer/audio/AudioSink;->play()V
return-void
.end method
.method protected onStopped()V
.locals 0
.line 625
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->updateCurrentPosition()V
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 626
invoke-interface {p0}, Landroidx/media3/exoplayer/audio/AudioSink;->pause()V
return-void
.end method
.method protected onStreamChanged([Landroidx/media3/common/Format;JJ)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
.line 646
invoke-super/range {p0 .. p5}, Landroidx/media3/exoplayer/BaseRenderer;->onStreamChanged([Landroidx/media3/common/Format;JJ)V
const/4 p1, 0x0
iput-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->firstStreamSampleRead:Z
iget-wide p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputStreamOffsetUs:J
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long p1, p1, v0
if-nez p1, :cond_0
.line 649
invoke-direct {p0, p4, p5}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->setOutputStreamOffsetUs(J)V
goto :goto_1
:cond_0
iget p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
iget-object p2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetsUs:[J
.line 651
array-length p2, p2
if-ne p1, p2, :cond_1
.line 652
new-instance p1, Ljava/lang/StringBuilder;
const-string p2, "Too many stream changes, so dropping offset: "
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object p2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetsUs:[J
iget p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
add-int/lit8 p3, p3, -0x1
aget-wide p2, p2, p3
invoke-virtual {p1, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "DecoderAudioRenderer"
invoke-static {p2, p1}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_0
:cond_1
add-int/lit8 p1, p1, 0x1
iput p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
:goto_0
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetsUs:[J
iget p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->pendingOutputStreamOffsetCount:I
add-int/lit8 p0, p0, -0x1
.line 659
aput-wide p4, p1, p0
:goto_1
return-void
.end method
.method public render(JJ)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Landroidx/media3/exoplayer/ExoPlaybackException;
}
.end annotation
iget-boolean p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->outputStreamEnded:Z
const/16 p2, 0x138a
if-eqz p1, :cond_0
:try_start_0
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 292
invoke-interface {p1}, Landroidx/media3/exoplayer/audio/AudioSink;->playToEndOfStream()V
:try_end_0
.catch Landroidx/media3/exoplayer/audio/AudioSink$WriteException; {:try_start_0 .. :try_end_0} :catch_0
return-void
:catch_0
move-exception p1
.line 294
iget-object p3, p1, Landroidx/media3/exoplayer/audio/AudioSink$WriteException;->format:Landroidx/media3/common/Format;
iget-boolean p4, p1, Landroidx/media3/exoplayer/audio/AudioSink$WriteException;->isRecoverable:Z
invoke-virtual {p0, p1, p3, p4, p2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;ZI)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
:cond_0
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
if-nez p1, :cond_3
.line 303
invoke-virtual {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->getFormatHolder()Landroidx/media3/exoplayer/FormatHolder;
move-result-object p1
iget-object p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 304
invoke-virtual {p3}, Landroidx/media3/decoder/DecoderInputBuffer;->clear()V
iget-object p3, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
const/4 p4, 0x2
.line 305
invoke-virtual {p0, p1, p3, p4}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->readSource(Landroidx/media3/exoplayer/FormatHolder;Landroidx/media3/decoder/DecoderInputBuffer;I)I
move-result p3
const/4 p4, -0x5
if-ne p3, p4, :cond_1
.line 307
invoke-direct {p0, p1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->onInputFormatChanged(Landroidx/media3/exoplayer/FormatHolder;)V
goto :goto_0
:cond_1
const/4 p1, -0x4
if-ne p3, p1, :cond_2
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->flagsOnlyBuffer:Landroidx/media3/decoder/DecoderInputBuffer;
.line 310
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/audio/DecoderAudioRenderer;->inputStreamEnded:Z
.line 313
:try_start_1
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->processEndOfStream()V
:try_end_1
.catch Landroidx/media3/exoplayer/audio/AudioSink$WriteException; {:try_start_1 .. :try_end_1} :catch_1
return-void
:catch_1
move-exception p1
const/4 p3, 0x0
.line 315
invoke-virtual {p0, p1, p3, p2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;I)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
:cond_2
return-void
.line 326
:cond_3
:goto_0
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->maybeInitDecoder()V
iget-object p1, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoder:Landroidx/media3/decoder/Decoder;
if-eqz p1, :cond_6
const/16 p1, 0x1389
:try_start_2
const-string p3, "drainAndFeed"
.line 331
invoke-static {p3}, Landroidx/media3/common/util/TraceUtil;->beginSection(Ljava/lang/String;)V
.line 332
:goto_1
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->drainOutputBuffer()Z
move-result p3
if-eqz p3, :cond_4
goto :goto_1
.line 333
:cond_4
:goto_2
invoke-direct {p0}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->feedInputBuffer()Z
move-result p3
if-eqz p3, :cond_5
goto :goto_2
.line 334
:cond_5
invoke-static {}, Landroidx/media3/common/util/TraceUtil;->endSection()V
:try_end_2
.catch Landroidx/media3/decoder/DecoderException; {:try_start_2 .. :try_end_2} :catch_5
.catch Landroidx/media3/exoplayer/audio/AudioSink$ConfigurationException; {:try_start_2 .. :try_end_2} :catch_4
.catch Landroidx/media3/exoplayer/audio/AudioSink$InitializationException; {:try_start_2 .. :try_end_2} :catch_3
.catch Landroidx/media3/exoplayer/audio/AudioSink$WriteException; {:try_start_2 .. :try_end_2} :catch_2
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->decoderCounters:Landroidx/media3/exoplayer/DecoderCounters;
.line 350
invoke-virtual {p0}, Landroidx/media3/exoplayer/DecoderCounters;->ensureUpdated()V
goto :goto_3
:catch_2
move-exception p1
.line 347
iget-object p3, p1, Landroidx/media3/exoplayer/audio/AudioSink$WriteException;->format:Landroidx/media3/common/Format;
iget-boolean p4, p1, Landroidx/media3/exoplayer/audio/AudioSink$WriteException;->isRecoverable:Z
invoke-virtual {p0, p1, p3, p4, p2}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;ZI)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
:catch_3
move-exception p2
.line 344
iget-object p3, p2, Landroidx/media3/exoplayer/audio/AudioSink$InitializationException;->format:Landroidx/media3/common/Format;
iget-boolean p4, p2, Landroidx/media3/exoplayer/audio/AudioSink$InitializationException;->isRecoverable:Z
invoke-virtual {p0, p2, p3, p4, p1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;ZI)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
:catch_4
move-exception p2
.line 341
iget-object p3, p2, Landroidx/media3/exoplayer/audio/AudioSink$ConfigurationException;->format:Landroidx/media3/common/Format;
invoke-virtual {p0, p2, p3, p1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->createRendererException(Ljava/lang/Throwable;Landroidx/media3/common/Format;I)Landroidx/media3/exoplayer/ExoPlaybackException;
move-result-object p0
throw p0
:catch_5
move-exception p1
const-string p2, "DecoderAudioRenderer"
const-string p3, "Audio codec error"
.line 337
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/audio/DecoderAudioRenderer;->eventDispatcher:Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;
.line 338
invoke-virtual {p2, p1}, Landroidx/media3/exoplayer/audio/AudioRendererEventListener$EventDispatcher;->audioCodecError(Ljava/lang/Exception;)V
iget-object p2, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->inputFormat:Landroidx/media3/common/Format;
const/16 p3, 0xfa3
.line 339
invoke-virtual {p0, p1, p2, p3}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->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 public setPlaybackParameters(Landroidx/media3/common/PlaybackParameters;)V
.locals 0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 579
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->setPlaybackParameters(Landroidx/media3/common/PlaybackParameters;)V
return-void
.end method
.method protected final sinkSupportsFormat(Landroidx/media3/common/Format;)Z
.locals 0
iget-object p0, p0, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->audioSink:Landroidx/media3/exoplayer/audio/AudioSink;
.line 275
invoke-interface {p0, p1}, Landroidx/media3/exoplayer/audio/AudioSink;->supportsFormat(Landroidx/media3/common/Format;)Z
move-result p0
return p0
.end method
.method public final supportsFormat(Landroidx/media3/common/Format;)I
.locals 2
.line 248
iget-object v0, p1, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String;
invoke-static {v0}, Landroidx/media3/common/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_0
.line 249
invoke-static {v1}, Landroidx/media3/exoplayer/RendererCapabilities;->create(I)I
move-result p0
return p0
.line 251
:cond_0
invoke-virtual {p0, p1}, Landroidx/media3/exoplayer/audio/DecoderAudioRenderer;->supportsFormatInternal(Landroidx/media3/common/Format;)I
move-result p0
const/4 p1, 0x2
if-gt p0, p1, :cond_1
.line 253
invoke-static {p0}, Landroidx/media3/exoplayer/RendererCapabilities;->create(I)I
move-result p0
return p0
.line 256
:cond_1
sget p1, Landroidx/media3/common/util/Util;->SDK_INT:I
const/16 v0, 0x15
if-lt p1, v0, :cond_2
const/16 v1, 0x20
:cond_2
const/16 p1, 0x8
.line 257
invoke-static {p0, p1, v1}, Landroidx/media3/exoplayer/RendererCapabilities;->create(III)I
move-result p0
return p0
.end method
.method protected abstract supportsFormatInternal(Landroidx/media3/common/Format;)I
.end method