mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
2113 lines
69 KiB
Smali
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
|