SMPTETTTrackImpl.smali
.class public Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;
.super Lcom/googlecode/mp4parser/authoring/AbstractTrack;
.source "SMPTETTTrackImpl.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;
}
.end annotation
# static fields
.field public static final SMPTE_TT_NAMESPACE:Ljava/lang/String; = "http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"
# instance fields
.field XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
.field containsImages:Z
.field sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.field private sampleDurations:[J
.field samples:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/googlecode/mp4parser/authoring/Sample;",
">;"
}
.end annotation
.end field
.field subSampleInformationBox:Lcom/coremedia/iso/boxes/SubSampleInformationBox;
.field trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public varargs constructor <init>([Ljava/io/File;)V
.registers 33
.param p1, "files" # [Ljava/io/File;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljavax/xml/parsers/ParserConfigurationException;,
Lorg/xml/sax/SAXException;,
Ljavax/xml/xpath/XPathExpressionException;
}
.end annotation
.line 127
move-object/from16 v0, p0
move-object/from16 v1, p1
const/4 v2, 0x0
aget-object v2, v1, v2
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/googlecode/mp4parser/authoring/AbstractTrack;-><init>(Ljava/lang/String;)V
.line 34
new-instance v2, Lcom/googlecode/mp4parser/authoring/TrackMetaData;
invoke-direct {v2}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;-><init>()V
iput-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
.line 35
new-instance v2, Lcom/coremedia/iso/boxes/SampleDescriptionBox;
invoke-direct {v2}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;-><init>()V
iput-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.line 36
new-instance v2, Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
invoke-direct {v2}, Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;-><init>()V
iput-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
.line 38
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
iput-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->samples:Ljava/util/List;
.line 39
new-instance v2, Lcom/coremedia/iso/boxes/SubSampleInformationBox;
invoke-direct {v2}, Lcom/coremedia/iso/boxes/SubSampleInformationBox;-><init>()V
iput-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->subSampleInformationBox:Lcom/coremedia/iso/boxes/SubSampleInformationBox;
.line 128
array-length v2, v1
new-array v2, v2, [J
iput-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDurations:[J
.line 129
invoke-static {}, Ljavax/xml/parsers/DocumentBuilderFactory;->newInstance()Ljavax/xml/parsers/DocumentBuilderFactory;
move-result-object v2
.line 130
.local v2, "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljavax/xml/parsers/DocumentBuilderFactory;->setNamespaceAware(Z)V
.line 131
invoke-virtual {v2}, Ljavax/xml/parsers/DocumentBuilderFactory;->newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder;
move-result-object v3
.line 132
.local v3, "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
const-wide/16 v4, 0x0
.line 133
.local v4, "startTime":J
const/4 v6, 0x0
.line 134
.local v6, "firstLang":Ljava/lang/String;
const/4 v7, 0x0
.local v7, "sampleNo":I
:goto_46
array-length v8, v1
if-lt v7, v8, :cond_88
.line 244
.end local v7 # "sampleNo":I
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
invoke-static {v6}, Lcom/googlecode/mp4parser/util/Iso639;->convert2to3(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setLanguage(Ljava/lang/String;)V
.line 245
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
const-string v8, "http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"
invoke-virtual {v7, v8}, Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;->setNamespace(Ljava/lang/String;)V
.line 246
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
invoke-virtual {v7, v8}, Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;->setSchemaLocation(Ljava/lang/String;)V
.line 247
iget-boolean v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->containsImages:Z
if-eqz v7, :cond_6a
.line 248
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
const-string v8, "image/png"
invoke-virtual {v7, v8}, Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;->setAuxiliaryMimeTypes(Ljava/lang/String;)V
.line 249
goto :goto_71
.line 250
:cond_6a
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
const-string v8, ""
invoke-virtual {v7, v8}, Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;->setAuxiliaryMimeTypes(Ljava/lang/String;)V
.line 252
:goto_71
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
iget-object v8, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->XMLSubtitleSampleEntry:Lcom/mp4parser/iso14496/part30/XMLSubtitleSampleEntry;
invoke-virtual {v7, v8}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->addBox(Lcom/coremedia/iso/boxes/Box;)V
.line 253
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
const-wide/16 v8, 0x7530
invoke-virtual {v7, v8, v9}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setTimescale(J)V
.line 254
iget-object v7, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
const v8, 0xffff
invoke-virtual {v7, v8}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setLayer(I)V
.line 257
return-void
.line 135
.restart local v7 # "sampleNo":I
:cond_88
aget-object v8, v1, v7
.line 136
.local v8, "file":Ljava/io/File;
new-instance v9, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;
invoke-direct {v9}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;-><init>()V
.line 137
.local v9, "subSampleEntry":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;
iget-object v10, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->subSampleInformationBox:Lcom/coremedia/iso/boxes/SubSampleInformationBox;
invoke-virtual {v10}, Lcom/coremedia/iso/boxes/SubSampleInformationBox;->getEntries()Ljava/util/List;
move-result-object v10
invoke-interface {v10, v9}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 138
const-wide/16 v10, 0x1
invoke-virtual {v9, v10, v11}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;->setSampleDelta(J)V
.line 140
invoke-virtual {v3, v8}, Ljavax/xml/parsers/DocumentBuilder;->parse(Ljava/io/File;)Lorg/w3c/dom/Document;
move-result-object v10
.line 141
.local v10, "doc":Lorg/w3c/dom/Document;
invoke-static {v10}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->getLanguage(Lorg/w3c/dom/Document;)Ljava/lang/String;
move-result-object v11
.line 142
.local v11, "lang":Ljava/lang/String;
if-nez v6, :cond_a9
.line 143
move-object v6, v11
goto :goto_af
.line 144
:cond_a9
invoke-virtual {v6, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v12
if-eqz v12, :cond_24f
:goto_af
move-object v12, v6
.line 148
.end local v6 # "firstLang":Ljava/lang/String;
.local v12, "firstLang":Ljava/lang/String;
invoke-static {}, Ljavax/xml/xpath/XPathFactory;->newInstance()Ljavax/xml/xpath/XPathFactory;
move-result-object v13
.line 149
.local v13, "xPathfactory":Ljavax/xml/xpath/XPathFactory;
new-instance v6, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;
const/4 v14, 0x0
invoke-direct {v6, v14}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;)V
move-object v14, v6
.line 150
.local v14, "ctx":Ljavax/xml/namespace/NamespaceContext;
invoke-virtual {v13}, Ljavax/xml/xpath/XPathFactory;->newXPath()Ljavax/xml/xpath/XPath;
move-result-object v15
.line 151
.local v15, "xpath":Ljavax/xml/xpath/XPath;
invoke-interface {v15, v14}, Ljavax/xml/xpath/XPath;->setNamespaceContext(Ljavax/xml/namespace/NamespaceContext;)V
.line 153
invoke-static {v10}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->latestTimestamp(Lorg/w3c/dom/Document;)J
move-result-wide v16
.line 154
.local v16, "lastTimeStamp":J
iget-object v6, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDurations:[J
sub-long v18, v16, v4
aput-wide v18, v6, v7
.line 155
move-wide/from16 v18, v16
.line 157
.end local v4 # "startTime":J
.local v18, "startTime":J
const-string v4, "/ttml:tt/ttml:body/ttml:div/@smpte:backgroundImage"
invoke-interface {v15, v4}, Ljavax/xml/xpath/XPath;->compile(Ljava/lang/String;)Ljavax/xml/xpath/XPathExpression;
move-result-object v4
.line 158
.local v4, "expr":Ljavax/xml/xpath/XPathExpression;
sget-object v5, Ljavax/xml/xpath/XPathConstants;->NODESET:Ljavax/xml/namespace/QName;
invoke-interface {v4, v10, v5}, Ljavax/xml/xpath/XPathExpression;->evaluate(Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lorg/w3c/dom/NodeList;
.line 160
.local v5, "nl":Lorg/w3c/dom/NodeList;
new-instance v6, Ljava/util/HashMap;
invoke-direct {v6}, Ljava/util/HashMap;-><init>()V
.line 161
.local v6, "internalName2Original":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
new-instance v20, Ljava/util/HashSet;
invoke-direct/range {v20 .. v20}, Ljava/util/HashSet;-><init>()V
move-object/from16 v21, v20
.line 162
.local v21, "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
const/16 v20, 0x0
move/from16 v1, v20
.local v1, "i":I
:goto_ec
move-object/from16 v20, v2
.end local v2 # "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
.local v20, "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
invoke-interface {v5}, Lorg/w3c/dom/NodeList;->getLength()I
move-result v2
if-lt v1, v2, :cond_22e
.line 165
.end local v1 # "i":I
new-instance v1, Ljava/util/ArrayList;
move-object/from16 v2, v21
.end local v21 # "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
.local v2, "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
invoke-direct {v1, v2}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
move-object/from16 v21, v1
.line 166
.end local v2 # "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
.restart local v21 # "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
move-object/from16 v1, v21
check-cast v1, Ljava/util/List;
invoke-static {v1}, Ljava/util/Collections;->sort(Ljava/util/List;)V
.line 168
const/4 v1, 0x1
.line 169
.local v1, "p":I
invoke-interface/range {v21 .. v21}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v22
:goto_109
invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-nez v2, :cond_1f2
.line 173
invoke-interface/range {v21 .. v21}, Ljava/util/Collection;->isEmpty()Z
move-result v2
if-nez v2, :cond_1ce
.line 174
new-instance v2, Ljava/lang/String;
move-object/from16 v23, v3
.end local v3 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.local v23, "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
new-instance v3, Ljava/io/FileInputStream;
invoke-direct {v3, v8}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v0, v3}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->streamToByteArray(Ljava/io/InputStream;)[B
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/String;-><init>([B)V
.line 175
.local v2, "xml":Ljava/lang/String;
invoke-virtual {v6}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v3
invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_12d
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v22
if-nez v22, :cond_1a6
.line 178
move-object v3, v2
.line 179
.local v3, "finalXml":Ljava/lang/String;
new-instance v22, Ljava/util/ArrayList;
invoke-direct/range {v22 .. v22}, Ljava/util/ArrayList;-><init>()V
move-object/from16 v24, v22
.line 180
.local v24, "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
move-object/from16 v25, v4
.end local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.local v25, "expr":Ljavax/xml/xpath/XPathExpression;
iget-object v4, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->samples:Ljava/util/List;
move-object/from16 v26, v10
.end local v10 # "doc":Lorg/w3c/dom/Document;
.local v26, "doc":Lorg/w3c/dom/Document;
new-instance v10, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$1;
move-object/from16 v27, v11
move-object/from16 v11, v24
.end local v24 # "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
.local v11, "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
.local v27, "lang":Ljava/lang/String;
invoke-direct {v10, v0, v3, v11}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$1;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;Ljava/lang/String;Ljava/util/List;)V
invoke-interface {v4, v10}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 213
new-instance v4, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;
invoke-direct {v4}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;-><init>()V
.line 212
nop
.line 214
.local v4, "xmlEntry":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;
invoke-static {v3}, Lcom/coremedia/iso/Utf8;->utf8StringLengthInBytes(Ljava/lang/String;)I
move-result v10
move-object/from16 v24, v12
move-object/from16 v28, v13
.end local v12 # "firstLang":Ljava/lang/String;
.end local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.local v24, "firstLang":Ljava/lang/String;
.local v28, "xPathfactory":Ljavax/xml/xpath/XPathFactory;
int-to-long v12, v10
invoke-virtual {v4, v12, v13}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;->setSubsampleSize(J)V
.line 215
invoke-virtual {v9}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;->getSubsampleEntries()Ljava/util/List;
move-result-object v10
invoke-interface {v10, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 216
invoke-interface/range {v21 .. v21}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v10
:goto_16a
invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z
move-result v12
if-nez v12, :cond_172
.line 224
.end local v2 # "xml":Ljava/lang/String;
.end local v3 # "finalXml":Ljava/lang/String;
.end local v4 # "xmlEntry":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;
.end local v11 # "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
goto/16 :goto_1e4
.line 216
.restart local v2 # "xml":Ljava/lang/String;
.restart local v3 # "finalXml":Ljava/lang/String;
.restart local v4 # "xmlEntry":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;
.restart local v11 # "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
:cond_172
invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v12
check-cast v12, Ljava/lang/String;
.line 217
.local v12, "originalName":Ljava/lang/String;
new-instance v13, Ljava/io/File;
move-object/from16 v22, v3
.end local v3 # "finalXml":Ljava/lang/String;
.local v22, "finalXml":Ljava/lang/String;
invoke-virtual {v8}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v3
invoke-direct {v13, v3, v12}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
move-object v3, v13
.line 218
.local v3, "pic":Ljava/io/File;
invoke-interface {v11, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 220
new-instance v13, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;
invoke-direct {v13}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;-><init>()V
.line 219
nop
.line 221
.local v13, "sse":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;
move-object/from16 v30, v10
move-object/from16 v29, v11
.end local v11 # "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
.local v29, "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
invoke-virtual {v3}, Ljava/io/File;->length()J
move-result-wide v10
invoke-virtual {v13, v10, v11}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry$SubsampleEntry;->setSubsampleSize(J)V
.line 222
invoke-virtual {v9}, Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;->getSubsampleEntries()Ljava/util/List;
move-result-object v10
invoke-interface {v10, v13}, Ljava/util/List;->add(Ljava/lang/Object;)Z
move-object/from16 v3, v22
move-object/from16 v11, v29
move-object/from16 v10, v30
goto :goto_16a
.line 175
.end local v3 # "pic":Ljava/io/File;
.end local v22 # "finalXml":Ljava/lang/String;
.end local v24 # "firstLang":Ljava/lang/String;
.end local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v26 # "doc":Lorg/w3c/dom/Document;
.end local v27 # "lang":Ljava/lang/String;
.end local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.end local v29 # "pix":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
.local v4, "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v10 # "doc":Lorg/w3c/dom/Document;
.local v11, "lang":Ljava/lang/String;
.local v12, "firstLang":Ljava/lang/String;
.local v13, "xPathfactory":Ljavax/xml/xpath/XPathFactory;
:cond_1a6
move-object/from16 v25, v4
move-object/from16 v26, v10
move-object/from16 v27, v11
move-object/from16 v24, v12
move-object/from16 v28, v13
.end local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v10 # "doc":Lorg/w3c/dom/Document;
.end local v11 # "lang":Ljava/lang/String;
.end local v12 # "firstLang":Ljava/lang/String;
.end local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.restart local v24 # "firstLang":Ljava/lang/String;
.restart local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v26 # "doc":Lorg/w3c/dom/Document;
.restart local v27 # "lang":Ljava/lang/String;
.restart local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Map$Entry;
.line 176
.local v4, "stringStringEntry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;"
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v10
check-cast v10, Ljava/lang/CharSequence;
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v11
check-cast v11, Ljava/lang/CharSequence;
invoke-virtual {v2, v10, v11}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v2
move-object/from16 v4, v25
move-object/from16 v10, v26
move-object/from16 v11, v27
goto/16 :goto_12d
.line 225
.end local v2 # "xml":Ljava/lang/String;
.end local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v24 # "firstLang":Ljava/lang/String;
.end local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v26 # "doc":Lorg/w3c/dom/Document;
.end local v27 # "lang":Ljava/lang/String;
.end local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.local v3, "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.local v4, "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v10 # "doc":Lorg/w3c/dom/Document;
.restart local v11 # "lang":Ljava/lang/String;
.restart local v12 # "firstLang":Ljava/lang/String;
.restart local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
:cond_1ce
move-object/from16 v23, v3
move-object/from16 v25, v4
move-object/from16 v26, v10
move-object/from16 v27, v11
move-object/from16 v24, v12
move-object/from16 v28, v13
.end local v3 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v10 # "doc":Lorg/w3c/dom/Document;
.end local v11 # "lang":Ljava/lang/String;
.end local v12 # "firstLang":Ljava/lang/String;
.end local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.restart local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.restart local v24 # "firstLang":Ljava/lang/String;
.restart local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v26 # "doc":Lorg/w3c/dom/Document;
.restart local v27 # "lang":Ljava/lang/String;
.restart local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
iget-object v2, v0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->samples:Ljava/util/List;
new-instance v3, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$2;
invoke-direct {v3, v0, v8}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$2;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;Ljava/io/File;)V
invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 134
.end local v1 # "p":I
.end local v5 # "nl":Lorg/w3c/dom/NodeList;
.end local v6 # "internalName2Original":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
.end local v8 # "file":Ljava/io/File;
.end local v9 # "subSampleEntry":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;
.end local v14 # "ctx":Ljavax/xml/namespace/NamespaceContext;
.end local v15 # "xpath":Ljavax/xml/xpath/XPath;
.end local v16 # "lastTimeStamp":J
.end local v21 # "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
.end local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v26 # "doc":Lorg/w3c/dom/Document;
.end local v27 # "lang":Ljava/lang/String;
.end local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
:goto_1e4
add-int/lit8 v7, v7, 0x1
move-object/from16 v1, p1
move-wide/from16 v4, v18
move-object/from16 v2, v20
move-object/from16 v3, v23
move-object/from16 v6, v24
goto/16 :goto_46
.line 169
.end local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v24 # "firstLang":Ljava/lang/String;
.restart local v1 # "p":I
.restart local v3 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.restart local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v5 # "nl":Lorg/w3c/dom/NodeList;
.restart local v6 # "internalName2Original":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;"
.restart local v8 # "file":Ljava/io/File;
.restart local v9 # "subSampleEntry":Lcom/coremedia/iso/boxes/SubSampleInformationBox$SubSampleEntry;
.restart local v10 # "doc":Lorg/w3c/dom/Document;
.restart local v11 # "lang":Ljava/lang/String;
.restart local v12 # "firstLang":Ljava/lang/String;
.restart local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.restart local v14 # "ctx":Ljavax/xml/namespace/NamespaceContext;
.restart local v15 # "xpath":Ljavax/xml/xpath/XPath;
.restart local v16 # "lastTimeStamp":J
.restart local v21 # "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
:cond_1f2
move-object/from16 v23, v3
move-object/from16 v25, v4
move-object/from16 v26, v10
move-object/from16 v27, v11
move-object/from16 v24, v12
move-object/from16 v28, v13
.end local v3 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v10 # "doc":Lorg/w3c/dom/Document;
.end local v11 # "lang":Ljava/lang/String;
.end local v12 # "firstLang":Ljava/lang/String;
.end local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.restart local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.restart local v24 # "firstLang":Ljava/lang/String;
.restart local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v26 # "doc":Lorg/w3c/dom/Document;
.restart local v27 # "lang":Ljava/lang/String;
.restart local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 170
.local v2, "originalName":Ljava/lang/String;
const-string v3, "."
invoke-virtual {v2, v3}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
.line 171
.local v3, "ext":Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
const-string/jumbo v10, "urn:dece:container:subtitleimageindex:"
invoke-direct {v4, v10}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
add-int/lit8 v10, v1, 0x1
.end local v1 # "p":I
.local v10, "p":I
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v6, v2, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move v1, v10
move-object/from16 v3, v23
move-object/from16 v4, v25
move-object/from16 v10, v26
goto/16 :goto_109
.line 163
.end local v2 # "originalName":Ljava/lang/String;
.end local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v24 # "firstLang":Ljava/lang/String;
.end local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v26 # "doc":Lorg/w3c/dom/Document;
.end local v27 # "lang":Ljava/lang/String;
.end local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.local v1, "i":I
.local v3, "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.restart local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.local v10, "doc":Lorg/w3c/dom/Document;
.restart local v11 # "lang":Ljava/lang/String;
.restart local v12 # "firstLang":Ljava/lang/String;
.restart local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
:cond_22e
move-object/from16 v23, v3
move-object/from16 v25, v4
move-object/from16 v26, v10
move-object/from16 v27, v11
move-object/from16 v24, v12
move-object/from16 v28, v13
move-object/from16 v2, v21
.end local v3 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v4 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v10 # "doc":Lorg/w3c/dom/Document;
.end local v11 # "lang":Ljava/lang/String;
.end local v12 # "firstLang":Ljava/lang/String;
.end local v13 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.end local v21 # "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
.local v2, "originalNames":Ljava/util/Collection;, "Ljava/util/Collection<Ljava/lang/String;>;"
.restart local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.restart local v24 # "firstLang":Ljava/lang/String;
.restart local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.restart local v26 # "doc":Lorg/w3c/dom/Document;
.restart local v27 # "lang":Ljava/lang/String;
.restart local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
invoke-interface {v5, v1}, Lorg/w3c/dom/NodeList;->item(I)Lorg/w3c/dom/Node;
move-result-object v3
invoke-interface {v3}, Lorg/w3c/dom/Node;->getNodeValue()Ljava/lang/String;
move-result-object v3
invoke-interface {v2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 162
add-int/lit8 v1, v1, 0x1
move-object/from16 v2, v20
move-object/from16 v3, v23
goto/16 :goto_ec
.line 145
.end local v1 # "i":I
.end local v5 # "nl":Lorg/w3c/dom/NodeList;
.end local v14 # "ctx":Ljavax/xml/namespace/NamespaceContext;
.end local v15 # "xpath":Ljavax/xml/xpath/XPath;
.end local v16 # "lastTimeStamp":J
.end local v18 # "startTime":J
.end local v20 # "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
.end local v23 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.end local v24 # "firstLang":Ljava/lang/String;
.end local v25 # "expr":Ljavax/xml/xpath/XPathExpression;
.end local v26 # "doc":Lorg/w3c/dom/Document;
.end local v27 # "lang":Ljava/lang/String;
.end local v28 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.local v2, "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
.restart local v3 # "dBuilder":Ljavax/xml/parsers/DocumentBuilder;
.local v4, "startTime":J
.local v6, "firstLang":Ljava/lang/String;
.restart local v10 # "doc":Lorg/w3c/dom/Document;
.restart local v11 # "lang":Ljava/lang/String;
:cond_24f
move-object/from16 v20, v2
.end local v2 # "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
.restart local v20 # "dbFactory":Ljavax/xml/parsers/DocumentBuilderFactory;
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "Within one Track all sample documents need to have the same language"
invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
goto :goto_25a
:goto_259
throw v1
:goto_25a
goto :goto_259
.end method
.method static synthetic access$0(Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;Ljava/io/InputStream;)[B
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 259
invoke-direct {p0, p1}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->streamToByteArray(Ljava/io/InputStream;)[B
move-result-object p0
return-object p0
.end method
.method public static earliestTimestamp(Lorg/w3c/dom/Document;)J
.registers 13
.param p0, "document" # Lorg/w3c/dom/Document;
.line 72
invoke-static {}, Ljavax/xml/xpath/XPathFactory;->newInstance()Ljavax/xml/xpath/XPathFactory;
move-result-object v0
.line 73
.local v0, "xPathfactory":Ljavax/xml/xpath/XPathFactory;
new-instance v1, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;
const/4 v2, 0x0
invoke-direct {v1, v2}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;)V
.line 74
.local v1, "ctx":Ljavax/xml/namespace/NamespaceContext;
invoke-virtual {v0}, Ljavax/xml/xpath/XPathFactory;->newXPath()Ljavax/xml/xpath/XPath;
move-result-object v2
.line 75
.local v2, "xpath":Ljavax/xml/xpath/XPath;
invoke-interface {v2, v1}, Ljavax/xml/xpath/XPath;->setNamespaceContext(Ljavax/xml/namespace/NamespaceContext;)V
.line 78
:try_start_11
const-string v3, "//*[@begin]"
invoke-interface {v2, v3}, Ljavax/xml/xpath/XPath;->compile(Ljava/lang/String;)Ljavax/xml/xpath/XPathExpression;
move-result-object v3
.line 79
.local v3, "timedNodesXpath":Ljavax/xml/xpath/XPathExpression;
sget-object v4, Ljavax/xml/xpath/XPathConstants;->NODESET:Ljavax/xml/namespace/QName;
invoke-interface {v3, p0, v4}, Ljavax/xml/xpath/XPathExpression;->evaluate(Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lorg/w3c/dom/NodeList;
.line 81
.local v4, "timedNodes":Lorg/w3c/dom/NodeList;
const-wide/16 v5, 0x0
.line 82
.local v5, "earliestTimestamp":J
const/4 v7, 0x0
.local v7, "i":I
:goto_22
invoke-interface {v4}, Lorg/w3c/dom/NodeList;->getLength()I
move-result v8
if-lt v7, v8, :cond_29
.line 87
.end local v7 # "i":I
return-wide v5
.line 83
.restart local v7 # "i":I
:cond_29
invoke-interface {v4, v7}, Lorg/w3c/dom/NodeList;->item(I)Lorg/w3c/dom/Node;
move-result-object v8
.line 84
.local v8, "n":Lorg/w3c/dom/Node;
invoke-interface {v8}, Lorg/w3c/dom/Node;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
move-result-object v9
const-string v10, "begin"
invoke-interface {v9, v10}, Lorg/w3c/dom/NamedNodeMap;->getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;
move-result-object v9
invoke-interface {v9}, Lorg/w3c/dom/Node;->getNodeValue()Ljava/lang/String;
move-result-object v9
.line 85
.local v9, "begin":Ljava/lang/String;
invoke-static {v9}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->toTime(Ljava/lang/String;)J
move-result-wide v10
invoke-static {v10, v11, v5, v6}, Ljava/lang/Math;->min(JJ)J
move-result-wide v10
:try_end_43
.catch Ljavax/xml/xpath/XPathExpressionException; {:try_start_11 .. :try_end_43} :catch_47
move-wide v5, v10
.line 82
.end local v8 # "n":Lorg/w3c/dom/Node;
.end local v9 # "begin":Ljava/lang/String;
add-int/lit8 v7, v7, 0x1
goto :goto_22
.line 88
.end local v3 # "timedNodesXpath":Ljavax/xml/xpath/XPathExpression;
.end local v4 # "timedNodes":Lorg/w3c/dom/NodeList;
.end local v5 # "earliestTimestamp":J
.end local v7 # "i":I
:catch_47
move-exception v3
.line 89
.local v3, "e":Ljavax/xml/xpath/XPathExpressionException;
new-instance v4, Ljava/lang/RuntimeException;
invoke-direct {v4, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
goto :goto_4f
:goto_4e
throw v4
:goto_4f
goto :goto_4e
.end method
.method public static getLanguage(Lorg/w3c/dom/Document;)Ljava/lang/String;
.registers 3
.param p0, "document" # Lorg/w3c/dom/Document;
.line 68
invoke-interface {p0}, Lorg/w3c/dom/Document;->getDocumentElement()Lorg/w3c/dom/Element;
move-result-object v0
const-string/jumbo v1, "xml:lang"
invoke-interface {v0, v1}, Lorg/w3c/dom/Element;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static latestTimestamp(Lorg/w3c/dom/Document;)J
.registers 18
.param p0, "document" # Lorg/w3c/dom/Document;
.line 95
const-string v0, "end"
const-string v1, "dur"
invoke-static {}, Ljavax/xml/xpath/XPathFactory;->newInstance()Ljavax/xml/xpath/XPathFactory;
move-result-object v2
.line 96
.local v2, "xPathfactory":Ljavax/xml/xpath/XPathFactory;
new-instance v3, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;
const/4 v4, 0x0
invoke-direct {v3, v4}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl$TextTrackNamespaceContext;)V
.line 97
.local v3, "ctx":Ljavax/xml/namespace/NamespaceContext;
invoke-virtual {v2}, Ljavax/xml/xpath/XPathFactory;->newXPath()Ljavax/xml/xpath/XPath;
move-result-object v4
.line 98
.local v4, "xpath":Ljavax/xml/xpath/XPath;
invoke-interface {v4, v3}, Ljavax/xml/xpath/XPath;->setNamespaceContext(Ljavax/xml/namespace/NamespaceContext;)V
.line 101
:try_start_15
const-string v5, "//*[@begin]"
invoke-interface {v4, v5}, Ljavax/xml/xpath/XPath;->compile(Ljava/lang/String;)Ljavax/xml/xpath/XPathExpression;
move-result-object v5
.line 103
.local v5, "timedNodesXpath":Ljavax/xml/xpath/XPathExpression;
sget-object v6, Ljavax/xml/xpath/XPathConstants;->NODESET:Ljavax/xml/namespace/QName;
:try_end_1d
.catch Ljavax/xml/xpath/XPathExpressionException; {:try_start_15 .. :try_end_1d} :catch_8e
move-object/from16 v7, p0
:try_start_1f
invoke-interface {v5, v7, v6}, Ljavax/xml/xpath/XPathExpression;->evaluate(Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Lorg/w3c/dom/NodeList;
.line 105
.local v6, "timedNodes":Lorg/w3c/dom/NodeList;
const-wide/16 v8, 0x0
.line 106
.local v8, "lastTimeStamp":J
const/4 v10, 0x0
.local v10, "i":I
:goto_28
invoke-interface {v6}, Lorg/w3c/dom/NodeList;->getLength()I
move-result v11
if-lt v10, v11, :cond_2f
.line 119
.end local v10 # "i":I
return-wide v8
.line 107
.restart local v10 # "i":I
:cond_2f
invoke-interface {v6, v10}, Lorg/w3c/dom/NodeList;->item(I)Lorg/w3c/dom/Node;
move-result-object v11
.line 108
.local v11, "n":Lorg/w3c/dom/Node;
invoke-interface {v11}, Lorg/w3c/dom/Node;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
move-result-object v12
const-string v13, "begin"
invoke-interface {v12, v13}, Lorg/w3c/dom/NamedNodeMap;->getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;
move-result-object v12
invoke-interface {v12}, Lorg/w3c/dom/Node;->getNodeValue()Ljava/lang/String;
move-result-object v12
.line 110
.local v12, "begin":Ljava/lang/String;
invoke-interface {v11}, Lorg/w3c/dom/Node;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
move-result-object v13
invoke-interface {v13, v1}, Lorg/w3c/dom/NamedNodeMap;->getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;
move-result-object v13
if-eqz v13, :cond_61
.line 111
invoke-static {v12}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->toTime(Ljava/lang/String;)J
move-result-wide v13
invoke-interface {v11}, Lorg/w3c/dom/Node;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
move-result-object v15
invoke-interface {v15, v1}, Lorg/w3c/dom/NamedNodeMap;->getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;
move-result-object v15
invoke-interface {v15}, Lorg/w3c/dom/Node;->getNodeValue()Ljava/lang/String;
move-result-object v15
invoke-static {v15}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->toTime(Ljava/lang/String;)J
move-result-wide v15
add-long/2addr v13, v15
.line 112
.local v13, "end":J
goto :goto_7c
.end local v13 # "end":J
:cond_61
invoke-interface {v11}, Lorg/w3c/dom/Node;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
move-result-object v13
invoke-interface {v13, v0}, Lorg/w3c/dom/NamedNodeMap;->getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;
move-result-object v13
if-eqz v13, :cond_84
.line 113
invoke-interface {v11}, Lorg/w3c/dom/Node;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
move-result-object v13
invoke-interface {v13, v0}, Lorg/w3c/dom/NamedNodeMap;->getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;
move-result-object v13
invoke-interface {v13}, Lorg/w3c/dom/Node;->getNodeValue()Ljava/lang/String;
move-result-object v13
invoke-static {v13}, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->toTime(Ljava/lang/String;)J
move-result-wide v13
.line 114
.restart local v13 # "end":J
nop
.line 117
:goto_7c
invoke-static {v13, v14, v8, v9}, Ljava/lang/Math;->max(JJ)J
move-result-wide v15
move-wide v8, v15
.line 106
.end local v11 # "n":Lorg/w3c/dom/Node;
.end local v12 # "begin":Ljava/lang/String;
.end local v13 # "end":J
add-int/lit8 v10, v10, 0x1
goto :goto_28
.line 115
.restart local v11 # "n":Lorg/w3c/dom/Node;
.restart local v12 # "begin":Ljava/lang/String;
:cond_84
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "neither end nor dur attribute is present"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
.end local v2 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.end local v3 # "ctx":Ljavax/xml/namespace/NamespaceContext;
.end local v4 # "xpath":Ljavax/xml/xpath/XPath;
.end local p0 # "document":Lorg/w3c/dom/Document;
throw v0
:try_end_8c
.catch Ljavax/xml/xpath/XPathExpressionException; {:try_start_1f .. :try_end_8c} :catch_8c
.line 120
.end local v5 # "timedNodesXpath":Ljavax/xml/xpath/XPathExpression;
.end local v6 # "timedNodes":Lorg/w3c/dom/NodeList;
.end local v8 # "lastTimeStamp":J
.end local v10 # "i":I
.end local v11 # "n":Lorg/w3c/dom/Node;
.end local v12 # "begin":Ljava/lang/String;
.restart local v2 # "xPathfactory":Ljavax/xml/xpath/XPathFactory;
.restart local v3 # "ctx":Ljavax/xml/namespace/NamespaceContext;
.restart local v4 # "xpath":Ljavax/xml/xpath/XPath;
.restart local p0 # "document":Lorg/w3c/dom/Document;
:catch_8c
move-exception v0
goto :goto_91
:catch_8e
move-exception v0
move-object/from16 v7, p0
.line 121
.local v0, "e":Ljavax/xml/xpath/XPathExpressionException;
:goto_91
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
goto :goto_98
:goto_97
throw v1
:goto_98
goto :goto_97
.end method
.method private streamToByteArray(Ljava/io/InputStream;)[B
.registers 7
.param p1, "input" # Ljava/io/InputStream;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 260
const/16 v0, 0x1fa0
new-array v0, v0, [B
.line 261
.local v0, "buffer":[B
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 263
.local v1, "output":Ljava/io/ByteArrayOutputStream;
const/4 v2, 0x0
.line 264
.local v2, "n":I
nop
:goto_b
const/4 v3, -0x1
invoke-virtual {p1, v0}, Ljava/io/InputStream;->read([B)I
move-result v4
move v2, v4
if-ne v3, v4, :cond_18
.line 267
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v3
return-object v3
.line 265
:cond_18
const/4 v3, 0x0
invoke-virtual {v1, v0, v3, v2}, Ljava/io/ByteArrayOutputStream;->write([BII)V
goto :goto_b
.end method
.method static toTime(Ljava/lang/String;)J
.registers 15
.param p0, "expr" # Ljava/lang/String;
.line 46
const-string v0, "([0-9][0-9]):([0-9][0-9]):([0-9][0-9])([\\.:][0-9][0-9]?[0-9]?)?"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
.line 47
.local v0, "p":Ljava/util/regex/Pattern;
invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v1
.line 48
.local v1, "m":Ljava/util/regex/Matcher;
invoke-virtual {v1}, Ljava/util/regex/Matcher;->matches()Z
move-result v2
if-eqz v2, :cond_6e
.line 49
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v2
.line 50
.local v2, "hours":Ljava/lang/String;
const/4 v3, 0x2
invoke-virtual {v1, v3}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v3
.line 51
.local v3, "minutes":Ljava/lang/String;
const/4 v4, 0x3
invoke-virtual {v1, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
.line 52
.local v4, "seconds":Ljava/lang/String;
const/4 v5, 0x4
invoke-virtual {v1, v5}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v5
.line 53
.local v5, "fraction":Ljava/lang/String;
if-nez v5, :cond_28
.line 54
const-string v5, ".000"
.line 56
:cond_28
const-string v6, ":"
const-string v7, "."
invoke-virtual {v5, v6, v7}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v5
.line 57
invoke-static {v2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v6
const-wide/16 v8, 0x3c
mul-long v6, v6, v8
mul-long v6, v6, v8
const-wide/16 v10, 0x3e8
mul-long v6, v6, v10
.line 58
.local v6, "ms":J
invoke-static {v3}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v12
mul-long v12, v12, v8
mul-long v12, v12, v10
add-long/2addr v6, v12
.line 59
invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v8
mul-long v8, v8, v10
add-long/2addr v6, v8
.line 60
long-to-double v8, v6
new-instance v10, Ljava/lang/StringBuilder;
const-string v11, "0"
invoke-direct {v10, v11}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v10, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
invoke-static {v10}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v10
const-wide v12, 0x408f400000000000L # 1000.0
mul-double v10, v10, v12
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v8, v10
double-to-long v6, v8
.line 61
return-wide v6
.line 63
.end local v2 # "hours":Ljava/lang/String;
.end local v3 # "minutes":Ljava/lang/String;
.end local v4 # "seconds":Ljava/lang/String;
.end local v5 # "fraction":Ljava/lang/String;
.end local v6 # "ms":J
:cond_6e
new-instance v2, Ljava/lang/RuntimeException;
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Cannot match "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, " to time expression"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v2
.end method
# virtual methods
.method public close()V
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 304
return-void
.end method
.method public getHandler()Ljava/lang/String;
.registers 2
.line 289
const-string/jumbo v0, "subt"
return-object v0
.end method
.method public getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
.registers 2
.line 271
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;
return-object v0
.end method
.method public getSampleDurations()[J
.registers 8
.line 276
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDurations:[J
array-length v0, v0
new-array v0, v0, [J
.line 277
.local v0, "adoptedSampleDuration":[J
const/4 v1, 0x0
.local v1, "i":I
:goto_6
array-length v2, v0
if-lt v1, v2, :cond_a
.line 280
.end local v1 # "i":I
return-object v0
.line 278
.restart local v1 # "i":I
:cond_a
iget-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->sampleDurations:[J
aget-wide v3, v2, v1
iget-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
invoke-virtual {v2}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->getTimescale()J
move-result-wide v5
mul-long v3, v3, v5
const-wide/16 v5, 0x3e8
div-long/2addr v3, v5
aput-wide v3, v0, v1
.line 277
add-int/lit8 v1, v1, 0x1
goto :goto_6
.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 293
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->samples:Ljava/util/List;
return-object v0
.end method
.method public getSubsampleInformationBox()Lcom/coremedia/iso/boxes/SubSampleInformationBox;
.registers 2
.line 298
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->subSampleInformationBox:Lcom/coremedia/iso/boxes/SubSampleInformationBox;
return-object v0
.end method
.method public getTrackMetaData()Lcom/googlecode/mp4parser/authoring/TrackMetaData;
.registers 2
.line 285
iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/SMPTETTTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;
return-object v0
.end method