Avc1ToAvc3TrackImpl.smali
.class public Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;
.super Lcom/googlecode/mp4parser/authoring/WrappingTrack;
.source "Avc1ToAvc3TrackImpl.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl$ReplaceSyncSamplesList;
}
.end annotation
# instance fields
.field avcC:Lcom/mp4parser/iso14496/part15/AvcConfigurationBox;
.field samples:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/googlecode/mp4parser/authoring/Sample;",
">;"
}
.end annotation
.end field
.field stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/googlecode/mp4parser/authoring/Track;)V
.registers 6
.param p1, "parent" # Lcom/googlecode/mp4parser/authoring/Track;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 38
invoke-direct {p0, p1}, Lcom/googlecode/mp4parser/authoring/WrappingTrack;-><init>(Lcom/googlecode/mp4parser/authoring/Track;)V
.line 39
invoke-interface {p1}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
move-result-object v0
invoke-virtual {v0}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getSampleEntry()Lcom/coremedia/iso/boxes/sampleentry/AbstractSampleEntry;
move-result-object v0
invoke-virtual {v0}, Lcom/coremedia/iso/boxes/sampleentry/AbstractSampleEntry;->getType()Ljava/lang/String;
move-result-object v0
const-string v1, "avc1"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_63
.line 43
new-instance v0, Ljava/io/ByteArrayOutputStream;
invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 44
.local v0, "baos":Ljava/io/ByteArrayOutputStream;
invoke-interface {p1}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
move-result-object v1
invoke-static {v0}, Ljava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
move-result-object v2
invoke-virtual {v1, v2}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getBox(Ljava/nio/channels/WritableByteChannel;)V
.line 45
new-instance v1, Lcom/coremedia/iso/IsoFile;
new-instance v2, Lcom/googlecode/mp4parser/MemoryDataSourceImpl;
invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v3
invoke-direct {v2, v3}, Lcom/googlecode/mp4parser/MemoryDataSourceImpl;-><init>([B)V
invoke-direct {v1, v2}, Lcom/coremedia/iso/IsoFile;-><init>(Lcom/googlecode/mp4parser/DataSource;)V
.line 46
.local v1, "isoFile":Lcom/coremedia/iso/IsoFile;
const-string/jumbo v2, "stsd"
invoke-static {v1, v2}, Lcom/googlecode/mp4parser/util/Path;->getPath(Lcom/coremedia/iso/boxes/Container;Ljava/lang/String;)Lcom/coremedia/iso/boxes/Box;
move-result-object v2
check-cast v2, Lcom/coremedia/iso/boxes/SampleDescriptionBox;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.line 47
invoke-virtual {v2}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->getSampleEntry()Lcom/coremedia/iso/boxes/sampleentry/AbstractSampleEntry;
move-result-object v2
check-cast v2, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;
const-string v3, "avc3"
invoke-virtual {v2, v3}, Lcom/coremedia/iso/boxes/sampleentry/VisualSampleEntry;->setType(Ljava/lang/String;)V
.line 49
iget-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
const-string v3, "avc./avcC"
invoke-static {v2, v3}, Lcom/googlecode/mp4parser/util/Path;->getPath(Lcom/googlecode/mp4parser/AbstractContainerBox;Ljava/lang/String;)Lcom/coremedia/iso/boxes/Box;
move-result-object v2
check-cast v2, Lcom/mp4parser/iso14496/part15/AvcConfigurationBox;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;->avcC:Lcom/mp4parser/iso14496/part15/AvcConfigurationBox;
.line 51
new-instance v2, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl$ReplaceSyncSamplesList;
invoke-interface {p1}, Lcom/googlecode/mp4parser/authoring/Track;->getSamples()Ljava/util/List;
move-result-object v3
invoke-direct {v2, p0, v3}, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl$ReplaceSyncSamplesList;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;Ljava/util/List;)V
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;->samples:Ljava/util/List;
.line 52
return-void
.line 40
.end local v0 # "baos":Ljava/io/ByteArrayOutputStream;
.end local v1 # "isoFile":Lcom/coremedia/iso/IsoFile;
:cond_63
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Only avc1 tracks can be converted to avc3 tracks"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.registers 2
.line 55
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;->stsd:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
return-object v0
.end method
.method public getSamples()Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/googlecode/mp4parser/authoring/Sample;",
">;"
}
.end annotation
.line 59
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/Avc1ToAvc3TrackImpl;->samples:Ljava/util/List;
return-object v0
.end method