Cea608Decoder.smali
.class public final Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;
.super Lcom/google/android/exoplayer2/text/cea/CeaDecoder;
.source "Cea608Decoder.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
}
.end annotation
# static fields
.field private static final BASIC_CHARACTER_SET:[I
.field private static final CC_FIELD_FLAG:I = 0x1
.field private static final CC_IMPLICIT_DATA_HEADER:B = -0x4t
.field private static final CC_MODE_PAINT_ON:I = 0x3
.field private static final CC_MODE_POP_ON:I = 0x2
.field private static final CC_MODE_ROLL_UP:I = 0x1
.field private static final CC_MODE_UNKNOWN:I = 0x0
.field private static final CC_TYPE_FLAG:I = 0x2
.field private static final CC_VALID_FLAG:I = 0x4
.field private static final COLUMN_INDICES:[I
.field private static final CTRL_BACKSPACE:B = 0x21t
.field private static final CTRL_CARRIAGE_RETURN:B = 0x2dt
.field private static final CTRL_DELETE_TO_END_OF_ROW:B = 0x24t
.field private static final CTRL_END_OF_CAPTION:B = 0x2ft
.field private static final CTRL_ERASE_DISPLAYED_MEMORY:B = 0x2ct
.field private static final CTRL_ERASE_NON_DISPLAYED_MEMORY:B = 0x2et
.field private static final CTRL_RESUME_CAPTION_LOADING:B = 0x20t
.field private static final CTRL_RESUME_DIRECT_CAPTIONING:B = 0x29t
.field private static final CTRL_ROLL_UP_CAPTIONS_2_ROWS:B = 0x25t
.field private static final CTRL_ROLL_UP_CAPTIONS_3_ROWS:B = 0x26t
.field private static final CTRL_ROLL_UP_CAPTIONS_4_ROWS:B = 0x27t
.field private static final DEFAULT_CAPTIONS_ROW_COUNT:I = 0x4
.field private static final NTSC_CC_FIELD_1:I = 0x0
.field private static final NTSC_CC_FIELD_2:I = 0x1
.field private static final ODD_PARITY_BYTE_TABLE:[Z
.field private static final ROW_INDICES:[I
.field private static final SPECIAL_CHARACTER_SET:[I
.field private static final SPECIAL_ES_FR_CHARACTER_SET:[I
.field private static final SPECIAL_PT_DE_CHARACTER_SET:[I
.field private static final STYLE_COLORS:[I
.field private static final STYLE_ITALICS:I = 0x7
.field private static final STYLE_UNCHANGED:I = 0x8
# instance fields
.field private captionMode:I
.field private captionRowCount:I
.field private captionValid:Z
.field private final ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private final cueBuilders:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;",
">;"
}
.end annotation
.end field
.field private cues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end field
.field private currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
.field private lastCues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end field
.field private final packetLength:I
.field private repeatableControlCc1:B
.field private repeatableControlCc2:B
.field private repeatableControlSet:Z
.field private final selectedField:I
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 56
const/16 v0, 0x8
new-array v1, v0, [I
fill-array-data v1, :array_44
sput-object v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ROW_INDICES:[I
.line 57
new-array v0, v0, [I
fill-array-data v0, :array_58
sput-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->COLUMN_INDICES:[I
.line 59
const/4 v0, 0x7
new-array v0, v0, [I
fill-array-data v0, :array_6c
sput-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->STYLE_COLORS:[I
.line 115
const/16 v0, 0x60
new-array v0, v0, [I
fill-array-data v0, :array_7e
sput-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->BASIC_CHARACTER_SET:[I
.line 143
const/16 v0, 0x10
new-array v0, v0, [I
fill-array-data v0, :array_142
sput-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->SPECIAL_CHARACTER_SET:[I
.line 163
const/16 v0, 0x20
new-array v1, v0, [I
fill-array-data v1, :array_166
sput-object v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->SPECIAL_ES_FR_CHARACTER_SET:[I
.line 173
new-array v0, v0, [I
fill-array-data v0, :array_1aa
sput-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->SPECIAL_PT_DE_CHARACTER_SET:[I
.line 182
const/16 v0, 0x100
new-array v0, v0, [Z
fill-array-data v0, :array_1ee
sput-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ODD_PARITY_BYTE_TABLE:[Z
return-void
:array_44
.array-data 4
0xb
0x1
0x3
0xc
0xe
0x5
0x7
0x9
.end array-data
:array_58
.array-data 4
0x0
0x4
0x8
0xc
0x10
0x14
0x18
0x1c
.end array-data
:array_6c
.array-data 4
-0x1
-0xff0100
-0xffff01
-0xff0001
-0x10000
-0x100
-0xff01
.end array-data
:array_7e
.array-data 4
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0xe1
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3a
0x3b
0x3c
0x3d
0x3e
0x3f
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4a
0x4b
0x4c
0x4d
0x4e
0x4f
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5a
0x5b
0xe9
0x5d
0xed
0xf3
0xfa
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7a
0xe7
0xf7
0xd1
0xf1
0x25a0
.end array-data
:array_142
.array-data 4
0xae
0xb0
0xbd
0xbf
0x2122
0xa2
0xa3
0x266a
0xe0
0x20
0xe8
0xe2
0xea
0xee
0xf4
0xfb
.end array-data
:array_166
.array-data 4
0xc1
0xc9
0xd3
0xda
0xdc
0xfc
0x2018
0xa1
0x2a
0x27
0x2014
0xa9
0x2120
0x2022
0x201c
0x201d
0xc0
0xc2
0xc7
0xc8
0xca
0xcb
0xeb
0xce
0xcf
0xef
0xd4
0xd9
0xf9
0xdb
0xab
0xbb
.end array-data
:array_1aa
.array-data 4
0xc3
0xe3
0xcd
0xcc
0xec
0xd2
0xf2
0xd5
0xf5
0x7b
0x7d
0x5c
0x5e
0x5f
0x7c
0x7e
0xc4
0xe4
0xd6
0xf6
0xdf
0xa5
0xa4
0x2502
0xc5
0xe5
0xd8
0xf8
0x250c
0x2510
0x2514
0x2518
.end array-data
:array_1ee
.array-data 1
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
0x1t
0x0t
0x0t
0x1t
0x1t
0x0t
0x0t
0x1t
0x0t
0x1t
0x1t
0x0t
.end array-data
.end method
.method public constructor <init>(Ljava/lang/String;I)V
.registers 8
.param p1, "mimeType" # Ljava/lang/String;
.param p2, "accessibilityChannel" # I
.line 234
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;-><init>()V
.line 235
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 236
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
.line 237
new-instance v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
const/4 v1, 0x4
const/4 v2, 0x0
invoke-direct {v0, v2, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;-><init>(II)V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
.line 238
const-string v0, "application/x-mp4-cea-608"
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v3, 0x2
const/4 v4, 0x3
if-eqz v0, :cond_26
const/4 v0, 0x2
goto :goto_27
:cond_26
const/4 v0, 0x3
:goto_27
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->packetLength:I
.line 239
if-eq p2, v4, :cond_31
if-eq p2, v1, :cond_31
.line 248
const/4 v0, 0x1
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->selectedField:I
goto :goto_34
.line 242
:cond_31
iput v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->selectedField:I
.line 243
nop
.line 251
:goto_34
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 252
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 253
return-void
.end method
.method static synthetic access$300()[I
.registers 1
.line 42
sget-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->STYLE_COLORS:[I
return-object v0
.end method
.method private static getChar(B)C
.registers 3
.param p0, "ccData" # B
.line 605
and-int/lit8 v0, p0, 0x7f
add-int/lit8 v0, v0, -0x20
.line 606
.local v0, "index":I
sget-object v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->BASIC_CHARACTER_SET:[I
aget v1, v1, v0
int-to-char v1, v1
return v1
.end method
.method private getDisplayCues()Ljava/util/List;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.line 542
const/4 v0, 0x2
.line 543
.local v0, "positionAnchor":I
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 544
.local v1, "cueBuilderCount":I
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2, v1}, Ljava/util/ArrayList;-><init>(I)V
.line 545
.local v2, "cueBuilderCues":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/text/Cue;>;"
const/4 v3, 0x0
.local v3, "i":I
:goto_d
if-ge v3, v1, :cond_2b
.line 546
iget-object v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v4, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
const/high16 v5, -0x80000000
invoke-virtual {v4, v5}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->build(I)Lcom/google/android/exoplayer2/text/Cue;
move-result-object v4
.line 547
.local v4, "cue":Lcom/google/android/exoplayer2/text/Cue;
invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 548
if-eqz v4, :cond_28
.line 549
iget v5, v4, Lcom/google/android/exoplayer2/text/Cue;->positionAnchor:I
invoke-static {v0, v5}, Ljava/lang/Math;->min(II)I
move-result v0
.line 545
.end local v4 # "cue":Lcom/google/android/exoplayer2/text/Cue;
:cond_28
add-int/lit8 v3, v3, 0x1
goto :goto_d
.line 554
.end local v3 # "i":I
:cond_2b
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3, v1}, Ljava/util/ArrayList;-><init>(I)V
.line 555
.local v3, "displayCues":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/text/Cue;>;"
const/4 v4, 0x0
.local v4, "i":I
:goto_31
if-ge v4, v1, :cond_51
.line 556
invoke-interface {v2, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/google/android/exoplayer2/text/Cue;
.line 557
.local v5, "cue":Lcom/google/android/exoplayer2/text/Cue;
if-eqz v5, :cond_4e
.line 558
iget v6, v5, Lcom/google/android/exoplayer2/text/Cue;->positionAnchor:I
if-eq v6, v0, :cond_4b
.line 559
iget-object v6, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v6, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v6, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->build(I)Lcom/google/android/exoplayer2/text/Cue;
move-result-object v5
.line 561
:cond_4b
invoke-interface {v3, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 555
.end local v5 # "cue":Lcom/google/android/exoplayer2/text/Cue;
:cond_4e
add-int/lit8 v4, v4, 0x1
goto :goto_31
.line 565
.end local v4 # "i":I
:cond_51
return-object v3
.end method
.method private static getExtendedEsFrChar(B)C
.registers 3
.param p0, "ccData" # B
.line 615
and-int/lit8 v0, p0, 0x1f
.line 616
.local v0, "index":I
sget-object v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->SPECIAL_ES_FR_CHARACTER_SET:[I
aget v1, v1, v0
int-to-char v1, v1
return v1
.end method
.method private static getExtendedPtDeChar(B)C
.registers 3
.param p0, "ccData" # B
.line 620
and-int/lit8 v0, p0, 0x1f
.line 621
.local v0, "index":I
sget-object v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->SPECIAL_PT_DE_CHARACTER_SET:[I
aget v1, v1, v0
int-to-char v1, v1
return v1
.end method
.method private static getSpecialChar(B)C
.registers 3
.param p0, "ccData" # B
.line 610
and-int/lit8 v0, p0, 0xf
.line 611
.local v0, "index":I
sget-object v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->SPECIAL_CHARACTER_SET:[I
aget v1, v1, v0
int-to-char v1, v1
return v1
.end method
.method private handleCtrl(BBZ)V
.registers 6
.param p1, "cc1" # B
.param p2, "cc2" # B
.param p3, "repeatedControlPossible" # Z
.line 399
invoke-static {p1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->isRepeatable(B)Z
move-result v0
if-eqz v0, :cond_18
.line 400
if-eqz p3, :cond_11
iget-byte v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlCc1:B
if-ne v0, p1, :cond_11
iget-byte v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlCc2:B
if-ne v0, p2, :cond_11
.line 402
return-void
.line 407
:cond_11
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlSet:Z
.line 408
iput-byte p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlCc1:B
.line 409
iput-byte p2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlCc2:B
.line 413
:cond_18
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->isMidrowCtrlCode(BB)Z
move-result v0
if-eqz v0, :cond_22
.line 414
invoke-direct {p0, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->handleMidrowCtrl(B)V
goto :goto_43
.line 415
:cond_22
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->isPreambleAddressCode(BB)Z
move-result v0
if-eqz v0, :cond_2c
.line 416
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->handlePreambleAddressCode(BB)V
goto :goto_43
.line 417
:cond_2c
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->isTabCtrlCode(BB)Z
move-result v0
if-eqz v0, :cond_3a
.line 418
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
add-int/lit8 v1, p2, -0x20
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->access$002(Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;I)I
goto :goto_43
.line 419
:cond_3a
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->isMiscCode(BB)Z
move-result v0
if-eqz v0, :cond_43
.line 420
invoke-direct {p0, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->handleMiscCode(B)V
.line 422
:cond_43
:goto_43
return-void
.end method
.method private handleMidrowCtrl(B)V
.registers 5
.param p1, "cc2" # B
.line 428
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
const/16 v1, 0x20
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->append(C)V
.line 431
and-int/lit8 v0, p1, 0x1
const/4 v1, 0x1
if-ne v0, v1, :cond_d
goto :goto_e
:cond_d
const/4 v1, 0x0
:goto_e
move v0, v1
.line 432
.local v0, "underline":Z
shr-int/lit8 v1, p1, 0x1
and-int/lit8 v1, v1, 0x7
.line 433
.local v1, "style":I
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v2, v1, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->setStyle(IZ)V
.line 434
return-void
.end method
.method private handleMiscCode(B)V
.registers 6
.param p1, "cc2" # B
.line 475
const/16 v0, 0x20
const/4 v1, 0x2
if-eq p1, v0, :cond_6a
const/16 v0, 0x29
const/4 v2, 0x3
if-eq p1, v0, :cond_66
const/4 v0, 0x1
packed-switch p1, :pswitch_data_6e
.line 499
iget v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
if-nez v1, :cond_13
.line 500
return-void
.line 503
:cond_13
const/16 v3, 0x21
if-eq p1, v3, :cond_49
packed-switch p1, :pswitch_data_78
goto :goto_4f
.line 514
:pswitch_1b
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getDisplayCues()Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
.line 515
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 516
goto :goto_4f
.line 511
:pswitch_25
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 512
goto :goto_4f
.line 520
:pswitch_29
if-ne v1, v0, :cond_4f
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->isEmpty()Z
move-result v0
if-nez v0, :cond_4f
.line 521
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rollUp()V
goto :goto_4f
.line 505
:pswitch_39
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
.line 506
iget v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
if-eq v1, v0, :cond_45
if-ne v1, v2, :cond_4f
.line 507
:cond_45
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
goto :goto_4f
.line 525
:cond_49
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->backspace()V
.line 526
nop
.line 534
:cond_4f
:goto_4f
return-void
.line 485
:pswitch_50
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 486
const/4 v0, 0x4
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionRowCount(I)V
.line 487
return-void
.line 481
:pswitch_58
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 482
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionRowCount(I)V
.line 483
return-void
.line 477
:pswitch_5f
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 478
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionRowCount(I)V
.line 479
return-void
.line 492
:cond_66
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 493
return-void
.line 489
:cond_6a
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 490
return-void
:pswitch_data_6e
.packed-switch 0x25
:pswitch_5f
:pswitch_58
:pswitch_50
.end packed-switch
:pswitch_data_78
.packed-switch 0x2c
:pswitch_39
:pswitch_29
:pswitch_25
:pswitch_1b
.end packed-switch
.end method
.method private handlePreambleAddressCode(BB)V
.registers 10
.param p1, "cc1" # B
.param p2, "cc2" # B
.line 439
sget-object v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ROW_INDICES:[I
and-int/lit8 v1, p1, 0x7
aget v0, v0, v1
.line 446
.local v0, "row":I
and-int/lit8 v1, p2, 0x20
const/4 v2, 0x0
const/4 v3, 0x1
if-eqz v1, :cond_e
const/4 v1, 0x1
goto :goto_f
:cond_e
const/4 v1, 0x0
.line 447
.local v1, "nextRowDown":Z
:goto_f
if-eqz v1, :cond_13
.line 448
add-int/lit8 v0, v0, 0x1
.line 451
:cond_13
iget-object v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v4}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->access$100(Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;)I
move-result v4
if-eq v0, v4, :cond_3c
.line 452
iget v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
if-eq v4, v3, :cond_37
iget-object v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->isEmpty()Z
move-result v4
if-nez v4, :cond_37
.line 453
new-instance v4, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
iget v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
iget v6, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionRowCount:I
invoke-direct {v4, v5, v6}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;-><init>(II)V
iput-object v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
.line 454
iget-object v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v5, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 456
:cond_37
iget-object v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v4, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->access$102(Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;I)I
.line 461
:cond_3c
and-int/lit8 v4, p2, 0x10
const/16 v5, 0x10
if-ne v4, v5, :cond_44
const/4 v4, 0x1
goto :goto_45
:cond_44
const/4 v4, 0x0
.line 462
.local v4, "isCursor":Z
:goto_45
and-int/lit8 v5, p2, 0x1
if-ne v5, v3, :cond_4a
const/4 v2, 0x1
.line 463
.local v2, "underline":Z
:cond_4a
shr-int/lit8 v3, p2, 0x1
and-int/lit8 v3, v3, 0x7
.line 467
.local v3, "cursorOrStyle":I
iget-object v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
if-eqz v4, :cond_55
const/16 v6, 0x8
goto :goto_56
:cond_55
move v6, v3
:goto_56
invoke-virtual {v5, v6, v2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->setStyle(IZ)V
.line 469
if-eqz v4, :cond_64
.line 470
iget-object v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
sget-object v6, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->COLUMN_INDICES:[I
aget v6, v6, v3
invoke-static {v5, v6}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->access$202(Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;I)I
.line 472
:cond_64
return-void
.end method
.method private static isMidrowCtrlCode(BB)Z
.registers 4
.param p0, "cc1" # B
.param p1, "cc2" # B
.line 627
and-int/lit16 v0, p0, 0xf7
const/16 v1, 0x11
if-ne v0, v1, :cond_e
and-int/lit16 v0, p1, 0xf0
const/16 v1, 0x20
if-ne v0, v1, :cond_e
const/4 v0, 0x1
goto :goto_f
:cond_e
const/4 v0, 0x0
:goto_f
return v0
.end method
.method private static isMiscCode(BB)Z
.registers 4
.param p0, "cc1" # B
.param p1, "cc2" # B
.line 645
and-int/lit16 v0, p0, 0xf7
const/16 v1, 0x14
if-ne v0, v1, :cond_e
and-int/lit16 v0, p1, 0xf0
const/16 v1, 0x20
if-ne v0, v1, :cond_e
const/4 v0, 0x1
goto :goto_f
:cond_e
const/4 v0, 0x0
:goto_f
return v0
.end method
.method private static isPreambleAddressCode(BB)Z
.registers 4
.param p0, "cc1" # B
.param p1, "cc2" # B
.line 633
and-int/lit16 v0, p0, 0xf0
const/16 v1, 0x10
if-ne v0, v1, :cond_e
and-int/lit16 v0, p1, 0xc0
const/16 v1, 0x40
if-ne v0, v1, :cond_e
const/4 v0, 0x1
goto :goto_f
:cond_e
const/4 v0, 0x0
:goto_f
return v0
.end method
.method private static isRepeatable(B)Z
.registers 3
.param p0, "cc1" # B
.line 650
and-int/lit16 v0, p0, 0xf0
const/16 v1, 0x10
if-ne v0, v1, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
return v0
.end method
.method private static isTabCtrlCode(BB)Z
.registers 4
.param p0, "cc1" # B
.param p1, "cc2" # B
.line 639
and-int/lit16 v0, p0, 0xf7
const/16 v1, 0x17
if-ne v0, v1, :cond_10
const/16 v0, 0x21
if-lt p1, v0, :cond_10
const/16 v0, 0x23
if-gt p1, v0, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method private resetCueBuilders()V
.registers 3
.line 599
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
iget v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->reset(I)V
.line 600
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 601
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 602
return-void
.end method
.method private setCaptionMode(I)V
.registers 5
.param p1, "captionMode" # I
.line 569
iget v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
if-ne v0, p1, :cond_5
.line 570
return-void
.line 573
:cond_5
iget v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
.line 574
.local v0, "oldCaptionMode":I
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
.line 576
const/4 v1, 0x3
if-ne p1, v1, :cond_24
.line 578
const/4 v1, 0x0
.local v1, "i":I
:goto_d
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
if-ge v1, v2, :cond_23
.line 579
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cueBuilders:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v2, p1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->setCaptionMode(I)V
.line 578
add-int/lit8 v1, v1, 0x1
goto :goto_d
.line 581
.end local v1 # "i":I
:cond_23
return-void
.line 585
:cond_24
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 586
if-eq v0, v1, :cond_2e
const/4 v1, 0x1
if-eq p1, v1, :cond_2e
if-nez p1, :cond_34
.line 589
:cond_2e
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
.line 591
:cond_34
return-void
.end method
.method private setCaptionRowCount(I)V
.registers 3
.param p1, "captionRowCount" # I
.line 594
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionRowCount:I
.line 595
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->setCaptionRowCount(I)V
.line 596
return-void
.end method
# virtual methods
.method protected createSubtitle()Lcom/google/android/exoplayer2/text/Subtitle;
.registers 3
.line 286
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->lastCues:Ljava/util/List;
.line 287
new-instance v1, Lcom/google/android/exoplayer2/text/cea/CeaSubtitle;
invoke-direct {v1, v0}, Lcom/google/android/exoplayer2/text/cea/CeaSubtitle;-><init>(Ljava/util/List;)V
return-object v1
.end method
.method protected decode(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
.registers 14
.param p1, "inputBuffer" # Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.line 293
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v1, p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;->data:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v1
iget-object v2, p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;->data:Ljava/nio/ByteBuffer;
invoke-virtual {v2}, Ljava/nio/ByteBuffer;->limit()I
move-result v2
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 294
const/4 v0, 0x0
.line 295
.local v0, "captionDataProcessed":Z
:cond_12
:goto_12
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v1
iget v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->packetLength:I
const/4 v3, 0x1
if-lt v1, v2, :cond_e3
.line 296
const/4 v1, 0x2
if-ne v2, v1, :cond_22
const/4 v2, -0x4
goto :goto_29
:cond_22
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 297
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v2
int-to-byte v2, v2
:goto_29
nop
.line 298
.local v2, "ccHeader":B
iget-object v4, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v4}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v4
.line 299
.local v4, "ccByte1":I
iget-object v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ccData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v5
.line 305
.local v5, "ccByte2":I
and-int/lit8 v6, v2, 0x2
if-eqz v6, :cond_3b
.line 307
goto :goto_12
.line 310
:cond_3b
iget v6, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->selectedField:I
if-ne v6, v3, :cond_43
and-int/lit8 v6, v2, 0x1
if-nez v6, :cond_12
:cond_43
iget v6, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->selectedField:I
if-ne v6, v1, :cond_4c
and-int/lit8 v1, v2, 0x1
if-eq v1, v3, :cond_4c
.line 313
goto :goto_12
.line 317
:cond_4c
and-int/lit8 v1, v4, 0x7f
int-to-byte v1, v1
.line 318
.local v1, "ccData1":B
and-int/lit8 v6, v5, 0x7f
int-to-byte v6, v6
.line 320
.local v6, "ccData2":B
if-nez v1, :cond_57
if-nez v6, :cond_57
.line 322
goto :goto_12
.line 325
:cond_57
iget-boolean v7, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlSet:Z
.line 326
.local v7, "repeatedControlPossible":Z
const/4 v8, 0x0
iput-boolean v8, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlSet:Z
.line 328
iget-boolean v9, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionValid:Z
.line 329
.local v9, "previousCaptionValid":Z
and-int/lit8 v10, v2, 0x4
const/4 v11, 0x4
if-ne v10, v11, :cond_64
goto :goto_65
:cond_64
const/4 v3, 0x0
:goto_65
iput-boolean v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionValid:Z
.line 330
if-nez v3, :cond_70
.line 331
if-eqz v9, :cond_12
.line 333
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 334
const/4 v0, 0x1
goto :goto_12
.line 340
:cond_70
const/4 v0, 0x1
.line 342
sget-object v3, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->ODD_PARITY_BYTE_TABLE:[Z
aget-boolean v8, v3, v4
if-eqz v8, :cond_de
aget-boolean v3, v3, v5
if-nez v3, :cond_7c
goto :goto_de
.line 351
:cond_7c
and-int/lit16 v3, v1, 0xf7
const/16 v8, 0x11
if-ne v3, v8, :cond_92
and-int/lit16 v3, v6, 0xf0
const/16 v8, 0x30
if-ne v3, v8, :cond_92
.line 353
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v6}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getSpecialChar(B)C
move-result v8
invoke-virtual {v3, v8}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->append(C)V
.line 354
goto :goto_12
.line 360
:cond_92
and-int/lit16 v3, v1, 0xf6
const/16 v8, 0x12
if-ne v3, v8, :cond_bd
and-int/lit16 v3, v6, 0xe0
const/16 v8, 0x20
if-ne v3, v8, :cond_bd
.line 363
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->backspace()V
.line 364
and-int/lit8 v3, v1, 0x1
if-nez v3, :cond_b2
.line 366
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v6}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getExtendedEsFrChar(B)C
move-result v8
invoke-virtual {v3, v8}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->append(C)V
goto/16 :goto_12
.line 369
:cond_b2
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v6}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getExtendedPtDeChar(B)C
move-result v8
invoke-virtual {v3, v8}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->append(C)V
.line 371
goto/16 :goto_12
.line 376
:cond_bd
and-int/lit16 v3, v1, 0xe0
if-nez v3, :cond_c6
.line 377
invoke-direct {p0, v1, v6, v7}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->handleCtrl(BBZ)V
.line 378
goto/16 :goto_12
.line 382
:cond_c6
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getChar(B)C
move-result v8
invoke-virtual {v3, v8}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->append(C)V
.line 383
and-int/lit16 v3, v6, 0xe0
if-eqz v3, :cond_dc
.line 384
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->currentCueBuilder:Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
invoke-static {v6}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getChar(B)C
move-result v8
invoke-virtual {v3, v8}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->append(C)V
.line 386
.end local v1 # "ccData1":B
.end local v2 # "ccHeader":B
.end local v4 # "ccByte1":I
.end local v5 # "ccByte2":I
.end local v6 # "ccData2":B
.end local v7 # "repeatedControlPossible":Z
.end local v9 # "previousCaptionValid":Z
:cond_dc
goto/16 :goto_12
.line 344
.restart local v1 # "ccData1":B
.restart local v2 # "ccHeader":B
.restart local v4 # "ccByte1":I
.restart local v5 # "ccByte2":I
.restart local v6 # "ccData2":B
.restart local v7 # "repeatedControlPossible":Z
.restart local v9 # "previousCaptionValid":Z
:cond_de
:goto_de
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 345
goto/16 :goto_12
.line 388
.end local v1 # "ccData1":B
.end local v2 # "ccHeader":B
.end local v4 # "ccByte1":I
.end local v5 # "ccByte2":I
.end local v6 # "ccData2":B
.end local v7 # "repeatedControlPossible":Z
.end local v9 # "previousCaptionValid":Z
:cond_e3
if-eqz v0, :cond_f2
.line 389
iget v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionMode:I
if-eq v1, v3, :cond_ec
const/4 v2, 0x3
if-ne v1, v2, :cond_f2
.line 390
:cond_ec
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->getDisplayCues()Ljava/util/List;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
.line 393
:cond_f2
return-void
.end method
.method public bridge synthetic dequeueInputBuffer()Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 42
invoke-super {p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeueInputBuffer()Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
move-result-object v0
return-object v0
.end method
.method public bridge synthetic dequeueOutputBuffer()Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 42
invoke-super {p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeueOutputBuffer()Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
move-result-object v0
return-object v0
.end method
.method public flush()V
.registers 3
.line 262
invoke-super {p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->flush()V
.line 263
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
.line 264
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->lastCues:Ljava/util/List;
.line 265
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionMode(I)V
.line 266
const/4 v1, 0x4
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->setCaptionRowCount(I)V
.line 267
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->resetCueBuilders()V
.line 268
iput-boolean v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->captionValid:Z
.line 269
iput-boolean v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlSet:Z
.line 270
iput-byte v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlCc1:B
.line 271
iput-byte v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->repeatableControlCc2:B
.line 272
return-void
.end method
.method public getName()Ljava/lang/String;
.registers 2
.line 257
const-string v0, "Cea608Decoder"
return-object v0
.end method
.method protected isNewSubtitleDataAvailable()Z
.registers 3
.line 281
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->cues:Ljava/util/List;
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;->lastCues:Ljava/util/List;
if-eq v0, v1, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
return v0
.end method
.method public bridge synthetic queueInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 42
invoke-super {p0, p1}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queueInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
return-void
.end method
.method public release()V
.registers 1
.line 277
return-void
.end method
.method public bridge synthetic setPositionUs(J)V
.registers 3
.line 42
invoke-super {p0, p1, p2}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->setPositionUs(J)V
return-void
.end method