AudioSpecificConfig$ELDSpecificConfig.smali

.class public Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;
.super Ljava/lang/Object;
.source "AudioSpecificConfig.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x1
    name = "ELDSpecificConfig"
.end annotation


# static fields
.field private static final ELDEXT_TERM:I


# instance fields
.field public aacScalefactorDataResilienceFlag:Z

.field public aacSectionDataResilienceFlag:Z

.field public aacSpectralDataResilienceFlag:Z

.field public frameLengthFlag:Z

.field public ldSbrCrcFlag:Z

.field public ldSbrPresentFlag:Z

.field public ldSbrSamplingRate:Z

.field final synthetic this$0:Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;


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

    return-void
.end method

.method public constructor <init>(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;ILcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;)V
    .registers 9
    .param p2, "channelConfiguration"    # I
    .param p3, "bitReaderBuffer"    # Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;

    .line 518
    iput-object p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->this$0:Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 520
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->frameLengthFlag:Z

    .line 521
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->aacSectionDataResilienceFlag:Z

    .line 522
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->aacScalefactorDataResilienceFlag:Z

    .line 523
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->aacSpectralDataResilienceFlag:Z

    .line 525
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->ldSbrPresentFlag:Z

    .line 526
    if-eqz p1, :cond_34

    .line 527
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->ldSbrSamplingRate:Z

    .line 528
    invoke-virtual {p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBool()Z

    move-result p1

    iput-boolean p1, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->ldSbrCrcFlag:Z

    .line 529
    invoke-virtual {p0, p2, p3}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->ld_sbr_header(ILcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;)V

    .line 532
    :cond_34
    :goto_34
    const/4 p1, 0x4

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

    move-result v0

    move v1, v0

    .local v1, "eldExtType":I
    if-nez v0, :cond_3d

    .line 554
    return-void

    .line 533
    :cond_3d
    invoke-virtual {p3, p1}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;->readBits(I)I

    move-result p1

    .line 534
    .local p1, "eldExtLen":I
    move v0, p1

    .line 535
    .local v0, "len":I
    const/4 v2, 0x0

    .line 536
    .local v2, "eldExtLenAdd":I
    const/16 v3, 0xf

    const/16 v4, 0x8

    if-ne p1, v3, :cond_4e

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

    move-result v2

    .line 538
    add-int/2addr v0, v2

    .line 540
    :cond_4e
    const/16 v3, 0xff

    if-ne v2, v3, :cond_59

    .line 541
    const/16 v3, 0x10

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

    move-result v3

    .line 542
    .local v3, "eldExtLenAddAdd":I
    add-int/2addr v0, v3

    .line 544
    .end local v3    # "eldExtLenAddAdd":I
    :cond_59
    nop

    .line 547
    const/4 v3, 0x0

    .local v3, "cnt":I
    :goto_5b
    if-lt v3, v0, :cond_5e

    goto :goto_34

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

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

    goto :goto_5b
.end method


# virtual methods
.method public ld_sbr_header(ILcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;)V
    .registers 7
    .param p1, "channelConfiguration"    # I
    .param p2, "bitReaderBuffer"    # Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;

    .line 558
    packed-switch p1, :pswitch_data_1c

    .line 575
    const/4 v0, 0x0

    .local v0, "numSbrHeader":I
    goto :goto_d

    .line 572
    .end local v0    # "numSbrHeader":I
    :pswitch_5
    const/4 v0, 0x4

    .line 573
    .restart local v0    # "numSbrHeader":I
    goto :goto_d

    .line 569
    .end local v0    # "numSbrHeader":I
    :pswitch_7
    const/4 v0, 0x3

    .line 570
    .restart local v0    # "numSbrHeader":I
    goto :goto_d

    .line 564
    .end local v0    # "numSbrHeader":I
    :pswitch_9
    const/4 v0, 0x2

    .line 565
    .restart local v0    # "numSbrHeader":I
    goto :goto_d

    .line 561
    .end local v0    # "numSbrHeader":I
    :pswitch_b
    const/4 v0, 0x1

    .line 562
    .restart local v0    # "numSbrHeader":I
    nop

    .line 578
    :goto_d
    const/4 v1, 0x0

    .local v1, "el":I
    :goto_e
    if-lt v1, v0, :cond_11

    .line 581
    .end local v1    # "el":I
    return-void

    .line 579
    .restart local v1    # "el":I
    :cond_11
    new-instance v2, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$sbr_header;

    iget-object v3, p0, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$ELDSpecificConfig;->this$0:Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;

    invoke-direct {v2, v3, p2}, Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig$sbr_header;-><init>(Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig;Lcom/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer;)V

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

    goto :goto_e

    nop

    :pswitch_data_1c
    .packed-switch 0x1
        :pswitch_b
        :pswitch_b
        :pswitch_9
        :pswitch_7
        :pswitch_7
        :pswitch_7
        :pswitch_5
    .end packed-switch
.end method