DefaultHlsExtractorFactory.smali
.class public final Lcom/google/android/exoplayer2/source/hls/DefaultHlsExtractorFactory;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/google/android/exoplayer2/source/hls/HlsExtractorFactory;
# static fields
.field public static final AAC_FILE_EXTENSION:Ljava/lang/String; = ".aac"
.field public static final AC3_FILE_EXTENSION:Ljava/lang/String; = ".ac3"
.field public static final EC3_FILE_EXTENSION:Ljava/lang/String; = ".ec3"
.field public static final M4_FILE_EXTENSION_PREFIX:Ljava/lang/String; = ".m4"
.field public static final MP3_FILE_EXTENSION:Ljava/lang/String; = ".mp3"
.field public static final MP4_FILE_EXTENSION:Ljava/lang/String; = ".mp4"
.field public static final VTT_FILE_EXTENSION:Ljava/lang/String; = ".vtt"
.field public static final WEBVTT_FILE_EXTENSION:Ljava/lang/String; = ".webvtt"
# direct methods
.method public constructor <init>()V
.registers 1
.line 38
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final createExtractor(Lcom/google/android/exoplayer2/extractor/Extractor;Landroid/net/Uri;Lcom/google/android/exoplayer2/Format;Ljava/util/List;Lcom/google/android/exoplayer2/drm/DrmInitData;Lcom/google/android/exoplayer2/util/TimestampAdjuster;)Landroid/util/Pair;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/extractor/Extractor;",
"Landroid/net/Uri;",
"Lcom/google/android/exoplayer2/Format;",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/Format;",
">;",
"Lcom/google/android/exoplayer2/drm/DrmInitData;",
"Lcom/google/android/exoplayer2/util/TimestampAdjuster;",
")",
"Landroid/util/Pair<",
"Lcom/google/android/exoplayer2/extractor/Extractor;",
"Ljava/lang/Boolean;",
">;"
}
.end annotation
.line 53
invoke-virtual {p2}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String;
move-result-object p2
.line 56
iget-object v0, p3, Lcom/google/android/exoplayer2/Format;->sampleMimeType:Ljava/lang/String;
const-string v1, "text/vtt"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_b6
const-string v0, ".webvtt"
.line 57
invoke-virtual {p2, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_b6
const-string v0, ".vtt"
.line 58
invoke-virtual {p2, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_22
goto/16 :goto_b6
:cond_22
const-string v0, ".aac"
.line 60
invoke-virtual {p2, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_31
.line 62
new-instance p1, Lcom/google/android/exoplayer2/extractor/ts/AdtsExtractor;
invoke-direct {p1}, Lcom/google/android/exoplayer2/extractor/ts/AdtsExtractor;-><init>()V
goto/16 :goto_be
:cond_31
const-string v0, ".ac3"
.line 63
invoke-virtual {p2, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_b0
const-string v0, ".ec3"
.line 64
invoke-virtual {p2, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_43
goto/16 :goto_b0
:cond_43
const-string v0, ".mp3"
.line 67
invoke-virtual {p2, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_54
.line 69
new-instance p1, Lcom/google/android/exoplayer2/extractor/mp3/Mp3Extractor;
const-wide/16 p2, 0x0
invoke-direct {p1, v2, p2, p3}, Lcom/google/android/exoplayer2/extractor/mp3/Mp3Extractor;-><init>(IJ)V
goto/16 :goto_be
:cond_54
if-nez p1, :cond_bd
const-string p1, ".mp4"
.line 73
invoke-virtual {p2, p1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result p1
if-nez p1, :cond_a9
.line 74
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result p1
add-int/lit8 p1, p1, -0x4
const-string v0, ".m4"
invoke-virtual {p2, v0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result p1
if-eqz p1, :cond_6d
goto :goto_a9
:cond_6d
const/16 p1, 0x10
if-eqz p4, :cond_74
const/16 p1, 0x30
goto :goto_78
.line 84
:cond_74
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object p4
.line 86
:goto_78
iget-object p2, p3, Lcom/google/android/exoplayer2/Format;->codecs:Ljava/lang/String;
.line 87
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p3
if-nez p3, :cond_9c
.line 91
invoke-static {p2}, Lcom/google/android/exoplayer2/util/MimeTypes;->getAudioMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
const-string p5, "audio/mp4a-latm"
invoke-virtual {p5, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p3
if-nez p3, :cond_8e
or-int/lit8 p1, p1, 0x2
.line 94
:cond_8e
invoke-static {p2}, Lcom/google/android/exoplayer2/util/MimeTypes;->getVideoMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
const-string p3, "video/avc"
invoke-virtual {p3, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p2
if-nez p2, :cond_9c
or-int/lit8 p1, p1, 0x4
.line 98
:cond_9c
new-instance p2, Lcom/google/android/exoplayer2/extractor/ts/TsExtractor;
new-instance p3, Lcom/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory;
invoke-direct {p3, p1, p4}, Lcom/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory;-><init>(ILjava/util/List;)V
const/4 p1, 0x2
invoke-direct {p2, p1, p6, p3}, Lcom/google/android/exoplayer2/extractor/ts/TsExtractor;-><init>(ILcom/google/android/exoplayer2/util/TimestampAdjuster;Lcom/google/android/exoplayer2/extractor/ts/TsPayloadReader$Factory;)V
move-object p1, p2
goto :goto_bd
.line 75
:cond_a9
:goto_a9
new-instance p1, Lcom/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor;
const/4 p2, 0x0
invoke-direct {p1, v2, p6, p2, p5}, Lcom/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor;-><init>(ILcom/google/android/exoplayer2/util/TimestampAdjuster;Lcom/google/android/exoplayer2/extractor/mp4/Track;Lcom/google/android/exoplayer2/drm/DrmInitData;)V
goto :goto_bd
.line 66
:cond_b0
:goto_b0
new-instance p1, Lcom/google/android/exoplayer2/extractor/ts/Ac3Extractor;
invoke-direct {p1}, Lcom/google/android/exoplayer2/extractor/ts/Ac3Extractor;-><init>()V
goto :goto_be
.line 59
:cond_b6
:goto_b6
new-instance p1, Lcom/google/android/exoplayer2/source/hls/WebvttExtractor;
iget-object p2, p3, Lcom/google/android/exoplayer2/Format;->language:Ljava/lang/String;
invoke-direct {p1, p2, p6}, Lcom/google/android/exoplayer2/source/hls/WebvttExtractor;-><init>(Ljava/lang/String;Lcom/google/android/exoplayer2/util/TimestampAdjuster;)V
:cond_bd
:goto_bd
const/4 v1, 0x0
.line 101
:goto_be
invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p2
invoke-static {p1, p2}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p1
return-object p1
.end method