DTSTrackImpl.smali

.class public Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;
.super Lcom/googlecode/mp4parser/authoring/AbstractTrack;
.source "DTSTrackImpl.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$LookAhead;
    }
.end annotation


# static fields
.field private static final BUFFER:I


# instance fields
.field bcCoreBitRate:I

.field bcCoreChannelMask:I

.field bcCoreMaxSampleRate:I

.field bitrate:I

.field channelCount:I

.field channelMask:I

.field codecDelayAtMaxFs:I

.field coreBitRate:I

.field coreChannelMask:I

.field coreFramePayloadInBytes:I

.field coreMaxSampleRate:I

.field coreSubStreamPresent:Z

.field private dataOffset:I

.field private dataSource:Lcom/googlecode/mp4parser/DataSource;

.field ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

.field extAvgBitrate:I

.field extFramePayloadInBytes:I

.field extPeakBitrate:I

.field extSmoothBuffSize:I

.field extensionSubStreamPresent:Z

.field frameSize:I

.field isVBR:Z

.field private lang:Ljava/lang/String;

.field lbrCodingPresent:I

.field lsbTrimPercent:I

.field maxSampleRate:I

.field numExtSubStreams:I

.field numFramesTotal:I

.field numSamplesOrigAudioAtMaxFs:I

.field sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;

.field private sampleDurations:[J

.field sampleSize:I

.field samplerate:I

.field private samples:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/googlecode/mp4parser/authoring/Sample;",
            ">;"
        }
    .end annotation
.end field

.field samplesPerFrame:I

.field samplesPerFrameAtMaxFs:I

.field trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

.field type:Ljava/lang/String;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    const v0, 0x400156f

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->BUFFER:I

    return-void
.end method

.method public constructor <init>(Lcom/googlecode/mp4parser/DataSource;)V
    .registers 4
    .param p1, "dataSource"    # Lcom/googlecode/mp4parser/DataSource;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 74
    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/googlecode/mp4parser/authoring/AbstractTrack;-><init>(Ljava/lang/String;)V

    .line 21
    new-instance v0, Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    invoke-direct {v0}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;-><init>()V

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    .line 26
    const/4 v0, 0x0

    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->frameSize:I

    .line 31
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataOffset:I

    .line 32
    new-instance v1, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-direct {v1}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;-><init>()V

    iput-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    .line 38
    iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->isVBR:Z

    .line 39
    iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreSubStreamPresent:Z

    .line 40
    iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extensionSubStreamPresent:Z

    .line 41
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numExtSubStreams:I

    .line 42
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreMaxSampleRate:I

    .line 43
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreBitRate:I

    .line 44
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreChannelMask:I

    .line 45
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreFramePayloadInBytes:I

    .line 46
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extAvgBitrate:I

    .line 47
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extPeakBitrate:I

    .line 48
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extSmoothBuffSize:I

    .line 49
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extFramePayloadInBytes:I

    .line 51
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->maxSampleRate:I

    .line 52
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lbrCodingPresent:I

    .line 53
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numFramesTotal:I

    .line 54
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrameAtMaxFs:I

    .line 55
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numSamplesOrigAudioAtMaxFs:I

    .line 56
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelMask:I

    .line 57
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->codecDelayAtMaxFs:I

    .line 58
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreMaxSampleRate:I

    .line 59
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreBitRate:I

    .line 60
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreChannelMask:I

    .line 61
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lsbTrimPercent:I

    .line 63
    const-string v0, "none"

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 64
    const-string v0, "eng"

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lang:Ljava/lang/String;

    .line 75
    iput-object p1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataSource:Lcom/googlecode/mp4parser/DataSource;

    .line 76
    invoke-direct {p0}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->parse()V

    .line 77
    return-void
.end method

.method public constructor <init>(Lcom/googlecode/mp4parser/DataSource;Ljava/lang/String;)V
    .registers 5
    .param p1, "dataSource"    # Lcom/googlecode/mp4parser/DataSource;
    .param p2, "lang"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 67
    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/googlecode/mp4parser/authoring/AbstractTrack;-><init>(Ljava/lang/String;)V

    .line 21
    new-instance v0, Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    invoke-direct {v0}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;-><init>()V

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    .line 26
    const/4 v0, 0x0

    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->frameSize:I

    .line 31
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataOffset:I

    .line 32
    new-instance v1, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-direct {v1}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;-><init>()V

    iput-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    .line 38
    iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->isVBR:Z

    .line 39
    iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreSubStreamPresent:Z

    .line 40
    iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extensionSubStreamPresent:Z

    .line 41
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numExtSubStreams:I

    .line 42
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreMaxSampleRate:I

    .line 43
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreBitRate:I

    .line 44
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreChannelMask:I

    .line 45
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreFramePayloadInBytes:I

    .line 46
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extAvgBitrate:I

    .line 47
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extPeakBitrate:I

    .line 48
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extSmoothBuffSize:I

    .line 49
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extFramePayloadInBytes:I

    .line 51
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->maxSampleRate:I

    .line 52
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lbrCodingPresent:I

    .line 53
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numFramesTotal:I

    .line 54
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrameAtMaxFs:I

    .line 55
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numSamplesOrigAudioAtMaxFs:I

    .line 56
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelMask:I

    .line 57
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->codecDelayAtMaxFs:I

    .line 58
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreMaxSampleRate:I

    .line 59
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreBitRate:I

    .line 60
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreChannelMask:I

    .line 61
    iput v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lsbTrimPercent:I

    .line 63
    const-string v0, "none"

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 64
    const-string v0, "eng"

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lang:Ljava/lang/String;

    .line 68
    iput-object p2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lang:Ljava/lang/String;

    .line 69
    iput-object p1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataSource:Lcom/googlecode/mp4parser/DataSource;

    .line 70
    invoke-direct {p0}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->parse()V

    .line 71
    return-void
.end method

.method private generateSamples(Lcom/googlecode/mp4parser/DataSource;IJI)Ljava/util/List;
    .registers 15
    .param p1, "dataSource"    # Lcom/googlecode/mp4parser/DataSource;
    .param p2, "dataOffset"    # I
    .param p3, "dataSize"    # J
    .param p5, "corePresent"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/googlecode/mp4parser/DataSource;",
            "IJI)",
            "Ljava/util/List<",
            "Lcom/googlecode/mp4parser/authoring/Sample;",
            ">;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 651
    new-instance v8, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$LookAhead;

    int-to-long v3, p2

    move-object v0, v8

    move-object v1, p0

    move-object v2, p1

    move-wide v5, p3

    move v7, p5

    invoke-direct/range {v0 .. v7}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$LookAhead;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;Lcom/googlecode/mp4parser/DataSource;JJI)V

    .line 653
    .local v0, "la":Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$LookAhead;
    new-instance v1, Ljava/util/ArrayList;

    invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V

    .line 655
    .local v1, "mySamples":Ljava/util/List;, "Ljava/util/List<Lcom/googlecode/mp4parser/authoring/Sample;>;"
    nop

    :goto_11
    invoke-virtual {v0}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$LookAhead;->findNextStart()Ljava/nio/ByteBuffer;

    move-result-object v2

    move-object v3, v2

    .local v3, "sample":Ljava/nio/ByteBuffer;
    if-nez v2, :cond_20

    .line 672
    sget-object v2, Ljava/lang/System;->err:Ljava/io/PrintStream;

    const-string v4, "all samples found"

    invoke-virtual {v2, v4}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V

    .line 673
    return-object v1

    .line 656
    :cond_20
    move-object v2, v3

    .line 657
    .local v2, "finalSample":Ljava/nio/ByteBuffer;
    new-instance v4, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$1;

    invoke-direct {v4, p0, v2}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl$1;-><init>(Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;Ljava/nio/ByteBuffer;)V

    invoke-interface {v1, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_11
.end method

.method private getBitRate(I)I
    .registers 4
    .param p1, "rate"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 678
    packed-switch p1, :pswitch_data_5a

    .line 786
    new-instance v0, Ljava/io/IOException;

    const-string v1, "Unknown bitrate value"

    invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 782
    :pswitch_b
    const/4 v0, -0x1

    .line 783
    .local v0, "bitrate":I
    goto :goto_58

    .line 778
    .end local v0    # "bitrate":I
    :pswitch_d
    const/16 v0, 0x600

    .line 779
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 774
    .end local v0    # "bitrate":I
    :pswitch_10
    const/16 v0, 0x5c0

    .line 775
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 770
    .end local v0    # "bitrate":I
    :pswitch_13
    const/16 v0, 0x583

    .line 771
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 766
    .end local v0    # "bitrate":I
    :pswitch_16
    const/16 v0, 0x580

    .line 767
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 762
    .end local v0    # "bitrate":I
    :pswitch_19
    const/16 v0, 0x540

    .line 763
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 758
    .end local v0    # "bitrate":I
    :pswitch_1c
    const/16 v0, 0x500

    .line 759
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 754
    .end local v0    # "bitrate":I
    :pswitch_1f
    const/16 v0, 0x480

    .line 755
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 750
    .end local v0    # "bitrate":I
    :pswitch_22
    const/16 v0, 0x400

    .line 751
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 746
    .end local v0    # "bitrate":I
    :pswitch_25
    const/16 v0, 0x3c0

    .line 747
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 742
    .end local v0    # "bitrate":I
    :pswitch_28
    const/16 v0, 0x300

    .line 743
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 738
    .end local v0    # "bitrate":I
    :pswitch_2b
    const/16 v0, 0x280

    .line 739
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 734
    .end local v0    # "bitrate":I
    :pswitch_2e
    const/16 v0, 0x240

    .line 735
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 730
    .end local v0    # "bitrate":I
    :pswitch_31
    const/16 v0, 0x200

    .line 731
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 726
    .end local v0    # "bitrate":I
    :pswitch_34
    const/16 v0, 0x1c0

    .line 727
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 722
    .end local v0    # "bitrate":I
    :pswitch_37
    const/16 v0, 0x180

    .line 723
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 718
    .end local v0    # "bitrate":I
    :pswitch_3a
    const/16 v0, 0x140

    .line 719
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 714
    .end local v0    # "bitrate":I
    :pswitch_3d
    const/16 v0, 0x100

    .line 715
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 710
    .end local v0    # "bitrate":I
    :pswitch_40
    const/16 v0, 0xe0

    .line 711
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 706
    .end local v0    # "bitrate":I
    :pswitch_43
    const/16 v0, 0xc0

    .line 707
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 702
    .end local v0    # "bitrate":I
    :pswitch_46
    const/16 v0, 0x80

    .line 703
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 698
    .end local v0    # "bitrate":I
    :pswitch_49
    const/16 v0, 0x70

    .line 699
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 694
    .end local v0    # "bitrate":I
    :pswitch_4c
    const/16 v0, 0x60

    .line 695
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 690
    .end local v0    # "bitrate":I
    :pswitch_4f
    const/16 v0, 0x40

    .line 691
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 686
    .end local v0    # "bitrate":I
    :pswitch_52
    const/16 v0, 0x38

    .line 687
    .restart local v0    # "bitrate":I
    goto :goto_58

    .line 682
    .end local v0    # "bitrate":I
    :pswitch_55
    const/16 v0, 0x20

    .line 683
    .restart local v0    # "bitrate":I
    nop

    .line 789
    :goto_58
    return v0

    nop

    :pswitch_data_5a
    .packed-switch 0x0
        :pswitch_55
        :pswitch_52
        :pswitch_4f
        :pswitch_4c
        :pswitch_49
        :pswitch_46
        :pswitch_43
        :pswitch_40
        :pswitch_3d
        :pswitch_3a
        :pswitch_37
        :pswitch_34
        :pswitch_31
        :pswitch_2e
        :pswitch_2b
        :pswitch_28
        :pswitch_25
        :pswitch_22
        :pswitch_1f
        :pswitch_1c
        :pswitch_19
        :pswitch_16
        :pswitch_13
        :pswitch_10
        :pswitch_d
        :pswitch_b
    .end packed-switch
.end method

.method private getSampleRate(I)I
    .registers 4
    .param p1, "sfreq"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 794
    packed-switch p1, :pswitch_data_2a

    .line 834
    :pswitch_3
    new-instance v0, Ljava/io/IOException;

    const-string v1, "Unknown Sample Rate"

    invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 830
    :pswitch_b
    const v0, 0xbb80

    .line 831
    .local v0, "samplerate":I
    goto :goto_28

    .line 826
    .end local v0    # "samplerate":I
    :pswitch_f
    const/16 v0, 0x5dc0

    .line 827
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 822
    .end local v0    # "samplerate":I
    :pswitch_12
    const/16 v0, 0x2ee0

    .line 823
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 818
    .end local v0    # "samplerate":I
    :pswitch_15
    const v0, 0xac44

    .line 819
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 814
    .end local v0    # "samplerate":I
    :pswitch_19
    const/16 v0, 0x5622

    .line 815
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 810
    .end local v0    # "samplerate":I
    :pswitch_1c
    const/16 v0, 0x2b11

    .line 811
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 806
    .end local v0    # "samplerate":I
    :pswitch_1f
    const/16 v0, 0x7d00

    .line 807
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 802
    .end local v0    # "samplerate":I
    :pswitch_22
    const/16 v0, 0x3e80

    .line 803
    .restart local v0    # "samplerate":I
    goto :goto_28

    .line 798
    .end local v0    # "samplerate":I
    :pswitch_25
    const/16 v0, 0x1f40

    .line 799
    .restart local v0    # "samplerate":I
    nop

    .line 837
    :goto_28
    return v0

    nop

    :pswitch_data_2a
    .packed-switch 0x1
        :pswitch_25
        :pswitch_22
        :pswitch_1f
        :pswitch_3
        :pswitch_3
        :pswitch_1c
        :pswitch_19
        :pswitch_15
        :pswitch_3
        :pswitch_3
        :pswitch_12
        :pswitch_f
        :pswitch_b
    .end packed-switch
.end method

.method private parse()V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 84
    invoke-direct {p0}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->readVariables()Z

    move-result v0

    if-eqz v0, :cond_56

    .line 88
    new-instance v0, Lcom/coremedia/iso/boxes/SampleDescriptionBox;

    invoke-direct {v0}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;-><init>()V

    iput-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;

    .line 89
    new-instance v0, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;

    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    invoke-direct {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;-><init>(Ljava/lang/String;)V

    .line 90
    .local v0, "audioSampleEntry":Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
    iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelCount:I

    invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setChannelCount(I)V

    .line 91
    iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplerate:I

    int-to-long v1, v1

    invoke-virtual {v0, v1, v2}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSampleRate(J)V

    .line 92
    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setDataReferenceIndex(I)V

    .line 93
    const/16 v1, 0x10

    invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->setSampleSize(I)V

    .line 96
    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-virtual {v0, v1}, Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;->addBox(Lcom/coremedia/iso/boxes/Box;)V

    .line 97
    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;

    invoke-virtual {v1, v0}, Lcom/coremedia/iso/boxes/SampleDescriptionBox;->addBox(Lcom/coremedia/iso/boxes/Box;)V

    .line 99
    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    new-instance v2, Ljava/util/Date;

    invoke-direct {v2}, Ljava/util/Date;-><init>()V

    invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setCreationTime(Ljava/util/Date;)V

    .line 100
    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    new-instance v2, Ljava/util/Date;

    invoke-direct {v2}, Ljava/util/Date;-><init>()V

    invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setModificationTime(Ljava/util/Date;)V

    .line 101
    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    iget-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lang:Ljava/lang/String;

    invoke-virtual {v1, v2}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setLanguage(Ljava/lang/String;)V

    .line 102
    iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    iget v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplerate:I

    int-to-long v2, v2

    invoke-virtual {v1, v2, v3}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->setTimescale(J)V

    .line 105
    return-void

    .line 85
    .end local v0    # "audioSampleEntry":Lcom/coremedia/iso/boxes/sampleentry/AudioSampleEntry;
    :cond_56
    new-instance v0, Ljava/io/IOException;

    invoke-direct {v0}, Ljava/io/IOException;-><init>()V

    throw v0
.end method

.method private parseAuprhdr(ILjava/nio/ByteBuffer;)Z
    .registers 10
    .param p1, "size"    # I
    .param p2, "bb"    # Ljava/nio/ByteBuffer;

    .line 185
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 186
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v0

    .line 187
    .local v0, "bitwAupresData":I
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v1

    .line 188
    .local v1, "a":I
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v2

    .line 189
    .local v2, "b":I
    shl-int/lit8 v3, v1, 0x10

    const v4, 0xffff

    and-int v5, v2, v4

    or-int/2addr v3, v5

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->maxSampleRate:I

    .line 190
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v3

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numFramesTotal:I

    .line 191
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v3

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrameAtMaxFs:I

    .line 192
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v1

    .line 193
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v2

    .line 194
    shl-int/lit8 v3, v1, 0x20

    and-int v5, v2, v4

    or-int/2addr v3, v5

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numSamplesOrigAudioAtMaxFs:I

    .line 195
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v3

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelMask:I

    .line 196
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v3

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->codecDelayAtMaxFs:I

    .line 197
    const/16 v3, 0x15

    .line 198
    .local v3, "c":I
    and-int/lit8 v5, v0, 0x3

    const/4 v6, 0x3

    if-ne v5, v6, :cond_63

    .line 199
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v1

    .line 200
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v2

    .line 201
    shl-int/lit8 v5, v1, 0x10

    and-int/2addr v4, v2

    or-int/2addr v4, v5

    iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreMaxSampleRate:I

    .line 202
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v4

    iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreBitRate:I

    .line 203
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v4

    iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bcCoreChannelMask:I

    .line 204
    add-int/lit8 v3, v3, 0x7

    .line 206
    :cond_63
    and-int/lit8 v4, v0, 0x4

    if-lez v4, :cond_6f

    .line 207
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v4

    iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lsbTrimPercent:I

    .line 208
    add-int/lit8 v3, v3, 0x1

    .line 210
    :cond_6f
    and-int/lit8 v4, v0, 0x8

    const/4 v5, 0x1

    if-lez v4, :cond_76

    .line 211
    iput v5, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lbrCodingPresent:I

    .line 213
    :cond_76
    :goto_76
    if-lt v3, p1, :cond_79

    .line 218
    return v5

    .line 214
    :cond_79
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 215
    add-int/lit8 v3, v3, 0x1

    goto :goto_76
.end method

.method private parseCoressmd(ILjava/nio/ByteBuffer;)Z
    .registers 7
    .param p1, "size"    # I
    .param p2, "bb"    # Ljava/nio/ByteBuffer;

    .line 170
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v0

    .line 171
    .local v0, "cmsr_1":I
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v1

    .line 172
    .local v1, "cmsr_2":I
    shl-int/lit8 v2, v0, 0x10

    const v3, 0xffff

    and-int/2addr v3, v1

    or-int/2addr v2, v3

    iput v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreMaxSampleRate:I

    .line 173
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v2

    iput v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreBitRate:I

    .line 174
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v2

    iput v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreChannelMask:I

    .line 175
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v2

    iput v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreFramePayloadInBytes:I

    .line 176
    const/16 v2, 0xb

    .line 177
    .local v2, "i":I
    nop

    :goto_26
    if-lt v2, p1, :cond_2a

    .line 181
    const/4 v3, 0x1

    return v3

    .line 178
    :cond_2a
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 179
    add-int/lit8 v2, v2, 0x1

    goto :goto_26
.end method

.method private parseDtshdhdr(ILjava/nio/ByteBuffer;)V
    .registers 7
    .param p1, "size"    # I
    .param p2, "bb"    # Ljava/nio/ByteBuffer;

    .line 142
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getInt()I

    .line 143
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 144
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getInt()I

    .line 145
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 146
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v0

    .line 147
    .local v0, "bitwStreamMetadata":I
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 148
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v1

    iput v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numExtSubStreams:I

    .line 150
    and-int/lit8 v1, v0, 0x1

    const/4 v2, 0x1

    if-ne v1, v2, :cond_20

    .line 151
    iput-boolean v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->isVBR:Z

    .line 153
    :cond_20
    and-int/lit8 v1, v0, 0x8

    const/16 v3, 0x8

    if-ne v1, v3, :cond_28

    .line 154
    iput-boolean v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreSubStreamPresent:Z

    .line 156
    :cond_28
    and-int/lit8 v1, v0, 0x10

    const/16 v3, 0x10

    if-ne v1, v3, :cond_36

    .line 157
    iput-boolean v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extensionSubStreamPresent:Z

    .line 158
    iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numExtSubStreams:I

    add-int/2addr v1, v2

    iput v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numExtSubStreams:I

    .line 159
    goto :goto_39

    .line 160
    :cond_36
    const/4 v1, 0x0

    iput v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->numExtSubStreams:I

    .line 162
    :goto_39
    const/16 v1, 0xe

    .line 163
    .local v1, "i":I
    nop

    :goto_3c
    if-lt v1, p1, :cond_3f

    .line 167
    return-void

    .line 164
    :cond_3f
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 165
    add-int/lit8 v1, v1, 0x1

    goto :goto_3c
.end method

.method private parseExtssmd(ILjava/nio/ByteBuffer;)Z
    .registers 8
    .param p1, "size"    # I
    .param p2, "bb"    # Ljava/nio/ByteBuffer;

    .line 225
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v0

    .line 226
    .local v0, "a":I
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v1

    .line 227
    .local v1, "b":I
    shl-int/lit8 v2, v0, 0x10

    const v3, 0xffff

    and-int v4, v1, v3

    or-int/2addr v2, v4

    iput v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extAvgBitrate:I

    .line 228
    const/4 v2, 0x3

    .line 229
    .local v2, "i":I
    iget-boolean v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->isVBR:Z

    if-eqz v4, :cond_2e

    .line 230
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    move-result v0

    .line 231
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v1

    .line 232
    shl-int/lit8 v4, v0, 0x10

    and-int/2addr v3, v1

    or-int/2addr v3, v4

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extPeakBitrate:I

    .line 233
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v3

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extSmoothBuffSize:I

    .line 234
    add-int/lit8 v2, v2, 0x5

    .line 235
    goto :goto_37

    .line 236
    :cond_2e
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v3

    iput v3, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extFramePayloadInBytes:I

    .line 237
    add-int/lit8 v2, v2, 0x4

    .line 239
    nop

    :goto_37
    if-lt v2, p1, :cond_3b

    .line 243
    const/4 v3, 0x1

    return v3

    .line 240
    :cond_3b
    invoke-virtual {p2}, Ljava/nio/ByteBuffer;->get()B

    .line 241
    add-int/lit8 v2, v2, 0x1

    goto :goto_37
.end method

.method private readVariables()Z
    .registers 40
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 247
    move-object/from16 v6, p0

    iget-object v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataSource:Lcom/googlecode/mp4parser/DataSource;

    const-wide/16 v1, 0x0

    const-wide/16 v3, 0x61a8

    invoke-interface {v0, v1, v2, v3, v4}, Lcom/googlecode/mp4parser/DataSource;->map(JJ)Ljava/nio/ByteBuffer;

    move-result-object v7

    .line 248
    .local v7, "bb":Ljava/nio/ByteBuffer;
    invoke-virtual {v7}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v0

    .line 249
    .local v0, "testHeader1":I
    invoke-virtual {v7}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v1

    .line 250
    .local v1, "testHeader2":I
    const v2, 0x44545348

    if-ne v0, v2, :cond_64f

    const v3, 0x44484452

    if-ne v1, v3, :cond_64f

    move v8, v0

    move v9, v1

    .line 254
    .end local v0    # "testHeader1":I
    .end local v1    # "testHeader2":I
    .local v8, "testHeader1":I
    .local v9, "testHeader2":I
    :goto_20
    const v0, 0x5354524d

    if-ne v8, v0, :cond_2a

    const v0, 0x44415441

    if-eq v9, v0, :cond_32

    :cond_2a
    invoke-virtual {v7}, Ljava/nio/ByteBuffer;->remaining()I

    move-result v0

    const/16 v4, 0x64

    if-gt v0, v4, :cond_5ec

    .line 278
    :cond_32
    invoke-virtual {v7}, Ljava/nio/ByteBuffer;->getLong()J

    move-result-wide v10

    .line 279
    .local v10, "dataSize":J
    invoke-virtual {v7}, Ljava/nio/ByteBuffer;->position()I

    move-result v0

    iput v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataOffset:I

    .line 281
    const/4 v0, -0x1

    .line 282
    .local v0, "amode":I
    const/4 v2, 0x0

    .line 283
    .local v2, "extAudioId":I
    const/4 v3, 0x0

    .line 285
    .local v3, "extAudio":I
    const/4 v4, -0x1

    .line 286
    .local v4, "corePresent":I
    const/4 v5, -0x1

    .line 287
    .local v5, "extPresent":I
    const/4 v12, 0x0

    .line 288
    .local v12, "extXch":I
    const/4 v13, 0x0

    .line 289
    .local v13, "extXXch":I
    const/4 v14, 0x0

    .line 290
    .local v14, "extX96k":I
    const/4 v15, 0x0

    .line 291
    .local v15, "extXbr":I
    const/16 v16, 0x0

    .line 292
    .local v16, "extLbr":I
    const/16 v17, 0x0

    .line 293
    .local v17, "extXll":I
    const/16 v18, 0x0

    .line 295
    .local v18, "extCore":I
    const/16 v19, 0x0

    .line 298
    .local v19, "done":Z
    move/from16 v20, v16

    move/from16 v21, v17

    move/from16 v22, v18

    move/from16 v38, v12

    move v12, v0

    move v0, v15

    move v15, v4

    move v4, v13

    move v13, v2

    move v2, v14

    move v14, v3

    move/from16 v3, v38

    .end local v16    # "extLbr":I
    .end local v17    # "extXll":I
    .end local v18    # "extCore":I
    .local v0, "extXbr":I
    .local v2, "extX96k":I
    .local v3, "extXch":I
    .local v4, "extXXch":I
    .local v12, "amode":I
    .local v13, "extAudioId":I
    .local v14, "extAudio":I
    .local v15, "corePresent":I
    .local v20, "extLbr":I
    .local v21, "extXll":I
    .local v22, "extCore":I
    :goto_5e
    if-eqz v19, :cond_35b

    .line 467
    const/16 v27, -0x1

    .line 468
    .local v27, "fd":I
    iget v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrame:I

    move/from16 v29, v3

    .end local v3    # "extXch":I
    .local v29, "extXch":I
    const/16 v3, 0x200

    move/from16 v30, v9

    .end local v9    # "testHeader2":I
    .local v30, "testHeader2":I
    const/16 v9, 0x1000

    if-eq v1, v3, :cond_8a

    const/16 v3, 0x400

    if-eq v1, v3, :cond_85

    const/16 v3, 0x800

    if-eq v1, v3, :cond_80

    if-eq v1, v9, :cond_7b

    move/from16 v3, v27

    goto :goto_8e

    .line 484
    :cond_7b
    const/16 v27, 0x3

    move/from16 v3, v27

    goto :goto_8e

    .line 480
    :cond_80
    const/16 v27, 0x2

    .line 481
    move/from16 v3, v27

    goto :goto_8e

    .line 476
    :cond_85
    const/16 v27, 0x1

    .line 477
    move/from16 v3, v27

    goto :goto_8e

    .line 472
    :cond_8a
    const/16 v27, 0x0

    .line 473
    move/from16 v3, v27

    .line 488
    .end local v27    # "fd":I
    .local v3, "fd":I
    :goto_8e
    const/4 v1, -0x1

    if-ne v3, v1, :cond_93

    .line 491
    const/4 v1, 0x0

    return v1

    .line 494
    :cond_93
    const/16 v1, 0x1f

    .line 495
    .local v1, "coreLayout":I
    if-eqz v12, :cond_9f

    const/4 v9, 0x2

    if-eq v12, v9, :cond_9f

    packed-switch v12, :pswitch_data_65a

    move v9, v1

    goto :goto_a1

    .line 506
    :cond_9f
    :pswitch_9f
    move v1, v12

    move v9, v1

    .line 509
    .end local v1    # "coreLayout":I
    .local v9, "coreLayout":I
    :goto_a1
    const/4 v1, 0x0

    .line 510
    .local v1, "streamContruction":I
    move/from16 v27, v1

    .end local v1    # "streamContruction":I
    .local v27, "streamContruction":I
    const-string v1, "dtsh"

    if-nez v15, :cond_110

    .line 511
    move/from16 v31, v12

    move/from16 v12, v21

    move/from16 v21, v8

    const/4 v8, 0x1

    .end local v8    # "testHeader1":I
    .local v12, "extXll":I
    .local v21, "testHeader1":I
    .local v31, "amode":I
    if-ne v12, v8, :cond_d3

    .line 512
    move/from16 v8, v22

    .end local v22    # "extCore":I
    .local v8, "extCore":I
    if-nez v8, :cond_c6

    .line 513
    const/16 v1, 0x11

    .line 514
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move/from16 v22, v1

    .end local v1    # "streamContruction":I
    .local v22, "streamContruction":I
    const-string v1, "dtsl"

    iput-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 515
    move/from16 v1, v22

    move-object/from16 v22, v7

    move/from16 v7, v20

    move/from16 v20, v15

    goto :goto_103

    .line 516
    .end local v22    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_c6
    const/16 v22, 0x15

    .line 517
    .end local v27    # "streamContruction":I
    .restart local v22    # "streamContruction":I
    iput-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 519
    move/from16 v1, v22

    move-object/from16 v22, v7

    move/from16 v7, v20

    move/from16 v20, v15

    goto :goto_103

    .end local v8    # "extCore":I
    .local v22, "extCore":I
    .restart local v27    # "streamContruction":I
    :cond_d3
    move/from16 v8, v22

    .end local v22    # "extCore":I
    .restart local v8    # "extCore":I
    move-object/from16 v22, v7

    move/from16 v7, v20

    move/from16 v20, v15

    const/4 v15, 0x1

    .end local v15    # "corePresent":I
    .local v7, "extLbr":I
    .local v20, "corePresent":I
    .local v22, "bb":Ljava/nio/ByteBuffer;
    if-ne v7, v15, :cond_e5

    .line 520
    const/16 v1, 0x12

    .line 521
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    const-string v15, "dtse"

    iput-object v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 522
    goto :goto_103

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_e5
    const/4 v15, 0x1

    if-ne v8, v15, :cond_101

    .line 523
    iput-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 524
    if-nez v4, :cond_f1

    if-nez v12, :cond_f1

    .line 525
    const/16 v1, 0x13

    .line 526
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    goto :goto_103

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_f1
    const/4 v1, 0x1

    if-ne v4, v1, :cond_f9

    if-nez v12, :cond_f9

    .line 527
    const/16 v1, 0x14

    .line 528
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    goto :goto_103

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_f9
    if-nez v4, :cond_101

    const/4 v1, 0x1

    if-ne v12, v1, :cond_101

    .line 529
    const/16 v1, 0x15

    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    goto :goto_103

    .line 532
    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_101
    move/from16 v1, v27

    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    :goto_103
    iget v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->maxSampleRate:I

    iput v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplerate:I

    .line 533
    const/16 v15, 0x18

    iput v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleSize:I

    .line 534
    move v15, v1

    move/from16 v17, v5

    goto/16 :goto_239

    .line 535
    .end local v1    # "streamContruction":I
    .end local v31    # "amode":I
    .local v7, "bb":Ljava/nio/ByteBuffer;
    .local v8, "testHeader1":I
    .local v12, "amode":I
    .restart local v15    # "corePresent":I
    .local v20, "extLbr":I
    .local v21, "extXll":I
    .local v22, "extCore":I
    .restart local v27    # "streamContruction":I
    :cond_110
    move/from16 v31, v12

    move/from16 v12, v21

    move/from16 v21, v8

    move/from16 v8, v22

    move-object/from16 v22, v7

    move/from16 v7, v20

    move/from16 v20, v15

    .end local v15    # "corePresent":I
    .local v7, "extLbr":I
    .local v8, "extCore":I
    .local v12, "extXll":I
    .local v20, "corePresent":I
    .local v21, "testHeader1":I
    .local v22, "bb":Ljava/nio/ByteBuffer;
    .restart local v31    # "amode":I
    const/4 v15, 0x1

    if-ge v5, v15, :cond_151

    .line 536
    const-string v15, "dtsc"

    if-lez v14, :cond_149

    .line 537
    if-eqz v13, :cond_141

    move/from16 v17, v5

    const/4 v5, 0x2

    .end local v5    # "extPresent":I
    .local v17, "extPresent":I
    if-eq v13, v5, :cond_13b

    const/4 v5, 0x6

    if-eq v13, v5, :cond_135

    .line 554
    const/4 v5, 0x0

    .line 555
    .end local v27    # "streamContruction":I
    .local v5, "streamContruction":I
    iput-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 558
    move v15, v5

    goto/16 :goto_239

    .line 549
    .end local v5    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_135
    const/4 v5, 0x3

    .line 550
    .end local v27    # "streamContruction":I
    .restart local v5    # "streamContruction":I
    iput-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 551
    move v15, v5

    goto/16 :goto_239

    .line 544
    .end local v5    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_13b
    const/4 v1, 0x4

    .line 545
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    iput-object v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 546
    move v15, v1

    goto/16 :goto_239

    .line 539
    .end local v1    # "streamContruction":I
    .end local v17    # "extPresent":I
    .local v5, "extPresent":I
    .restart local v27    # "streamContruction":I
    :cond_141
    move/from16 v17, v5

    .end local v5    # "extPresent":I
    .restart local v17    # "extPresent":I
    const/4 v1, 0x2

    .line 540
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    iput-object v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 541
    move v15, v1

    goto/16 :goto_239

    .line 559
    .end local v1    # "streamContruction":I
    .end local v17    # "extPresent":I
    .restart local v5    # "extPresent":I
    .restart local v27    # "streamContruction":I
    :cond_149
    move/from16 v17, v5

    .end local v5    # "extPresent":I
    .restart local v17    # "extPresent":I
    const/4 v1, 0x1

    .line 560
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    iput-object v15, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 562
    move v15, v1

    goto/16 :goto_239

    .line 563
    .end local v1    # "streamContruction":I
    .end local v17    # "extPresent":I
    .restart local v5    # "extPresent":I
    .restart local v27    # "streamContruction":I
    :cond_151
    move/from16 v17, v5

    .end local v5    # "extPresent":I
    .restart local v17    # "extPresent":I
    iput-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->type:Ljava/lang/String;

    .line 564
    if-nez v14, :cond_1c1

    .line 565
    if-nez v8, :cond_168

    const/4 v1, 0x1

    if-ne v4, v1, :cond_168

    if-nez v2, :cond_168

    if-nez v0, :cond_168

    if-nez v12, :cond_168

    if-nez v7, :cond_168

    .line 566
    const/4 v1, 0x5

    .line 567
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_168
    if-nez v8, :cond_179

    if-nez v4, :cond_179

    if-nez v2, :cond_179

    const/4 v1, 0x1

    if-ne v0, v1, :cond_179

    if-nez v12, :cond_179

    if-nez v7, :cond_179

    .line 568
    const/4 v1, 0x6

    .line 569
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_179
    if-nez v8, :cond_18b

    const/4 v1, 0x1

    if-ne v4, v1, :cond_18b

    if-nez v2, :cond_18b

    if-ne v0, v1, :cond_18b

    if-nez v12, :cond_18b

    if-nez v7, :cond_18b

    .line 570
    const/16 v1, 0x9

    .line 571
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_18b
    if-nez v8, :cond_19d

    if-nez v4, :cond_19d

    const/4 v1, 0x1

    if-ne v2, v1, :cond_19d

    if-nez v0, :cond_19d

    if-nez v12, :cond_19d

    if-nez v7, :cond_19d

    .line 572
    const/16 v1, 0xa

    .line 573
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_19d
    if-nez v8, :cond_1af

    const/4 v1, 0x1

    if-ne v4, v1, :cond_1af

    if-ne v2, v1, :cond_1af

    if-nez v0, :cond_1af

    if-nez v12, :cond_1af

    if-nez v7, :cond_1af

    .line 574
    const/16 v1, 0xd

    .line 575
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_1af
    if-nez v8, :cond_237

    if-nez v4, :cond_237

    if-nez v2, :cond_237

    if-nez v0, :cond_237

    const/4 v1, 0x1

    if-ne v12, v1, :cond_237

    if-nez v7, :cond_237

    .line 576
    const/16 v1, 0xe

    .line 578
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .line 579
    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_1c1
    if-nez v13, :cond_1d4

    if-nez v8, :cond_1d4

    if-nez v4, :cond_1d4

    if-nez v2, :cond_1d4

    const/4 v1, 0x1

    if-ne v0, v1, :cond_1d4

    if-nez v12, :cond_1d4

    if-nez v7, :cond_1d4

    .line 580
    const/4 v1, 0x7

    .line 581
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_1d4
    const/4 v1, 0x6

    if-ne v13, v1, :cond_1e9

    if-nez v8, :cond_1e9

    if-nez v4, :cond_1e9

    if-nez v2, :cond_1e9

    const/4 v1, 0x1

    if-ne v0, v1, :cond_1e9

    if-nez v12, :cond_1e9

    if-nez v7, :cond_1e9

    .line 582
    const/16 v1, 0x8

    .line 583
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto/16 :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_1e9
    if-nez v13, :cond_1fc

    if-nez v8, :cond_1fc

    if-nez v4, :cond_1fc

    const/4 v1, 0x1

    if-ne v2, v1, :cond_1fc

    if-nez v0, :cond_1fc

    if-nez v12, :cond_1fc

    if-nez v7, :cond_1fc

    .line 584
    const/16 v1, 0xb

    .line 585
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_1fc
    const/4 v1, 0x6

    if-ne v13, v1, :cond_210

    if-nez v8, :cond_210

    if-nez v4, :cond_210

    const/4 v1, 0x1

    if-ne v2, v1, :cond_210

    if-nez v0, :cond_210

    if-nez v12, :cond_210

    if-nez v7, :cond_210

    .line 586
    const/16 v1, 0xc

    .line 587
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_210
    if-nez v13, :cond_223

    if-nez v8, :cond_223

    if-nez v4, :cond_223

    if-nez v2, :cond_223

    if-nez v0, :cond_223

    const/4 v1, 0x1

    if-ne v12, v1, :cond_223

    if-nez v7, :cond_223

    .line 588
    const/16 v1, 0xf

    .line 589
    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    move v15, v1

    goto :goto_239

    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_223
    const/4 v1, 0x2

    if-ne v13, v1, :cond_237

    if-nez v8, :cond_237

    if-nez v4, :cond_237

    if-nez v2, :cond_237

    if-nez v0, :cond_237

    const/4 v1, 0x1

    if-ne v12, v1, :cond_237

    if-nez v7, :cond_237

    .line 590
    const/16 v1, 0x10

    move v15, v1

    .end local v27    # "streamContruction":I
    .restart local v1    # "streamContruction":I
    goto :goto_239

    .line 595
    .end local v1    # "streamContruction":I
    .restart local v27    # "streamContruction":I
    :cond_237
    move/from16 v15, v27

    .end local v27    # "streamContruction":I
    .local v15, "streamContruction":I
    :goto_239
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v5, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->maxSampleRate:I

    move/from16 v26, v4

    .end local v4    # "extXXch":I
    .local v26, "extXXch":I
    int-to-long v4, v5

    invoke-virtual {v1, v4, v5}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setDTSSamplingFrequency(J)V

    .line 596
    iget-boolean v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->isVBR:Z

    if-eqz v1, :cond_255

    .line 597
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreBitRate:I

    iget v5, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extPeakBitrate:I

    add-int/2addr v4, v5

    mul-int/lit16 v4, v4, 0x3e8

    int-to-long v4, v4

    invoke-virtual {v1, v4, v5}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setMaxBitRate(J)V

    .line 598
    goto :goto_262

    .line 599
    :cond_255
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreBitRate:I

    iget v5, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extAvgBitrate:I

    add-int/2addr v4, v5

    mul-int/lit16 v4, v4, 0x3e8

    int-to-long v4, v4

    invoke-virtual {v1, v4, v5}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setMaxBitRate(J)V

    .line 601
    :goto_262
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreBitRate:I

    iget v5, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extAvgBitrate:I

    add-int/2addr v4, v5

    mul-int/lit16 v4, v4, 0x3e8

    int-to-long v4, v4

    invoke-virtual {v1, v4, v5}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setAvgBitRate(J)V

    .line 602
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleSize:I

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setPcmSampleDepth(I)V

    .line 603
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-virtual {v1, v3}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setFrameDuration(I)V

    .line 604
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-virtual {v1, v15}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setStreamConstruction(I)V

    .line 605
    iget v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreChannelMask:I

    and-int/lit8 v4, v1, 0x8

    if-gtz v4, :cond_293

    const/16 v4, 0x1000

    and-int/2addr v1, v4

    if-lez v1, :cond_28c

    goto :goto_293

    .line 608
    :cond_28c
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    const/4 v4, 0x0

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setCoreLFEPresent(I)V

    goto :goto_29a

    .line 606
    :cond_293
    :goto_293
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    const/4 v4, 0x1

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setCoreLFEPresent(I)V

    .line 607
    nop

    .line 610
    :goto_29a
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-virtual {v1, v9}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setCoreLayout(I)V

    .line 611
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreFramePayloadInBytes:I

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setCoreSize(I)V

    .line 612
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    const/4 v4, 0x0

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setStereoDownmix(I)V

    .line 613
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    const/4 v4, 0x4

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setRepresentationType(I)V

    .line 614
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelMask:I

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setChannelLayout(I)V

    .line 615
    iget v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->coreMaxSampleRate:I

    if-lez v1, :cond_2c9

    iget v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->extAvgBitrate:I

    if-lez v1, :cond_2c9

    .line 616
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    const/4 v4, 0x1

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setMultiAssetFlag(I)V

    .line 617
    const/4 v5, 0x0

    goto :goto_2d0

    .line 615
    :cond_2c9
    const/4 v4, 0x1

    .line 618
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    const/4 v5, 0x0

    invoke-virtual {v1, v5}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setMultiAssetFlag(I)V

    .line 620
    :goto_2d0
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->lbrCodingPresent:I

    invoke-virtual {v1, v4}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setLBRDurationMod(I)V

    .line 621
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->ddts:Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;

    invoke-virtual {v1, v5}, Lcom/googlecode/mp4parser/boxes/DTSSpecificBox;->setReservedBoxPresent(I)V

    .line 623
    iput v5, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelCount:I

    .line 624
    const/4 v1, 0x0

    .local v1, "bit":I
    :goto_2df
    const/16 v4, 0x10

    if-lt v1, v4, :cond_312

    .line 643
    .end local v1    # "bit":I
    iget-object v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataSource:Lcom/googlecode/mp4parser/DataSource;

    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataOffset:I

    move v5, v0

    .end local v0    # "extXbr":I
    .local v5, "extXbr":I
    move-object/from16 v0, p0

    move/from16 v27, v9

    const/4 v9, 0x1

    .end local v9    # "coreLayout":I
    .local v27, "coreLayout":I
    move/from16 v32, v2

    .end local v2    # "extX96k":I
    .local v32, "extX96k":I
    move v2, v4

    move/from16 v28, v3

    move/from16 v34, v26

    move/from16 v33, v29

    .end local v3    # "fd":I
    .end local v26    # "extXXch":I
    .end local v29    # "extXch":I
    .local v28, "fd":I
    .local v33, "extXch":I
    .local v34, "extXXch":I
    move-wide v3, v10

    move/from16 v35, v5

    move/from16 v29, v17

    .end local v5    # "extXbr":I
    .end local v17    # "extPresent":I
    .local v29, "extPresent":I
    .local v35, "extXbr":I
    move/from16 v5, v20

    invoke-direct/range {v0 .. v5}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->generateSamples(Lcom/googlecode/mp4parser/DataSource;IJI)Ljava/util/List;

    move-result-object v0

    iput-object v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samples:Ljava/util/List;

    .line 644
    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    new-array v0, v0, [J

    iput-object v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleDurations:[J

    .line 645
    iget v1, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrame:I

    int-to-long v1, v1

    invoke-static {v0, v1, v2}, Ljava/util/Arrays;->fill([JJ)V

    .line 647
    return v9

    .line 625
    .end local v27    # "coreLayout":I
    .end local v28    # "fd":I
    .end local v32    # "extX96k":I
    .end local v33    # "extXch":I
    .end local v34    # "extXXch":I
    .end local v35    # "extXbr":I
    .restart local v0    # "extXbr":I
    .restart local v1    # "bit":I
    .restart local v2    # "extX96k":I
    .restart local v3    # "fd":I
    .restart local v9    # "coreLayout":I
    .restart local v17    # "extPresent":I
    .restart local v26    # "extXXch":I
    .local v29, "extXch":I
    :cond_312
    move/from16 v35, v0

    move/from16 v32, v2

    move/from16 v28, v3

    move/from16 v27, v9

    move/from16 v34, v26

    move/from16 v33, v29

    const/4 v9, 0x1

    move/from16 v29, v17

    .end local v0    # "extXbr":I
    .end local v2    # "extX96k":I
    .end local v3    # "fd":I
    .end local v9    # "coreLayout":I
    .end local v17    # "extPresent":I
    .end local v26    # "extXXch":I
    .restart local v27    # "coreLayout":I
    .restart local v28    # "fd":I
    .local v29, "extPresent":I
    .restart local v32    # "extX96k":I
    .restart local v33    # "extXch":I
    .restart local v34    # "extXXch":I
    .restart local v35    # "extXbr":I
    iget v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelMask:I

    shr-int/2addr v0, v1

    and-int/2addr v0, v9

    if-ne v0, v9, :cond_34a

    .line 626
    if-eqz v1, :cond_345

    const/16 v0, 0xc

    if-eq v1, v0, :cond_345

    const/16 v0, 0xe

    if-eq v1, v0, :cond_345

    const/4 v0, 0x3

    if-eq v1, v0, :cond_345

    const/4 v0, 0x4

    if-eq v1, v0, :cond_345

    const/4 v0, 0x7

    if-eq v1, v0, :cond_345

    const/16 v0, 0x8

    if-eq v1, v0, :cond_345

    .line 638
    iget v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelCount:I

    const/4 v2, 0x2

    add-int/2addr v0, v2

    iput v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelCount:I

    goto :goto_34a

    .line 634
    :cond_345
    iget v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelCount:I

    add-int/2addr v0, v9

    iput v0, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->channelCount:I

    .line 624
    :cond_34a
    :goto_34a
    add-int/lit8 v1, v1, 0x1

    move/from16 v9, v27

    move/from16 v3, v28

    move/from16 v17, v29

    move/from16 v2, v32

    move/from16 v29, v33

    move/from16 v26, v34

    move/from16 v0, v35

    goto :goto_2df

    .line 299
    .end local v1    # "bit":I
    .end local v27    # "coreLayout":I
    .end local v28    # "fd":I
    .end local v29    # "extPresent":I
    .end local v30    # "testHeader2":I
    .end local v31    # "amode":I
    .end local v32    # "extX96k":I
    .end local v33    # "extXch":I
    .end local v34    # "extXXch":I
    .end local v35    # "extXbr":I
    .restart local v0    # "extXbr":I
    .restart local v2    # "extX96k":I
    .local v3, "extXch":I
    .restart local v4    # "extXXch":I
    .local v5, "extPresent":I
    .local v7, "bb":Ljava/nio/ByteBuffer;
    .local v8, "testHeader1":I
    .local v9, "testHeader2":I
    .local v12, "amode":I
    .local v15, "corePresent":I
    .local v20, "extLbr":I
    .local v21, "extXll":I
    .local v22, "extCore":I
    :cond_35b
    move/from16 v35, v0

    move/from16 v32, v2

    move/from16 v33, v3

    move/from16 v34, v4

    move/from16 v29, v5

    move/from16 v30, v9

    move/from16 v31, v12

    move/from16 v12, v21

    const/4 v9, 0x1

    move/from16 v21, v8

    move/from16 v8, v22

    move-object/from16 v22, v7

    move/from16 v7, v20

    move/from16 v20, v15

    .end local v0    # "extXbr":I
    .end local v2    # "extX96k":I
    .end local v3    # "extXch":I
    .end local v4    # "extXXch":I
    .end local v5    # "extPresent":I
    .end local v9    # "testHeader2":I
    .end local v15    # "corePresent":I
    .local v7, "extLbr":I
    .local v8, "extCore":I
    .local v12, "extXll":I
    .local v20, "corePresent":I
    .local v21, "testHeader1":I
    .local v22, "bb":Ljava/nio/ByteBuffer;
    .restart local v29    # "extPresent":I
    .restart local v30    # "testHeader2":I
    .restart local v31    # "amode":I
    .restart local v32    # "extX96k":I
    .restart local v33    # "extXch":I
    .restart local v34    # "extXXch":I
    .restart local v35    # "extXbr":I
    invoke-virtual/range {v22 .. v22}, Ljava/nio/ByteBuffer;->position()I

    move-result v0

    .line 300
    .local v0, "offset":I
    invoke-virtual/range {v22 .. v22}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v1

    .line 301
    .local v1, "sync":I
    const v2, 0x7ffe8001

    if-ne v1, v2, :cond_4c1

    .line 302
    move/from16 v4, v20

    .end local v20    # "corePresent":I
    .local v4, "corePresent":I
    if-ne v4, v9, :cond_3a4

    .line 303
    const/16 v19, 0x1

    .line 304
    move v15, v4

    move/from16 v20, v7

    move-object/from16 v7, v22

    move/from16 v5, v29

    move/from16 v9, v30

    move/from16 v2, v32

    move/from16 v3, v33

    move/from16 v4, v34

    move/from16 v0, v35

    move/from16 v22, v8

    move/from16 v8, v21

    move/from16 v21, v12

    move/from16 v12, v31

    goto/16 :goto_5e

    .line 305
    :cond_3a4
    const/4 v15, 0x1

    .line 306
    .end local v4    # "corePresent":I
    .restart local v15    # "corePresent":I
    new-instance v2, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;

    move-object/from16 v5, v22

    .end local v22    # "bb":Ljava/nio/ByteBuffer;
    .local v5, "bb":Ljava/nio/ByteBuffer;
    invoke-direct {v2, v5}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;-><init>(Ljava/nio/ByteBuffer;)V

    .line 308
    .local v2, "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    invoke-virtual {v2, v9}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v3

    .line 309
    .local v3, "ftype":I
    const/4 v4, 0x5

    move-wide/from16 v27, v10

    .end local v10    # "dataSize":J
    .local v27, "dataSize":J
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v10

    .line 310
    .local v10, "shrt":I
    invoke-virtual {v2, v9}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v11

    .line 311
    .local v11, "cpf":I
    if-ne v3, v9, :cond_4b9

    const/16 v9, 0x1f

    if-ne v10, v9, :cond_4b9

    if-eqz v11, :cond_3cb

    move-object/from16 v20, v2

    move/from16 v24, v3

    move/from16 v25, v10

    goto/16 :goto_4bf

    .line 317
    :cond_3cb
    const/4 v9, 0x7

    invoke-virtual {v2, v9}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v22

    .line 318
    .local v22, "nblks":I
    add-int/lit8 v9, v22, 0x1

    mul-int/lit8 v9, v9, 0x20

    iput v9, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrame:I

    .line 319
    const/16 v9, 0xe

    invoke-virtual {v2, v9}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v9

    .line 320
    .local v9, "fsize":I
    iget v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->frameSize:I

    add-int/lit8 v23, v9, 0x1

    add-int v4, v4, v23

    iput v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->frameSize:I

    .line 321
    const/4 v4, 0x6

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v23

    .line 322
    .end local v31    # "amode":I
    .local v23, "amode":I
    move/from16 v24, v3

    const/4 v4, 0x4

    .end local v3    # "ftype":I
    .local v24, "ftype":I
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v3

    .line 324
    .local v3, "sfreq":I
    invoke-direct {v6, v3}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->getSampleRate(I)I

    move-result v4

    iput v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplerate:I

    .line 326
    move/from16 v31, v3

    const/4 v4, 0x5

    .end local v3    # "sfreq":I
    .local v31, "sfreq":I
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v3

    .line 328
    .local v3, "rate":I
    invoke-direct {v6, v3}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->getBitRate(I)I

    move-result v4

    iput v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->bitrate:I

    .line 330
    const/4 v4, 0x1

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v36

    .line 331
    .local v36, "fixedBit":I
    if-eqz v36, :cond_40c

    .line 334
    const/4 v4, 0x0

    return v4

    .line 337
    :cond_40c
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 338
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 339
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 340
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 341
    const/4 v4, 0x3

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v13

    .line 342
    const/4 v4, 0x1

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v14

    .line 343
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 344
    const/4 v4, 0x2

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 345
    const/4 v4, 0x1

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 346
    nop

    .line 347
    if-ne v11, v4, :cond_435

    .line 350
    const/16 v4, 0x10

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 353
    :cond_435
    const/4 v4, 0x1

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 354
    move/from16 v37, v3

    const/4 v4, 0x4

    .end local v3    # "rate":I
    .local v37, "rate":I
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v3

    .line 355
    .local v3, "vernum":I
    const/4 v4, 0x2

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 356
    move/from16 v25, v10

    const/4 v4, 0x3

    .end local v10    # "shrt":I
    .local v25, "shrt":I
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v10

    .line 357
    .local v10, "pcmr":I
    if-eqz v10, :cond_468

    const/4 v4, 0x1

    if-eq v10, v4, :cond_468

    const/4 v4, 0x2

    if-eq v10, v4, :cond_463

    const/4 v4, 0x3

    if-eq v10, v4, :cond_463

    const/4 v4, 0x5

    if-eq v10, v4, :cond_45e

    const/4 v4, 0x6

    if-eq v10, v4, :cond_45e

    .line 376
    const/4 v4, 0x0

    return v4

    .line 372
    :cond_45e
    const/16 v4, 0x18

    iput v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleSize:I

    .line 373
    goto :goto_46d

    .line 367
    :cond_463
    const/16 v4, 0x14

    iput v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleSize:I

    .line 368
    goto :goto_46d

    .line 362
    :cond_468
    const/16 v4, 0x10

    iput v4, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleSize:I

    .line 363
    nop

    .line 379
    :goto_46d
    const/4 v4, 0x1

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 380
    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 381
    const/4 v4, 0x0

    .line 382
    .local v4, "dialnorm":I
    nop

    .line 383
    move/from16 v17, v4

    const/4 v4, 0x6

    .end local v4    # "dialnorm":I
    .local v17, "dialnorm":I
    if-eq v3, v4, :cond_48c

    const/4 v4, 0x7

    if-eq v3, v4, :cond_485

    .line 397
    const/4 v4, 0x4

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move/from16 v4, v17

    goto :goto_493

    .line 392
    :cond_485
    const/4 v4, 0x4

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v4

    .line 393
    .end local v17    # "dialnorm":I
    .restart local v4    # "dialnorm":I
    nop

    .line 394
    goto :goto_493

    .line 387
    .end local v4    # "dialnorm":I
    .restart local v17    # "dialnorm":I
    :cond_48c
    const/4 v4, 0x4

    invoke-virtual {v2, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v4

    .line 388
    .end local v17    # "dialnorm":I
    .restart local v4    # "dialnorm":I
    nop

    .line 389
    nop

    .line 400
    :goto_493
    add-int v17, v0, v9

    move-object/from16 v20, v2

    const/16 v18, 0x1

    .end local v2    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .local v20, "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    add-int/lit8 v2, v17, 0x1

    invoke-virtual {v5, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;

    .line 402
    .end local v3    # "vernum":I
    .end local v4    # "dialnorm":I
    .end local v9    # "fsize":I
    .end local v10    # "pcmr":I
    .end local v11    # "cpf":I
    .end local v20    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .end local v22    # "nblks":I
    .end local v24    # "ftype":I
    .end local v25    # "shrt":I
    .end local v31    # "sfreq":I
    .end local v36    # "fixedBit":I
    .end local v37    # "rate":I
    move/from16 v20, v7

    move/from16 v22, v8

    move/from16 v8, v21

    move-wide/from16 v10, v27

    move/from16 v9, v30

    move/from16 v2, v32

    move/from16 v3, v33

    move/from16 v4, v34

    move/from16 v0, v35

    move-object v7, v5

    move/from16 v21, v12

    move/from16 v12, v23

    move/from16 v5, v29

    goto/16 :goto_5e

    .line 311
    .end local v23    # "amode":I
    .restart local v2    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .local v3, "ftype":I
    .local v10, "shrt":I
    .restart local v11    # "cpf":I
    .local v31, "amode":I
    :cond_4b9
    move-object/from16 v20, v2

    move/from16 v24, v3

    move/from16 v25, v10

    .line 314
    .end local v2    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .end local v3    # "ftype":I
    .end local v10    # "shrt":I
    .restart local v20    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .restart local v24    # "ftype":I
    .restart local v25    # "shrt":I
    :goto_4bf
    const/4 v2, 0x0

    return v2

    .line 402
    .end local v5    # "bb":Ljava/nio/ByteBuffer;
    .end local v11    # "cpf":I
    .end local v15    # "corePresent":I
    .end local v24    # "ftype":I
    .end local v25    # "shrt":I
    .end local v27    # "dataSize":J
    .local v10, "dataSize":J
    .local v20, "corePresent":I
    .local v22, "bb":Ljava/nio/ByteBuffer;
    :cond_4c1
    move-wide/from16 v27, v10

    move/from16 v4, v20

    move-object/from16 v5, v22

    .end local v10    # "dataSize":J
    .end local v20    # "corePresent":I
    .end local v22    # "bb":Ljava/nio/ByteBuffer;
    .local v4, "corePresent":I
    .restart local v5    # "bb":Ljava/nio/ByteBuffer;
    .restart local v27    # "dataSize":J
    const v2, 0x64582025

    if-ne v1, v2, :cond_5d2

    .line 403
    const/4 v2, -0x1

    if-ne v4, v2, :cond_4d6

    .line 404
    const/4 v2, 0x0

    .line 405
    .end local v4    # "corePresent":I
    .local v2, "corePresent":I
    iget v3, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrameAtMaxFs:I

    iput v3, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samplesPerFrame:I

    move v15, v2

    goto :goto_4d7

    .line 403
    .end local v2    # "corePresent":I
    .restart local v4    # "corePresent":I
    :cond_4d6
    move v15, v4

    .line 407
    .end local v4    # "corePresent":I
    .restart local v15    # "corePresent":I
    :goto_4d7
    const/4 v2, 0x1

    .line 408
    .end local v29    # "extPresent":I
    .local v2, "extPresent":I
    new-instance v3, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;

    invoke-direct {v3, v5}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;-><init>(Ljava/nio/ByteBuffer;)V

    .line 409
    .local v3, "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    const/16 v4, 0x8

    invoke-virtual {v3, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 410
    const/4 v4, 0x2

    invoke-virtual {v3, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    .line 411
    const/4 v4, 0x1

    invoke-virtual {v3, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v9

    .line 412
    .local v9, "headerSizeType":I
    const/16 v4, 0xc

    .line 413
    .local v4, "nuBits4Header":I
    const/16 v10, 0x14

    .line 414
    .local v10, "nuBits4ExSSFsize":I
    if-nez v9, :cond_4f5

    .line 415
    const/16 v4, 0x8

    .line 416
    const/16 v10, 0x10

    .line 418
    :cond_4f5
    invoke-virtual {v3, v4}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v11

    move/from16 v17, v1

    const/4 v1, 0x1

    .end local v1    # "sync":I
    .local v17, "sync":I
    add-int/2addr v11, v1

    .line 419
    .local v11, "nuExtSSHeaderSize":I
    invoke-virtual {v3, v10}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result v18

    add-int/lit8 v18, v18, 0x1

    .line 420
    .local v18, "nuExtSSFsize":I
    add-int v1, v0, v11

    invoke-virtual {v5, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;

    .line 421
    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v1

    .line 422
    .local v1, "extSync":I
    move/from16 v22, v2

    .end local v2    # "extPresent":I
    .local v22, "extPresent":I
    const v2, 0x5a5a5a5a

    if-ne v1, v2, :cond_527

    .line 423
    move-object/from16 v23, v3

    move/from16 v2, v33

    const/4 v3, 0x1

    .end local v3    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .end local v33    # "extXch":I
    .local v2, "extXch":I
    .local v23, "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    if-ne v2, v3, :cond_51c

    .line 424
    const/16 v19, 0x1

    .line 426
    :cond_51c
    const/4 v2, 0x1

    .line 427
    move/from16 v33, v2

    move/from16 v20, v7

    move/from16 v2, v32

    move/from16 v3, v35

    goto/16 :goto_5af

    .end local v2    # "extXch":I
    .end local v23    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .restart local v3    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .restart local v33    # "extXch":I
    :cond_527
    move-object/from16 v23, v3

    move/from16 v2, v33

    .end local v3    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    .end local v33    # "extXch":I
    .restart local v2    # "extXch":I
    .restart local v23    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    const v3, 0x47004a03

    if-ne v1, v3, :cond_544

    .line 428
    move/from16 v33, v2

    move/from16 v3, v34

    const/4 v2, 0x1

    .end local v2    # "extXch":I
    .end local v34    # "extXXch":I
    .local v3, "extXXch":I
    .restart local v33    # "extXch":I
    if-ne v3, v2, :cond_539

    .line 429
    const/16 v19, 0x1

    .line 431
    :cond_539
    const/4 v2, 0x1

    .line 432
    .end local v3    # "extXXch":I
    .local v2, "extXXch":I
    move/from16 v34, v2

    move/from16 v20, v7

    move/from16 v2, v32

    move/from16 v3, v35

    goto/16 :goto_5af

    .end local v33    # "extXch":I
    .local v2, "extXch":I
    .restart local v34    # "extXXch":I
    :cond_544
    move/from16 v33, v2

    move/from16 v3, v34

    .end local v2    # "extXch":I
    .end local v34    # "extXXch":I
    .restart local v3    # "extXXch":I
    .restart local v33    # "extXch":I
    const v2, 0x1d95f262

    if-ne v1, v2, :cond_55c

    .line 433
    move/from16 v34, v3

    move/from16 v2, v32

    const/4 v3, 0x1

    .end local v3    # "extXXch":I
    .end local v32    # "extX96k":I
    .local v2, "extX96k":I
    .restart local v34    # "extXXch":I
    if-ne v2, v3, :cond_556

    .line 434
    const/16 v19, 0x1

    .line 436
    :cond_556
    const/4 v2, 0x1

    .line 437
    move/from16 v20, v7

    move/from16 v3, v35

    goto :goto_5af

    .end local v2    # "extX96k":I
    .end local v34    # "extXXch":I
    .restart local v3    # "extXXch":I
    .restart local v32    # "extX96k":I
    :cond_55c
    move/from16 v34, v3

    move/from16 v2, v32

    .end local v3    # "extXXch":I
    .end local v32    # "extX96k":I
    .restart local v2    # "extX96k":I
    .restart local v34    # "extXXch":I
    const v3, 0x655e315e

    if-ne v1, v3, :cond_575

    .line 438
    move/from16 v32, v2

    move/from16 v3, v35

    const/4 v2, 0x1

    .end local v2    # "extX96k":I
    .end local v35    # "extXbr":I
    .local v3, "extXbr":I
    .restart local v32    # "extX96k":I
    if-ne v3, v2, :cond_56e

    .line 439
    const/16 v19, 0x1

    .line 441
    :cond_56e
    const/4 v2, 0x1

    .line 442
    .end local v3    # "extXbr":I
    .local v2, "extXbr":I
    move v3, v2

    move/from16 v20, v7

    move/from16 v2, v32

    goto :goto_5af

    .end local v32    # "extX96k":I
    .local v2, "extX96k":I
    .restart local v35    # "extXbr":I
    :cond_575
    move/from16 v32, v2

    move/from16 v3, v35

    .end local v2    # "extX96k":I
    .end local v35    # "extXbr":I
    .restart local v3    # "extXbr":I
    .restart local v32    # "extX96k":I
    const v2, 0xa801921

    if-ne v1, v2, :cond_589

    .line 443
    const/4 v2, 0x1

    if-ne v7, v2, :cond_583

    .line 444
    const/16 v19, 0x1

    .line 446
    :cond_583
    const/4 v2, 0x1

    .line 447
    .end local v7    # "extLbr":I
    .local v2, "extLbr":I
    move/from16 v20, v2

    move/from16 v2, v32

    goto :goto_5af

    .end local v2    # "extLbr":I
    .restart local v7    # "extLbr":I
    :cond_589
    const v2, 0x41a29547

    if-ne v1, v2, :cond_59a

    .line 448
    const/4 v2, 0x1

    if-ne v12, v2, :cond_593

    .line 449
    const/16 v19, 0x1

    .line 451
    :cond_593
    const/4 v2, 0x1

    .line 452
    .end local v12    # "extXll":I
    .local v2, "extXll":I
    move v12, v2

    move/from16 v20, v7

    move/from16 v2, v32

    goto :goto_5af

    .end local v2    # "extXll":I
    .restart local v12    # "extXll":I
    :cond_59a
    const v2, 0x2b09261

    if-ne v1, v2, :cond_5ab

    .line 453
    const/4 v2, 0x1

    if-ne v8, v2, :cond_5a4

    .line 454
    const/16 v19, 0x1

    .line 456
    :cond_5a4
    const/4 v2, 0x1

    move v8, v2

    move/from16 v20, v7

    move/from16 v2, v32

    .end local v8    # "extCore":I
    .local v2, "extCore":I
    goto :goto_5af

    .line 452
    .end local v2    # "extCore":I
    .restart local v8    # "extCore":I
    :cond_5ab
    move/from16 v20, v7

    move/from16 v2, v32

    .line 458
    .end local v7    # "extLbr":I
    .end local v32    # "extX96k":I
    .local v2, "extX96k":I
    .local v20, "extLbr":I
    :goto_5af
    if-nez v19, :cond_5b7

    .line 459
    iget v7, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->frameSize:I

    add-int v7, v7, v18

    iput v7, v6, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->frameSize:I

    .line 461
    :cond_5b7
    add-int v7, v0, v18

    invoke-virtual {v5, v7}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;

    .line 462
    .end local v1    # "extSync":I
    .end local v4    # "nuBits4Header":I
    .end local v9    # "headerSizeType":I
    .end local v10    # "nuBits4ExSSFsize":I
    .end local v11    # "nuExtSSHeaderSize":I
    .end local v18    # "nuExtSSFsize":I
    .end local v23    # "brb":Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;
    move v0, v3

    move-object v7, v5

    move/from16 v5, v22

    move-wide/from16 v10, v27

    move/from16 v9, v30

    move/from16 v3, v33

    move/from16 v4, v34

    move/from16 v22, v8

    move/from16 v8, v21

    move/from16 v21, v12

    move/from16 v12, v31

    goto/16 :goto_5e

    .line 463
    .end local v2    # "extX96k":I
    .end local v3    # "extXbr":I
    .end local v15    # "corePresent":I
    .end local v17    # "sync":I
    .end local v20    # "extLbr":I
    .end local v22    # "extPresent":I
    .local v1, "sync":I
    .local v4, "corePresent":I
    .restart local v7    # "extLbr":I
    .restart local v29    # "extPresent":I
    .restart local v32    # "extX96k":I
    .restart local v35    # "extXbr":I
    :cond_5d2
    move/from16 v17, v1

    .end local v1    # "sync":I
    .restart local v17    # "sync":I
    new-instance v1, Ljava/io/IOException;

    new-instance v2, Ljava/lang/StringBuilder;

    const-string v9, "No DTS_SYNCWORD_* found at "

    invoke-direct {v2, v9}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->position()I

    move-result v9

    invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 255
    .end local v0    # "offset":I
    .end local v4    # "corePresent":I
    .end local v5    # "bb":Ljava/nio/ByteBuffer;
    .end local v12    # "extXll":I
    .end local v13    # "extAudioId":I
    .end local v14    # "extAudio":I
    .end local v17    # "sync":I
    .end local v19    # "done":Z
    .end local v21    # "testHeader1":I
    .end local v27    # "dataSize":J
    .end local v29    # "extPresent":I
    .end local v30    # "testHeader2":I
    .end local v31    # "amode":I
    .end local v32    # "extX96k":I
    .end local v33    # "extXch":I
    .end local v34    # "extXXch":I
    .end local v35    # "extXbr":I
    .local v7, "bb":Ljava/nio/ByteBuffer;
    .local v8, "testHeader1":I
    .local v9, "testHeader2":I
    :cond_5ec
    move-object v5, v7

    move/from16 v21, v8

    move/from16 v30, v9

    .end local v7    # "bb":Ljava/nio/ByteBuffer;
    .end local v8    # "testHeader1":I
    .end local v9    # "testHeader2":I
    .restart local v5    # "bb":Ljava/nio/ByteBuffer;
    .restart local v21    # "testHeader1":I
    .restart local v30    # "testHeader2":I
    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->getLong()J

    move-result-wide v0

    long-to-int v4, v0

    .line 256
    .local v4, "size":I
    move/from16 v7, v21

    .end local v21    # "testHeader1":I
    .local v7, "testHeader1":I
    if-ne v7, v2, :cond_602

    move/from16 v8, v30

    .end local v30    # "testHeader2":I
    .local v8, "testHeader2":I
    if-ne v8, v3, :cond_604

    .line 257
    invoke-direct {v6, v4, v5}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->parseDtshdhdr(ILjava/nio/ByteBuffer;)V

    .line 258
    goto :goto_63d

    .line 256
    .end local v8    # "testHeader2":I
    .restart local v30    # "testHeader2":I
    :cond_602
    move/from16 v8, v30

    .line 258
    .end local v30    # "testHeader2":I
    .restart local v8    # "testHeader2":I
    :cond_604
    const v0, 0x434f5245

    if-ne v7, v0, :cond_616

    const v0, 0x53534d44

    if-ne v8, v0, :cond_616

    .line 259
    invoke-direct {v6, v4, v5}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->parseCoressmd(ILjava/nio/ByteBuffer;)Z

    move-result v0

    if-nez v0, :cond_63d

    .line 260
    const/4 v0, 0x0

    return v0

    .line 262
    :cond_616
    const v0, 0x41555052

    if-ne v7, v0, :cond_628

    const v0, 0x2d484452

    if-ne v8, v0, :cond_628

    .line 263
    invoke-direct {v6, v4, v5}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->parseAuprhdr(ILjava/nio/ByteBuffer;)Z

    move-result v0

    if-nez v0, :cond_63d

    .line 264
    const/4 v0, 0x0

    return v0

    .line 266
    :cond_628
    const v0, 0x45585453

    if-ne v7, v0, :cond_63a

    const v0, 0x535f4d44

    if-ne v8, v0, :cond_63a

    .line 267
    invoke-direct {v6, v4, v5}, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->parseExtssmd(ILjava/nio/ByteBuffer;)Z

    move-result v0

    if-nez v0, :cond_63d

    .line 268
    const/4 v0, 0x0

    return v0

    .line 271
    :cond_63a
    const/4 v0, 0x0

    .local v0, "i":I
    :goto_63b
    if-lt v0, v4, :cond_649

    .line 275
    .end local v0    # "i":I
    :cond_63d
    :goto_63d
    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v0

    .line 276
    .end local v7    # "testHeader1":I
    .local v0, "testHeader1":I
    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v9

    move v8, v0

    move-object v7, v5

    .end local v8    # "testHeader2":I
    .restart local v9    # "testHeader2":I
    goto/16 :goto_20

    .line 272
    .end local v9    # "testHeader2":I
    .local v0, "i":I
    .restart local v7    # "testHeader1":I
    .restart local v8    # "testHeader2":I
    :cond_649
    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->get()B

    .line 271
    add-int/lit8 v0, v0, 0x1

    goto :goto_63b

    .line 250
    .end local v4    # "size":I
    .end local v5    # "bb":Ljava/nio/ByteBuffer;
    .end local v8    # "testHeader2":I
    .local v0, "testHeader1":I
    .local v1, "testHeader2":I
    .local v7, "bb":Ljava/nio/ByteBuffer;
    :cond_64f
    move-object v5, v7

    .line 251
    .end local v7    # "bb":Ljava/nio/ByteBuffer;
    .restart local v5    # "bb":Ljava/nio/ByteBuffer;
    new-instance v2, Ljava/io/IOException;

    const-string v3, "data does not start with \'DTSHDHDR\' as required for a DTS-HD file"

    invoke-direct {v2, v3}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    goto :goto_659

    :goto_658
    throw v2

    :goto_659
    goto :goto_658

    :pswitch_data_65a
    .packed-switch 0x4
        :pswitch_9f
        :pswitch_9f
        :pswitch_9f
        :pswitch_9f
        :pswitch_9f
        :pswitch_9f
    .end packed-switch
.end method


# virtual methods
.method public close()V
    .registers 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 80
    iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->dataSource:Lcom/googlecode/mp4parser/DataSource;

    invoke-interface {v0}, Lcom/googlecode/mp4parser/DataSource;->close()V

    .line 81
    return-void
.end method

.method public getCompositionTimeEntries()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/coremedia/iso/boxes/CompositionTimeToSample$Entry;",
            ">;"
        }
    .end annotation

    .line 122
    const/4 v0, 0x0

    return-object v0
.end method

.method public getHandler()Ljava/lang/String;
    .registers 2

    .line 138
    const-string/jumbo v0, "soun"

    return-object v0
.end method

.method public getSampleDependencies()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/coremedia/iso/boxes/SampleDependencyTypeBox$Entry;",
            ">;"
        }
    .end annotation

    .line 130
    const/4 v0, 0x0

    return-object v0
.end method

.method public getSampleDescriptionBox()Lcom/coremedia/iso/boxes/SampleDescriptionBox;
    .registers 2

    .line 114
    iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleDescriptionBox:Lcom/coremedia/iso/boxes/SampleDescriptionBox;

    return-object v0
.end method

.method public getSampleDurations()[J
    .registers 2

    .line 118
    iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->sampleDurations:[J

    return-object v0
.end method

.method public getSamples()Ljava/util/List;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/googlecode/mp4parser/authoring/Sample;",
            ">;"
        }
    .end annotation

    .line 110
    iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->samples:Ljava/util/List;

    return-object v0
.end method

.method public getSyncSamples()[J
    .registers 2

    .line 126
    const/4 v0, 0x0

    return-object v0
.end method

.method public getTrackMetaData()Lcom/googlecode/mp4parser/authoring/TrackMetaData;
    .registers 2

    .line 134
    iget-object v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/DTSTrackImpl;->trackMetaData:Lcom/googlecode/mp4parser/authoring/TrackMetaData;

    return-object v0
.end method