PlayerEmsgHandler$PlayerTrackEmsgHandler.smali
.class public final Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;
.super Ljava/lang/Object;
.source "PlayerEmsgHandler.java"
# interfaces
.implements Lcom/google/android/exoplayer2/extractor/TrackOutput;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "PlayerTrackEmsgHandler"
.end annotation
# instance fields
.field private final buffer:Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
.field private final formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
.field private final sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.field final synthetic this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;Lcom/google/android/exoplayer2/source/SampleQueue;)V
.registers 4
.param p1, "this$0" # Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
.param p2, "sampleQueue" # Lcom/google/android/exoplayer2/source/SampleQueue;
.line 285
iput-object p1, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 286
iput-object p2, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
.line 288
new-instance v0, Lcom/google/android/exoplayer2/FormatHolder;
invoke-direct {v0}, Lcom/google/android/exoplayer2/FormatHolder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
.line 289
new-instance v0, Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
invoke-direct {v0}, Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->buffer:Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
.line 290
return-void
.end method
.method private dequeueSample()Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
.registers 9
.line 373
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->buffer:Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;->clear()V
.line 374
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
iget-object v3, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->buffer:Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
const/4 v4, 0x0
const/4 v5, 0x0
const-wide/16 v6, 0x0
invoke-virtual/range {v1 .. v7}, Lcom/google/android/exoplayer2/source/SampleQueue;->read(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;ZZJ)I
move-result v0
.line 375
.local v0, "result":I
const/4 v1, -0x4
if-ne v0, v1, :cond_1e
.line 376
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->buffer:Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;->flip()V
.line 377
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->buffer:Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
return-object v1
.line 379
:cond_1e
const/4 v1, 0x0
return-object v1
.end method
.method private onManifestExpiredMessageEncountered(JJ)V
.registers 9
.param p1, "eventTimeUs" # J
.param p3, "manifestPublishTimeMsInEmsg" # J
.line 392
new-instance v0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$ManifestExpiryEventInfo;
invoke-direct {v0, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$ManifestExpiryEventInfo;-><init>(JJ)V
.line 394
.local v0, "manifestExpiryEventInfo":Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$ManifestExpiryEventInfo;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-static {v1}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->access$200(Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;)Landroid/os/Handler;
move-result-object v1
iget-object v2, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-static {v2}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->access$200(Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;)Landroid/os/Handler;
move-result-object v2
const/4 v3, 0x1
invoke-virtual {v2, v3, v0}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z
.line 395
return-void
.end method
.method private parseAndDiscardSamples()V
.registers 8
.line 356
:goto_0
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->hasNextSample()Z
move-result v0
if-eqz v0, :cond_30
.line 357
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->dequeueSample()Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
move-result-object v0
.line 358
.local v0, "inputBuffer":Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
if-nez v0, :cond_f
.line 359
goto :goto_0
.line 361
:cond_f
iget-wide v1, v0, Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;->timeUs:J
.line 362
.local v1, "eventTimeUs":J
iget-object v3, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-static {v3}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->access$000(Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;)Lcom/google/android/exoplayer2/metadata/emsg/EventMessageDecoder;
move-result-object v3
invoke-virtual {v3, v0}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageDecoder;->decode(Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;)Lcom/google/android/exoplayer2/metadata/Metadata;
move-result-object v3
.line 363
.local v3, "metadata":Lcom/google/android/exoplayer2/metadata/Metadata;
const/4 v4, 0x0
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/metadata/Metadata;->get(I)Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
move-result-object v4
check-cast v4, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;
.line 364
.local v4, "eventMessage":Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;
iget-object v5, v4, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->schemeIdUri:Ljava/lang/String;
iget-object v6, v4, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->value:Ljava/lang/String;
invoke-static {v5, v6}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->isPlayerEmsgEvent(Ljava/lang/String;Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_2f
.line 365
invoke-direct {p0, v1, v2, v4}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->parsePlayerEmsgEvent(JLcom/google/android/exoplayer2/metadata/emsg/EventMessage;)V
.line 367
.end local v0 # "inputBuffer":Lcom/google/android/exoplayer2/metadata/MetadataInputBuffer;
.end local v1 # "eventTimeUs":J
.end local v3 # "metadata":Lcom/google/android/exoplayer2/metadata/Metadata;
.end local v4 # "eventMessage":Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;
:cond_2f
goto :goto_0
.line 368
:cond_30
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->discardToRead()V
.line 369
return-void
.end method
.method private parsePlayerEmsgEvent(JLcom/google/android/exoplayer2/metadata/emsg/EventMessage;)V
.registers 9
.param p1, "eventTimeUs" # J
.param p3, "eventMessage" # Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;
.line 383
invoke-static {p3}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->access$100(Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;)J
move-result-wide v0
.line 384
.local v0, "manifestPublishTimeMsInEmsg":J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-nez v4, :cond_e
.line 385
return-void
.line 387
:cond_e
invoke-direct {p0, p1, p2, v0, v1}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->onManifestExpiredMessageEncountered(JJ)V
.line 388
return-void
.end method
# virtual methods
.method public format(Lcom/google/android/exoplayer2/Format;)V
.registers 3
.param p1, "format" # Lcom/google/android/exoplayer2/Format;
.line 294
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/source/SampleQueue;->format(Lcom/google/android/exoplayer2/Format;)V
.line 295
return-void
.end method
.method public maybeRefreshManifestBeforeLoadingNextChunk(J)Z
.registers 4
.param p1, "presentationPositionUs" # J
.line 323
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-virtual {v0, p1, p2}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->maybeRefreshManifestBeforeLoadingNextChunk(J)Z
move-result v0
return v0
.end method
.method public maybeRefreshManifestOnLoadingError(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
.registers 3
.param p1, "chunk" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.line 345
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->maybeRefreshManifestOnLoadingError(Lcom/google/android/exoplayer2/source/chunk/Chunk;)Z
move-result v0
return v0
.end method
.method public onChunkLoadCompleted(Lcom/google/android/exoplayer2/source/chunk/Chunk;)V
.registers 3
.param p1, "chunk" # Lcom/google/android/exoplayer2/source/chunk/Chunk;
.line 333
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->this$0:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler;->onChunkLoadCompleted(Lcom/google/android/exoplayer2/source/chunk/Chunk;)V
.line 334
return-void
.end method
.method public release()V
.registers 2
.line 350
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/SampleQueue;->reset()V
.line 351
return-void
.end method
.method public sampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;IZ)I
.registers 5
.param p1, "input" # Lcom/google/android/exoplayer2/extractor/ExtractorInput;
.param p2, "length" # I
.param p3, "allowEndOfInput" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/InterruptedException;
}
.end annotation
.line 300
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/source/SampleQueue;->sampleData(Lcom/google/android/exoplayer2/extractor/ExtractorInput;IZ)I
move-result v0
return v0
.end method
.method public sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.registers 4
.param p1, "data" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p2, "length" # I
.line 305
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
invoke-virtual {v0, p1, p2}, Lcom/google/android/exoplayer2/source/SampleQueue;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
.line 306
return-void
.end method
.method public sampleMetadata(JIIILcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;)V
.registers 14
.param p1, "timeUs" # J
.param p3, "flags" # I
.param p4, "size" # I
.param p5, "offset" # I
.param p6, "encryptionData" # Lcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;
.line 311
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->sampleQueue:Lcom/google/android/exoplayer2/source/SampleQueue;
move-wide v1, p1
move v3, p3
move v4, p4
move v5, p5
move-object v6, p6
invoke-virtual/range {v0 .. v6}, Lcom/google/android/exoplayer2/source/SampleQueue;->sampleMetadata(JIIILcom/google/android/exoplayer2/extractor/TrackOutput$CryptoData;)V
.line 312
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerTrackEmsgHandler;->parseAndDiscardSamples()V
.line 313
return-void
.end method