EventMessageEncoder.smali
.class public final Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;
.super Ljava/lang/Object;
.source "EventMessageEncoder.java"
# instance fields
.field private final byteArrayOutputStream:Ljava/io/ByteArrayOutputStream;
.field private final dataOutputStream:Ljava/io/DataOutputStream;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 34
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 35
new-instance v0, Ljava/io/ByteArrayOutputStream;
const/16 v1, 0x200
invoke-direct {v0, v1}, Ljava/io/ByteArrayOutputStream;-><init>(I)V
iput-object v0, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->byteArrayOutputStream:Ljava/io/ByteArrayOutputStream;
.line 36
new-instance v0, Ljava/io/DataOutputStream;
iget-object v1, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->byteArrayOutputStream:Ljava/io/ByteArrayOutputStream;
invoke-direct {v0, v1}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
.line 37
return-void
.end method
.method private static writeNullTerminatedString(Ljava/io/DataOutputStream;Ljava/lang/String;)V
.registers 3
.param p0, "dataOutputStream" # Ljava/io/DataOutputStream;
.param p1, "value" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 73
invoke-virtual {p0, p1}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 74
const/4 v0, 0x0
invoke-virtual {p0, v0}, Ljava/io/DataOutputStream;->writeByte(I)V
.line 75
return-void
.end method
.method private static writeUnsignedInt(Ljava/io/DataOutputStream;J)V
.registers 5
.param p0, "outputStream" # Ljava/io/DataOutputStream;
.param p1, "value" # J
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 79
const/16 v0, 0x18
ushr-long v0, p1, v0
long-to-int v1, v0
and-int/lit16 v0, v1, 0xff
invoke-virtual {p0, v0}, Ljava/io/DataOutputStream;->writeByte(I)V
.line 80
const/16 v0, 0x10
ushr-long v0, p1, v0
long-to-int v1, v0
and-int/lit16 v0, v1, 0xff
invoke-virtual {p0, v0}, Ljava/io/DataOutputStream;->writeByte(I)V
.line 81
const/16 v0, 0x8
ushr-long v0, p1, v0
long-to-int v1, v0
and-int/lit16 v0, v1, 0xff
invoke-virtual {p0, v0}, Ljava/io/DataOutputStream;->writeByte(I)V
.line 82
long-to-int v0, p1
and-int/lit16 v0, v0, 0xff
invoke-virtual {p0, v0}, Ljava/io/DataOutputStream;->writeByte(I)V
.line 83
return-void
.end method
# virtual methods
.method public encode(Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;J)[B
.registers 14
.param p1, "eventMessage" # Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;
.param p2, "timescale" # J
.line 49
const-wide/16 v0, 0x0
cmp-long v2, p2, v0
if-ltz v2, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 50
iget-object v0, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->byteArrayOutputStream:Ljava/io/ByteArrayOutputStream;
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V
.line 52
:try_start_11
iget-object v0, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
iget-object v1, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->schemeIdUri:Ljava/lang/String;
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->writeNullTerminatedString(Ljava/io/DataOutputStream;Ljava/lang/String;)V
.line 53
iget-object v0, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->value:Ljava/lang/String;
if-eqz v0, :cond_1f
iget-object v0, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->value:Ljava/lang/String;
goto :goto_21
:cond_1f
const-string v0, ""
.line 54
.local v0, "nonNullValue":Ljava/lang/String;
:goto_21
iget-object v1, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
invoke-static {v1, v0}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->writeNullTerminatedString(Ljava/io/DataOutputStream;Ljava/lang/String;)V
.line 55
iget-object v1, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
invoke-static {v1, p2, p3}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->writeUnsignedInt(Ljava/io/DataOutputStream;J)V
.line 56
iget-wide v2, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->presentationTimeUs:J
const-wide/32 v6, 0xf4240
move-wide v4, p2
invoke-static/range {v2 .. v7}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v1
.line 58
.local v1, "presentationTime":J
iget-object v3, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
invoke-static {v3, v1, v2}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->writeUnsignedInt(Ljava/io/DataOutputStream;J)V
.line 59
iget-wide v4, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->durationMs:J
const-wide/16 v8, 0x3e8
move-wide v6, p2
invoke-static/range {v4 .. v9}, Lcom/google/android/exoplayer2/util/Util;->scaleLargeTimestamp(JJJ)J
move-result-wide v3
.line 60
.local v3, "duration":J
iget-object v5, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
invoke-static {v5, v3, v4}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->writeUnsignedInt(Ljava/io/DataOutputStream;J)V
.line 61
iget-object v5, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
iget-wide v6, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->id:J
invoke-static {v5, v6, v7}, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->writeUnsignedInt(Ljava/io/DataOutputStream;J)V
.line 62
iget-object v5, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
iget-object v6, p1, Lcom/google/android/exoplayer2/metadata/emsg/EventMessage;->messageData:[B
invoke-virtual {v5, v6}, Ljava/io/DataOutputStream;->write([B)V
.line 63
iget-object v5, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->dataOutputStream:Ljava/io/DataOutputStream;
invoke-virtual {v5}, Ljava/io/DataOutputStream;->flush()V
.line 64
iget-object v5, p0, Lcom/google/android/exoplayer2/metadata/emsg/EventMessageEncoder;->byteArrayOutputStream:Ljava/io/ByteArrayOutputStream;
invoke-virtual {v5}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v5
:try_end_61
.catch Ljava/io/IOException; {:try_start_11 .. :try_end_61} :catch_62
return-object v5
.line 65
.end local v0 # "nonNullValue":Ljava/lang/String;
.end local v1 # "presentationTime":J
.end local v3 # "duration":J
:catch_62
move-exception v0
.line 67
.local v0, "e":Ljava/io/IOException;
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method