H264TrackImpl$SliceHeader.smali
.class public Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;
.super Ljava/lang/Object;
.source "H264TrackImpl.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "SliceHeader"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
}
.end annotation
# instance fields
.field public bottom_field_flag:Z
.field public colour_plane_id:I
.field public delta_pic_order_cnt_0:I
.field public delta_pic_order_cnt_1:I
.field public delta_pic_order_cnt_bottom:I
.field public field_pic_flag:Z
.field public first_mb_in_slice:I
.field public frame_num:I
.field public idr_pic_id:I
.field public pic_order_cnt_lsb:I
.field public pic_parameter_set_id:I
.field public slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Ljava/io/InputStream;Ljava/util/Map;Ljava/util/Map;Z)V
.registers 11
.param p1, "is" # Ljava/io/InputStream;
.param p4, "IdrPicFlag" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/InputStream;",
"Ljava/util/Map<",
"Ljava/lang/Integer;",
"Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;",
">;",
"Ljava/util/Map<",
"Ljava/lang/Integer;",
"Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;",
">;Z)V"
}
.end annotation
.line 520
.local p2, "spss":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/Integer;Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;>;"
.local p3, "ppss":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/Integer;Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 512
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->field_pic_flag:Z
.line 513
iput-boolean v0, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->bottom_field_flag:Z
.line 522
:try_start_8
invoke-virtual {p1}, Ljava/io/InputStream;->read()I
.line 523
new-instance v0, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;
invoke-direct {v0, p1}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;-><init>(Ljava/io/InputStream;)V
.line 524
.local v0, "reader":Lcom/googlecode/mp4parser/h264/read/CAVLCReader;
const-string v1, "SliceHeader: first_mb_in_slice"
invoke-virtual {v0, v1}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readUE(Ljava/lang/String;)I
move-result v1
iput v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->first_mb_in_slice:I
.line 525
const-string v1, "SliceHeader: slice_type"
invoke-virtual {v0, v1}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readUE(Ljava/lang/String;)I
move-result v1
.line 526
.local v1, "sliceTypeInt":I
packed-switch v1, :pswitch_data_dc
goto :goto_3b
.line 549
:pswitch_22
sget-object v2, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;->SI:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
goto :goto_3b
.line 544
:pswitch_27
sget-object v2, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;->SP:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
.line 545
goto :goto_3b
.line 539
:pswitch_2c
sget-object v2, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;->I:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
.line 540
goto :goto_3b
.line 534
:pswitch_31
sget-object v2, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;->B:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
.line 535
goto :goto_3b
.line 529
:pswitch_36
sget-object v2, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;->P:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
iput-object v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
.line 530
nop
.line 554
:goto_3b
const-string v2, "SliceHeader: pic_parameter_set_id"
invoke-virtual {v0, v2}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readUE(Ljava/lang/String;)I
move-result v2
iput v2, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->pic_parameter_set_id:I
.line 555
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-interface {p3, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;
.line 556
.local v2, "pps":Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;
iget v3, v2, Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;->seq_parameter_set_id:I
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-interface {p2, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;
.line 557
.local v3, "sps":Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;
iget-boolean v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->residual_color_transform_flag:Z
if-eqz v4, :cond_66
.line 558
const/4 v4, 0x2
const-string v5, "SliceHeader: colour_plane_id"
invoke-virtual {v0, v4, v5}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readU(ILjava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->colour_plane_id:I
.line 560
:cond_66
iget v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->log2_max_frame_num_minus4:I
add-int/lit8 v4, v4, 0x4
const-string v5, "SliceHeader: frame_num"
invoke-virtual {v0, v4, v5}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readU(ILjava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->frame_num:I
.line 562
iget-boolean v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->frame_mbs_only_flag:Z
if-nez v4, :cond_88
.line 563
const-string v4, "SliceHeader: field_pic_flag"
invoke-virtual {v0, v4}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readBool(Ljava/lang/String;)Z
move-result v4
iput-boolean v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->field_pic_flag:Z
.line 564
if-eqz v4, :cond_88
.line 565
const-string v4, "SliceHeader: bottom_field_flag"
invoke-virtual {v0, v4}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readBool(Ljava/lang/String;)Z
move-result v4
iput-boolean v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->bottom_field_flag:Z
.line 568
:cond_88
if-eqz p4, :cond_92
.line 570
const-string v4, "SliceHeader: idr_pic_id"
invoke-virtual {v0, v4}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readUE(Ljava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->idr_pic_id:I
.line 572
:cond_92
iget v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->pic_order_cnt_type:I
if-nez v4, :cond_b2
.line 573
iget v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->log2_max_pic_order_cnt_lsb_minus4:I
add-int/lit8 v4, v4, 0x4
const-string v5, "SliceHeader: pic_order_cnt_lsb"
invoke-virtual {v0, v4, v5}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readU(ILjava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->pic_order_cnt_lsb:I
.line 574
iget-boolean v4, v2, Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;->bottom_field_pic_order_in_frame_present_flag:Z
if-eqz v4, :cond_b2
iget-boolean v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->field_pic_flag:Z
if-nez v4, :cond_b2
.line 575
const-string v4, "SliceHeader: delta_pic_order_cnt_bottom"
invoke-virtual {v0, v4}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readSE(Ljava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->delta_pic_order_cnt_bottom:I
.line 579
:cond_b2
iget v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->pic_order_cnt_type:I
const/4 v5, 0x1
if-ne v4, v5, :cond_d3
iget-boolean v4, v3, Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;->delta_pic_order_always_zero_flag:Z
if-nez v4, :cond_d3
.line 581
const-string v4, "delta_pic_order_cnt_0"
invoke-virtual {v0, v4}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readSE(Ljava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->delta_pic_order_cnt_0:I
.line 582
iget-boolean v4, v2, Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;->bottom_field_pic_order_in_frame_present_flag:Z
if-eqz v4, :cond_d3
iget-boolean v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->field_pic_flag:Z
if-nez v4, :cond_d3
.line 583
const-string v4, "delta_pic_order_cnt_1"
invoke-virtual {v0, v4}, Lcom/googlecode/mp4parser/h264/read/CAVLCReader;->readSE(Ljava/lang/String;)I
move-result v4
iput v4, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->delta_pic_order_cnt_1:I
:try_end_d3
.catch Ljava/io/IOException; {:try_start_8 .. :try_end_d3} :catch_d4
.line 590
.end local v0 # "reader":Lcom/googlecode/mp4parser/h264/read/CAVLCReader;
.end local v1 # "sliceTypeInt":I
.end local v2 # "pps":Lcom/googlecode/mp4parser/h264/model/PictureParameterSet;
.end local v3 # "sps":Lcom/googlecode/mp4parser/h264/model/SeqParameterSet;
:cond_d3
return-void
.line 586
:catch_d4
move-exception v0
.line 587
.local v0, "e":Ljava/io/IOException;
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
nop
:pswitch_data_dc
.packed-switch 0x0
:pswitch_36
:pswitch_31
:pswitch_2c
:pswitch_27
:pswitch_22
:pswitch_36
:pswitch_31
:pswitch_2c
:pswitch_27
:pswitch_22
.end packed-switch
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.registers 3
.line 594
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "SliceHeader{first_mb_in_slice="
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 595
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->first_mb_in_slice:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 596
const-string v1, ", slice_type="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->slice_type:Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader$SliceType;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
.line 597
const-string v1, ", pic_parameter_set_id="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->pic_parameter_set_id:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 598
const-string v1, ", colour_plane_id="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->colour_plane_id:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 599
const-string v1, ", frame_num="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->frame_num:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 600
const-string v1, ", field_pic_flag="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->field_pic_flag:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
.line 601
const-string v1, ", bottom_field_flag="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->bottom_field_flag:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
.line 602
const-string v1, ", idr_pic_id="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->idr_pic_id:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 603
const-string v1, ", pic_order_cnt_lsb="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->pic_order_cnt_lsb:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 604
const-string v1, ", delta_pic_order_cnt_bottom="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/googlecode/mp4parser/authoring/tracks/H264TrackImpl$SliceHeader;->delta_pic_order_cnt_bottom:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 605
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 594
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method