AppendTrack.smali
.class public Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;
.super Lcom/googlecode/mp4parser/authoring/AbstractTrack;
.source "AppendTrack.java"
# static fields
.field private static LOG:Lcom/googlecode/mp4parser/util/Logger;
# instance fields
.field stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.field tracks:[Lcom/googlecode/mp4parser/authoring/Track;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 43
const-class v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;
invoke-static {v0}, Lcom/googlecode/mp4parser/util/Logger;->getLogger(Ljava/lang/Class;)Lcom/googlecode/mp4parser/util/Logger;
move-result-object v0
sput-object v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
return-void
.end method
.method public varargs constructor <init>([Lcom/googlecode/mp4parser/authoring/Track;)V
.registers 9
.param p1, "tracks" # [Lcom/googlecode/mp4parser/authoring/Track;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 56
invoke-static {p1}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->appendTracknames([Lcom/googlecode/mp4parser/authoring/Track;)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lcom/googlecode/mp4parser/authoring/AbstractTrack;-><init>(Ljava/lang/String;)V
.line 57
iput-object p1, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
.line 59
array-length v0, p1
const/4 v1, 0x0
const/4 v2, 0x0
:goto_c
if-lt v2, v0, :cond_f
.line 69
return-void
.line 59
:cond_f
aget-object v3, p1, v2
.line 61
.local v3, "track":Lcom/googlecode/mp4parser/authoring/Track;
iget-object v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
if-nez v4, :cond_30
.line 62
new-instance v4, Lcom/coremedia/iso/boxes/SampleDescriptionBox;
invoke-direct {v4}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;-><init>()V
iput-object v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.line 63
invoke-interface {v3}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
move-result-object v5
const-class v6, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
invoke-virtual {v5, v6}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBoxes(Ljava/lang/Class;)Ljava/util/List;
move-result-object v5
invoke-interface {v5, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/coremedia/iso/boxes/Box;
invoke-virtual {v4, v5}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->addBox(Lcom/coremedia/iso/boxes/Box;)V
.line 64
goto :goto_3a
.line 65
:cond_30
invoke-interface {v3}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
move-result-object v5
invoke-direct {p0, v4, v5}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->mergeStsds(Lcom/coremedia/iso/boxes/SampleDescriptionBox;Lcom/coremedia/iso/boxes/SampleDescriptionBox;)Lcom/coremedia/iso/boxes/SampleDescriptionBox;
move-result-object v4
iput-object v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.line 59
.end local v3 # "track":Lcom/googlecode/mp4parser/authoring/Track;
:goto_3a
add-int/lit8 v2, v2, 0x1
goto :goto_c
.end method
.method public static varargs appendTracknames([Lcom/googlecode/mp4parser/authoring/Track;)Ljava/lang/String;
.registers 8
.param p0, "tracks" # [Lcom/googlecode/mp4parser/authoring/Track;
.line 48
const-string v0, ""
.line 49
.local v0, "name":Ljava/lang/String;
array-length v1, p0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_5
if-lt v3, v1, :cond_12
.line 52
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, -0x3
invoke-virtual {v0, v2, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
return-object v1
.line 49
:cond_12
aget-object v4, p0, v3
.line 50
.local v4, "track":Lcom/googlecode/mp4parser/authoring/Track;
new-instance v5, Ljava/lang/StringBuilder;
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-interface {v4}, Lcom/googlecode/mp4parser/authoring/Track;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v6, " + "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 49
.end local v4 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v3, v3, 0x1
goto :goto_5
.end method
.method private mergeAudioSampleEntries(Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;)Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
.registers 15
.param p1, "ase1" # Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
.param p2, "ase2" # Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
.line 193
new-instance v0, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getType()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;-><init>(Ljava/lang/String;)V
.line 194
.local v0, "ase":Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerFrame()J
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerFrame()J
move-result-wide v3
const/4 v5, 0x0
cmp-long v6, v1, v3
if-nez v6, :cond_192
.line 195
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerFrame()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setBytesPerFrame(J)V
.line 196
nop
.line 200
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerPacket()J
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerPacket()J
move-result-wide v3
cmp-long v6, v1, v3
if-nez v6, :cond_191
.line 201
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerPacket()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setBytesPerPacket(J)V
.line 202
nop
.line 205
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerSample()J
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerSample()J
move-result-wide v3
cmp-long v6, v1, v3
if-nez v6, :cond_189
.line 206
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBytesPerSample()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setBytesPerSample(J)V
.line 207
nop
.line 211
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getChannelCount()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getChannelCount()I
move-result v2
if-ne v1, v2, :cond_188
.line 212
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getChannelCount()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setChannelCount(I)V
.line 213
nop
.line 216
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getPacketSize()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getPacketSize()I
move-result v2
if-ne v1, v2, :cond_180
.line 217
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getPacketSize()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setPacketSize(I)V
.line 218
nop
.line 222
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getCompressionId()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getCompressionId()I
move-result v2
if-ne v1, v2, :cond_17f
.line 223
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getCompressionId()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setCompressionId(I)V
.line 224
nop
.line 227
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSampleRate()J
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSampleRate()J
move-result-wide v3
cmp-long v6, v1, v3
if-nez v6, :cond_17e
.line 228
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSampleRate()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSampleRate(J)V
.line 229
nop
.line 232
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSampleSize()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSampleSize()I
move-result v2
if-ne v1, v2, :cond_17d
.line 233
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSampleSize()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSampleSize(I)V
.line 234
nop
.line 237
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSamplesPerPacket()J
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSamplesPerPacket()J
move-result-wide v3
cmp-long v6, v1, v3
if-nez v6, :cond_17c
.line 238
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSamplesPerPacket()J
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSamplesPerPacket(J)V
.line 239
nop
.line 242
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSoundVersion()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSoundVersion()I
move-result v2
if-ne v1, v2, :cond_17b
.line 243
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSoundVersion()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSoundVersion(I)V
.line 244
nop
.line 247
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSoundVersion2Data()[B
move-result-object v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSoundVersion2Data()[B
move-result-object v2
invoke-static {v1, v2}, Ljava/util/Arrays;->equals([B[B)Z
move-result v1
if-eqz v1, :cond_17a
.line 248
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getSoundVersion2Data()[B
move-result-object v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSoundVersion2Data([B)V
.line 249
nop
.line 252
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v1
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v2
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-ne v1, v2, :cond_179
.line 253
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v1
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 254
.local v1, "bxs1":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v2
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 255
.local v2, "bxs2":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
nop
:cond_101
:goto_101
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-nez v3, :cond_108
goto :goto_179
.line 256
:cond_108
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/coremedia/iso/boxes/Box;
.line 257
.local v3, "cur1":Lcom/coremedia/iso/boxes/Box;
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/coremedia/iso/boxes/Box;
.line 258
.local v4, "cur2":Lcom/coremedia/iso/boxes/Box;
new-instance v6, Ljava/io/ByteArrayOutputStream;
invoke-direct {v6}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 259
.local v6, "baos1":Ljava/io/ByteArrayOutputStream;
new-instance v7, Ljava/io/ByteArrayOutputStream;
invoke-direct {v7}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 261
.local v7, "baos2":Ljava/io/ByteArrayOutputStream;
:try_start_11e
invoke-static {v6}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v8
invoke-interface {v3, v8}, Lcom/coremedia/iso/boxes/Box;->getBox(Ljava/nio/channels/WritableByteChannel;)V
.line 262
invoke-static {v7}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v8
invoke-interface {v4, v8}, Lcom/coremedia/iso/boxes/Box;->getBox(Ljava/nio/channels/WritableByteChannel;)V
:try_end_12c
.catch Ljava/io/IOException; {:try_start_11e .. :try_end_12c} :catch_16e
.line 263
nop
.line 267
invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v8
invoke-virtual {v7}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v9
invoke-static {v8, v9}, Ljava/util/Arrays;->equals([B[B)Z
move-result v8
if-eqz v8, :cond_13f
.line 268
invoke-virtual {v0, v3}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->addBox(Lcom/coremedia/iso/boxes/Box;)V
.line 269
goto :goto_101
.line 270
:cond_13f
invoke-interface {v3}, Lcom/coremedia/iso/boxes/Box;->getType()Ljava/lang/String;
move-result-object v8
const-string v9, "esds"
invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_101
invoke-interface {v4}, Lcom/coremedia/iso/boxes/Box;->getType()Ljava/lang/String;
move-result-object v8
invoke-virtual {v9, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_101
.line 271
move-object v8, v3
check-cast v8, Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;
.line 272
.local v8, "esdsBox1":Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;
move-object v9, v4
check-cast v9, Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;
.line 273
.local v9, "esdsBox2":Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;
invoke-virtual {v8}, Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;->getEsDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
move-result-object v10
invoke-virtual {v9}, Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;->getEsDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
move-result-object v11
invoke-direct {p0, v10, v11}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->mergeDescriptors(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;)Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
move-result-object v10
.line 274
.local v10, "esd":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
invoke-virtual {v8, v10}, Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;->setDescriptor(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;)V
.line 275
invoke-virtual {v0, v3}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->addBox(Lcom/coremedia/iso/boxes/Box;)V
goto :goto_101
.line 263
.end local v8 # "esdsBox1":Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;
.end local v9 # "esdsBox2":Lcom/googlecode/mp4parser/boxes/mp4/ESDescriptorBox;
.end local v10 # "esd":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
:catch_16e
move-exception v8
.line 264
.local v8, "e":Ljava/io/IOException;
sget-object v9, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
invoke-virtual {v8}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v10
invoke-virtual {v9, v10}, Lcom/googlecode/mp4parser/util/Logger;->logWarn(Ljava/lang/String;)V
.line 265
return-object v5
.line 280
.end local v1 # "bxs1":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
.end local v2 # "bxs2":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
.end local v3 # "cur1":Lcom/coremedia/iso/boxes/Box;
.end local v4 # "cur2":Lcom/coremedia/iso/boxes/Box;
.end local v6 # "baos1":Ljava/io/ByteArrayOutputStream;
.end local v7 # "baos2":Ljava/io/ByteArrayOutputStream;
.end local v8 # "e":Ljava/io/IOException;
:cond_179
:goto_179
return-object v0
.line 250
:cond_17a
return-object v5
.line 245
:cond_17b
return-object v5
.line 240
:cond_17c
return-object v5
.line 235
:cond_17d
return-object v5
.line 230
:cond_17e
return-object v5
.line 225
:cond_17f
return-object v5
.line 219
:cond_180
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "ChannelCount differ"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 220
return-object v5
.line 214
:cond_188
return-object v5
.line 208
:cond_189
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "BytesPerSample differ"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 209
return-object v5
.line 203
:cond_191
return-object v5
.line 197
:cond_192
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "BytesPerFrame differ"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 198
return-object v5
.end method
.method private mergeDescriptors(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;)Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
.registers 13
.param p1, "des1" # Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;
.param p2, "des2" # Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;
.line 286
instance-of v0, p1, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
const/4 v1, 0x0
if-eqz v0, :cond_17c
instance-of v0, p2, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
if-eqz v0, :cond_17c
.line 287
move-object v0, p1
check-cast v0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
.line 288
.local v0, "esds1":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
move-object v2, p2
check-cast v2, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
.line 289
.local v2, "esds2":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLFlag()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLFlag()I
move-result v4
if-eq v3, v4, :cond_1a
.line 290
return-object v1
.line 292
:cond_1a
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLLength()I
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLLength()I
.line 295
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDependsOnEsId()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDependsOnEsId()I
move-result v4
if-eq v3, v4, :cond_2b
.line 296
return-object v1
.line 298
:cond_2b
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getEsId()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getEsId()I
move-result v4
if-eq v3, v4, :cond_36
.line 299
return-object v1
.line 301
:cond_36
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getoCREsId()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getoCREsId()I
move-result v4
if-eq v3, v4, :cond_41
.line 302
return-object v1
.line 304
:cond_41
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getoCRstreamFlag()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getoCRstreamFlag()I
move-result v4
if-eq v3, v4, :cond_4c
.line 305
return-object v1
.line 307
:cond_4c
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getRemoteODFlag()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getRemoteODFlag()I
move-result v4
if-eq v3, v4, :cond_57
.line 308
return-object v1
.line 310
:cond_57
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getStreamDependenceFlag()I
move-result v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getStreamDependenceFlag()I
move-result v4
if-eq v3, v4, :cond_62
.line 311
return-object v1
.line 313
:cond_62
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getStreamPriority()I
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getStreamPriority()I
.line 316
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLString()Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_7a
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
goto :goto_7d
:cond_7a
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getURLString()Ljava/lang/String;
.line 319
:goto_7d
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDecoderConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
move-result-object v3
if-eqz v3, :cond_92
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDecoderConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
move-result-object v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDecoderConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_143
goto :goto_98
:cond_92
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDecoderConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
move-result-object v3
if-eqz v3, :cond_143
.line 320
:goto_98
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDecoderConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
move-result-object v3
.line 321
.local v3, "dcd1":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getDecoderConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
move-result-object v4
.line 323
.local v4, "dcd2":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAudioSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;
move-result-object v5
if-eqz v5, :cond_bb
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAudioSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;
move-result-object v5
if-eqz v5, :cond_bb
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAudioSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;
move-result-object v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAudioSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;
move-result-object v6
invoke-virtual {v5, v6}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_bb
.line 324
return-object v1
.line 326
:cond_bb
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAvgBitRate()J
move-result-wide v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAvgBitRate()J
move-result-wide v7
cmp-long v9, v5, v7
if-eqz v9, :cond_d6
.line 327
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAvgBitRate()J
move-result-wide v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getAvgBitRate()J
move-result-wide v7
add-long/2addr v5, v7
const-wide/16 v7, 0x2
div-long/2addr v5, v7
invoke-virtual {v3, v5, v6}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->setAvgBitRate(J)V
.line 329
:cond_d6
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getBufferSizeDB()I
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getBufferSizeDB()I
.line 333
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getDecoderSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderSpecificInfo;
move-result-object v5
if-eqz v5, :cond_f1
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getDecoderSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderSpecificInfo;
move-result-object v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getDecoderSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderSpecificInfo;
move-result-object v6
invoke-virtual {v5, v6}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderSpecificInfo;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_f8
goto :goto_f7
:cond_f1
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getDecoderSpecificInfo()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderSpecificInfo;
move-result-object v5
if-eqz v5, :cond_f8
.line 334
:goto_f7
return-object v1
.line 337
:cond_f8
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getMaxBitRate()J
move-result-wide v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getMaxBitRate()J
move-result-wide v7
cmp-long v9, v5, v7
if-eqz v9, :cond_113
.line 338
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getMaxBitRate()J
move-result-wide v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getMaxBitRate()J
move-result-wide v7
invoke-static {v5, v6, v7, v8}, Ljava/lang/Math;->max(JJ)J
move-result-wide v5
invoke-virtual {v3, v5, v6}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->setMaxBitRate(J)V
.line 340
:cond_113
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getProfileLevelIndicationDescriptors()Ljava/util/List;
move-result-object v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getProfileLevelIndicationDescriptors()Ljava/util/List;
move-result-object v6
invoke-interface {v5, v6}, Ljava/util/List;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_122
.line 341
return-object v1
.line 344
:cond_122
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getObjectTypeIndication()I
move-result v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getObjectTypeIndication()I
move-result v6
if-eq v5, v6, :cond_12d
.line 345
return-object v1
.line 347
:cond_12d
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getStreamType()I
move-result v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getStreamType()I
move-result v6
if-eq v5, v6, :cond_138
.line 348
return-object v1
.line 350
:cond_138
invoke-virtual {v3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getUpStream()I
move-result v5
invoke-virtual {v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;->getUpStream()I
move-result v6
if-eq v5, v6, :cond_143
.line 351
return-object v1
.line 355
.end local v3 # "dcd1":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
.end local v4 # "dcd2":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor;
:cond_143
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getOtherDescriptors()Ljava/util/List;
move-result-object v3
if-eqz v3, :cond_158
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getOtherDescriptors()Ljava/util/List;
move-result-object v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getOtherDescriptors()Ljava/util/List;
move-result-object v4
invoke-interface {v3, v4}, Ljava/util/List;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_15f
goto :goto_15e
:cond_158
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getOtherDescriptors()Ljava/util/List;
move-result-object v3
if-eqz v3, :cond_15f
.line 356
:goto_15e
return-object v1
.line 358
:cond_15f
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getSlConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/SLConfigDescriptor;
move-result-object v3
if-eqz v3, :cond_174
invoke-virtual {v0}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getSlConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/SLConfigDescriptor;
move-result-object v3
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getSlConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/SLConfigDescriptor;
move-result-object v4
invoke-virtual {v3, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/SLConfigDescriptor;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_17b
goto :goto_17a
:cond_174
invoke-virtual {v2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;->getSlConfigDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/SLConfigDescriptor;
move-result-object v3
if-eqz v3, :cond_17b
.line 359
:goto_17a
return-object v1
.line 361
:cond_17b
return-object v0
.line 363
.end local v0 # "esds1":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
.end local v2 # "esds2":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
:cond_17c
sget-object v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "I can only merge ESDescriptors"
invoke-virtual {v0, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 364
return-object v1
.end method
.method private mergeSampleEntry(Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;)Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
.registers 5
.param p1, "se1" # Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
.param p2, "se2" # Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
.line 102
invoke-interface {p1}, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;->getType()Ljava/lang/String;
move-result-object v0
invoke-interface {p2}, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;->getType()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_10
.line 103
return-object v1
.line 104
:cond_10
instance-of v0, p1, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
if-eqz v0, :cond_23
instance-of v0, p2, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
if-eqz v0, :cond_23
.line 105
move-object v0, p1
check-cast v0, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
move-object v1, p2
check-cast v1, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
invoke-direct {p0, v0, v1}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->mergeVisualSampleEntry(Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;)Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
move-result-object v0
return-object v0
.line 106
:cond_23
instance-of v0, p1, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
if-eqz v0, :cond_36
instance-of v0, p2, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
if-eqz v0, :cond_36
.line 107
move-object v0, p1
check-cast v0, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
move-object v1, p2
check-cast v1, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
invoke-direct {p0, v0, v1}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->mergeAudioSampleEntries(Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;)Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
move-result-object v0
return-object v0
.line 109
:cond_36
return-object v1
.end method
.method private mergeStsds(Lcom/coremedia/iso/boxes/SampleDescriptionBox;Lcom/coremedia/iso/boxes/SampleDescriptionBox;)Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.registers 12
.param p1, "stsd1" # Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.param p2, "stsd2" # Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 78
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 79
.local v0, "curBaos":Ljava/io/ByteArrayOutputStream;
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 81
.local v1, "refBaos":Ljava/io/ByteArrayOutputStream;
:try_start_a
invoke-static {v0}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v2
invoke-virtual {p1, v2}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBox(Ljava/nio/channels/WritableByteChannel;)V
.line 82
invoke-static {v1}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v2
invoke-virtual {p2, v2}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBox(Ljava/nio/channels/WritableByteChannel;)V
:try_end_18
.catch Ljava/io/IOException; {:try_start_a .. :try_end_18} :catch_7f
.line 83
nop
.line 87
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v2
.line 88
.local v2, "cur":[B
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v3
.line 90
.local v3, "ref":[B
invoke-static {v3, v2}, Ljava/util/Arrays;->equals([B[B)Z
move-result v4
if-nez v4, :cond_7e
.line 91
const-class v4, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
invoke-virtual {p1, v4}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBoxes(Ljava/lang/Class;)Ljava/util/List;
move-result-object v4
const/4 v5, 0x0
invoke-interface {v4, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
const-class v6, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
invoke-virtual {p2, v6}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBoxes(Ljava/lang/Class;)Ljava/util/List;
move-result-object v6
invoke-interface {v6, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
invoke-direct {p0, v4, v6}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->mergeSampleEntry(Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;)Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
move-result-object v4
.line 92
.local v4, "se":Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
if-eqz v4, :cond_4e
.line 93
invoke-static {v4}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v5
invoke-virtual {p1, v5}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->setBoxes(Ljava/util/List;)V
.line 94
goto :goto_7e
.line 95
:cond_4e
new-instance v6, Ljava/io/IOException;
new-instance v7, Ljava/lang/StringBuilder;
const-string v8, "Cannot merge "
invoke-direct {v7, v8}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const-class v8, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
invoke-virtual {p1, v8}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBoxes(Ljava/lang/Class;)Ljava/util/List;
move-result-object v8
invoke-interface {v8, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v8, " and "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-class v8, Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
invoke-virtual {p2, v8}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBoxes(Ljava/lang/Class;)Ljava/util/List;
move-result-object v8
invoke-interface {v8, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v6, v5}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v6
.line 98
.end local v4 # "se":Lcom/coremedia/iso/boxes/sampleentry/SampleEntry;
:cond_7e
:goto_7e
return-object p1
.line 83
.end local v2 # "cur":[B
.end local v3 # "ref":[B
:catch_7f
move-exception v2
.line 84
.local v2, "e":Ljava/io/IOException;
sget-object v3, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
invoke-virtual {v2}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 85
const/4 v3, 0x0
return-object v3
.end method
.method private mergeVisualSampleEntry(Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;)Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
.registers 14
.param p1, "vse1" # Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
.param p2, "vse2" # Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
.line 114
new-instance v0, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
invoke-direct {v0}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;-><init>()V
.line 115
.local v0, "vse":Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHorizresolution()D
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHorizresolution()D
move-result-wide v3
const/4 v5, 0x0
cmpl-double v6, v1, v3
if-nez v6, :cond_154
.line 116
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHorizresolution()D
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setHorizresolution(D)V
.line 117
nop
.line 121
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getCompressorname()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setCompressorname(Ljava/lang/String;)V
.line 122
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getDepth()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getDepth()I
move-result v2
if-ne v1, v2, :cond_14c
.line 123
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getDepth()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setDepth(I)V
.line 124
nop
.line 129
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getFrameCount()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getFrameCount()I
move-result v2
if-ne v1, v2, :cond_144
.line 130
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getFrameCount()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setFrameCount(I)V
.line 131
nop
.line 136
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHeight()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHeight()I
move-result v2
if-ne v1, v2, :cond_13c
.line 137
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHeight()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setHeight(I)V
.line 138
nop
.line 142
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getWidth()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getWidth()I
move-result v2
if-ne v1, v2, :cond_133
.line 143
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getWidth()I
move-result v1
invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setWidth(I)V
.line 144
nop
.line 149
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getVertresolution()D
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getVertresolution()D
move-result-wide v3
cmpl-double v6, v1, v3
if-nez v6, :cond_12a
.line 150
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getVertresolution()D
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setVertresolution(D)V
.line 151
nop
.line 156
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHorizresolution()D
move-result-wide v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHorizresolution()D
move-result-wide v3
cmpl-double v6, v1, v3
if-nez v6, :cond_122
.line 157
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getHorizresolution()D
move-result-wide v1
invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setHorizresolution(D)V
.line 158
nop
.line 163
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v1
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v2
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-ne v1, v2, :cond_121
.line 164
invoke-virtual {p1}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v1
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 165
.local v1, "bxs1":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
invoke-virtual {p2}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->getBoxes()Ljava/util/List;
move-result-object v2
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
.line 166
.local v2, "bxs2":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
nop
:cond_b4
:goto_b4
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-nez v3, :cond_bb
goto :goto_121
.line 167
:cond_bb
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/coremedia/iso/boxes/Box;
.line 168
.local v3, "cur1":Lcom/coremedia/iso/boxes/Box;
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/coremedia/iso/boxes/Box;
.line 169
.local v4, "cur2":Lcom/coremedia/iso/boxes/Box;
new-instance v6, Ljava/io/ByteArrayOutputStream;
invoke-direct {v6}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 170
.local v6, "baos1":Ljava/io/ByteArrayOutputStream;
new-instance v7, Ljava/io/ByteArrayOutputStream;
invoke-direct {v7}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 172
.local v7, "baos2":Ljava/io/ByteArrayOutputStream;
:try_start_d1
invoke-static {v6}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v8
invoke-interface {v3, v8}, Lcom/coremedia/iso/boxes/Box;->getBox(Ljava/nio/channels/WritableByteChannel;)V
.line 173
invoke-static {v7}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v8
invoke-interface {v4, v8}, Lcom/coremedia/iso/boxes/Box;->getBox(Ljava/nio/channels/WritableByteChannel;)V
:try_end_df
.catch Ljava/io/IOException; {:try_start_d1 .. :try_end_df} :catch_116
.line 174
nop
.line 178
invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v8
invoke-virtual {v7}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v9
invoke-static {v8, v9}, Ljava/util/Arrays;->equals([B[B)Z
move-result v8
if-eqz v8, :cond_f2
.line 179
invoke-virtual {v0, v3}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->addBox(Lcom/coremedia/iso/boxes/Box;)V
.line 180
goto :goto_b4
.line 181
:cond_f2
instance-of v8, v3, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;
if-eqz v8, :cond_b4
instance-of v8, v4, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;
if-eqz v8, :cond_b4
.line 182
move-object v8, v3
check-cast v8, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;
invoke-virtual {v8}, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;->getDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;
move-result-object v8
move-object v9, v4
check-cast v9, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;
invoke-virtual {v9}, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;->getDescriptor()Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;
move-result-object v9
invoke-direct {p0, v8, v9}, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->mergeDescriptors(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;)Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor;
move-result-object v8
.line 183
.local v8, "esd":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;
move-object v9, v3
check-cast v9, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;
invoke-virtual {v9, v8}, Lcom/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox;->setDescriptor(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;)V
.line 184
invoke-virtual {v0, v3}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->addBox(Lcom/coremedia/iso/boxes/Box;)V
goto :goto_b4
.line 174
.end local v8 # "esd":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor;
:catch_116
move-exception v8
.line 175
.local v8, "e":Ljava/io/IOException;
sget-object v9, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
invoke-virtual {v8}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v10
invoke-virtual {v9, v10}, Lcom/googlecode/mp4parser/util/Logger;->logWarn(Ljava/lang/String;)V
.line 176
return-object v5
.line 189
.end local v1 # "bxs1":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
.end local v2 # "bxs2":Ljava/util/Iterator;, "Ljava/util/Iterator<Lcom/coremedia/iso/boxes/Box;>;"
.end local v3 # "cur1":Lcom/coremedia/iso/boxes/Box;
.end local v4 # "cur2":Lcom/coremedia/iso/boxes/Box;
.end local v6 # "baos1":Ljava/io/ByteArrayOutputStream;
.end local v7 # "baos2":Ljava/io/ByteArrayOutputStream;
.end local v8 # "e":Ljava/io/IOException;
:cond_121
:goto_121
return-object v0
.line 159
:cond_122
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "horizontal resolution differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 160
return-object v5
.line 152
:cond_12a
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string/jumbo v2, "vert resolution differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 153
return-object v5
.line 145
:cond_133
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string/jumbo v2, "width differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 146
return-object v5
.line 139
:cond_13c
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "height differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 140
return-object v5
.line 132
:cond_144
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "frame count differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 133
return-object v5
.line 125
:cond_14c
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "Depth differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 126
return-object v5
.line 118
:cond_154
sget-object v1, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->LOG:Lcom/googlecode/mp4parser/util/Logger;
const-string v2, "Horizontal Resolution differs"
invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/util/Logger;->logError(Ljava/lang/String;)V
.line 119
return-object v5
.end method
# virtual methods
.method public close()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 72
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v1, v0
const/4 v2, 0x0
:goto_4
if-lt v2, v1, :cond_7
.line 75
return-void
.line 72
:cond_7
aget-object v3, v0, v2
.line 73
.local v3, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v3}, Lcom/googlecode/mp4parser/authoring/Track;->close()V
.line 72
.end local v3 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v2, v2, 0x1
goto :goto_4
.end method
.method public getCompositionTimeEntries()Ljava/util/List;
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;",
">;"
}
.end annotation
.line 399
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getCompositionTimeEntries()Ljava/util/List;
move-result-object v0
if-eqz v0, :cond_82
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getCompositionTimeEntries()Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-nez v0, :cond_82
.line 400
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
.line 401
.local v0, "lists":Ljava/util/List;, "Ljava/util/List<[I>;"
iget-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v3, v2
const/4 v4, 0x0
:goto_22
if-lt v4, v3, :cond_72
.line 404
new-instance v2, Ljava/util/LinkedList;
invoke-direct {v2}, Ljava/util/LinkedList;-><init>()V
move-object v5, v2
.line 405
.local v5, "compositionTimeEntries":Ljava/util/LinkedList;, "Ljava/util/LinkedList<Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;>;"
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_2e
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-nez v2, :cond_35
.line 416
return-object v5
.line 405
:cond_35
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
move-object v7, v2
check-cast v7, [I
.line 406
.local v7, "list":[I
array-length v8, v7
const/4 v2, 0x0
:goto_3e
if-lt v2, v8, :cond_41
goto :goto_2e
:cond_41
aget v3, v7, v2
.line 407
.local v3, "compositionTime":I
invoke-virtual {v5}, Ljava/util/LinkedList;->isEmpty()Z
move-result v4
const/4 v9, 0x1
if-nez v4, :cond_66
invoke-virtual {v5}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
invoke-virtual {v4}, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;->getOffset()I
move-result v4
if-eq v4, v3, :cond_57
goto :goto_66
.line 411
:cond_57
invoke-virtual {v5}, Ljava/util/LinkedList;->getLast()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
.line 412
.local v4, "e":Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
invoke-virtual {v4}, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;->getCount()I
move-result v10
add-int/2addr v10, v9
invoke-virtual {v4, v10}, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;->setCount(I)V
goto :goto_6f
.line 408
.end local v4 # "e":Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
:cond_66
:goto_66
new-instance v4, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
invoke-direct {v4, v9, v3}, Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;-><init>(II)V
.line 409
.restart local v4 # "e":Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
invoke-virtual {v5, v4}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
.line 410
.end local v4 # "e":Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;
nop
.line 406
.end local v3 # "compositionTime":I
:goto_6f
add-int/lit8 v2, v2, 0x1
goto :goto_3e
.line 401
.end local v5 # "compositionTimeEntries":Ljava/util/LinkedList;, "Ljava/util/LinkedList<Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;>;"
.end local v7 # "list":[I
:cond_72
aget-object v5, v2, v4
.line 402
.local v5, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v5}, Lcom/googlecode/mp4parser/authoring/Track;->getCompositionTimeEntries()Ljava/util/List;
move-result-object v6
invoke-static {v6}, Lcom/coremedia/iso/boxes/CompositionTimeToSample;->blowupCompositionTimes(Ljava/util/List;)[I
move-result-object v6
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 401
.end local v5 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v4, v4, 0x1
goto :goto_22
.line 418
.end local v0 # "lists":Ljava/util/List;, "Ljava/util/List<[I>;"
:cond_82
const/4 v0, 0x0
return-object v0
.end method
.method public getHandler()Ljava/lang/String;
.registers 3
.line 461
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getHandler()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getSampleDependencies()Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/coremedia/iso/boxes/SampleDependencyTypeBox$Entry;",
">;"
}
.end annotation
.line 445
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDependencies()Ljava/util/List;
move-result-object v0
if-eqz v0, :cond_30
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDependencies()Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-nez v0, :cond_30
.line 446
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
.line 447
.local v0, "list":Ljava/util/List;, "Ljava/util/List<Lcom/coremedia/iso/boxes/SampleDependencyTypeBox$Entry;>;"
iget-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v3, v2
:goto_21
if-lt v1, v3, :cond_24
.line 450
return-object v0
.line 447
:cond_24
aget-object v4, v2, v1
.line 448
.local v4, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v4}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDependencies()Ljava/util/List;
move-result-object v5
invoke-interface {v0, v5}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 447
.end local v4 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v1, v1, 0x1
goto :goto_21
.line 452
.end local v0 # "list":Ljava/util/List;, "Ljava/util/List<Lcom/coremedia/iso/boxes/SampleDependencyTypeBox$Entry;>;"
:cond_30
const/4 v0, 0x0
return-object v0
.end method
.method public getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.registers 2
.line 379
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
return-object v0
.end method
.method public declared-synchronized getSampleDurations()[J
.registers 15
monitor-enter p0
.line 383
const/4 v0, 0x0
.line 384
.local v0, "numSamples":I
:try_start_2
iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v2, v1
const/4 v3, 0x0
const/4 v4, 0x0
:goto_7
if-lt v4, v2, :cond_2b
.line 387
new-array v1, v0, [J
.line 388
.local v1, "decodingTimes":[J
const/4 v2, 0x0
.line 390
.local v2, "index":I
iget-object v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v5, v4
:try_end_f
.catchall {:try_start_2 .. :try_end_f} :catchall_36
const/4 v6, 0x0
:goto_10
if-lt v6, v5, :cond_14
.line 395
monitor-exit p0
return-object v1
.line 390
:cond_14
:try_start_14
aget-object v7, v4, v6
.line 391
.local v7, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v7}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDurations()[J
move-result-object v8
array-length v9, v8
const/4 v10, 0x0
:goto_1c
if-lt v10, v9, :cond_21
.line 390
.end local v7 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v6, v6, 0x1
goto :goto_10
.line 391
.restart local v7 # "track":Lcom/googlecode/mp4parser/authoring/Track;
:cond_21
aget-wide v11, v8, v10
.line 392
.local v11, "l":J
add-int/lit8 v13, v2, 0x1
.end local v2 # "index":I
.local v13, "index":I
aput-wide v11, v1, v2
.line 391
.end local v11 # "l":J
add-int/lit8 v10, v10, 0x1
move v2, v13
goto :goto_1c
.line 384
.end local v1 # "decodingTimes":[J
.end local v7 # "track":Lcom/googlecode/mp4parser/authoring/Track;
.end local v13 # "index":I
.end local p0 # "this":Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;
:cond_2b
aget-object v5, v1, v4
.line 385
.local v5, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v5}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDurations()[J
move-result-object v6
array-length v6, v6
:try_end_32
.catchall {:try_start_14 .. :try_end_32} :catchall_36
add-int/2addr v0, v6
.line 384
.end local v5 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v4, v4, 0x1
goto :goto_7
.line 382
.end local v0 # "numSamples":I
:catchall_36
move-exception v0
monitor-exit p0
goto :goto_3a
:goto_39
throw v0
:goto_3a
goto :goto_39
.end method
.method public getSamples()Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/googlecode/mp4parser/authoring/Sample;",
">;"
}
.end annotation
.line 369
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 371
.local v0, "lists":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/googlecode/mp4parser/authoring/Sample;>;"
iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v2, v1
const/4 v3, 0x0
:goto_9
if-lt v3, v2, :cond_c
.line 375
return-object v0
.line 371
:cond_c
aget-object v4, v1, v3
.line 372
.local v4, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v4}, Lcom/googlecode/mp4parser/authoring/Track;->getSamples()Ljava/util/List;
move-result-object v5
invoke-virtual {v0, v5}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
.line 371
.end local v4 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v3, v3, 0x1
goto :goto_9
.end method
.method public getSubsampleInformationBox()Lcom/coremedia/iso/boxes/SubSampleInformationBox;
.registers 3
.line 465
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getSubsampleInformationBox()Lcom/coremedia/iso/boxes/SubSampleInformationBox;
move-result-object v0
return-object v0
.end method
.method public getSyncSamples()[J
.registers 20
.line 423
move-object/from16 v0, p0
iget-object v1, v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
const/4 v2, 0x0
aget-object v1, v1, v2
invoke-interface {v1}, Lcom/googlecode/mp4parser/authoring/Track;->getSyncSamples()[J
move-result-object v1
if-eqz v1, :cond_5a
iget-object v1, v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
aget-object v1, v1, v2
invoke-interface {v1}, Lcom/googlecode/mp4parser/authoring/Track;->getSyncSamples()[J
move-result-object v1
array-length v1, v1
if-lez v1, :cond_5a
.line 424
const/4 v1, 0x0
.line 425
.local v1, "numSyncSamples":I
iget-object v3, v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v4, v3
const/4 v5, 0x0
:goto_1d
if-lt v5, v4, :cond_4f
.line 428
new-array v6, v1, [J
.line 430
.local v6, "returnSyncSamples":[J
const/4 v3, 0x0
.line 431
.local v3, "pos":I
const-wide/16 v4, 0x0
.line 432
.local v4, "samplesBefore":J
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
array-length v8, v7
move-wide v9, v4
const/4 v11, 0x0
.end local v4 # "samplesBefore":J
.local v9, "samplesBefore":J
:goto_29
if-lt v11, v8, :cond_2c
.line 438
return-object v6
.line 432
:cond_2c
aget-object v12, v7, v11
.line 433
.local v12, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v12}, Lcom/googlecode/mp4parser/authoring/Track;->getSyncSamples()[J
move-result-object v13
array-length v14, v13
const/4 v4, 0x0
:goto_34
if-lt v4, v14, :cond_43
.line 436
invoke-interface {v12}, Lcom/googlecode/mp4parser/authoring/Track;->getSamples()Ljava/util/List;
move-result-object v4
invoke-interface {v4}, Ljava/util/List;->size()I
move-result v4
int-to-long v4, v4
add-long/2addr v9, v4
.line 432
.end local v12 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v11, v11, 0x1
goto :goto_29
.line 433
.restart local v12 # "track":Lcom/googlecode/mp4parser/authoring/Track;
:cond_43
aget-wide v15, v13, v4
.line 434
.local v15, "l":J
add-int/lit8 v5, v3, 0x1
.end local v3 # "pos":I
.local v5, "pos":I
add-long v17, v9, v15
aput-wide v17, v6, v3
.line 433
.end local v15 # "l":J
add-int/lit8 v4, v4, 0x1
move v3, v5
goto :goto_34
.line 425
.end local v5 # "pos":I
.end local v6 # "returnSyncSamples":[J
.end local v9 # "samplesBefore":J
.end local v12 # "track":Lcom/googlecode/mp4parser/authoring/Track;
:cond_4f
aget-object v6, v3, v5
.line 426
.local v6, "track":Lcom/googlecode/mp4parser/authoring/Track;
invoke-interface {v6}, Lcom/googlecode/mp4parser/authoring/Track;->getSyncSamples()[J
move-result-object v7
array-length v7, v7
add-int/2addr v1, v7
.line 425
.end local v6 # "track":Lcom/googlecode/mp4parser/authoring/Track;
add-int/lit8 v5, v5, 0x1
goto :goto_1d
.line 440
.end local v1 # "numSyncSamples":I
:cond_5a
const/4 v1, 0x0
return-object v1
.end method
.method public getTrackMetaData()Lcom/googlecode/mp4parser/authoring/TrackMetaData;
.registers 3
.line 457
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/AppendTrack;->tracks:[Lcom/googlecode/mp4parser/authoring/Track;
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-interface {v0}, Lcom/googlecode/mp4parser/authoring/Track;->getTrackMetaData()Lcom/googlecode/mp4parser/authoring/TrackMetaData;
move-result-object v0
return-object v0
.end method