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