This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/CaptionStyleCompat$EdgeType;
.super Ljava/lang/Object;
.source "CaptionStyleCompat.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "EdgeType"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,273 @@
.class public final Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.super Ljava/lang/Object;
.source "CaptionStyleCompat.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/CaptionStyleCompat$EdgeType;
}
.end annotation
# static fields
.field public static final DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.field public static final EDGE_TYPE_DEPRESSED:I = 0x4
.field public static final EDGE_TYPE_DROP_SHADOW:I = 0x2
.field public static final EDGE_TYPE_NONE:I = 0x0
.field public static final EDGE_TYPE_OUTLINE:I = 0x1
.field public static final EDGE_TYPE_RAISED:I = 0x3
.field public static final USE_TRACK_COLOR_SETTINGS:I = 0x1
# instance fields
.field public final backgroundColor:I
.field public final edgeColor:I
.field public final edgeType:I
.field public final foregroundColor:I
.field public final typeface:Landroid/graphics/Typeface;
.field public final windowColor:I
# direct methods
.method public static constructor <clinit>()V
.locals 8
.line 1
new-instance v7, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
const/4 v1, -0x1
const/high16 v2, -0x1000000
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, -0x1
const/4 v6, 0x0
move-object v0, v7
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;-><init>(IIIIILandroid/graphics/Typeface;)V
sput-object v7, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
return-void
.end method
.method public constructor <init>(IIIIILandroid/graphics/Typeface;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->foregroundColor:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->backgroundColor:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->windowColor:I
.line 5
iput p4, p0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->edgeType:I
.line 6
iput p5, p0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->edgeColor:I
.line 7
iput-object p6, p0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->typeface:Landroid/graphics/Typeface;
return-void
.end method
.method public static createFromCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.locals 2
.annotation build Landroid/annotation/TargetApi;
value = 0x13
.end annotation
.line 1
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_0
.line 2
invoke-static {p0}, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->createFromCaptionStyleV21(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
move-result-object p0
return-object p0
.line 3
:cond_0
invoke-static {p0}, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->createFromCaptionStyleV19(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
move-result-object p0
return-object p0
.end method
.method private static createFromCaptionStyleV19(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.locals 8
.annotation build Landroid/annotation/TargetApi;
value = 0x13
.end annotation
.line 1
new-instance v7, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
iget v1, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->foregroundColor:I
iget v2, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->backgroundColor:I
iget v4, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->edgeType:I
iget v5, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->edgeColor:I
.line 2
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->getTypeface()Landroid/graphics/Typeface;
move-result-object v6
const/4 v3, 0x0
move-object v0, v7
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;-><init>(IIIIILandroid/graphics/Typeface;)V
return-object v7
.end method
.method private static createFromCaptionStyleV21(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.locals 8
.annotation build Landroid/annotation/TargetApi;
value = 0x15
.end annotation
.line 1
new-instance v7, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
.line 2
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->hasForegroundColor()Z
move-result v0
if-eqz v0, :cond_0
iget v0, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->foregroundColor:I
goto :goto_0
:cond_0
sget-object v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
iget v0, v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->foregroundColor:I
:goto_0
move v1, v0
.line 3
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->hasBackgroundColor()Z
move-result v0
if-eqz v0, :cond_1
iget v0, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->backgroundColor:I
goto :goto_1
:cond_1
sget-object v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
iget v0, v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->backgroundColor:I
:goto_1
move v2, v0
.line 4
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->hasWindowColor()Z
move-result v0
if-eqz v0, :cond_2
iget v0, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->windowColor:I
goto :goto_2
:cond_2
sget-object v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
iget v0, v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->windowColor:I
:goto_2
move v3, v0
.line 5
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeType()Z
move-result v0
if-eqz v0, :cond_3
iget v0, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->edgeType:I
goto :goto_3
:cond_3
sget-object v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
iget v0, v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->edgeType:I
:goto_3
move v4, v0
.line 6
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeColor()Z
move-result v0
if-eqz v0, :cond_4
iget v0, p0, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->edgeColor:I
goto :goto_4
:cond_4
sget-object v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->DEFAULT:Lcom/google/android/exoplayer2/text/CaptionStyleCompat;
iget v0, v0, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;->edgeColor:I
:goto_4
move v5, v0
.line 7
invoke-virtual {p0}, Landroid/view/accessibility/CaptioningManager$CaptionStyle;->getTypeface()Landroid/graphics/Typeface;
move-result-object v6
move-object v0, v7
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/text/CaptionStyleCompat;-><init>(IIIIILandroid/graphics/Typeface;)V
return-object v7
.end method
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/Cue$AnchorType;
.super Ljava/lang/Object;
.source "Cue.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/Cue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "AnchorType"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/Cue$LineType;
.super Ljava/lang/Object;
.source "Cue.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/Cue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "LineType"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,229 @@
.class public Lcom/google/android/exoplayer2/text/Cue;
.super Ljava/lang/Object;
.source "Cue.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/Cue$LineType;,
Lcom/google/android/exoplayer2/text/Cue$AnchorType;
}
.end annotation
# static fields
.field public static final ANCHOR_TYPE_END:I = 0x2
.field public static final ANCHOR_TYPE_MIDDLE:I = 0x1
.field public static final ANCHOR_TYPE_START:I = 0x0
.field public static final DIMEN_UNSET:F = 1.4E-45f
.field public static final LINE_TYPE_FRACTION:I = 0x0
.field public static final LINE_TYPE_NUMBER:I = 0x1
.field public static final TYPE_UNSET:I = -0x80000000
# instance fields
.field public final bitmap:Landroid/graphics/Bitmap;
.field public final bitmapHeight:F
.field public final line:F
.field public final lineAnchor:I
.field public final lineType:I
.field public final position:F
.field public final positionAnchor:I
.field public final size:F
.field public final text:Ljava/lang/CharSequence;
.field public final textAlignment:Landroid/text/Layout$Alignment;
.field public final windowColor:I
.field public final windowColorSet:Z
# direct methods
.method public constructor <init>(Landroid/graphics/Bitmap;FIFIFF)V
.locals 13
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v5, 0x0
const/4 v11, 0x0
const/high16 v12, -0x1000000
move-object v0, p0
move-object v3, p1
move/from16 v4, p4
move/from16 v6, p5
move v7, p2
move/from16 v8, p3
move/from16 v9, p6
move/from16 v10, p7
.line 1
invoke-direct/range {v0 .. v12}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;Landroid/graphics/Bitmap;FIIFIFFZI)V
return-void
.end method
.method public constructor <init>(Ljava/lang/CharSequence;)V
.locals 9
const/4 v2, 0x0
const/4 v3, 0x1
const/high16 v4, -0x80000000
const/high16 v5, -0x80000000
const/4 v6, 0x1
const/high16 v7, -0x80000000
const/4 v8, 0x1
move-object v0, p0
move-object v1, p1
.line 2
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
return-void
.end method
.method public constructor <init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
.locals 11
const/4 v9, 0x0
const/high16 v10, -0x1000000
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v3, p3
move v4, p4
move/from16 v5, p5
move/from16 v6, p6
move/from16 v7, p7
move/from16 v8, p8
.line 3
invoke-direct/range {v0 .. v10}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIFZI)V
return-void
.end method
.method public constructor <init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIFZI)V
.locals 13
const/4 v3, 0x0
const/4 v10, 0x1
move-object v0, p0
move-object v1, p1
move-object v2, p2
move/from16 v4, p3
move/from16 v5, p4
move/from16 v6, p5
move/from16 v7, p6
move/from16 v8, p7
move/from16 v9, p8
move/from16 v11, p9
move/from16 v12, p10
.line 4
invoke-direct/range {v0 .. v12}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;Landroid/graphics/Bitmap;FIIFIFFZI)V
return-void
.end method
.method private constructor <init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;Landroid/graphics/Bitmap;FIIFIFFZI)V
.locals 0
.line 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 6
iput-object p1, p0, Lcom/google/android/exoplayer2/text/Cue;->text:Ljava/lang/CharSequence;
.line 7
iput-object p2, p0, Lcom/google/android/exoplayer2/text/Cue;->textAlignment:Landroid/text/Layout$Alignment;
.line 8
iput-object p3, p0, Lcom/google/android/exoplayer2/text/Cue;->bitmap:Landroid/graphics/Bitmap;
.line 9
iput p4, p0, Lcom/google/android/exoplayer2/text/Cue;->line:F
.line 10
iput p5, p0, Lcom/google/android/exoplayer2/text/Cue;->lineType:I
.line 11
iput p6, p0, Lcom/google/android/exoplayer2/text/Cue;->lineAnchor:I
.line 12
iput p7, p0, Lcom/google/android/exoplayer2/text/Cue;->position:F
.line 13
iput p8, p0, Lcom/google/android/exoplayer2/text/Cue;->positionAnchor:I
.line 14
iput p9, p0, Lcom/google/android/exoplayer2/text/Cue;->size:F
.line 15
iput p10, p0, Lcom/google/android/exoplayer2/text/Cue;->bitmapHeight:F
.line 16
iput-boolean p11, p0, Lcom/google/android/exoplayer2/text/Cue;->windowColorSet:Z
.line 17
iput p12, p0, Lcom/google/android/exoplayer2/text/Cue;->windowColor:I
return-void
.end method
@@ -0,0 +1,198 @@
.class public abstract Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
.super Lcom/google/android/exoplayer2/decoder/SimpleDecoder;
.source "SimpleSubtitleDecoder.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/SubtitleDecoder;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/decoder/SimpleDecoder<",
"Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;",
"Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;",
"Lcom/google/android/exoplayer2/text/SubtitleDecoderException;",
">;",
"Lcom/google/android/exoplayer2/text/SubtitleDecoder;"
}
.end annotation
# instance fields
.field private final name:Ljava/lang/String;
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.locals 2
const/4 v0, 0x2
new-array v1, v0, [Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
new-array v0, v0, [Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.line 1
invoke-direct {p0, v1, v0}, Lcom/google/android/exoplayer2/decoder/SimpleDecoder;-><init>([Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;[Lcom/google/android/exoplayer2/decoder/OutputBuffer;)V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->name:Ljava/lang/String;
const/16 p1, 0x400
.line 3
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/decoder/SimpleDecoder;->setInitialInputBufferSize(I)V
return-void
.end method
# virtual methods
.method public bridge synthetic createInputBuffer()Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->createInputBuffer()Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
move-result-object v0
return-object v0
.end method
.method public final createInputBuffer()Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.locals 1
.line 2
new-instance v0, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;-><init>()V
return-object v0
.end method
.method public bridge synthetic createOutputBuffer()Lcom/google/android/exoplayer2/decoder/OutputBuffer;
.locals 1
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->createOutputBuffer()Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
move-result-object v0
return-object v0
.end method
.method public final createOutputBuffer()Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.locals 1
.line 2
new-instance v0, Lcom/google/android/exoplayer2/text/SimpleSubtitleOutputBuffer;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleOutputBuffer;-><init>(Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;)V
return-object v0
.end method
.method public abstract decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.end method
.method public final decode(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;Z)Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
.locals 8
.line 2
:try_start_0
iget-object v0, p1, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->data:Ljava/nio/ByteBuffer;
.line 3
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v1
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->limit()I
move-result v0
invoke-virtual {p0, v1, v0, p3}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
move-result-object v5
.line 4
iget-wide v3, p1, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
iget-wide v6, p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;->subsampleOffsetUs:J
move-object v2, p2
invoke-virtual/range {v2 .. v7}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->setContent(JLcom/google/android/exoplayer2/text/Subtitle;J)V
const/high16 p1, -0x80000000
.line 5
invoke-virtual {p2, p1}, Lcom/google/android/exoplayer2/decoder/Buffer;->clearFlag(I)V
:try_end_0
.catch Lcom/google/android/exoplayer2/text/SubtitleDecoderException; {:try_start_0 .. :try_end_0} :catch_0
const/4 p1, 0x0
return-object p1
:catch_0
move-exception p1
return-object p1
.end method
.method public bridge synthetic decode(Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Lcom/google/android/exoplayer2/decoder/OutputBuffer;Z)Ljava/lang/Exception;
.locals 0
.line 1
check-cast p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
check-cast p2, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
invoke-virtual {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->decode(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;Z)Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
move-result-object p1
return-object p1
.end method
.method public final getName()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->name:Ljava/lang/String;
return-object v0
.end method
.method public bridge synthetic releaseOutputBuffer(Lcom/google/android/exoplayer2/decoder/OutputBuffer;)V
.locals 0
.line 1
check-cast p1, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->releaseOutputBuffer(Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;)V
return-void
.end method
.method public final releaseOutputBuffer(Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;)V
.locals 0
.line 2
invoke-super {p0, p1}, Lcom/google/android/exoplayer2/decoder/SimpleDecoder;->releaseOutputBuffer(Lcom/google/android/exoplayer2/decoder/OutputBuffer;)V
return-void
.end method
.method public setPositionUs(J)V
.locals 0
return-void
.end method
@@ -0,0 +1,34 @@
.class final Lcom/google/android/exoplayer2/text/SimpleSubtitleOutputBuffer;
.super Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.source "SimpleSubtitleOutputBuffer.java"
# instance fields
.field private final owner:Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;)V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/SimpleSubtitleOutputBuffer;->owner:Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
return-void
.end method
# virtual methods
.method public final release()V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/SimpleSubtitleOutputBuffer;->owner:Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
invoke-virtual {v0, p0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;->releaseOutputBuffer(Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;)V
return-void
.end method
@@ -0,0 +1,25 @@
.class public interface abstract Lcom/google/android/exoplayer2/text/Subtitle;
.super Ljava/lang/Object;
.source "Subtitle.java"
# virtual methods
.method public abstract getCues(J)Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end method
.method public abstract getEventTime(I)J
.end method
.method public abstract getEventTimeCount()I
.end method
.method public abstract getNextEventTimeIndex(J)I
.end method
@@ -0,0 +1,24 @@
.class public interface abstract Lcom/google/android/exoplayer2/text/SubtitleDecoder;
.super Ljava/lang/Object;
.source "SubtitleDecoder.java"
# interfaces
.implements Lcom/google/android/exoplayer2/decoder/Decoder;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/google/android/exoplayer2/decoder/Decoder<",
"Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;",
"Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;",
"Lcom/google/android/exoplayer2/text/SubtitleDecoderException;",
">;"
}
.end annotation
# virtual methods
.method public abstract setPositionUs(J)V
.end method
@@ -0,0 +1,23 @@
.class public Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
.super Ljava/lang/Exception;
.source "SubtitleDecoderException.java"
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.locals 0
.line 1
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.locals 0
.line 2
invoke-direct {p0, p1, p2}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method
@@ -0,0 +1,407 @@
.class final Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory$1;
.super Ljava/lang/Object;
.source "SubtitleDecoderFactory.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public createDecoder(Lcom/google/android/exoplayer2/Format;)Lcom/google/android/exoplayer2/text/SubtitleDecoder;
.locals 3
.line 1
iget-object v0, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
invoke-static {v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v1
const/4 v2, -0x1
sparse-switch v1, :sswitch_data_0
goto/16 :goto_0
:sswitch_0
const-string v1, "application/ttml+xml"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_0
goto/16 :goto_0
:cond_0
const/16 v2, 0x8
goto/16 :goto_0
:sswitch_1
const-string v1, "application/x-subrip"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
goto :goto_0
:cond_1
const/4 v2, 0x7
goto :goto_0
:sswitch_2
const-string v1, "application/cea-708"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_2
goto :goto_0
:cond_2
const/4 v2, 0x6
goto :goto_0
:sswitch_3
const-string v1, "application/cea-608"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_3
goto :goto_0
:cond_3
const/4 v2, 0x5
goto :goto_0
:sswitch_4
const-string v1, "application/x-mp4-cea-608"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_4
goto :goto_0
:cond_4
const/4 v2, 0x4
goto :goto_0
:sswitch_5
const-string v1, "application/x-quicktime-tx3g"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_5
goto :goto_0
:cond_5
const/4 v2, 0x3
goto :goto_0
:sswitch_6
const-string v1, "text/vtt"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_6
goto :goto_0
:cond_6
const/4 v2, 0x2
goto :goto_0
:sswitch_7
const-string v1, "application/x-mp4-vtt"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_7
goto :goto_0
:cond_7
const/4 v2, 0x1
goto :goto_0
:sswitch_8
const-string v1, "application/dvbsubs"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_8
goto :goto_0
:cond_8
const/4 v2, 0x0
:goto_0
packed-switch v2, :pswitch_data_0
.line 2
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Attempted to create decoder for unsupported format"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 3
:pswitch_0
new-instance p1, Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder;
invoke-direct {p1}, Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder;-><init>()V
return-object p1
.line 4
:pswitch_1
new-instance p1, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;
invoke-direct {p1}, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;-><init>()V
return-object p1
.line 5
:pswitch_2
new-instance v0, Lcom/google/android/exoplayer2/text/cea/Cea708Decoder;
iget p1, p1, Lcom/google/android/exoplayer2/Format;->accessibilityChannel:I
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/text/cea/Cea708Decoder;-><init>(I)V
return-object v0
.line 6
:pswitch_3
new-instance v0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;
iget-object v1, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
iget p1, p1, Lcom/google/android/exoplayer2/Format;->accessibilityChannel:I
invoke-direct {v0, v1, p1}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;-><init>(Ljava/lang/String;I)V
return-object v0
.line 7
:pswitch_4
new-instance v0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;
iget-object p1, p1, Lcom/google/android/exoplayer2/Format;->initializationData:Ljava/util/List;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;-><init>(Ljava/util/List;)V
return-object v0
.line 8
:pswitch_5
new-instance p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;
invoke-direct {p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;-><init>()V
return-object p1
.line 9
:pswitch_6
new-instance p1, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;
invoke-direct {p1}, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;-><init>()V
return-object p1
.line 10
:pswitch_7
new-instance v0, Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;
iget-object p1, p1, Lcom/google/android/exoplayer2/Format;->initializationData:Ljava/util/List;
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;-><init>(Ljava/util/List;)V
return-object v0
nop
:sswitch_data_0
.sparse-switch
-0x5091057c -> :sswitch_8
-0x3d28a9ba -> :sswitch_7
-0x3be2f26c -> :sswitch_6
0x2935f49f -> :sswitch_5
0x37713300 -> :sswitch_4
0x5d578071 -> :sswitch_3
0x5d578432 -> :sswitch_2
0x63771bad -> :sswitch_1
0x64f8068a -> :sswitch_0
.end sparse-switch
:pswitch_data_0
.packed-switch 0x0
:pswitch_7
:pswitch_6
:pswitch_5
:pswitch_4
:pswitch_3
:pswitch_3
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.end method
.method public supportsFormat(Lcom/google/android/exoplayer2/Format;)Z
.locals 1
.line 1
iget-object p1, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
const-string v0, "text/vtt"
.line 2
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/ttml+xml"
.line 3
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/x-mp4-vtt"
.line 4
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/x-subrip"
.line 5
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/x-quicktime-tx3g"
.line 6
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/cea-608"
.line 7
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/x-mp4-cea-608"
.line 8
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/cea-708"
.line 9
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1
const-string v0, "application/dvbsubs"
.line 10
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p1, 0x1
:goto_1
return p1
.end method
@@ -0,0 +1,30 @@
.class public interface abstract Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
.super Ljava/lang/Object;
.source "SubtitleDecoderFactory.java"
# static fields
.field public static final DEFAULT:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory$1;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory$1;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;->DEFAULT:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
return-void
.end method
# virtual methods
.method public abstract createDecoder(Lcom/google/android/exoplayer2/Format;)Lcom/google/android/exoplayer2/text/SubtitleDecoder;
.end method
.method public abstract supportsFormat(Lcom/google/android/exoplayer2/Format;)Z
.end method
@@ -0,0 +1,91 @@
.class public final Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.super Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;
.source "SubtitleInputBuffer.java"
# interfaces
.implements Ljava/lang/Comparable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;",
"Ljava/lang/Comparable<",
"Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;",
">;"
}
.end annotation
# instance fields
.field public subsampleOffsetUs:J
# direct methods
.method public constructor <init>()V
.locals 1
const/4 v0, 0x1
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;-><init>(I)V
return-void
.end method
# virtual methods
.method public compareTo(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)I
.locals 4
.param p1 # Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 2
iget-wide v0, p0, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
iget-wide v2, p1, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
sub-long/2addr v0, v2
const-wide/16 v2, 0x0
cmp-long p1, v0, v2
if-nez p1, :cond_0
const/4 p1, 0x0
return p1
:cond_0
if-lez p1, :cond_1
const/4 p1, 0x1
goto :goto_0
:cond_1
const/4 p1, -0x1
:goto_0
return p1
.end method
.method public bridge synthetic compareTo(Ljava/lang/Object;)I
.locals 0
.param p1 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 1
check-cast p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;->compareTo(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)I
move-result p1
return p1
.end method
@@ -0,0 +1,141 @@
.class public abstract Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.super Lcom/google/android/exoplayer2/decoder/OutputBuffer;
.source "SubtitleOutputBuffer.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private subsampleOffsetUs:J
.field private subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/decoder/OutputBuffer;-><init>()V
return-void
.end method
# virtual methods
.method public clear()V
.locals 1
.line 1
invoke-super {p0}, Lcom/google/android/exoplayer2/decoder/Buffer;->clear()V
const/4 v0, 0x0
.line 2
iput-object v0, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
return-void
.end method
.method public getCues(J)Ljava/util/List;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
iget-wide v1, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subsampleOffsetUs:J
sub-long/2addr p1, v1
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/text/Subtitle;->getCues(J)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public getEventTime(I)J
.locals 4
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/text/Subtitle;->getEventTime(I)J
move-result-wide v0
iget-wide v2, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subsampleOffsetUs:J
add-long/2addr v0, v2
return-wide v0
.end method
.method public getEventTimeCount()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
invoke-interface {v0}, Lcom/google/android/exoplayer2/text/Subtitle;->getEventTimeCount()I
move-result v0
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 3
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
iget-wide v1, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subsampleOffsetUs:J
sub-long/2addr p1, v1
invoke-interface {v0, p1, p2}, Lcom/google/android/exoplayer2/text/Subtitle;->getNextEventTimeIndex(J)I
move-result p1
return p1
.end method
.method public abstract release()V
.end method
.method public setContent(JLcom/google/android/exoplayer2/text/Subtitle;J)V
.locals 2
.line 1
iput-wide p1, p0, Lcom/google/android/exoplayer2/decoder/OutputBuffer;->timeUs:J
.line 2
iput-object p3, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subtitle:Lcom/google/android/exoplayer2/text/Subtitle;
const-wide v0, 0x7fffffffffffffffL
cmp-long p3, p4, v0
if-nez p3, :cond_0
goto :goto_0
:cond_0
move-wide p1, p4
.line 3
:goto_0
iput-wide p1, p0, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->subsampleOffsetUs:J
return-void
.end method
@@ -0,0 +1,27 @@
.class public interface abstract Lcom/google/android/exoplayer2/text/TextRenderer$Output;
.super Ljava/lang/Object;
.source "TextRenderer.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/TextRenderer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Output"
.end annotation
# virtual methods
.method public abstract onCues(Ljava/util/List;)V
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;)V"
}
.end annotation
.end method
@@ -0,0 +1,832 @@
.class public final Lcom/google/android/exoplayer2/text/TextRenderer;
.super Lcom/google/android/exoplayer2/BaseRenderer;
.source "TextRenderer.java"
# interfaces
.implements Landroid/os/Handler$Callback;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/TextRenderer$Output;
}
.end annotation
# static fields
.field private static final MSG_UPDATE_OUTPUT:I = 0x0
.field private static final REPLACEMENT_STATE_NONE:I = 0x0
.field private static final REPLACEMENT_STATE_SIGNAL_END_OF_STREAM:I = 0x1
.field private static final REPLACEMENT_STATE_WAIT_END_OF_STREAM:I = 0x2
# instance fields
.field private decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
.field private final decoderFactory:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
.field private decoderReplacementState:I
.field private final formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
.field private inputStreamEnded:Z
.field private nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.field private nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.field private nextSubtitleEventIndex:I
.field private final output:Lcom/google/android/exoplayer2/text/TextRenderer$Output;
.field private final outputHandler:Landroid/os/Handler;
.field private outputStreamEnded:Z
.field private streamFormat:Lcom/google/android/exoplayer2/Format;
.field private subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/text/TextRenderer$Output;Landroid/os/Looper;)V
.locals 1
.line 1
sget-object v0, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;->DEFAULT:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
invoke-direct {p0, p1, p2, v0}, Lcom/google/android/exoplayer2/text/TextRenderer;-><init>(Lcom/google/android/exoplayer2/text/TextRenderer$Output;Landroid/os/Looper;Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;)V
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/text/TextRenderer$Output;Landroid/os/Looper;Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;)V
.locals 1
const/4 v0, 0x3
.line 2
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/BaseRenderer;-><init>(I)V
.line 3
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/text/TextRenderer$Output;
iput-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->output:Lcom/google/android/exoplayer2/text/TextRenderer$Output;
if-nez p2, :cond_0
const/4 p1, 0x0
goto :goto_0
.line 4
:cond_0
new-instance p1, Landroid/os/Handler;
invoke-direct {p1, p2, p0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
:goto_0
iput-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->outputHandler:Landroid/os/Handler;
.line 5
iput-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderFactory:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
.line 6
new-instance p1, Lcom/google/android/exoplayer2/FormatHolder;
invoke-direct {p1}, Lcom/google/android/exoplayer2/FormatHolder;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
return-void
.end method
.method private clearOutput()V
.locals 1
.line 1
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/TextRenderer;->updateOutput(Ljava/util/List;)V
return-void
.end method
.method private getNextEventTime()J
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitleEventIndex:I
const/4 v1, -0x1
if-eq v0, v1, :cond_1
iget-object v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.line 2
invoke-virtual {v1}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->getEventTimeCount()I
move-result v1
if-lt v0, v1, :cond_0
goto :goto_0
:cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
iget v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitleEventIndex:I
.line 3
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->getEventTime(I)J
move-result-wide v0
goto :goto_1
:cond_1
:goto_0
const-wide v0, 0x7fffffffffffffffL
:goto_1
return-wide v0
.end method
.method private invokeUpdateOutputInternal(Ljava/util/List;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->output:Lcom/google/android/exoplayer2/text/TextRenderer$Output;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/text/TextRenderer$Output;->onCues(Ljava/util/List;)V
return-void
.end method
.method private releaseBuffers()V
.locals 2
const/4 v0, 0x0
.line 1
iput-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
const/4 v1, -0x1
.line 2
iput v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitleEventIndex:I
.line 3
iget-object v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
if-eqz v1, :cond_0
.line 4
invoke-virtual {v1}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->release()V
.line 5
iput-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.line 6
:cond_0
iget-object v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
if-eqz v1, :cond_1
.line 7
invoke-virtual {v1}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->release()V
.line 8
iput-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
:cond_1
return-void
.end method
.method private releaseDecoder()V
.locals 1
.line 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->releaseBuffers()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
invoke-interface {v0}, Lcom/google/android/exoplayer2/decoder/Decoder;->release()V
const/4 v0, 0x0
.line 3
iput-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
const/4 v0, 0x0
.line 4
iput v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
return-void
.end method
.method private replaceDecoder()V
.locals 2
.line 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->releaseDecoder()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderFactory:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
iget-object v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->streamFormat:Lcom/google/android/exoplayer2/Format;
invoke-interface {v0, v1}, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;->createDecoder(Lcom/google/android/exoplayer2/Format;)Lcom/google/android/exoplayer2/text/SubtitleDecoder;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
return-void
.end method
.method private updateOutput(Ljava/util/List;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;)V"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->outputHandler:Landroid/os/Handler;
if-eqz v0, :cond_0
const/4 v1, 0x0
.line 2
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
goto :goto_0
.line 3
:cond_0
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/text/TextRenderer;->invokeUpdateOutputInternal(Ljava/util/List;)V
:goto_0
return-void
.end method
# virtual methods
.method public handleMessage(Landroid/os/Message;)Z
.locals 1
.line 1
iget v0, p1, Landroid/os/Message;->what:I
if-nez v0, :cond_0
.line 2
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Ljava/util/List;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/text/TextRenderer;->invokeUpdateOutputInternal(Ljava/util/List;)V
const/4 p1, 0x1
return p1
.line 3
:cond_0
new-instance p1, Ljava/lang/IllegalStateException;
invoke-direct {p1}, Ljava/lang/IllegalStateException;-><init>()V
throw p1
.end method
.method public isEnded()Z
.locals 1
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->outputStreamEnded:Z
return v0
.end method
.method public isReady()Z
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public onDisabled()V
.locals 1
const/4 v0, 0x0
.line 1
iput-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->streamFormat:Lcom/google/android/exoplayer2/Format;
.line 2
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->clearOutput()V
.line 3
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->releaseDecoder()V
return-void
.end method
.method public onPositionReset(JZ)V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->clearOutput()V
const/4 p1, 0x0
.line 2
iput-boolean p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->inputStreamEnded:Z
.line 3
iput-boolean p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->outputStreamEnded:Z
.line 4
iget p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
if-eqz p1, :cond_0
.line 5
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->replaceDecoder()V
goto :goto_0
.line 6
:cond_0
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->releaseBuffers()V
.line 7
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
invoke-interface {p1}, Lcom/google/android/exoplayer2/decoder/Decoder;->flush()V
:goto_0
return-void
.end method
.method public onStreamChanged([Lcom/google/android/exoplayer2/Format;)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
const/4 v0, 0x0
.line 1
aget-object p1, p1, v0
iput-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->streamFormat:Lcom/google/android/exoplayer2/Format;
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
if-eqz v0, :cond_0
const/4 p1, 0x1
.line 3
iput p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
goto :goto_0
.line 4
:cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderFactory:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;->createDecoder(Lcom/google/android/exoplayer2/Format;)Lcom/google/android/exoplayer2/text/SubtitleDecoder;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
:goto_0
return-void
.end method
.method public render(JJ)V
.locals 8
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 1
iget-boolean p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->outputStreamEnded:Z
if-eqz p3, :cond_0
return-void
.line 2
:cond_0
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
if-nez p3, :cond_1
.line 3
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
invoke-interface {p3, p1, p2}, Lcom/google/android/exoplayer2/text/SubtitleDecoder;->setPositionUs(J)V
.line 4
:try_start_0
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
invoke-interface {p3}, Lcom/google/android/exoplayer2/decoder/Decoder;->dequeueOutputBuffer()Ljava/lang/Object;
move-result-object p3
check-cast p3, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
iput-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
:try_end_0
.catch Lcom/google/android/exoplayer2/text/SubtitleDecoderException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
.line 5
invoke-virtual {p0}, Lcom/google/android/exoplayer2/BaseRenderer;->getIndex()I
move-result p2
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/ExoPlaybackException;->createForRenderer(Ljava/lang/Exception;I)Lcom/google/android/exoplayer2/ExoPlaybackException;
move-result-object p1
throw p1
.line 6
:cond_1
:goto_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/BaseRenderer;->getState()I
move-result p3
const/4 p4, 0x2
if-eq p3, p4, :cond_2
return-void
.line 7
:cond_2
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
const/4 v0, 0x0
const/4 v1, 0x1
if-eqz p3, :cond_3
.line 8
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->getNextEventTime()J
move-result-wide v2
move p3, v0
:goto_1
cmp-long v2, v2, p1
if-gtz v2, :cond_4
.line 9
iget p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitleEventIndex:I
add-int/2addr p3, v1
iput p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitleEventIndex:I
.line 10
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->getNextEventTime()J
move-result-wide v2
move p3, v1
goto :goto_1
:cond_3
move p3, v0
.line 11
:cond_4
iget-object v2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
const/4 v3, 0x0
if-eqz v2, :cond_8
.line 12
invoke-virtual {v2}, Lcom/google/android/exoplayer2/decoder/Buffer;->isEndOfStream()Z
move-result v2
if-eqz v2, :cond_6
if-nez p3, :cond_8
.line 13
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->getNextEventTime()J
move-result-wide v4
const-wide v6, 0x7fffffffffffffffL
cmp-long v2, v4, v6
if-nez v2, :cond_8
.line 14
iget v2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
if-ne v2, p4, :cond_5
.line 15
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->replaceDecoder()V
goto :goto_2
.line 16
:cond_5
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/TextRenderer;->releaseBuffers()V
.line 17
iput-boolean v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->outputStreamEnded:Z
goto :goto_2
.line 18
:cond_6
iget-object v2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
iget-wide v4, v2, Lcom/google/android/exoplayer2/decoder/OutputBuffer;->timeUs:J
cmp-long v2, v4, p1
if-gtz v2, :cond_8
.line 19
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
if-eqz p3, :cond_7
.line 20
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->release()V
.line 21
:cond_7
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
iput-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.line 22
iput-object v3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.line 23
invoke-virtual {p3, p1, p2}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->getNextEventTimeIndex(J)I
move-result p3
iput p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextSubtitleEventIndex:I
move p3, v1
:cond_8
:goto_2
if-eqz p3, :cond_9
.line 24
iget-object p3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->subtitle:Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
invoke-virtual {p3, p1, p2}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->getCues(J)Ljava/util/List;
move-result-object p1
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/text/TextRenderer;->updateOutput(Ljava/util/List;)V
.line 25
:cond_9
iget p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
if-ne p1, p4, :cond_a
return-void
.line 26
:cond_a
:goto_3
:try_start_1
iget-boolean p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->inputStreamEnded:Z
if-nez p1, :cond_f
.line 27
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
if-nez p1, :cond_b
.line 28
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
invoke-interface {p1}, Lcom/google/android/exoplayer2/decoder/Decoder;->dequeueInputBuffer()Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
iput-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
if-nez p1, :cond_b
return-void
.line 29
:cond_b
iget p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
if-ne p1, v1, :cond_c
.line 30
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
const/4 p2, 0x4
invoke-virtual {p1, p2}, Lcom/google/android/exoplayer2/decoder/Buffer;->setFlags(I)V
.line 31
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
iget-object p2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
.line 32
iput-object v3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.line 33
iput p4, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderReplacementState:I
return-void
.line 34
:cond_c
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
iget-object p2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-virtual {p0, p1, p2, v0}, Lcom/google/android/exoplayer2/BaseRenderer;->readSource(Lcom/google/android/exoplayer2/FormatHolder;Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;Z)I
move-result p1
const/4 p2, -0x4
if-ne p1, p2, :cond_e
.line 35
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/decoder/Buffer;->isEndOfStream()Z
move-result p1
if-eqz p1, :cond_d
.line 36
iput-boolean v1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->inputStreamEnded:Z
goto :goto_4
.line 37
:cond_d
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
iget-object p2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->formatHolder:Lcom/google/android/exoplayer2/FormatHolder;
iget-object p2, p2, Lcom/google/android/exoplayer2/FormatHolder;->format:Lcom/google/android/exoplayer2/Format;
iget-wide p2, p2, Lcom/google/android/exoplayer2/Format;->subsampleOffsetUs:J
iput-wide p2, p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;->subsampleOffsetUs:J
.line 38
invoke-virtual {p1}, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->flip()V
.line 39
:goto_4
iget-object p1, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoder:Lcom/google/android/exoplayer2/text/SubtitleDecoder;
iget-object p2, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/decoder/Decoder;->queueInputBuffer(Ljava/lang/Object;)V
.line 40
iput-object v3, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->nextInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
:try_end_1
.catch Lcom/google/android/exoplayer2/text/SubtitleDecoderException; {:try_start_1 .. :try_end_1} :catch_1
goto :goto_3
:cond_e
const/4 p2, -0x3
if-ne p1, p2, :cond_a
:cond_f
return-void
:catch_1
move-exception p1
.line 41
invoke-virtual {p0}, Lcom/google/android/exoplayer2/BaseRenderer;->getIndex()I
move-result p2
invoke-static {p1, p2}, Lcom/google/android/exoplayer2/ExoPlaybackException;->createForRenderer(Ljava/lang/Exception;I)Lcom/google/android/exoplayer2/ExoPlaybackException;
move-result-object p1
throw p1
.end method
.method public supportsFormat(Lcom/google/android/exoplayer2/Format;)I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/TextRenderer;->decoderFactory:Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/text/SubtitleDecoderFactory;->supportsFormat(Lcom/google/android/exoplayer2/Format;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p1, 0x3
goto :goto_0
:cond_0
iget-object p1, p1, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
.line 2
invoke-static {p1}, Lcom/google/android/exoplayer2/util/MimeTypes;->isText(Ljava/lang/String;)Z
move-result p1
if-eqz p1, :cond_1
const/4 p1, 0x1
goto :goto_0
:cond_1
const/4 p1, 0x0
:goto_0
return p1
.end method
@@ -0,0 +1,42 @@
.class Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;
.super Ljava/lang/Object;
.source "Cea608Decoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "CueStyle"
.end annotation
# instance fields
.field public final nextStyleIncrement:I
.field public final start:I
.field public final style:Landroid/text/style/CharacterStyle;
# direct methods
.method public constructor <init>(Landroid/text/style/CharacterStyle;II)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->style:Landroid/text/style/CharacterStyle;
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->start:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->nextStyleIncrement:I
return-void
.end method
@@ -0,0 +1,793 @@
.class Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;
.super Ljava/lang/Object;
.source "Cea608Decoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/cea/Cea608Decoder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "CueBuilder"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;
}
.end annotation
# static fields
.field private static final BASE_ROW:I = 0xf
.field private static final POSITION_UNSET:I = -0x1
.field private static final SCREEN_CHARWIDTH:I = 0x20
# instance fields
.field private captionMode:I
.field private captionRowCount:I
.field private final captionStringBuilder:Landroid/text/SpannableStringBuilder;
.field private indent:I
.field private final midrowStyles:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;",
">;"
}
.end annotation
.end field
.field private final preambleStyles:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroid/text/style/CharacterStyle;",
">;"
}
.end annotation
.end field
.field private final rolledUpCaptions:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroid/text/SpannableString;",
">;"
}
.end annotation
.end field
.field private row:I
.field private tabOffset:I
.field private underlineStartPosition:I
# direct methods
.method public constructor <init>(II)V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
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$CueBuilder;->preambleStyles:Ljava/util/List;
.line 3
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$CueBuilder;->midrowStyles:Ljava/util/List;
.line 4
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
.line 5
new-instance v0, Landroid/text/SpannableStringBuilder;
invoke-direct {v0}, Landroid/text/SpannableStringBuilder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
.line 6
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->reset(II)V
return-void
.end method
# virtual methods
.method public append(C)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v0, p1}, Landroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder;
return-void
.end method
.method public backspace()V
.locals 3
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v0}, Landroid/text/SpannableStringBuilder;->length()I
move-result v0
if-lez v0, :cond_0
.line 2
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
add-int/lit8 v2, v0, -0x1
invoke-virtual {v1, v2, v0}, Landroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
:cond_0
return-void
.end method
.method public build()Lcom/google/android/exoplayer2/text/Cue;
.locals 12
.line 1
new-instance v1, Landroid/text/SpannableStringBuilder;
invoke-direct {v1}, Landroid/text/SpannableStringBuilder;-><init>()V
const/4 v0, 0x0
move v2, v0
.line 2
:goto_0
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v3
if-ge v2, v3, :cond_0
.line 3
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
invoke-interface {v3, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/CharSequence;
invoke-virtual {v1, v3}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
const/16 v3, 0xa
.line 4
invoke-virtual {v1, v3}, Landroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder;
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 5
:cond_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->buildSpannableString()Landroid/text/SpannableString;
move-result-object v2
invoke-virtual {v1, v2}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
.line 6
invoke-virtual {v1}, Landroid/text/SpannableStringBuilder;->length()I
move-result v2
if-nez v2, :cond_1
const/4 v0, 0x0
return-object v0
.line 7
:cond_1
iget v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->indent:I
iget v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->tabOffset:I
add-int/2addr v2, v3
rsub-int/lit8 v3, v2, 0x20
.line 8
invoke-virtual {v1}, Landroid/text/SpannableStringBuilder;->length()I
move-result v4
sub-int/2addr v3, v4
sub-int v4, v2, v3
.line 9
iget v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionMode:I
const/4 v6, 0x1
const/4 v7, 0x2
if-ne v5, v7, :cond_2
invoke-static {v4}, Ljava/lang/Math;->abs(I)I
move-result v5
const/4 v8, 0x3
if-ge v5, v8, :cond_2
const/high16 v2, 0x3f000000 # 0.5f
move v8, v2
move v9, v6
goto :goto_1
.line 10
:cond_2
iget v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionMode:I
const v8, 0x3dcccccd # 0.1f
const v9, 0x3f4ccccd # 0.8f
const/high16 v10, 0x42000000 # 32.0f
if-ne v5, v7, :cond_3
if-lez v4, :cond_3
rsub-int/lit8 v2, v3, 0x20
int-to-float v2, v2
div-float/2addr v2, v10
mul-float/2addr v2, v9
add-float/2addr v2, v8
move v8, v2
move v9, v7
goto :goto_1
:cond_3
int-to-float v2, v2
div-float/2addr v2, v10
mul-float/2addr v2, v9
add-float/2addr v2, v8
move v9, v0
move v8, v2
.line 11
:goto_1
iget v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionMode:I
if-eq v2, v6, :cond_5
iget v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->row:I
const/4 v3, 0x7
if-le v2, v3, :cond_4
goto :goto_2
:cond_4
move v5, v0
goto :goto_3
.line 12
:cond_5
:goto_2
iget v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->row:I
add-int/lit8 v0, v0, -0xf
add-int/lit8 v2, v0, -0x2
move v5, v7
.line 13
:goto_3
new-instance v10, Lcom/google/android/exoplayer2/text/Cue;
sget-object v3, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;
int-to-float v4, v2
const/4 v6, 0x1
const/4 v11, 0x1
move-object v0, v10
move-object v2, v3
move v3, v4
move v4, v6
move v6, v8
move v7, v9
move v8, v11
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
return-object v10
.end method
.method public buildSpannableString()Landroid/text/SpannableString;
.locals 7
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v0}, Landroid/text/SpannableStringBuilder;->length()I
move-result v0
const/4 v1, 0x0
move v2, v1
.line 2
:goto_0
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->preambleStyles:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v3
const/16 v4, 0x21
if-ge v2, v3, :cond_0
.line 3
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
iget-object v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->preambleStyles:Ljava/util/List;
invoke-interface {v5, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v5
invoke-virtual {v3, v5, v1, v0, v4}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 4
:cond_0
:goto_1
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v2
if-ge v1, v2, :cond_2
.line 5
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;
.line 6
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v3
iget v5, v2, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->nextStyleIncrement:I
sub-int/2addr v3, v5
if-ge v1, v3, :cond_1
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
add-int/2addr v5, v1
.line 7
invoke-interface {v3, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;
iget v3, v3, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->start:I
goto :goto_2
:cond_1
move v3, v0
.line 8
:goto_2
iget-object v5, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
iget-object v6, v2, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->style:Landroid/text/style/CharacterStyle;
iget v2, v2, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;->start:I
invoke-virtual {v5, v6, v2, v3, v4}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
add-int/lit8 v1, v1, 0x1
goto :goto_1
.line 9
:cond_2
iget v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
const/4 v2, -0x1
if-eq v1, v2, :cond_3
.line 10
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
new-instance v2, Landroid/text/style/UnderlineSpan;
invoke-direct {v2}, Landroid/text/style/UnderlineSpan;-><init>()V
iget v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
invoke-virtual {v1, v2, v3, v0, v4}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 11
:cond_3
new-instance v0, Landroid/text/SpannableString;
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-direct {v0, v1}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
return-object v0
.end method
.method public getRow()I
.locals 1
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->row:I
return v0
.end method
.method public isEmpty()Z
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->preambleStyles:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
.line 2
invoke-virtual {v0}, Landroid/text/SpannableStringBuilder;->length()I
move-result v0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public reset(II)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->preambleStyles:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
.line 4
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v0}, Landroid/text/SpannableStringBuilder;->clear()V
const/16 v0, 0xf
.line 5
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->row:I
const/4 v0, 0x0
.line 6
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->indent:I
.line 7
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->tabOffset:I
.line 8
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionMode:I
.line 9
iput p2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionRowCount:I
const/4 p1, -0x1
.line 10
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
return-void
.end method
.method public rollUp()V
.locals 3
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->buildSpannableString()Landroid/text/SpannableString;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v0}, Landroid/text/SpannableStringBuilder;->clear()V
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->preambleStyles:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
.line 4
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
const/4 v0, -0x1
.line 5
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
.line 6
iget v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionRowCount:I
iget v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->row:I
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
.line 7
:goto_0
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
if-lt v1, v0, :cond_0
.line 8
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->rolledUpCaptions:Ljava/util/List;
const/4 v2, 0x0
invoke-interface {v1, v2}, Ljava/util/List;->remove(I)Ljava/lang/Object;
goto :goto_0
:cond_0
return-void
.end method
.method public setIndent(I)V
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->indent:I
return-void
.end method
.method public setMidrowStyle(Landroid/text/style/CharacterStyle;I)V
.locals 3
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->midrowStyles:Ljava/util/List;
new-instance v1, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v2}, Landroid/text/SpannableStringBuilder;->length()I
move-result v2
invoke-direct {v1, p1, v2, p2}, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder$CueStyle;-><init>(Landroid/text/style/CharacterStyle;II)V
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public setPreambleStyle(Landroid/text/style/CharacterStyle;)V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->preambleStyles:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public setRow(I)V
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->row:I
return-void
.end method
.method public setTab(I)V
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->tabOffset:I
return-void
.end method
.method public setUnderline(Z)V
.locals 5
if-eqz p1, :cond_0
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {p1}, Landroid/text/SpannableStringBuilder;->length()I
move-result p1
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
goto :goto_0
.line 2
:cond_0
iget p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
const/4 v0, -0x1
if-eq p1, v0, :cond_1
.line 3
iget-object p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
new-instance v1, Landroid/text/style/UnderlineSpan;
invoke-direct {v1}, Landroid/text/style/UnderlineSpan;-><init>()V
iget v2, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
iget-object v3, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
.line 4
invoke-virtual {v3}, Landroid/text/SpannableStringBuilder;->length()I
move-result v3
const/16 v4, 0x21
.line 5
invoke-virtual {p1, v1, v2, v3, v4}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 6
iput v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->underlineStartPosition:I
:cond_1
:goto_0
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea608Decoder$CueBuilder;->captionStringBuilder:Landroid/text/SpannableStringBuilder;
invoke-virtual {v0}, Landroid/text/SpannableStringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,89 @@
.class final Lcom/google/android/exoplayer2/text/cea/Cea708Cue;
.super Lcom/google/android/exoplayer2/text/Cue;
.source "Cea708Cue.java"
# interfaces
.implements Ljava/lang/Comparable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/text/Cue;",
"Ljava/lang/Comparable<",
"Lcom/google/android/exoplayer2/text/cea/Cea708Cue;",
">;"
}
.end annotation
# static fields
.field public static final PRIORITY_UNSET:I = -0x1
# instance fields
.field public final priority:I
# direct methods
.method public constructor <init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIFZII)V
.locals 0
.line 1
invoke-direct/range {p0 .. p10}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIFZI)V
.line 2
iput p11, p0, Lcom/google/android/exoplayer2/text/cea/Cea708Cue;->priority:I
return-void
.end method
# virtual methods
.method public compareTo(Lcom/google/android/exoplayer2/text/cea/Cea708Cue;)I
.locals 1
.param p1 # Lcom/google/android/exoplayer2/text/cea/Cea708Cue;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 2
iget p1, p1, Lcom/google/android/exoplayer2/text/cea/Cea708Cue;->priority:I
iget v0, p0, Lcom/google/android/exoplayer2/text/cea/Cea708Cue;->priority:I
if-ge p1, v0, :cond_0
const/4 p1, -0x1
return p1
:cond_0
if-le p1, v0, :cond_1
const/4 p1, 0x1
return p1
:cond_1
const/4 p1, 0x0
return p1
.end method
.method public bridge synthetic compareTo(Ljava/lang/Object;)I
.locals 0
.param p1 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 1
check-cast p1, Lcom/google/android/exoplayer2/text/cea/Cea708Cue;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/cea/Cea708Cue;->compareTo(Lcom/google/android/exoplayer2/text/cea/Cea708Cue;)I
move-result p1
return p1
.end method
@@ -0,0 +1,55 @@
.class final Lcom/google/android/exoplayer2/text/cea/Cea708Decoder$DtvCcPacket;
.super Ljava/lang/Object;
.source "Cea708Decoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/cea/Cea708Decoder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DtvCcPacket"
.end annotation
# instance fields
.field public currentIndex:I
.field public final packetData:[B
.field public final packetSize:I
.field public final sequenceNumber:I
# direct methods
.method public constructor <init>(II)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea708Decoder$DtvCcPacket;->sequenceNumber:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/cea/Cea708Decoder$DtvCcPacket;->packetSize:I
mul-int/lit8 p2, p2, 0x2
add-int/lit8 p2, p2, -0x1
.line 4
new-array p1, p2, [B
iput-object p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea708Decoder$DtvCcPacket;->packetData:[B
const/4 p1, 0x0
.line 5
iput p1, p0, Lcom/google/android/exoplayer2/text/cea/Cea708Decoder$DtvCcPacket;->currentIndex:I
return-void
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,532 @@
.class abstract Lcom/google/android/exoplayer2/text/cea/CeaDecoder;
.super Ljava/lang/Object;
.source "CeaDecoder.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/SubtitleDecoder;
# static fields
.field private static final NUM_INPUT_BUFFERS:I = 0xa
.field private static final NUM_OUTPUT_BUFFERS:I = 0x2
# instance fields
.field private final availableInputBuffers:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList<",
"Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;",
">;"
}
.end annotation
.end field
.field private final availableOutputBuffers:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList<",
"Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;",
">;"
}
.end annotation
.end field
.field private dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.field private playbackPositionUs:J
.field private final queuedInputBuffers:Ljava/util/TreeSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/TreeSet<",
"Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 4
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableInputBuffers:Ljava/util/LinkedList;
const/4 v0, 0x0
move v1, v0
:goto_0
const/16 v2, 0xa
if-ge v1, v2, :cond_0
.line 3
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableInputBuffers:Ljava/util/LinkedList;
new-instance v3, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-direct {v3}, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;-><init>()V
invoke-virtual {v2, v3}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 4
:cond_0
new-instance v1, Ljava/util/LinkedList;
invoke-direct {v1}, Ljava/util/LinkedList;-><init>()V
iput-object v1, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableOutputBuffers:Ljava/util/LinkedList;
:goto_1
const/4 v1, 0x2
if-ge v0, v1, :cond_1
.line 5
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableOutputBuffers:Ljava/util/LinkedList;
new-instance v2, Lcom/google/android/exoplayer2/text/cea/CeaOutputBuffer;
invoke-direct {v2, p0}, Lcom/google/android/exoplayer2/text/cea/CeaOutputBuffer;-><init>(Lcom/google/android/exoplayer2/text/cea/CeaDecoder;)V
invoke-virtual {v1, v2}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 6
:cond_1
new-instance v0, Ljava/util/TreeSet;
invoke-direct {v0}, Ljava/util/TreeSet;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
return-void
.end method
.method private releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
.locals 1
.line 1
invoke-virtual {p1}, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->clear()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableInputBuffers:Ljava/util/LinkedList;
invoke-virtual {v0, p1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
return-void
.end method
# virtual methods
.method public abstract createSubtitle()Lcom/google/android/exoplayer2/text/Subtitle;
.end method
.method public abstract decode(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
.end method
.method public dequeueInputBuffer()Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableInputBuffers:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->isEmpty()Z
move-result v0
if-eqz v0, :cond_1
const/4 v0, 0x0
return-object v0
.line 4
:cond_1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableInputBuffers:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->pollFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
return-object v0
.end method
.method public bridge synthetic dequeueInputBuffer()Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
invoke-virtual {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 dequeueOutputBuffer()Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.locals 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableOutputBuffers:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->isEmpty()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
return-object v1
.line 3
:cond_0
:goto_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
invoke-virtual {v0}, Ljava/util/TreeSet;->isEmpty()Z
move-result v0
if-nez v0, :cond_3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
.line 4
invoke-virtual {v0}, Ljava/util/TreeSet;->first()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
iget-wide v2, v0, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
iget-wide v4, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->playbackPositionUs:J
cmp-long v0, v2, v4
if-gtz v0, :cond_3
.line 5
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
invoke-virtual {v0}, Ljava/util/TreeSet;->pollFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
.line 6
invoke-virtual {v0}, Lcom/google/android/exoplayer2/decoder/Buffer;->isEndOfStream()Z
move-result v2
if-eqz v2, :cond_1
.line 7
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableOutputBuffers:Ljava/util/LinkedList;
invoke-virtual {v1}, Ljava/util/LinkedList;->pollFirst()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
const/4 v2, 0x4
.line 8
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/decoder/Buffer;->addFlag(I)V
.line 9
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
return-object v1
.line 10
:cond_1
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->decode(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
.line 11
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->isNewSubtitleDataAvailable()Z
move-result v2
if-eqz v2, :cond_2
.line 12
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->createSubtitle()Lcom/google/android/exoplayer2/text/Subtitle;
move-result-object v6
.line 13
invoke-virtual {v0}, Lcom/google/android/exoplayer2/decoder/Buffer;->isDecodeOnly()Z
move-result v2
if-nez v2, :cond_2
.line 14
iget-object v1, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableOutputBuffers:Ljava/util/LinkedList;
invoke-virtual {v1}, Ljava/util/LinkedList;->pollFirst()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.line 15
iget-wide v4, v0, Lcom/google/android/exoplayer2/decoder/DecoderInputBuffer;->timeUs:J
const-wide v7, 0x7fffffffffffffffL
move-object v3, v1
invoke-virtual/range {v3 .. v8}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->setContent(JLcom/google/android/exoplayer2/text/Subtitle;J)V
.line 16
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
return-object v1
.line 17
:cond_2
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
goto :goto_0
:cond_3
return-object v1
.end method
.method public bridge synthetic dequeueOutputBuffer()Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
invoke-virtual {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
.locals 2
const-wide/16 v0, 0x0
.line 1
iput-wide v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->playbackPositionUs:J
.line 2
:goto_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
invoke-virtual {v0}, Ljava/util/TreeSet;->isEmpty()Z
move-result v0
if-nez v0, :cond_0
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
invoke-virtual {v0}, Ljava/util/TreeSet;->pollFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
goto :goto_0
.line 4
:cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
if-eqz v0, :cond_1
.line 5
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
const/4 v0, 0x0
.line 6
iput-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
:cond_1
return-void
.end method
.method public abstract getName()Ljava/lang/String;
.end method
.method public abstract isNewSubtitleDataAvailable()Z
.end method
.method public queueInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
const/4 v0, 0x1
const/4 v1, 0x0
if-eqz p1, :cond_0
move v2, v0
goto :goto_0
:cond_0
move v2, v1
.line 2
:goto_0
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 3
iget-object v2, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
if-ne p1, v2, :cond_1
goto :goto_1
:cond_1
move v0, v1
:goto_1
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 4
invoke-virtual {p1}, Lcom/google/android/exoplayer2/decoder/Buffer;->isDecodeOnly()Z
move-result v0
if-eqz v0, :cond_2
.line 5
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseInputBuffer(Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;)V
goto :goto_2
.line 6
:cond_2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->queuedInputBuffers:Ljava/util/TreeSet;
invoke-virtual {v0, p1}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z
:goto_2
const/4 p1, 0x0
.line 7
iput-object p1, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->dequeuedInputBuffer:Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
return-void
.end method
.method public bridge synthetic queueInputBuffer(Ljava/lang/Object;)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 1
check-cast p1, Lcom/google/android/exoplayer2/text/SubtitleInputBuffer;
invoke-virtual {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
.locals 0
return-void
.end method
.method public releaseOutputBuffer(Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;)V
.locals 1
.line 1
invoke-virtual {p1}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;->clear()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->availableOutputBuffers:Ljava/util/LinkedList;
invoke-virtual {v0, p1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public setPositionUs(J)V
.locals 0
.line 1
iput-wide p1, p0, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->playbackPositionUs:J
return-void
.end method
@@ -0,0 +1,34 @@
.class public final Lcom/google/android/exoplayer2/text/cea/CeaOutputBuffer;
.super Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;
.source "CeaOutputBuffer.java"
# instance fields
.field private final owner:Lcom/google/android/exoplayer2/text/cea/CeaDecoder;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/text/cea/CeaDecoder;)V
.locals 0
.line 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/cea/CeaOutputBuffer;->owner:Lcom/google/android/exoplayer2/text/cea/CeaDecoder;
return-void
.end method
# virtual methods
.method public final release()V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/cea/CeaOutputBuffer;->owner:Lcom/google/android/exoplayer2/text/cea/CeaDecoder;
invoke-virtual {v0, p0}, Lcom/google/android/exoplayer2/text/cea/CeaDecoder;->releaseOutputBuffer(Lcom/google/android/exoplayer2/text/SubtitleOutputBuffer;)V
return-void
.end method
@@ -0,0 +1,122 @@
.class final Lcom/google/android/exoplayer2/text/cea/CeaSubtitle;
.super Ljava/lang/Object;
.source "CeaSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private final cues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/util/List;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/cea/CeaSubtitle;->cues:Ljava/util/List;
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-ltz p1, :cond_0
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/text/cea/CeaSubtitle;->cues:Ljava/util/List;
goto :goto_0
:cond_0
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object p1
:goto_0
return-object p1
.end method
.method public getEventTime(I)J
.locals 2
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
.line 1
:goto_0
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
const-wide/16 v0, 0x0
return-wide v0
.end method
.method public getEventTimeCount()I
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 2
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-gez p1, :cond_0
const/4 p1, 0x0
goto :goto_0
:cond_0
const/4 p1, -0x1
:goto_0
return p1
.end method
@@ -0,0 +1,266 @@
.class public final Lcom/google/android/exoplayer2/text/cea/CeaUtil;
.super Ljava/lang/Object;
.source "CeaUtil.java"
# static fields
.field private static final COUNTRY_CODE:I = 0xb5
.field private static final PAYLOAD_TYPE_CC:I = 0x4
.field private static final PROVIDER_CODE:I = 0x31
.field private static final TAG:Ljava/lang/String; = "CeaUtil"
.field private static final USER_DATA_TYPE_CODE:I = 0x3
.field private static final USER_ID:I = 0x47413934
# direct methods
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static consume(JLcom/google/android/exoplayer2/util/ParsableByteArray;[Lcom/google/android/exoplayer2/extractor/TrackOutput;)V
.locals 12
.line 1
:goto_0
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
const/4 v1, 0x1
if-le v0, v1, :cond_4
.line 2
invoke-static {p2}, Lcom/google/android/exoplayer2/text/cea/CeaUtil;->readNon255TerminatedValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v0
.line 3
invoke-static {p2}, Lcom/google/android/exoplayer2/text/cea/CeaUtil;->readNon255TerminatedValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_3
.line 4
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v3
if-le v2, v3, :cond_0
goto :goto_2
.line 5
:cond_0
invoke-static {v0, v2, p2}, Lcom/google/android/exoplayer2/text/cea/CeaUtil;->isSeiMessageCea608(IILcom/google/android/exoplayer2/util/ParsableByteArray;)Z
move-result v0
if-eqz v0, :cond_2
const/16 v0, 0x8
.line 6
invoke-virtual {p2, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 7
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v0
and-int/lit8 v0, v0, 0x1f
.line 8
invoke-virtual {p2, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
mul-int/lit8 v0, v0, 0x3
.line 9
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v1
.line 10
array-length v10, p3
const/4 v3, 0x0
move v11, v3
:goto_1
if-ge v11, v10, :cond_1
aget-object v3, p3, v11
.line 11
invoke-virtual {p2, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
.line 12
invoke-interface {v3, p2, v0}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleData(Lcom/google/android/exoplayer2/util/ParsableByteArray;I)V
const/4 v6, 0x1
const/4 v8, 0x0
const/4 v9, 0x0
move-wide v4, p0
move v7, v0
.line 13
invoke-interface/range {v3 .. v9}, Lcom/google/android/exoplayer2/extractor/TrackOutput;->sampleMetadata(JIII[B)V
add-int/lit8 v11, v11, 0x1
goto :goto_1
:cond_1
add-int/lit8 v0, v0, 0xa
sub-int/2addr v2, v0
.line 14
invoke-virtual {p2, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_0
.line 15
:cond_2
invoke-virtual {p2, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_0
:cond_3
:goto_2
const-string v0, "CeaUtil"
const-string v1, "Skipping remainder of malformed SEI NAL unit."
.line 16
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 17
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->limit()I
move-result v0
invoke-virtual {p2, v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
goto :goto_0
:cond_4
return-void
.end method
.method private static isSeiMessageCea608(IILcom/google/android/exoplayer2/util/ParsableByteArray;)Z
.locals 4
const/4 v0, 0x0
const/4 v1, 0x4
if-ne p0, v1, :cond_1
const/16 p0, 0x8
if-ge p1, p0, :cond_0
goto :goto_0
.line 1
:cond_0
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result p0
.line 2
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result p1
.line 3
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v1
.line 4
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
.line 5
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v3
.line 6
invoke-virtual {p2, p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
const/16 p0, 0xb5
if-ne p1, p0, :cond_1
const/16 p0, 0x31
if-ne v1, p0, :cond_1
const p0, 0x47413934
if-ne v2, p0, :cond_1
const/4 p0, 0x3
if-ne v3, p0, :cond_1
const/4 v0, 0x1
:cond_1
:goto_0
return v0
.end method
.method private static readNon255TerminatedValue(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.locals 3
const/4 v0, 0x0
.line 1
:cond_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v1
if-nez v1, :cond_1
const/4 p0, -0x1
return p0
.line 2
:cond_1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v1
add-int/2addr v0, v1
const/16 v2, 0xff
if-eq v1, v2, :cond_0
return v0
.end method
@@ -0,0 +1,100 @@
.class public final Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;
.super Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
.source "DvbDecoder.java"
# instance fields
.field private final parser:Lcom/google/android/exoplayer2/text/dvb/DvbParser;
# direct methods
.method public constructor <init>(Ljava/util/List;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"[B>;)V"
}
.end annotation
const-string v0, "DvbDecoder"
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;-><init>(Ljava/lang/String;)V
.line 2
new-instance v0, Lcom/google/android/exoplayer2/util/ParsableByteArray;
const/4 v1, 0x0
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, [B
invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([B)V
.line 3
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result p1
.line 4
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
.line 5
new-instance v1, Lcom/google/android/exoplayer2/text/dvb/DvbParser;
invoke-direct {v1, p1, v0}, Lcom/google/android/exoplayer2/text/dvb/DvbParser;-><init>(II)V
iput-object v1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;->parser:Lcom/google/android/exoplayer2/text/dvb/DvbParser;
return-void
.end method
# virtual methods
.method public bridge synthetic decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;->decode([BIZ)Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;
move-result-object p1
return-object p1
.end method
.method public decode([BIZ)Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;
.locals 1
if-eqz p3, :cond_0
.line 2
iget-object p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;->parser:Lcom/google/android/exoplayer2/text/dvb/DvbParser;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/dvb/DvbParser;->reset()V
.line 3
:cond_0
new-instance p3, Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;
iget-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbDecoder;->parser:Lcom/google/android/exoplayer2/text/dvb/DvbParser;
invoke-virtual {v0, p1, p2}, Lcom/google/android/exoplayer2/text/dvb/DvbParser;->decode([BI)Ljava/util/List;
move-result-object p1
invoke-direct {p3, p1}, Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;-><init>(Ljava/util/List;)V
return-object p3
.end method
@@ -0,0 +1,47 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "ClutDefinition"
.end annotation
# instance fields
.field public final clutEntries2Bit:[I
.field public final clutEntries4Bit:[I
.field public final clutEntries8Bit:[I
.field public final id:I
# direct methods
.method public constructor <init>(I[I[I[I)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;->id:I
.line 3
iput-object p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;->clutEntries2Bit:[I
.line 4
iput-object p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;->clutEntries4Bit:[I
.line 5
iput-object p4, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;->clutEntries8Bit:[I
return-void
.end method
@@ -0,0 +1,57 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DisplayDefinition"
.end annotation
# instance fields
.field public final height:I
.field public final horizontalPositionMaximum:I
.field public final horizontalPositionMinimum:I
.field public final verticalPositionMaximum:I
.field public final verticalPositionMinimum:I
.field public final width:I
# direct methods
.method public constructor <init>(IIIIII)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;->width:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;->height:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;->horizontalPositionMinimum:I
.line 5
iput p4, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;->horizontalPositionMaximum:I
.line 6
iput p5, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;->verticalPositionMinimum:I
.line 7
iput p6, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;->verticalPositionMaximum:I
return-void
.end method
@@ -0,0 +1,47 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "ObjectData"
.end annotation
# instance fields
.field public final bottomFieldData:[B
.field public final id:I
.field public final nonModifyingColorFlag:Z
.field public final topFieldData:[B
# direct methods
.method public constructor <init>(IZ[B[B)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;->id:I
.line 3
iput-boolean p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;->nonModifyingColorFlag:Z
.line 4
iput-object p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;->topFieldData:[B
.line 5
iput-object p4, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;->bottomFieldData:[B
return-void
.end method
@@ -0,0 +1,63 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "PageComposition"
.end annotation
# instance fields
.field public final regions:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageRegion;",
">;"
}
.end annotation
.end field
.field public final state:I
.field public final timeOutSecs:I
.field public final version:I
# direct methods
.method public constructor <init>(IIILandroid/util/SparseArray;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(III",
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageRegion;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;->timeOutSecs:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;->version:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;->state:I
.line 5
iput-object p4, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;->regions:Landroid/util/SparseArray;
return-void
.end method
@@ -0,0 +1,37 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageRegion;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "PageRegion"
.end annotation
# instance fields
.field public final horizontalAddress:I
.field public final verticalAddress:I
# direct methods
.method public constructor <init>(II)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageRegion;->horizontalAddress:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageRegion;->verticalAddress:I
return-void
.end method
@@ -0,0 +1,142 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "RegionComposition"
.end annotation
# instance fields
.field public final clutId:I
.field public final depth:I
.field public final fillFlag:Z
.field public final height:I
.field public final id:I
.field public final levelOfCompatibility:I
.field public final pixelCode2Bit:I
.field public final pixelCode4Bit:I
.field public final pixelCode8Bit:I
.field public final regionObjects:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;",
">;"
}
.end annotation
.end field
.field public final width:I
# direct methods
.method public constructor <init>(IZIIIIIIIILandroid/util/SparseArray;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(IZIIIIIIII",
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->id:I
.line 3
iput-boolean p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->fillFlag:Z
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->width:I
.line 5
iput p4, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->height:I
.line 6
iput p5, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->levelOfCompatibility:I
.line 7
iput p6, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->depth:I
.line 8
iput p7, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->clutId:I
.line 9
iput p8, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->pixelCode8Bit:I
.line 10
iput p9, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->pixelCode4Bit:I
.line 11
iput p10, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->pixelCode2Bit:I
.line 12
iput-object p11, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->regionObjects:Landroid/util/SparseArray;
return-void
.end method
# virtual methods
.method public mergeFrom(Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;)V
.locals 4
if-nez p1, :cond_0
return-void
.line 1
:cond_0
iget-object p1, p1, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->regionObjects:Landroid/util/SparseArray;
const/4 v0, 0x0
.line 2
:goto_0
invoke-virtual {p1}, Landroid/util/SparseArray;->size()I
move-result v1
if-ge v0, v1, :cond_1
.line 3
iget-object v1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;->regionObjects:Landroid/util/SparseArray;
invoke-virtual {p1, v0}, Landroid/util/SparseArray;->keyAt(I)I
move-result v2
invoke-virtual {p1, v0}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v3
invoke-virtual {v1, v2, v3}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_1
return-void
.end method
@@ -0,0 +1,57 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "RegionObject"
.end annotation
# instance fields
.field public final backgroundPixelCode:I
.field public final foregroundPixelCode:I
.field public final horizontalPosition:I
.field public final provider:I
.field public final type:I
.field public final verticalPosition:I
# direct methods
.method public constructor <init>(IIIIII)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;->type:I
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;->provider:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;->horizontalPosition:I
.line 5
iput p4, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;->verticalPosition:I
.line 6
iput p5, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;->foregroundPixelCode:I
.line 7
iput p6, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionObject;->backgroundPixelCode:I
return-void
.end method
@@ -0,0 +1,167 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;
.super Ljava/lang/Object;
.source "DvbParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/dvb/DvbParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "SubtitleService"
.end annotation
# instance fields
.field public final ancillaryCluts:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;",
">;"
}
.end annotation
.end field
.field public final ancillaryObjects:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;",
">;"
}
.end annotation
.end field
.field public final ancillaryPageId:I
.field public final cluts:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$ClutDefinition;",
">;"
}
.end annotation
.end field
.field public displayDefinition:Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;
.field public final objects:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$ObjectData;",
">;"
}
.end annotation
.end field
.field public pageComposition:Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;
.field public final regions:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/text/dvb/DvbParser$RegionComposition;",
">;"
}
.end annotation
.end field
.field public final subtitlePageId:I
# direct methods
.method public constructor <init>(II)V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->regions:Landroid/util/SparseArray;
.line 3
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->cluts:Landroid/util/SparseArray;
.line 4
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->objects:Landroid/util/SparseArray;
.line 5
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->ancillaryCluts:Landroid/util/SparseArray;
.line 6
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->ancillaryObjects:Landroid/util/SparseArray;
.line 7
iput p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->subtitlePageId:I
.line 8
iput p2, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->ancillaryPageId:I
return-void
.end method
# virtual methods
.method public reset()V
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->regions:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->clear()V
.line 2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->cluts:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->clear()V
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->objects:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->clear()V
.line 4
iget-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->ancillaryCluts:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->clear()V
.line 5
iget-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->ancillaryObjects:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->clear()V
const/4 v0, 0x0
.line 6
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->displayDefinition:Lcom/google/android/exoplayer2/text/dvb/DvbParser$DisplayDefinition;
.line 7
iput-object v0, p0, Lcom/google/android/exoplayer2/text/dvb/DvbParser$SubtitleService;->pageComposition:Lcom/google/android/exoplayer2/text/dvb/DvbParser$PageComposition;
return-void
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,83 @@
.class final Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;
.super Ljava/lang/Object;
.source "DvbSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private final cues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/util/List;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;->cues:Ljava/util/List;
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/text/dvb/DvbSubtitle;->cues:Ljava/util/List;
return-object p1
.end method
.method public getEventTime(I)J
.locals 2
const-wide/16 v0, 0x0
return-wide v0
.end method
.method public getEventTimeCount()I
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 0
const/4 p1, -0x1
return p1
.end method
@@ -0,0 +1,356 @@
.class public final Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;
.super Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
.source "SubripDecoder.java"
# static fields
.field private static final SUBRIP_TIMECODE:Ljava/lang/String; = "(?:(\\d+):)?(\\d+):(\\d+),(\\d+)"
.field private static final SUBRIP_TIMING_LINE:Ljava/util/regex/Pattern;
.field private static final TAG:Ljava/lang/String; = "SubripDecoder"
# instance fields
.field private final textBuilder:Ljava/lang/StringBuilder;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const-string v0, "\\s*((?:(\\d+):)?(\\d+):(\\d+),(\\d+))\\s*-->\\s*((?:(\\d+):)?(\\d+):(\\d+),(\\d+))?\\s*"
.line 1
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->SUBRIP_TIMING_LINE:Ljava/util/regex/Pattern;
return-void
.end method
.method public constructor <init>()V
.locals 1
const-string v0, "SubripDecoder"
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;-><init>(Ljava/lang/String;)V
.line 2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->textBuilder:Ljava/lang/StringBuilder;
return-void
.end method
.method private static parseTimecode(Ljava/util/regex/Matcher;I)J
.locals 8
add-int/lit8 v0, p1, 0x1
.line 1
invoke-virtual {p0, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
const-wide/16 v2, 0x3c
mul-long/2addr v0, v2
mul-long/2addr v0, v2
const-wide/16 v4, 0x3e8
mul-long/2addr v0, v4
add-int/lit8 v6, p1, 0x2
.line 2
invoke-virtual {p0, v6}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v6
invoke-static {v6}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v6
mul-long/2addr v6, v2
mul-long/2addr v6, v4
add-long/2addr v6, v0
add-int/lit8 v0, p1, 0x3
.line 3
invoke-virtual {p0, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
mul-long/2addr v0, v4
add-long/2addr v0, v6
add-int/lit8 p1, p1, 0x4
.line 4
invoke-virtual {p0, p1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide p0
add-long/2addr p0, v0
mul-long/2addr p0, v4
return-wide p0
.end method
# virtual methods
.method public bridge synthetic decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->decode([BIZ)Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;
move-result-object p1
return-object p1
.end method
.method public decode([BIZ)Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;
.locals 6
const-string p3, "SubripDecoder"
.line 2
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 3
new-instance v1, Lcom/google/android/exoplayer2/util/LongArray;
invoke-direct {v1}, Lcom/google/android/exoplayer2/util/LongArray;-><init>()V
.line 4
new-instance v2, Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {v2, p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;-><init>([BI)V
.line 5
:cond_0
:goto_0
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_6
.line 6
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p2
if-nez p2, :cond_1
goto :goto_0
.line 7
:cond_1
:try_start_0
invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
.line 8
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object p1
.line 9
sget-object p2, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->SUBRIP_TIMING_LINE:Ljava/util/regex/Pattern;
invoke-virtual {p2, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object p2
.line 10
invoke-virtual {p2}, Ljava/util/regex/Matcher;->matches()Z
move-result v3
if-eqz v3, :cond_5
const/4 p1, 0x1
.line 11
invoke-static {p2, p1}, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->parseTimecode(Ljava/util/regex/Matcher;I)J
move-result-wide v3
invoke-virtual {v1, v3, v4}, Lcom/google/android/exoplayer2/util/LongArray;->add(J)V
const/4 v3, 0x6
.line 12
invoke-virtual {p2, v3}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
const/4 v5, 0x0
if-nez v4, :cond_2
.line 13
invoke-static {p2, v3}, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->parseTimecode(Ljava/util/regex/Matcher;I)J
move-result-wide v3
invoke-virtual {v1, v3, v4}, Lcom/google/android/exoplayer2/util/LongArray;->add(J)V
goto :goto_1
:cond_2
move p1, v5
.line 14
:goto_1
iget-object p2, p0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->textBuilder:Ljava/lang/StringBuilder;
invoke-virtual {p2, v5}, Ljava/lang/StringBuilder;->setLength(I)V
.line 15
:goto_2
invoke-virtual {v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_4
.line 16
iget-object v3, p0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->textBuilder:Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I
move-result v3
if-lez v3, :cond_3
.line 17
iget-object v3, p0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->textBuilder:Ljava/lang/StringBuilder;
const-string v4, "<br>"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 18
:cond_3
iget-object v3, p0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->textBuilder:Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p2
invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_2
.line 19
:cond_4
iget-object p2, p0, Lcom/google/android/exoplayer2/text/subrip/SubripDecoder;->textBuilder:Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-static {p2}, Landroid/text/Html;->fromHtml(Ljava/lang/String;)Landroid/text/Spanned;
move-result-object p2
.line 20
new-instance v3, Lcom/google/android/exoplayer2/text/Cue;
invoke-direct {v3, p2}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;)V
invoke-virtual {v0, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
if-eqz p1, :cond_0
const/4 p1, 0x0
.line 21
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_5
const-string p2, "Skipping invalid timing: "
.line 22
invoke-static {p2, p1, p3}, Landroidx/appcompat/widget/c0;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_0
:catch_0
const-string p2, "Skipping invalid index: "
.line 23
invoke-static {p2, p1, p3}, Landroidx/appcompat/widget/c0;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_0
.line 24
:cond_6
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result p1
new-array p1, p1, [Lcom/google/android/exoplayer2/text/Cue;
.line 25
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 26
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/LongArray;->toArray()[J
move-result-object p2
.line 27
new-instance p3, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;
invoke-direct {p3, p1, p2}, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;-><init>([Lcom/google/android/exoplayer2/text/Cue;[J)V
return-object p3
.end method
@@ -0,0 +1,168 @@
.class final Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;
.super Ljava/lang/Object;
.source "SubripSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private final cueTimesUs:[J
.field private final cues:[Lcom/google/android/exoplayer2/text/Cue;
# direct methods
.method public constructor <init>([Lcom/google/android/exoplayer2/text/Cue;[J)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cues:[Lcom/google/android/exoplayer2/text/Cue;
.line 3
iput-object p2, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
const/4 v1, 0x1
const/4 v2, 0x0
invoke-static {v0, p1, p2, v1, v2}, Lcom/google/android/exoplayer2/util/Util;->binarySearchFloor([JJZZ)I
move-result p1
const/4 p2, -0x1
if-eq p1, p2, :cond_1
.line 2
iget-object p2, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cues:[Lcom/google/android/exoplayer2/text/Cue;
aget-object v0, p2, p1
if-nez v0, :cond_0
goto :goto_0
.line 3
:cond_0
aget-object p1, p2, p1
invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
return-object p1
.line 4
:cond_1
:goto_0
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public getEventTime(I)J
.locals 3
const/4 v0, 0x1
const/4 v1, 0x0
if-ltz p1, :cond_0
move v2, v0
goto :goto_0
:cond_0
move v2, v1
.line 1
:goto_0
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 2
iget-object v2, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
array-length v2, v2
if-ge p1, v2, :cond_1
goto :goto_1
:cond_1
move v0, v1
:goto_1
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
aget-wide v1, v0, p1
return-wide v1
.end method
.method public getEventTimeCount()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
array-length v0, v0
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
const/4 v1, 0x0
invoke-static {v0, p1, p2, v1, v1}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result p1
.line 2
iget-object p2, p0, Lcom/google/android/exoplayer2/text/subrip/SubripSubtitle;->cueTimesUs:[J
array-length p2, p2
if-ge p1, p2, :cond_0
goto :goto_0
:cond_0
const/4 p1, -0x1
:goto_0
return p1
.end method
@@ -0,0 +1,42 @@
.class final Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder$FrameAndTickRate;
.super Ljava/lang/Object;
.source "TtmlDecoder.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "FrameAndTickRate"
.end annotation
# instance fields
.field public final effectiveFrameRate:F
.field public final subFrameRate:I
.field public final tickRate:I
# direct methods
.method public constructor <init>(FII)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder$FrameAndTickRate;->effectiveFrameRate:F
.line 3
iput p2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder$FrameAndTickRate;->subFrameRate:I
.line 4
iput p3, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlDecoder$FrameAndTickRate;->tickRate:I
return-void
.end method
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,69 @@
.class final Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;
.super Ljava/lang/Object;
.source "TtmlRegion.java"
# instance fields
.field public final id:Ljava/lang/String;
.field public final line:F
.field public final lineAnchor:I
.field public final lineType:I
.field public final position:F
.field public final width:F
# direct methods
.method public constructor <init>(Ljava/lang/String;)V
.locals 7
const/4 v2, 0x1
const/4 v3, 0x1
const/high16 v4, -0x80000000
const/high16 v5, -0x80000000
const/4 v6, 0x1
move-object v0, p0
move-object v1, p1
.line 1
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;-><init>(Ljava/lang/String;FFIIF)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;FFIIF)V
.locals 0
.line 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 3
iput-object p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;->id:Ljava/lang/String;
.line 4
iput p2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;->position:F
.line 5
iput p3, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;->line:F
.line 6
iput p4, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;->lineType:I
.line 7
iput p5, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;->lineAnchor:I
.line 8
iput p6, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;->width:F
return-void
.end method
@@ -0,0 +1,440 @@
.class final Lcom/google/android/exoplayer2/text/ttml/TtmlRenderUtil;
.super Ljava/lang/Object;
.source "TtmlRenderUtil.java"
# direct methods
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static applyStylesToSpan(Landroid/text/SpannableStringBuilder;IILcom/google/android/exoplayer2/text/ttml/TtmlStyle;)V
.locals 3
.line 1
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getStyle()I
move-result v0
const/16 v1, 0x21
const/4 v2, -0x1
if-eq v0, v2, :cond_0
.line 2
new-instance v0, Landroid/text/style/StyleSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getStyle()I
move-result v2
invoke-direct {v0, v2}, Landroid/text/style/StyleSpan;-><init>(I)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 3
:cond_0
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->isLinethrough()Z
move-result v0
if-eqz v0, :cond_1
.line 4
new-instance v0, Landroid/text/style/StrikethroughSpan;
invoke-direct {v0}, Landroid/text/style/StrikethroughSpan;-><init>()V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 5
:cond_1
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->isUnderline()Z
move-result v0
if-eqz v0, :cond_2
.line 6
new-instance v0, Landroid/text/style/UnderlineSpan;
invoke-direct {v0}, Landroid/text/style/UnderlineSpan;-><init>()V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 7
:cond_2
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasFontColor()Z
move-result v0
if-eqz v0, :cond_3
.line 8
new-instance v0, Landroid/text/style/ForegroundColorSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontColor()I
move-result v2
invoke-direct {v0, v2}, Landroid/text/style/ForegroundColorSpan;-><init>(I)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 9
:cond_3
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasBackgroundColor()Z
move-result v0
if-eqz v0, :cond_4
.line 10
new-instance v0, Landroid/text/style/BackgroundColorSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getBackgroundColor()I
move-result v2
invoke-direct {v0, v2}, Landroid/text/style/BackgroundColorSpan;-><init>(I)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 11
:cond_4
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontFamily()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_5
.line 12
new-instance v0, Landroid/text/style/TypefaceSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontFamily()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Landroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 13
:cond_5
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getTextAlign()Landroid/text/Layout$Alignment;
move-result-object v0
if-eqz v0, :cond_6
.line 14
new-instance v0, Landroid/text/style/AlignmentSpan$Standard;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getTextAlign()Landroid/text/Layout$Alignment;
move-result-object v2
invoke-direct {v0, v2}, Landroid/text/style/AlignmentSpan$Standard;-><init>(Landroid/text/Layout$Alignment;)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
.line 15
:cond_6
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontSizeUnit()I
move-result v0
const/4 v2, 0x1
if-eq v0, v2, :cond_9
const/4 v2, 0x2
if-eq v0, v2, :cond_8
const/4 v2, 0x3
if-eq v0, v2, :cond_7
goto :goto_0
.line 16
:cond_7
new-instance v0, Landroid/text/style/RelativeSizeSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontSize()F
move-result p3
const/high16 v2, 0x42c80000 # 100.0f
div-float/2addr p3, v2
invoke-direct {v0, p3}, Landroid/text/style/RelativeSizeSpan;-><init>(F)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
goto :goto_0
.line 17
:cond_8
new-instance v0, Landroid/text/style/RelativeSizeSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontSize()F
move-result p3
invoke-direct {v0, p3}, Landroid/text/style/RelativeSizeSpan;-><init>(F)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
goto :goto_0
.line 18
:cond_9
new-instance v0, Landroid/text/style/AbsoluteSizeSpan;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->getFontSize()F
move-result p3
float-to-int p3, p3
invoke-direct {v0, p3, v2}, Landroid/text/style/AbsoluteSizeSpan;-><init>(IZ)V
invoke-virtual {p0, v0, p1, p2, v1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:goto_0
return-void
.end method
.method public static applyTextElementSpacePolicy(Ljava/lang/String;)Ljava/lang/String;
.locals 2
const-string v0, "\r\n"
const-string v1, "\n"
.line 1
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string v0, " *\n *"
.line 2
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string v0, " "
.line 3
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string v1, "[ \t\\x0B\u000c\r]+"
.line 4
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static endParagraph(Landroid/text/SpannableStringBuilder;)V
.locals 3
.line 1
invoke-virtual {p0}, Landroid/text/SpannableStringBuilder;->length()I
move-result v0
add-int/lit8 v0, v0, -0x1
:goto_0
if-ltz v0, :cond_0
.line 2
invoke-virtual {p0, v0}, Landroid/text/SpannableStringBuilder;->charAt(I)C
move-result v1
const/16 v2, 0x20
if-ne v1, v2, :cond_0
add-int/lit8 v0, v0, -0x1
goto :goto_0
:cond_0
if-ltz v0, :cond_1
.line 3
invoke-virtual {p0, v0}, Landroid/text/SpannableStringBuilder;->charAt(I)C
move-result v0
const/16 v1, 0xa
if-eq v0, v1, :cond_1
.line 4
invoke-virtual {p0, v1}, Landroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder;
:cond_1
return-void
.end method
.method public static resolveStyle(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;[Ljava/lang/String;Ljava/util/Map;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;",
"[",
"Ljava/lang/String;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;",
">;)",
"Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;"
}
.end annotation
if-nez p0, :cond_0
if-nez p1, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
const/4 v0, 0x0
const/4 v1, 0x1
if-nez p0, :cond_1
.line 1
array-length v2, p1
if-ne v2, v1, :cond_1
.line 2
aget-object p0, p1, v0
invoke-interface {p2, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
return-object p0
:cond_1
if-nez p0, :cond_3
.line 3
array-length v2, p1
if-le v2, v1, :cond_3
.line 4
new-instance p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;-><init>()V
.line 5
array-length v1, p1
:goto_0
if-ge v0, v1, :cond_2
aget-object v2, p1, v0
.line 6
invoke-interface {p2, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->chain(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_2
return-object p0
:cond_3
if-eqz p0, :cond_4
if-eqz p1, :cond_4
.line 7
array-length v2, p1
if-ne v2, v1, :cond_4
.line 8
aget-object p1, p1, v0
invoke-interface {p2, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->chain(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
move-result-object p0
return-object p0
:cond_4
if-eqz p0, :cond_5
if-eqz p1, :cond_5
.line 9
array-length v2, p1
if-le v2, v1, :cond_5
.line 10
array-length v1, p1
:goto_1
if-ge v0, v1, :cond_5
aget-object v2, p1, v0
.line 11
invoke-interface {p2, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
invoke-virtual {p0, v2}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->chain(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
add-int/lit8 v0, v0, 0x1
goto :goto_1
:cond_5
return-object p0
.end method
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/ttml/TtmlStyle$FontSizeUnit;
.super Ljava/lang/Object;
.source "TtmlStyle.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "FontSizeUnit"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/ttml/TtmlStyle$StyleFlags;
.super Ljava/lang/Object;
.source "TtmlStyle.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "StyleFlags"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,636 @@
.class final Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.super Ljava/lang/Object;
.source "TtmlStyle.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/ttml/TtmlStyle$FontSizeUnit;,
Lcom/google/android/exoplayer2/text/ttml/TtmlStyle$StyleFlags;
}
.end annotation
# static fields
.field public static final FONT_SIZE_UNIT_EM:I = 0x2
.field public static final FONT_SIZE_UNIT_PERCENT:I = 0x3
.field public static final FONT_SIZE_UNIT_PIXEL:I = 0x1
.field private static final OFF:I = 0x0
.field private static final ON:I = 0x1
.field public static final STYLE_BOLD:I = 0x1
.field public static final STYLE_BOLD_ITALIC:I = 0x3
.field public static final STYLE_ITALIC:I = 0x2
.field public static final STYLE_NORMAL:I = 0x0
.field public static final UNSPECIFIED:I = -0x1
# instance fields
.field private backgroundColor:I
.field private bold:I
.field private fontColor:I
.field private fontFamily:Ljava/lang/String;
.field private fontSize:F
.field private fontSizeUnit:I
.field private hasBackgroundColor:Z
.field private hasFontColor:Z
.field private id:Ljava/lang/String;
.field private inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.field private italic:I
.field private linethrough:I
.field private textAlign:Landroid/text/Layout$Alignment;
.field private underline:I
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, -0x1
.line 2
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->linethrough:I
.line 3
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->underline:I
.line 4
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->bold:I
.line 5
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
.line 6
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSizeUnit:I
return-void
.end method
.method private inherit(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 2
if-eqz p1, :cond_8
.line 2
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasFontColor:Z
if-nez v0, :cond_0
iget-boolean v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasFontColor:Z
if-eqz v0, :cond_0
.line 3
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontColor:I
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->setFontColor(I)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.line 4
:cond_0
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->bold:I
const/4 v1, -0x1
if-ne v0, v1, :cond_1
.line 5
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->bold:I
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->bold:I
.line 6
:cond_1
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
if-ne v0, v1, :cond_2
.line 7
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
.line 8
:cond_2
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontFamily:Ljava/lang/String;
if-nez v0, :cond_3
.line 9
iget-object v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontFamily:Ljava/lang/String;
iput-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontFamily:Ljava/lang/String;
.line 10
:cond_3
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->linethrough:I
if-ne v0, v1, :cond_4
.line 11
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->linethrough:I
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->linethrough:I
.line 12
:cond_4
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->underline:I
if-ne v0, v1, :cond_5
.line 13
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->underline:I
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->underline:I
.line 14
:cond_5
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->textAlign:Landroid/text/Layout$Alignment;
if-nez v0, :cond_6
.line 15
iget-object v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->textAlign:Landroid/text/Layout$Alignment;
iput-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->textAlign:Landroid/text/Layout$Alignment;
.line 16
:cond_6
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSizeUnit:I
if-ne v0, v1, :cond_7
.line 17
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSizeUnit:I
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSizeUnit:I
.line 18
iget v0, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSize:F
iput v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSize:F
:cond_7
if-eqz p2, :cond_8
.line 19
iget-boolean p2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasBackgroundColor:Z
if-nez p2, :cond_8
iget-boolean p2, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasBackgroundColor:Z
if-eqz p2, :cond_8
.line 20
iget p1, p1, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->backgroundColor:I
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->setBackgroundColor(I)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
:cond_8
return-object p0
.end method
# virtual methods
.method public chain(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
const/4 v0, 0x1
.line 1
invoke-direct {p0, p1, v0}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inherit(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
move-result-object p1
return-object p1
.end method
.method public getBackgroundColor()I
.locals 2
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasBackgroundColor:Z
if-eqz v0, :cond_0
.line 2
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->backgroundColor:I
return v0
.line 3
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Background color has not been defined."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getFontColor()I
.locals 2
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasFontColor:Z
if-eqz v0, :cond_0
.line 2
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontColor:I
return v0
.line 3
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Font color has not been defined."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getFontFamily()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontFamily:Ljava/lang/String;
return-object v0
.end method
.method public getFontSize()F
.locals 1
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSize:F
return v0
.end method
.method public getFontSizeUnit()I
.locals 1
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSizeUnit:I
return v0
.end method
.method public getId()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->id:Ljava/lang/String;
return-object v0
.end method
.method public getStyle()I
.locals 4
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->bold:I
const/4 v1, -0x1
if-ne v0, v1, :cond_0
iget v2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
if-ne v2, v1, :cond_0
return v1
:cond_0
const/4 v1, 0x0
const/4 v2, 0x1
if-ne v0, v2, :cond_1
move v0, v2
goto :goto_0
:cond_1
move v0, v1
.line 2
:goto_0
iget v3, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
if-ne v3, v2, :cond_2
const/4 v1, 0x2
:cond_2
or-int/2addr v0, v1
return v0
.end method
.method public getTextAlign()Landroid/text/Layout$Alignment;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->textAlign:Landroid/text/Layout$Alignment;
return-object v0
.end method
.method public hasBackgroundColor()Z
.locals 1
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasBackgroundColor:Z
return v0
.end method
.method public hasFontColor()Z
.locals 1
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasFontColor:Z
return v0
.end method
.method public inherit(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
const/4 v0, 0x0
.line 1
invoke-direct {p0, p1, v0}, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inherit(Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
move-result-object p1
return-object p1
.end method
.method public isLinethrough()Z
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->linethrough:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
return v1
.end method
.method public isUnderline()Z
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->underline:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
return v1
.end method
.method public setBackgroundColor(I)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->backgroundColor:I
const/4 p1, 0x1
.line 2
iput-boolean p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasBackgroundColor:Z
return-object p0
.end method
.method public setBold(Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->bold:I
return-object p0
.end method
.method public setFontColor(I)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
const/4 v1, 0x1
if-nez v0, :cond_0
move v0, v1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontColor:I
.line 3
iput-boolean v1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->hasFontColor:Z
return-object p0
.end method
.method public setFontFamily(Ljava/lang/String;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontFamily:Ljava/lang/String;
return-object p0
.end method
.method public setFontSize(F)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSize:F
return-object p0
.end method
.method public setFontSizeUnit(I)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->fontSizeUnit:I
return-object p0
.end method
.method public setId(Ljava/lang/String;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->id:Ljava/lang/String;
return-object p0
.end method
.method public setItalic(Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->italic:I
return-object p0
.end method
.method public setLinethrough(Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->linethrough:I
return-object p0
.end method
.method public setTextAlign(Landroid/text/Layout$Alignment;)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->textAlign:Landroid/text/Layout$Alignment;
return-object p0
.end method
.method public setUnderline(Z)Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->inheritableStyle:Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;->underline:I
return-object p0
.end method
@@ -0,0 +1,193 @@
.class final Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;
.super Ljava/lang/Object;
.source "TtmlSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private final eventTimesUs:[J
.field private final globalStyles:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;",
">;"
}
.end annotation
.end field
.field private final regionMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;",
">;"
}
.end annotation
.end field
.field private final root:Lcom/google/android/exoplayer2/text/ttml/TtmlNode;
# direct methods
.method public constructor <init>(Lcom/google/android/exoplayer2/text/ttml/TtmlNode;Ljava/util/Map;Ljava/util/Map;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/text/ttml/TtmlNode;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;",
">;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/text/ttml/TtmlRegion;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->root:Lcom/google/android/exoplayer2/text/ttml/TtmlNode;
.line 3
iput-object p3, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->regionMap:Ljava/util/Map;
if-eqz p2, :cond_0
.line 4
invoke-static {p2}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object p2
goto :goto_0
:cond_0
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object p2
:goto_0
iput-object p2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->globalStyles:Ljava/util/Map;
.line 5
invoke-virtual {p1}, Lcom/google/android/exoplayer2/text/ttml/TtmlNode;->getEventTimesUs()[J
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->eventTimesUs:[J
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->root:Lcom/google/android/exoplayer2/text/ttml/TtmlNode;
iget-object v1, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->globalStyles:Ljava/util/Map;
iget-object v2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->regionMap:Ljava/util/Map;
invoke-virtual {v0, p1, p2, v1, v2}, Lcom/google/android/exoplayer2/text/ttml/TtmlNode;->getCues(JLjava/util/Map;Ljava/util/Map;)Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public getEventTime(I)J
.locals 3
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->eventTimesUs:[J
aget-wide v1, v0, p1
return-wide v1
.end method
.method public getEventTimeCount()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->eventTimesUs:[J
array-length v0, v0
return v0
.end method
.method public getGlobalStyles()Ljava/util/Map;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/text/ttml/TtmlStyle;",
">;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->globalStyles:Ljava/util/Map;
return-object v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->eventTimesUs:[J
const/4 v1, 0x0
invoke-static {v0, p1, p2, v1, v1}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result p1
.line 2
iget-object p2, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->eventTimesUs:[J
array-length p2, p2
if-ge p1, p2, :cond_0
goto :goto_0
:cond_0
const/4 p1, -0x1
:goto_0
return p1
.end method
.method public getRoot()Lcom/google/android/exoplayer2/text/ttml/TtmlNode;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/ttml/TtmlSubtitle;->root:Lcom/google/android/exoplayer2/text/ttml/TtmlNode;
return-object v0
.end method
@@ -0,0 +1,933 @@
.class public final Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;
.super Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
.source "Tx3gDecoder.java"
# static fields
.field private static final BOM_UTF16_BE:C = '\ufeff'
.field private static final BOM_UTF16_LE:C = '\ufffe'
.field private static final DEFAULT_COLOR:I = -0x1
.field private static final DEFAULT_FONT_FACE:I = 0x0
.field private static final DEFAULT_FONT_FAMILY:Ljava/lang/String; = "sans-serif"
.field private static final DEFAULT_VERTICAL_PLACEMENT:F = 0.85f
.field private static final FONT_FACE_BOLD:I = 0x1
.field private static final FONT_FACE_ITALIC:I = 0x2
.field private static final FONT_FACE_UNDERLINE:I = 0x4
.field private static final SIZE_ATOM_HEADER:I = 0x8
.field private static final SIZE_BOM_UTF16:I = 0x2
.field private static final SIZE_SHORT:I = 0x2
.field private static final SIZE_STYLE_RECORD:I = 0xc
.field private static final SPAN_PRIORITY_HIGH:I = 0x0
.field private static final SPAN_PRIORITY_LOW:I = 0xff0000
.field private static final TX3G_SERIF:Ljava/lang/String; = "Serif"
.field private static final TYPE_STYL:I
.field private static final TYPE_TBOX:I
# instance fields
.field private calculatedVideoTrackHeight:I
.field private customVerticalPlacement:Z
.field private defaultColorRgba:I
.field private defaultFontFace:I
.field private defaultFontFamily:Ljava/lang/String;
.field private defaultVerticalPlacement:F
.field private final parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const-string v0, "styl"
.line 1
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->TYPE_STYL:I
const-string v0, "tbox"
.line 2
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->TYPE_TBOX:I
return-void
.end method
.method public constructor <init>(Ljava/util/List;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"[B>;)V"
}
.end annotation
const-string v0, "Tx3gDecoder"
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;-><init>(Ljava/lang/String;)V
.line 2
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/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 3
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->decodeInitializationData(Ljava/util/List;)V
return-void
.end method
.method private applyStyleRecord(Lcom/google/android/exoplayer2/util/ParsableByteArray;Landroid/text/SpannableStringBuilder;)V
.locals 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
const/4 v1, 0x1
const/16 v2, 0xc
if-lt v0, v2, :cond_0
move v0, v1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->assertTrue(Z)V
.line 2
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
.line 3
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v8
const/4 v2, 0x2
.line 4
invoke-virtual {p1, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 5
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedByte()I
move-result v3
.line 6
invoke-virtual {p1, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
.line 7
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result p1
.line 8
iget v4, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFace:I
const/4 v7, 0x0
move-object v2, p2
move v5, v0
move v6, v8
invoke-static/range {v2 .. v7}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->attachFontFace(Landroid/text/SpannableStringBuilder;IIIII)V
.line 9
iget v4, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultColorRgba:I
move v3, p1
invoke-static/range {v2 .. v7}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->attachColor(Landroid/text/SpannableStringBuilder;IIIII)V
return-void
.end method
.method private static assertTrue(Z)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
if-eqz p0, :cond_0
return-void
.line 1
:cond_0
new-instance p0, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
const-string v0, "Unexpected subtitle format."
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method private static attachColor(Landroid/text/SpannableStringBuilder;IIIII)V
.locals 0
if-eq p1, p2, :cond_0
and-int/lit16 p2, p1, 0xff
shl-int/lit8 p2, p2, 0x18
ushr-int/lit8 p1, p1, 0x8
or-int/2addr p1, p2
.line 1
new-instance p2, Landroid/text/style/ForegroundColorSpan;
invoke-direct {p2, p1}, Landroid/text/style/ForegroundColorSpan;-><init>(I)V
or-int/lit8 p1, p5, 0x21
invoke-virtual {p0, p2, p3, p4, p1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:cond_0
return-void
.end method
.method private static attachFontFace(Landroid/text/SpannableStringBuilder;IIIII)V
.locals 5
if-eq p1, p2, :cond_7
or-int/lit8 p2, p5, 0x21
and-int/lit8 p5, p1, 0x1
const/4 v0, 0x0
const/4 v1, 0x1
if-eqz p5, :cond_0
move p5, v1
goto :goto_0
:cond_0
move p5, v0
:goto_0
and-int/lit8 v2, p1, 0x2
if-eqz v2, :cond_1
move v2, v1
goto :goto_1
:cond_1
move v2, v0
:goto_1
if-eqz p5, :cond_3
if-eqz v2, :cond_2
.line 1
new-instance v3, Landroid/text/style/StyleSpan;
const/4 v4, 0x3
invoke-direct {v3, v4}, Landroid/text/style/StyleSpan;-><init>(I)V
invoke-virtual {p0, v3, p3, p4, p2}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
goto :goto_2
.line 2
:cond_2
new-instance v3, Landroid/text/style/StyleSpan;
invoke-direct {v3, v1}, Landroid/text/style/StyleSpan;-><init>(I)V
invoke-virtual {p0, v3, p3, p4, p2}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
goto :goto_2
:cond_3
if-eqz v2, :cond_4
.line 3
new-instance v3, Landroid/text/style/StyleSpan;
const/4 v4, 0x2
invoke-direct {v3, v4}, Landroid/text/style/StyleSpan;-><init>(I)V
invoke-virtual {p0, v3, p3, p4, p2}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:cond_4
:goto_2
and-int/lit8 p1, p1, 0x4
if-eqz p1, :cond_5
goto :goto_3
:cond_5
move v1, v0
:goto_3
if-eqz v1, :cond_6
.line 4
new-instance p1, Landroid/text/style/UnderlineSpan;
invoke-direct {p1}, Landroid/text/style/UnderlineSpan;-><init>()V
invoke-virtual {p0, p1, p3, p4, p2}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:cond_6
if-nez v1, :cond_7
if-nez p5, :cond_7
if-nez v2, :cond_7
.line 5
new-instance p1, Landroid/text/style/StyleSpan;
invoke-direct {p1, v0}, Landroid/text/style/StyleSpan;-><init>(I)V
invoke-virtual {p0, p1, p3, p4, p2}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:cond_7
return-void
.end method
.method private static attachFontFamily(Landroid/text/SpannableStringBuilder;Ljava/lang/String;Ljava/lang/String;III)V
.locals 0
if-eq p1, p2, :cond_0
.line 1
new-instance p2, Landroid/text/style/TypefaceSpan;
invoke-direct {p2, p1}, Landroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;)V
or-int/lit8 p1, p5, 0x21
invoke-virtual {p0, p2, p3, p4, p1}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
:cond_0
return-void
.end method
.method private decodeInitializationData(Ljava/util/List;)V
.locals 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"[B>;)V"
}
.end annotation
const v0, 0x3f59999a # 0.85f
const-string v1, "sans-serif"
const/4 v2, 0x0
if-eqz p1, :cond_4
.line 1
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v3
const/4 v4, 0x1
if-ne v3, v4, :cond_4
.line 2
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, [B
array-length v3, v3
const/16 v5, 0x30
if-eq v3, v5, :cond_0
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, [B
array-length v3, v3
const/16 v5, 0x35
if-ne v3, v5, :cond_4
.line 3
:cond_0
invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, [B
const/16 v3, 0x18
.line 4
aget-byte v5, p1, v3
iput v5, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFace:I
const/16 v5, 0x1a
.line 5
aget-byte v5, p1, v5
and-int/lit16 v5, v5, 0xff
shl-int/lit8 v3, v5, 0x18
const/16 v5, 0x1b
aget-byte v5, p1, v5
and-int/lit16 v5, v5, 0xff
shl-int/lit8 v5, v5, 0x10
or-int/2addr v3, v5
const/16 v5, 0x1c
aget-byte v5, p1, v5
and-int/lit16 v5, v5, 0xff
shl-int/lit8 v5, v5, 0x8
or-int/2addr v3, v5
const/16 v5, 0x1d
aget-byte v5, p1, v5
and-int/lit16 v5, v5, 0xff
or-int/2addr v3, v5
iput v3, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultColorRgba:I
.line 6
new-instance v3, Ljava/lang/String;
array-length v5, p1
const/16 v6, 0x2b
sub-int/2addr v5, v6
invoke-direct {v3, p1, v6, v5}, Ljava/lang/String;-><init>([BII)V
const-string v5, "Serif"
.line 7
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1
const-string v1, "serif"
:cond_1
iput-object v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFamily:Ljava/lang/String;
const/16 v1, 0x19
.line 8
aget-byte v1, p1, v1
mul-int/lit8 v1, v1, 0x14
iput v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->calculatedVideoTrackHeight:I
.line 9
aget-byte v3, p1, v2
and-int/lit8 v3, v3, 0x20
if-eqz v3, :cond_2
move v2, v4
:cond_2
iput-boolean v2, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->customVerticalPlacement:Z
if-eqz v2, :cond_3
const/16 v0, 0xa
.line 10
aget-byte v0, p1, v0
and-int/lit16 v0, v0, 0xff
shl-int/lit8 v0, v0, 0x8
const/16 v2, 0xb
aget-byte p1, p1, v2
and-int/lit16 p1, p1, 0xff
or-int/2addr p1, v0
int-to-float p1, p1
int-to-float v0, v1
div-float/2addr p1, v0
.line 11
iput p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultVerticalPlacement:F
const/4 v0, 0x0
const v1, 0x3f733333 # 0.95f
.line 12
invoke-static {p1, v0, v1}, Lcom/google/android/exoplayer2/util/Util;->constrainValue(FFF)F
move-result p1
iput p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultVerticalPlacement:F
goto :goto_0
.line 13
:cond_3
iput v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultVerticalPlacement:F
goto :goto_0
.line 14
:cond_4
iput v2, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFace:I
const/4 p1, -0x1
.line 15
iput p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultColorRgba:I
.line 16
iput-object v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFamily:Ljava/lang/String;
.line 17
iput-boolean v2, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->customVerticalPlacement:Z
.line 18
iput v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultVerticalPlacement:F
:goto_0
return-void
.end method
.method private static readSubtitleText(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Ljava/lang/String;
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
const/4 v1, 0x2
if-lt v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
invoke-static {v0}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->assertTrue(Z)V
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
if-nez v0, :cond_1
const-string p0, ""
return-object p0
.line 3
:cond_1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v2
if-lt v2, v1, :cond_3
.line 4
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->peekChar()C
move-result v1
const v2, 0xfeff
if-eq v1, v2, :cond_2
const v2, 0xfffe
if-ne v1, v2, :cond_3
:cond_2
const-string v1, "UTF-16"
.line 5
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readString(ILjava/nio/charset/Charset;)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_3
const-string v1, "UTF-8"
.line 6
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readString(ILjava/nio/charset/Charset;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
.locals 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
iget-object p3, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p3, p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 2
iget-object p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {p1}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->readSubtitleText(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Ljava/lang/String;
move-result-object p1
.line 3
invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z
move-result p2
if-eqz p2, :cond_0
.line 4
sget-object p1, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;->EMPTY:Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;
return-object p1
.line 5
:cond_0
new-instance p2, Landroid/text/SpannableStringBuilder;
invoke-direct {p2, p1}, Landroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
.line 6
iget v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFace:I
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {p2}, Landroid/text/SpannableStringBuilder;->length()I
move-result v4
const/high16 v5, 0xff0000
move-object v0, p2
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->attachFontFace(Landroid/text/SpannableStringBuilder;IIIII)V
.line 7
iget v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultColorRgba:I
const/4 v2, -0x1
invoke-virtual {p2}, Landroid/text/SpannableStringBuilder;->length()I
move-result v4
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->attachColor(Landroid/text/SpannableStringBuilder;IIIII)V
.line 8
iget-object v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultFontFamily:Ljava/lang/String;
invoke-virtual {p2}, Landroid/text/SpannableStringBuilder;->length()I
move-result v4
const-string v2, "sans-serif"
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->attachFontFamily(Landroid/text/SpannableStringBuilder;Ljava/lang/String;Ljava/lang/String;III)V
.line 9
iget p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->defaultVerticalPlacement:F
move v3, p1
.line 10
:goto_0
iget-object p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result p1
const/16 p3, 0x8
if-lt p1, p3, :cond_5
.line 11
iget-object p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result p1
.line 12
iget-object p3, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result p3
.line 13
iget-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v0
.line 14
sget v1, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->TYPE_STYL:I
const/4 v2, 0x2
const/4 v4, 0x1
const/4 v5, 0x0
if-ne v0, v1, :cond_2
.line 15
iget-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
if-lt v0, v2, :cond_1
goto :goto_1
:cond_1
move v4, v5
:goto_1
invoke-static {v4}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->assertTrue(Z)V
.line 16
iget-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
:goto_2
if-ge v5, v0, :cond_4
.line 17
iget-object v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-direct {p0, v1, p2}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->applyStyleRecord(Lcom/google/android/exoplayer2/util/ParsableByteArray;Landroid/text/SpannableStringBuilder;)V
add-int/lit8 v5, v5, 0x1
goto :goto_2
.line 18
:cond_2
sget v1, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->TYPE_TBOX:I
if-ne v0, v1, :cond_4
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->customVerticalPlacement:Z
if-eqz v0, :cond_4
.line 19
iget-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
if-lt v0, v2, :cond_3
goto :goto_3
:cond_3
move v4, v5
:goto_3
invoke-static {v4}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->assertTrue(Z)V
.line 20
iget-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readUnsignedShort()I
move-result v0
int-to-float v0, v0
.line 21
iget v1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->calculatedVideoTrackHeight:I
int-to-float v1, v1
div-float/2addr v0, v1
const/4 v1, 0x0
const v2, 0x3f733333 # 0.95f
.line 22
invoke-static {v0, v1, v2}, Lcom/google/android/exoplayer2/util/Util;->constrainValue(FFF)F
move-result v3
.line 23
:cond_4
iget-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gDecoder;->parsableByteArray:Lcom/google/android/exoplayer2/util/ParsableByteArray;
add-int/2addr p1, p3
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
goto :goto_0
.line 24
:cond_5
new-instance p1, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;
new-instance p3, Lcom/google/android/exoplayer2/text/Cue;
const/4 v2, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x1
const/high16 v7, -0x80000000
const/4 v8, 0x1
move-object v0, p3
move-object v1, p2
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
invoke-direct {p1, p3}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;-><init>(Lcom/google/android/exoplayer2/text/Cue;)V
return-object p1
.end method
@@ -0,0 +1,151 @@
.class final Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;
.super Ljava/lang/Object;
.source "Tx3gSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# static fields
.field public static final EMPTY:Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;
# instance fields
.field private final cues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 1
.line 1
new-instance v0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;->EMPTY:Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;
return-void
.end method
.method private constructor <init>()V
.locals 1
.line 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 4
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;->cues:Ljava/util/List;
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/text/Cue;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;->cues:Ljava/util/List;
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-ltz p1, :cond_0
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/text/tx3g/Tx3gSubtitle;->cues:Ljava/util/List;
goto :goto_0
:cond_0
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object p1
:goto_0
return-object p1
.end method
.method public getEventTime(I)J
.locals 2
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
.line 1
:goto_0
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
const-wide/16 v0, 0x0
return-wide v0
.end method
.method public getEventTimeCount()I
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 2
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-gez p1, :cond_0
const/4 p1, 0x0
goto :goto_0
:cond_0
const/4 p1, -0x1
:goto_0
return p1
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,300 @@
.class public final Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;
.super Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
.source "Mp4WebvttDecoder.java"
# static fields
.field private static final BOX_HEADER_SIZE:I = 0x8
.field private static final TYPE_payl:I
.field private static final TYPE_sttg:I
.field private static final TYPE_vttc:I
# instance fields
.field private final builder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.field private final sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const-string v0, "payl"
.line 1
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->TYPE_payl:I
const-string v0, "sttg"
.line 2
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->TYPE_sttg:I
const-string v0, "vttc"
.line 3
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getIntegerCodeForString(Ljava/lang/String;)I
move-result v0
sput v0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->TYPE_vttc:I
return-void
.end method
.method public constructor <init>()V
.locals 1
const-string v0, "Mp4WebvttDecoder"
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;-><init>(Ljava/lang/String;)V
.line 2
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/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 3
new-instance v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->builder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
return-void
.end method
.method private static parseVttCueBox(Lcom/google/android/exoplayer2/util/ParsableByteArray;Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;I)Lcom/google/android/exoplayer2/text/Cue;
.locals 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->reset()V
:cond_0
:goto_0
if-lez p2, :cond_3
const/16 v0, 0x8
if-lt p2, v0, :cond_2
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v1
.line 3
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result v2
add-int/lit8 p2, p2, -0x8
sub-int/2addr v1, v0
.line 4
new-instance v0, Ljava/lang/String;
iget-object v3, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v4
invoke-direct {v0, v3, v4, v1}, Ljava/lang/String;-><init>([BII)V
.line 5
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
sub-int/2addr p2, v1
.line 6
sget v1, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->TYPE_sttg:I
if-ne v2, v1, :cond_1
.line 7
invoke-static {v0, p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;->parseCueSettingsList(Ljava/lang/String;Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;)V
goto :goto_0
.line 8
:cond_1
sget v1, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->TYPE_payl:I
if-ne v2, v1, :cond_0
const/4 v1, 0x0
.line 9
invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
.line 10
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v2
.line 11
invoke-static {v1, v0, p1, v2}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;->parseCueText(Ljava/lang/String;Ljava/lang/String;Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;Ljava/util/List;)V
goto :goto_0
.line 12
:cond_2
new-instance p0, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
const-string p1, "Incomplete vtt cue box header found."
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;-><init>(Ljava/lang/String;)V
throw p0
.line 13
:cond_3
invoke-virtual {p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->build()Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public bridge synthetic decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->decode([BIZ)Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;
move-result-object p1
return-object p1
.end method
.method public decode([BIZ)Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 2
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p3, p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 3
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 4
:goto_0
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result p2
if-lez p2, :cond_2
.line 5
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result p2
const/16 p3, 0x8
if-lt p2, p3, :cond_1
.line 6
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result p2
.line 7
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readInt()I
move-result p3
.line 8
sget v0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->TYPE_vttc:I
if-ne p3, v0, :cond_0
.line 9
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->builder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
add-int/lit8 p2, p2, -0x8
invoke-static {p3, v0, p2}, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->parseVttCueBox(Lcom/google/android/exoplayer2/util/ParsableByteArray;Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;I)Lcom/google/android/exoplayer2/text/Cue;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_0
.line 10
:cond_0
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder;->sampleData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
add-int/lit8 p2, p2, -0x8
invoke-virtual {p3, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->skipBytes(I)V
goto :goto_0
.line 11
:cond_1
new-instance p1, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
const-string p2, "Incomplete Mp4Webvtt Top Level box header found."
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;-><init>(Ljava/lang/String;)V
throw p1
.line 12
:cond_2
new-instance p2, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;
invoke-direct {p2, p1}, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;-><init>(Ljava/util/List;)V
return-object p2
.end method
@@ -0,0 +1,126 @@
.class final Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;
.super Ljava/lang/Object;
.source "Mp4WebvttSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private final cues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/util/List;)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {p1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;->cues:Ljava/util/List;
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-ltz p1, :cond_0
.line 1
iget-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/Mp4WebvttSubtitle;->cues:Ljava/util/List;
goto :goto_0
:cond_0
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object p1
:goto_0
return-object p1
.end method
.method public getEventTime(I)J
.locals 2
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
.line 1
:goto_0
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
const-wide/16 v0, 0x0
return-wide v0
.end method
.method public getEventTimeCount()I
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 2
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
if-gez p1, :cond_0
const/4 p1, 0x0
goto :goto_0
:cond_0
const/4 p1, -0x1
:goto_0
return p1
.end method
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle$FontSizeUnit;
.super Ljava/lang/Object;
.source "WebvttCssStyle.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "FontSizeUnit"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,21 @@
.class public interface abstract annotation Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle$StyleFlags;
.super Ljava/lang/Object;
.source "WebvttCssStyle.java"
# interfaces
.implements Ljava/lang/annotation/Annotation;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2609
name = "StyleFlags"
.end annotation
.annotation runtime Ljava/lang/annotation/Retention;
value = .enum Ljava/lang/annotation/RetentionPolicy;->SOURCE:Ljava/lang/annotation/RetentionPolicy;
.end annotation
@@ -0,0 +1,729 @@
.class final Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.super Ljava/lang/Object;
.source "WebvttCssStyle.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle$FontSizeUnit;,
Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle$StyleFlags;
}
.end annotation
# static fields
.field public static final FONT_SIZE_UNIT_EM:I = 0x2
.field public static final FONT_SIZE_UNIT_PERCENT:I = 0x3
.field public static final FONT_SIZE_UNIT_PIXEL:I = 0x1
.field private static final OFF:I = 0x0
.field private static final ON:I = 0x1
.field public static final STYLE_BOLD:I = 0x1
.field public static final STYLE_BOLD_ITALIC:I = 0x3
.field public static final STYLE_ITALIC:I = 0x2
.field public static final STYLE_NORMAL:I = 0x0
.field public static final UNSPECIFIED:I = -0x1
# instance fields
.field private backgroundColor:I
.field private bold:I
.field private fontColor:I
.field private fontFamily:Ljava/lang/String;
.field private fontSize:F
.field private fontSizeUnit:I
.field private hasBackgroundColor:Z
.field private hasFontColor:Z
.field private italic:I
.field private linethrough:I
.field private targetClasses:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private targetId:Ljava/lang/String;
.field private targetTag:Ljava/lang/String;
.field private targetVoice:Ljava/lang/String;
.field private textAlign:Landroid/text/Layout$Alignment;
.field private underline:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->reset()V
return-void
.end method
.method private static updateScoreForMatch(ILjava/lang/String;Ljava/lang/String;I)I
.locals 1
.line 1
invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-nez v0, :cond_2
const/4 v0, -0x1
if-ne p0, v0, :cond_0
goto :goto_0
.line 2
:cond_0
invoke-virtual {p1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_1
add-int v0, p0, p3
:cond_1
return v0
:cond_2
:goto_0
return p0
.end method
# virtual methods
.method public cascadeFrom(Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;)V
.locals 2
.line 1
iget-boolean v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasFontColor:Z
if-eqz v0, :cond_0
.line 2
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontColor:I
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->setFontColor(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.line 3
:cond_0
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->bold:I
const/4 v1, -0x1
if-eq v0, v1, :cond_1
.line 4
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->bold:I
.line 5
:cond_1
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->italic:I
if-eq v0, v1, :cond_2
.line 6
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->italic:I
.line 7
:cond_2
iget-object v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontFamily:Ljava/lang/String;
if-eqz v0, :cond_3
.line 8
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontFamily:Ljava/lang/String;
.line 9
:cond_3
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->linethrough:I
if-ne v0, v1, :cond_4
.line 10
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->linethrough:I
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->linethrough:I
.line 11
:cond_4
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->underline:I
if-ne v0, v1, :cond_5
.line 12
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->underline:I
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->underline:I
.line 13
:cond_5
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->textAlign:Landroid/text/Layout$Alignment;
if-nez v0, :cond_6
.line 14
iget-object v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->textAlign:Landroid/text/Layout$Alignment;
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->textAlign:Landroid/text/Layout$Alignment;
.line 15
:cond_6
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSizeUnit:I
if-ne v0, v1, :cond_7
.line 16
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSizeUnit:I
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSizeUnit:I
.line 17
iget v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSize:F
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSize:F
.line 18
:cond_7
iget-boolean v0, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasBackgroundColor:Z
if-eqz v0, :cond_8
.line 19
iget p1, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->backgroundColor:I
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->setBackgroundColor(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
:cond_8
return-void
.end method
.method public getBackgroundColor()I
.locals 2
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasBackgroundColor:Z
if-eqz v0, :cond_0
.line 2
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->backgroundColor:I
return v0
.line 3
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Background color not defined."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getFontColor()I
.locals 2
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasFontColor:Z
if-eqz v0, :cond_0
.line 2
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontColor:I
return v0
.line 3
:cond_0
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Font color not defined"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getFontFamily()Ljava/lang/String;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontFamily:Ljava/lang/String;
return-object v0
.end method
.method public getFontSize()F
.locals 1
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSize:F
return v0
.end method
.method public getFontSizeUnit()I
.locals 1
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSizeUnit:I
return v0
.end method
.method public getSpecificityScore(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)I
.locals 3
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetId:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetTag:Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetClasses:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetVoice:Ljava/lang/String;
.line 2
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
.line 3
invoke-virtual {p2}, Ljava/lang/String;->isEmpty()Z
move-result p1
return p1
.line 4
:cond_0
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetId:Ljava/lang/String;
const/high16 v1, 0x40000000 # 2.0f
const/4 v2, 0x0
invoke-static {v2, v0, p1, v1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->updateScoreForMatch(ILjava/lang/String;Ljava/lang/String;I)I
move-result p1
.line 5
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetTag:Ljava/lang/String;
const/4 v1, 0x2
invoke-static {p1, v0, p2, v1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->updateScoreForMatch(ILjava/lang/String;Ljava/lang/String;I)I
move-result p1
.line 6
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetVoice:Ljava/lang/String;
const/4 v0, 0x4
invoke-static {p1, p2, p4, v0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->updateScoreForMatch(ILjava/lang/String;Ljava/lang/String;I)I
move-result p1
const/4 p2, -0x1
if-eq p1, p2, :cond_2
.line 7
invoke-static {p3}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p2
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetClasses:Ljava/util/List;
invoke-interface {p2, p3}, Ljava/util/List;->containsAll(Ljava/util/Collection;)Z
move-result p2
if-nez p2, :cond_1
goto :goto_0
.line 8
:cond_1
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetClasses:Ljava/util/List;
invoke-interface {p2}, Ljava/util/List;->size()I
move-result p2
mul-int/2addr p2, v0
add-int/2addr p2, p1
return p2
:cond_2
:goto_0
return v2
.end method
.method public getStyle()I
.locals 4
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->bold:I
const/4 v1, -0x1
if-ne v0, v1, :cond_0
iget v2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->italic:I
if-ne v2, v1, :cond_0
return v1
:cond_0
const/4 v1, 0x0
const/4 v2, 0x1
if-ne v0, v2, :cond_1
move v0, v2
goto :goto_0
:cond_1
move v0, v1
.line 2
:goto_0
iget v3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->italic:I
if-ne v3, v2, :cond_2
const/4 v1, 0x2
:cond_2
or-int/2addr v0, v1
return v0
.end method
.method public getTextAlign()Landroid/text/Layout$Alignment;
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->textAlign:Landroid/text/Layout$Alignment;
return-object v0
.end method
.method public hasBackgroundColor()Z
.locals 1
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasBackgroundColor:Z
return v0
.end method
.method public hasFontColor()Z
.locals 1
.line 1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasFontColor:Z
return v0
.end method
.method public isLinethrough()Z
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->linethrough:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
return v1
.end method
.method public isUnderline()Z
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->underline:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
return v1
.end method
.method public reset()V
.locals 2
const-string v0, ""
.line 1
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetId:Ljava/lang/String;
.line 2
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetTag:Ljava/lang/String;
.line 3
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v1
iput-object v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetClasses:Ljava/util/List;
.line 4
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetVoice:Ljava/lang/String;
const/4 v0, 0x0
.line 5
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontFamily:Ljava/lang/String;
const/4 v1, 0x0
.line 6
iput-boolean v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasFontColor:Z
.line 7
iput-boolean v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasBackgroundColor:Z
const/4 v1, -0x1
.line 8
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->linethrough:I
.line 9
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->underline:I
.line 10
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->bold:I
.line 11
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->italic:I
.line 12
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSizeUnit:I
.line 13
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->textAlign:Landroid/text/Layout$Alignment;
return-void
.end method
.method public setBackgroundColor(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->backgroundColor:I
const/4 p1, 0x1
.line 2
iput-boolean p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasBackgroundColor:Z
return-object p0
.end method
.method public setBold(Z)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->bold:I
return-object p0
.end method
.method public setFontColor(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontColor:I
const/4 p1, 0x1
.line 2
iput-boolean p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->hasFontColor:Z
return-object p0
.end method
.method public setFontFamily(Ljava/lang/String;)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
invoke-static {p1}, Lcom/google/android/exoplayer2/util/Util;->toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontFamily:Ljava/lang/String;
return-object p0
.end method
.method public setFontSize(F)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSize:F
return-object p0
.end method
.method public setFontSizeUnit(S)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->fontSizeUnit:I
return-object p0
.end method
.method public setItalic(Z)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->italic:I
return-object p0
.end method
.method public setLinethrough(Z)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->linethrough:I
return-object p0
.end method
.method public setTargetClasses([Ljava/lang/String;)V
.locals 0
.line 1
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetClasses:Ljava/util/List;
return-void
.end method
.method public setTargetId(Ljava/lang/String;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetId:Ljava/lang/String;
return-void
.end method
.method public setTargetTagName(Ljava/lang/String;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetTag:Ljava/lang/String;
return-void
.end method
.method public setTargetVoice(Ljava/lang/String;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->targetVoice:Ljava/lang/String;
return-void
.end method
.method public setTextAlign(Landroid/text/Layout$Alignment;)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->textAlign:Landroid/text/Layout$Alignment;
return-object p0
.end method
.method public setUnderline(Z)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;->underline:I
return-object p0
.end method
@@ -0,0 +1,83 @@
.class synthetic Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$1;
.super Ljava/lang/Object;
.source "WebvttCue.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1009
name = null
.end annotation
# static fields
.field public static final synthetic $SwitchMap$android$text$Layout$Alignment:[I
# direct methods
.method public static constructor <clinit>()V
.locals 3
.line 1
invoke-static {}, Landroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment;
move-result-object v0
array-length v0, v0
new-array v0, v0, [I
sput-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$1;->$SwitchMap$android$text$Layout$Alignment:[I
:try_start_0
sget-object v1, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;
invoke-virtual {v1}, Landroid/text/Layout$Alignment;->ordinal()I
move-result v1
const/4 v2, 0x1
aput v2, v0, v1
:try_end_0
.catch Ljava/lang/NoSuchFieldError; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
:try_start_1
sget-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$1;->$SwitchMap$android$text$Layout$Alignment:[I
sget-object v1, Landroid/text/Layout$Alignment;->ALIGN_CENTER:Landroid/text/Layout$Alignment;
invoke-virtual {v1}, Landroid/text/Layout$Alignment;->ordinal()I
move-result v1
const/4 v2, 0x2
aput v2, v0, v1
:try_end_1
.catch Ljava/lang/NoSuchFieldError; {:try_start_1 .. :try_end_1} :catch_1
:catch_1
:try_start_2
sget-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$1;->$SwitchMap$android$text$Layout$Alignment:[I
sget-object v1, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
invoke-virtual {v1}, Landroid/text/Layout$Alignment;->ordinal()I
move-result v1
const/4 v2, 0x3
aput v2, v0, v1
:try_end_2
.catch Ljava/lang/NoSuchFieldError; {:try_start_2 .. :try_end_2} :catch_2
:catch_2
return-void
.end method
@@ -0,0 +1,325 @@
.class public final Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.super Ljava/lang/Object;
.source "WebvttCue.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Builder"
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "WebvttCueBuilder"
# instance fields
.field private endTime:J
.field private line:F
.field private lineAnchor:I
.field private lineType:I
.field private position:F
.field private positionAnchor:I
.field private startTime:J
.field private text:Landroid/text/SpannableStringBuilder;
.field private textAlignment:Landroid/text/Layout$Alignment;
.field private width:F
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->reset()V
return-void
.end method
.method private derivePositionAnchorFromAlignment()Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 4
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->textAlignment:Landroid/text/Layout$Alignment;
if-nez v0, :cond_0
const/high16 v0, -0x80000000
.line 2
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
goto :goto_0
.line 3
:cond_0
sget-object v1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$1;->$SwitchMap$android$text$Layout$Alignment:[I
invoke-virtual {v0}, Landroid/text/Layout$Alignment;->ordinal()I
move-result v0
aget v0, v1, v0
const/4 v1, 0x0
const/4 v2, 0x1
if-eq v0, v2, :cond_3
const/4 v3, 0x2
if-eq v0, v3, :cond_2
const/4 v2, 0x3
if-eq v0, v2, :cond_1
const-string v0, "Unrecognized alignment: "
.line 4
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->textAlignment:Landroid/text/Layout$Alignment;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "WebvttCueBuilder"
invoke-static {v2, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 5
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
goto :goto_0
.line 6
:cond_1
iput v3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
goto :goto_0
.line 7
:cond_2
iput v2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
goto :goto_0
.line 8
:cond_3
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
:goto_0
return-object p0
.end method
# virtual methods
.method public build()Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
.locals 15
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->position:F
const/4 v1, 0x1
cmpl-float v0, v0, v1
if-eqz v0, :cond_0
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
const/high16 v1, -0x80000000
if-ne v0, v1, :cond_0
.line 2
invoke-direct {p0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->derivePositionAnchorFromAlignment()Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.line 3
:cond_0
new-instance v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
iget-wide v3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->startTime:J
iget-wide v5, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->endTime:J
iget-object v7, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->text:Landroid/text/SpannableStringBuilder;
iget-object v8, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->textAlignment:Landroid/text/Layout$Alignment;
iget v9, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->line:F
iget v10, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->lineType:I
iget v11, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->lineAnchor:I
iget v12, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->position:F
iget v13, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
iget v14, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->width:F
move-object v2, v0
invoke-direct/range {v2 .. v14}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;-><init>(JJLjava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
return-object v0
.end method
.method public reset()V
.locals 2
const-wide/16 v0, 0x0
.line 1
iput-wide v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->startTime:J
.line 2
iput-wide v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->endTime:J
const/4 v0, 0x0
.line 3
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->text:Landroid/text/SpannableStringBuilder;
.line 4
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->textAlignment:Landroid/text/Layout$Alignment;
const/4 v0, 0x1
.line 5
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->line:F
const/high16 v1, -0x80000000
.line 6
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->lineType:I
.line 7
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->lineAnchor:I
.line 8
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->position:F
.line 9
iput v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
.line 10
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->width:F
return-void
.end method
.method public setEndTime(J)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput-wide p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->endTime:J
return-object p0
.end method
.method public setLine(F)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->line:F
return-object p0
.end method
.method public setLineAnchor(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->lineAnchor:I
return-object p0
.end method
.method public setLineType(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->lineType:I
return-object p0
.end method
.method public setPosition(F)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->position:F
return-object p0
.end method
.method public setPositionAnchor(I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->positionAnchor:I
return-object p0
.end method
.method public setStartTime(J)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput-wide p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->startTime:J
return-object p0
.end method
.method public setText(Landroid/text/SpannableStringBuilder;)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->text:Landroid/text/SpannableStringBuilder;
return-object p0
.end method
.method public setTextAlignment(Landroid/text/Layout$Alignment;)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->textAlignment:Landroid/text/Layout$Alignment;
return-object p0
.end method
.method public setWidth(F)Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.locals 0
.line 1
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->width:F
return-object p0
.end method
@@ -0,0 +1,137 @@
.class final Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
.super Lcom/google/android/exoplayer2/text/Cue;
.source "WebvttCue.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
}
.end annotation
# instance fields
.field public final endTime:J
.field public final startTime:J
# direct methods
.method public constructor <init>(JJLjava/lang/CharSequence;)V
.locals 13
const/4 v6, 0x0
const/4 v7, 0x1
const/high16 v8, -0x80000000
const/high16 v9, -0x80000000
const/4 v10, 0x1
const/high16 v11, -0x80000000
const/4 v12, 0x1
move-object v0, p0
move-wide v1, p1
move-wide/from16 v3, p3
move-object/from16 v5, p5
.line 2
invoke-direct/range {v0 .. v12}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;-><init>(JJLjava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
return-void
.end method
.method public constructor <init>(JJLjava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
.locals 10
move-object v9, p0
move-object v0, p0
move-object v1, p5
move-object/from16 v2, p6
move/from16 v3, p7
move/from16 v4, p8
move/from16 v5, p9
move/from16 v6, p10
move/from16 v7, p11
move/from16 v8, p12
.line 3
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/text/Cue;-><init>(Ljava/lang/CharSequence;Landroid/text/Layout$Alignment;FIIFIF)V
move-wide v0, p1
.line 4
iput-wide v0, v9, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;->startTime:J
move-wide v0, p3
.line 5
iput-wide v0, v9, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;->endTime:J
return-void
.end method
.method public constructor <init>(Ljava/lang/CharSequence;)V
.locals 6
const-wide/16 v1, 0x0
const-wide/16 v3, 0x0
move-object v0, p0
move-object v5, p1
.line 1
invoke-direct/range {v0 .. v5}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;-><init>(JJLjava/lang/CharSequence;)V
return-void
.end method
# virtual methods
.method public isNormalCue()Z
.locals 2
.line 1
iget v0, p0, Lcom/google/android/exoplayer2/text/Cue;->line:F
const/4 v1, 0x1
cmpl-float v0, v0, v1
if-nez v0, :cond_0
iget v0, p0, Lcom/google/android/exoplayer2/text/Cue;->position:F
cmpl-float v0, v0, v1
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
@@ -0,0 +1,177 @@
.class final Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;
.super Ljava/lang/Object;
.source "WebvttCueParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "StartTag"
.end annotation
# static fields
.field private static final NO_CLASSES:[Ljava/lang/String;
# instance fields
.field public final classes:[Ljava/lang/String;
.field public final name:Ljava/lang/String;
.field public final position:I
.field public final voice:Ljava/lang/String;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/String;
.line 1
sput-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;->NO_CLASSES:[Ljava/lang/String;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;->position:I
.line 3
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;->name:Ljava/lang/String;
.line 4
iput-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;->voice:Ljava/lang/String;
.line 5
iput-object p4, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;->classes:[Ljava/lang/String;
return-void
.end method
.method public static buildStartTag(Ljava/lang/String;I)Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;
.locals 4
.line 1
invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p0
.line 2
invoke-virtual {p0}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
const-string v0, " "
.line 3
invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
const/4 v1, -0x1
const/4 v2, 0x0
if-ne v0, v1, :cond_1
const-string v0, ""
goto :goto_0
.line 4
:cond_1
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
.line 5
invoke-virtual {p0, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
move-object v0, v1
:goto_0
const-string v1, "\\."
.line 6
invoke-virtual {p0, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p0
.line 7
aget-object v1, p0, v2
.line 8
array-length v2, p0
const/4 v3, 0x1
if-le v2, v3, :cond_2
.line 9
array-length v2, p0
invoke-static {p0, v3, v2}, Ljava/util/Arrays;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;
move-result-object p0
check-cast p0, [Ljava/lang/String;
goto :goto_1
.line 10
:cond_2
sget-object p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;->NO_CLASSES:[Ljava/lang/String;
.line 11
:goto_1
new-instance v2, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;
invoke-direct {v2, v1, p1, v0, p0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;-><init>(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;)V
return-object v2
.end method
.method public static buildWholeCueVirtualTag()Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;
.locals 4
.line 1
new-instance v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;
const/4 v1, 0x0
new-array v2, v1, [Ljava/lang/String;
const-string v3, ""
invoke-direct {v0, v3, v1, v3, v2}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StartTag;-><init>(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;)V
return-object v0
.end method
@@ -0,0 +1,85 @@
.class final Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;
.super Ljava/lang/Object;
.source "WebvttCueParser.java"
# interfaces
.implements Ljava/lang/Comparable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "StyleMatch"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/lang/Comparable<",
"Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;",
">;"
}
.end annotation
# instance fields
.field public final score:I
.field public final style:Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
# direct methods
.method public constructor <init>(ILcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;->score:I
.line 3
iput-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;->style:Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
return-void
.end method
# virtual methods
.method public compareTo(Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;)I
.locals 1
.param p1 # Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 2
iget v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;->score:I
iget p1, p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;->score:I
sub-int/2addr v0, p1
return v0
.end method
.method public bridge synthetic compareTo(Ljava/lang/Object;)I
.locals 0
.param p1 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 1
check-cast p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;->compareTo(Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser$StyleMatch;)I
move-result p1
return p1
.end method
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,358 @@
.class public final Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;
.super Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;
.source "WebvttDecoder.java"
# static fields
.field private static final COMMENT_START:Ljava/lang/String; = "NOTE"
.field private static final EVENT_COMMENT:I = 0x1
.field private static final EVENT_CUE:I = 0x3
.field private static final EVENT_END_OF_FILE:I = 0x0
.field private static final EVENT_NONE:I = -0x1
.field private static final EVENT_STYLE_BLOCK:I = 0x2
.field private static final STYLE_START:Ljava/lang/String; = "STYLE"
# instance fields
.field private final cssParser:Lcom/google/android/exoplayer2/text/webvtt/CssParser;
.field private final cueParser:Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;
.field private final definedStyles:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;",
">;"
}
.end annotation
.end field
.field private final parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.field private final webvttCueBuilder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
# direct methods
.method public constructor <init>()V
.locals 1
const-string v0, "WebvttDecoder"
.line 1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/text/SimpleSubtitleDecoder;-><init>(Ljava/lang/String;)V
.line 2
new-instance v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->cueParser:Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;
.line 3
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/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
.line 4
new-instance v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->webvttCueBuilder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
.line 5
new-instance v0, Lcom/google/android/exoplayer2/text/webvtt/CssParser;
invoke-direct {v0}, Lcom/google/android/exoplayer2/text/webvtt/CssParser;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->cssParser:Lcom/google/android/exoplayer2/text/webvtt/CssParser;
.line 6
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->definedStyles:Ljava/util/List;
return-void
.end method
.method private static getNextEvent(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
.locals 5
const/4 v0, 0x0
const/4 v1, -0x1
move v3, v0
move v2, v1
:goto_0
if-ne v2, v1, :cond_3
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v3
.line 2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object v2
if-nez v2, :cond_0
move v2, v0
goto :goto_0
:cond_0
const-string v4, "STYLE"
.line 3
invoke-virtual {v4, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_1
const/4 v2, 0x2
goto :goto_0
:cond_1
const-string v4, "NOTE"
.line 4
invoke-virtual {v4, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_2
const/4 v2, 0x1
goto :goto_0
:cond_2
const/4 v2, 0x3
goto :goto_0
.line 5
:cond_3
invoke-virtual {p0, v3}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->setPosition(I)V
return v2
.end method
.method private static skipComment(Lcom/google/android/exoplayer2/util/ParsableByteArray;)V
.locals 1
.line 1
:goto_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_0
goto :goto_0
:cond_0
return-void
.end method
# virtual methods
.method public bridge synthetic decode([BIZ)Lcom/google/android/exoplayer2/text/Subtitle;
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p0, p1, p2, p3}, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->decode([BIZ)Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;
move-result-object p1
return-object p1
.end method
.method public decode([BIZ)Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 2
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p3, p1, p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
.line 3
iget-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->webvttCueBuilder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->reset()V
.line 4
iget-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->definedStyles:Ljava/util/List;
invoke-interface {p1}, Ljava/util/List;->clear()V
.line 5
iget-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttParserUtil;->validateWebvttHeaderLine(Lcom/google/android/exoplayer2/util/ParsableByteArray;)V
.line 6
:goto_0
iget-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p1
if-nez p1, :cond_0
goto :goto_0
.line 7
:cond_0
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 8
:cond_1
:goto_1
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {p2}, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->getNextEvent(Lcom/google/android/exoplayer2/util/ParsableByteArray;)I
move-result p2
if-eqz p2, :cond_5
const/4 p3, 0x1
if-ne p2, p3, :cond_2
.line 9
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-static {p2}, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->skipComment(Lcom/google/android/exoplayer2/util/ParsableByteArray;)V
goto :goto_1
:cond_2
const/4 p3, 0x2
if-ne p2, p3, :cond_4
.line 10
invoke-virtual {p1}, Ljava/util/ArrayList;->isEmpty()Z
move-result p2
if-eqz p2, :cond_3
.line 11
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
.line 12
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->cssParser:Lcom/google/android/exoplayer2/text/webvtt/CssParser;
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
invoke-virtual {p2, p3}, Lcom/google/android/exoplayer2/text/webvtt/CssParser;->parseBlock(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Lcom/google/android/exoplayer2/text/webvtt/WebvttCssStyle;
move-result-object p2
if-eqz p2, :cond_1
.line 13
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->definedStyles:Ljava/util/List;
invoke-interface {p3, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_1
.line 14
:cond_3
new-instance p1, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
const-string p2, "A style block was found after the first cue."
invoke-direct {p1, p2}, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;-><init>(Ljava/lang/String;)V
throw p1
:cond_4
const/4 p3, 0x3
if-ne p2, p3, :cond_1
.line 15
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->cueParser:Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;
iget-object p3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->parsableWebvttData:Lcom/google/android/exoplayer2/util/ParsableByteArray;
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->webvttCueBuilder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
iget-object v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->definedStyles:Ljava/util/List;
invoke-virtual {p2, p3, v0, v1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;->parseCue(Lcom/google/android/exoplayer2/util/ParsableByteArray;Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;Ljava/util/List;)Z
move-result p2
if-eqz p2, :cond_1
.line 16
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->webvttCueBuilder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->build()Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 17
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttDecoder;->webvttCueBuilder:Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue$Builder;->reset()V
goto :goto_1
.line 18
:cond_5
new-instance p2, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;
invoke-direct {p2, p1}, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;-><init>(Ljava/util/List;)V
return-object p2
.end method
@@ -0,0 +1,277 @@
.class public final Lcom/google/android/exoplayer2/text/webvtt/WebvttParserUtil;
.super Ljava/lang/Object;
.source "WebvttParserUtil.java"
# static fields
.field private static final COMMENT:Ljava/util/regex/Pattern;
.field private static final HEADER:Ljava/util/regex/Pattern;
# direct methods
.method public static constructor <clinit>()V
.locals 1
const-string v0, "^NOTE(( |\t).*)?$"
.line 1
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttParserUtil;->COMMENT:Ljava/util/regex/Pattern;
const-string v0, "^\ufeff?WEBVTT(( |\t).*)?$"
.line 2
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttParserUtil;->HEADER:Ljava/util/regex/Pattern;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static findNextCueHeader(Lcom/google/android/exoplayer2/util/ParsableByteArray;)Ljava/util/regex/Matcher;
.locals 2
.line 1
:cond_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_2
.line 2
sget-object v1, Lcom/google/android/exoplayer2/text/webvtt/WebvttParserUtil;->COMMENT:Ljava/util/regex/Pattern;
invoke-virtual {v1, v0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v1
invoke-virtual {v1}, Ljava/util/regex/Matcher;->matches()Z
move-result v1
if-eqz v1, :cond_1
.line 3
:goto_0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_0
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 4
:cond_1
sget-object v1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCueParser;->CUE_HEADER_PATTERN:Ljava/util/regex/Pattern;
invoke-virtual {v1, v0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
.line 5
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v1
if-eqz v1, :cond_0
return-object v0
:cond_2
const/4 p0, 0x0
return-object p0
.end method
.method public static parsePercentage(Ljava/lang/String;)F
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NumberFormatException;
}
.end annotation
const-string v0, "%"
.line 1
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x0
.line 2
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F
move-result p0
const/high16 v0, 0x42c80000 # 100.0f
div-float/2addr p0, v0
return p0
.line 3
:cond_0
new-instance p0, Ljava/lang/NumberFormatException;
const-string v0, "Percentages must end with %"
invoke-direct {p0, v0}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static parseTimestampUs(Ljava/lang/String;)J
.locals 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NumberFormatException;
}
.end annotation
const-string v0, "\\."
const/4 v1, 0x2
.line 1
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String;
move-result-object p0
const/4 v0, 0x0
.line 2
aget-object v1, p0, v0
const-string v2, ":"
invoke-virtual {v1, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 3
array-length v2, v1
const-wide/16 v3, 0x0
:goto_0
if-ge v0, v2, :cond_0
aget-object v5, v1, v0
const-wide/16 v6, 0x3c
mul-long/2addr v3, v6
.line 4
invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v5
add-long/2addr v3, v5
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
const-wide/16 v0, 0x3e8
mul-long/2addr v3, v0
const/4 v2, 0x1
.line 5
aget-object p0, p0, v2
invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v5
add-long/2addr v5, v3
mul-long/2addr v5, v0
return-wide v5
.end method
.method public static validateWebvttHeaderLine(Lcom/google/android/exoplayer2/util/ParsableByteArray;)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
}
.end annotation
.line 1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->readLine()Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_0
.line 2
sget-object v0, Lcom/google/android/exoplayer2/text/webvtt/WebvttParserUtil;->HEADER:Ljava/util/regex/Pattern;
invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v0
if-eqz v0, :cond_0
return-void
.line 3
:cond_0
new-instance v0, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;
const-string v1, "Expected WEBVTT. Got "
invoke-static {v1, p0}, Lc/g;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/text/SubtitleDecoderException;-><init>(Ljava/lang/String;)V
throw v0
.end method
@@ -0,0 +1,352 @@
.class final Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;
.super Ljava/lang/Object;
.source "WebvttSubtitle.java"
# interfaces
.implements Lcom/google/android/exoplayer2/text/Subtitle;
# instance fields
.field private final cueTimesUs:[J
.field private final cues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;",
">;"
}
.end annotation
.end field
.field private final numCues:I
.field private final sortedCueTimesUs:[J
# direct methods
.method public constructor <init>(Ljava/util/List;)V
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->cues:Ljava/util/List;
.line 3
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
iput v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->numCues:I
mul-int/lit8 v0, v0, 0x2
.line 4
new-array v0, v0, [J
iput-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->cueTimesUs:[J
const/4 v0, 0x0
.line 5
:goto_0
iget v1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->numCues:I
if-ge v0, v1, :cond_0
.line 6
invoke-interface {p1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
mul-int/lit8 v2, v0, 0x2
.line 7
iget-object v3, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->cueTimesUs:[J
iget-wide v4, v1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;->startTime:J
aput-wide v4, v3, v2
add-int/lit8 v2, v2, 0x1
.line 8
iget-wide v4, v1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;->endTime:J
aput-wide v4, v3, v2
add-int/lit8 v0, v0, 0x1
goto :goto_0
.line 9
:cond_0
iget-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->cueTimesUs:[J
array-length v0, p1
invoke-static {p1, v0}, Ljava/util/Arrays;->copyOf([JI)[J
move-result-object p1
iput-object p1, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->sortedCueTimesUs:[J
.line 10
invoke-static {p1}, Ljava/util/Arrays;->sort([J)V
return-void
.end method
# virtual methods
.method public getCues(J)Ljava/util/List;
.locals 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(J)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/text/Cue;",
">;"
}
.end annotation
const/4 v0, 0x0
const/4 v1, 0x0
move-object v2, v0
move v3, v1
move-object v1, v2
.line 1
:goto_0
iget v4, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->numCues:I
if-ge v3, v4, :cond_5
.line 2
iget-object v4, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->cueTimesUs:[J
mul-int/lit8 v5, v3, 0x2
aget-wide v6, v4, v5
cmp-long v6, v6, p1
if-gtz v6, :cond_4
add-int/lit8 v5, v5, 0x1
aget-wide v5, v4, v5
cmp-long v4, p1, v5
if-gez v4, :cond_4
if-nez v2, :cond_0
.line 3
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 4
:cond_0
iget-object v4, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->cues:Ljava/util/List;
invoke-interface {v4, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
.line 5
invoke-virtual {v4}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;->isNormalCue()Z
move-result v5
if-eqz v5, :cond_3
if-nez v1, :cond_1
move-object v1, v4
goto :goto_1
:cond_1
const-string v5, "\n"
if-nez v0, :cond_2
.line 6
new-instance v0, Landroid/text/SpannableStringBuilder;
invoke-direct {v0}, Landroid/text/SpannableStringBuilder;-><init>()V
.line 7
iget-object v6, v1, Lcom/google/android/exoplayer2/text/Cue;->text:Ljava/lang/CharSequence;
invoke-virtual {v0, v6}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
move-result-object v6
invoke-virtual {v6, v5}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
move-result-object v5
iget-object v4, v4, Lcom/google/android/exoplayer2/text/Cue;->text:Ljava/lang/CharSequence;
invoke-virtual {v5, v4}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
goto :goto_1
.line 8
:cond_2
invoke-virtual {v0, v5}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
move-result-object v5
iget-object v4, v4, Lcom/google/android/exoplayer2/text/Cue;->text:Ljava/lang/CharSequence;
invoke-virtual {v5, v4}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
goto :goto_1
.line 9
:cond_3
invoke-virtual {v2, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:cond_4
:goto_1
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_5
if-eqz v0, :cond_6
.line 10
new-instance p1, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;
invoke-direct {p1, v0}, Lcom/google/android/exoplayer2/text/webvtt/WebvttCue;-><init>(Ljava/lang/CharSequence;)V
invoke-virtual {v2, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_2
:cond_6
if-eqz v1, :cond_7
.line 11
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:cond_7
:goto_2
if-eqz v2, :cond_8
return-object v2
.line 12
:cond_8
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object p1
return-object p1
.end method
.method public getEventTime(I)J
.locals 3
const/4 v0, 0x1
const/4 v1, 0x0
if-ltz p1, :cond_0
move v2, v0
goto :goto_0
:cond_0
move v2, v1
.line 1
:goto_0
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 2
iget-object v2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->sortedCueTimesUs:[J
array-length v2, v2
if-ge p1, v2, :cond_1
goto :goto_1
:cond_1
move v0, v1
:goto_1
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 3
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->sortedCueTimesUs:[J
aget-wide v1, v0, p1
return-wide v1
.end method
.method public getEventTimeCount()I
.locals 1
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->sortedCueTimesUs:[J
array-length v0, v0
return v0
.end method
.method public getNextEventTimeIndex(J)I
.locals 2
.line 1
iget-object v0, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->sortedCueTimesUs:[J
const/4 v1, 0x0
invoke-static {v0, p1, p2, v1, v1}, Lcom/google/android/exoplayer2/util/Util;->binarySearchCeil([JJZZ)I
move-result p1
.line 2
iget-object p2, p0, Lcom/google/android/exoplayer2/text/webvtt/WebvttSubtitle;->sortedCueTimesUs:[J
array-length p2, p2
if-ge p1, p2, :cond_0
goto :goto_0
:cond_0
const/4 p1, -0x1
:goto_0
return p1
.end method