DefaultExtractorsFactory.smali
.class public final Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.super Ljava/lang/Object;
.source "DefaultExtractorsFactory.java"
# interfaces
.implements Lcom/google/android/exoplayer2/extractor/ExtractorsFactory;
# static fields
.field private static final FLAC_EXTRACTOR_CONSTRUCTOR:Ljava/lang/reflect/Constructor;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/reflect/Constructor<",
"+",
"Lcom/google/android/exoplayer2/extractor/Extractor;",
">;"
}
.end annotation
.end field
# instance fields
.field private adtsFlags:I
.field private amrFlags:I
.field private constantBitrateSeekingEnabled:Z
.field private fragmentedMp4Flags:I
.field private matroskaFlags:I
.field private mp3Flags:I
.field private mp4Flags:I
.field private tsFlags:I
.field private tsMode:I
# direct methods
.method static constructor <clinit>()V
.registers 4
.line 58
const/4 v0, 0x0
.line 61
.local v0, "flacExtractorConstructor":Ljava/lang/reflect/Constructor;, "Ljava/lang/reflect/Constructor<+Lcom/google/android/exoplayer2/extractor/Extractor;>;"
:try_start_1
const-string v1, "com.google.android.exoplayer2.ext.flac.FlacExtractor"
.line 62
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
const-class v2, Lcom/google/android/exoplayer2/extractor/Extractor;
.line 63
invoke-virtual {v1, v2}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v1
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Class;
.line 64
invoke-virtual {v1, v2}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v1
:try_end_14
.catch Ljava/lang/ClassNotFoundException; {:try_start_1 .. :try_end_14} :catch_1f
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_14} :catch_16
move-object v0, v1
goto :goto_20
.line 68
:catch_16
move-exception v1
.line 70
.local v1, "e":Ljava/lang/Exception;
new-instance v2, Ljava/lang/RuntimeException;
const-string v3, "Error instantiating FLAC extension"
invoke-direct {v2, v3, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.line 66
.end local v1 # "e":Ljava/lang/Exception;
:catch_1f
move-exception v1
.line 71
:goto_20
nop
.line 72
sput-object v0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->FLAC_EXTRACTOR_CONSTRUCTOR:Ljava/lang/reflect/Constructor;
.line 73
.end local v0 # "flacExtractorConstructor":Ljava/lang/reflect/Constructor;, "Ljava/lang/reflect/Constructor<+Lcom/google/android/exoplayer2/extractor/Extractor;>;"
return-void
.end method
.method public constructor <init>()V
.registers 2
.line 85
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 86
const/4 v0, 0x1
iput v0, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->tsMode:I
.line 87
return-void
.end method
# virtual methods
.method public declared-synchronized createExtractors()[Lcom/google/android/exoplayer2/extractor/Extractor;
.registers 11
monitor-enter p0
.line 209
:try_start_1
sget-object v0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->FLAC_EXTRACTOR_CONSTRUCTOR:Ljava/lang/reflect/Constructor;
const/16 v1, 0xc
if-nez v0, :cond_a
const/16 v0, 0xc
goto :goto_c
:cond_a
const/16 v0, 0xd
:goto_c
new-array v0, v0, [Lcom/google/android/exoplayer2/extractor/Extractor;
.line 210
.local v0, "extractors":[Lcom/google/android/exoplayer2/extractor/Extractor;
new-instance v2, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;
iget v3, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->matroskaFlags:I
invoke-direct {v2, v3}, Lcom/google/android/exoplayer2/extractor/mkv/MatroskaExtractor;-><init>(I)V
const/4 v3, 0x0
aput-object v2, v0, v3
.line 211
new-instance v2, Lcom/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor;
iget v4, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->fragmentedMp4Flags:I
invoke-direct {v2, v4}, Lcom/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor;-><init>(I)V
const/4 v4, 0x1
aput-object v2, v0, v4
.line 212
const/4 v2, 0x2
new-instance v5, Lcom/google/android/exoplayer2/extractor/mp4/Mp4Extractor;
iget v6, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->mp4Flags:I
invoke-direct {v5, v6}, Lcom/google/android/exoplayer2/extractor/mp4/Mp4Extractor;-><init>(I)V
aput-object v5, v0, v2
.line 213
const/4 v2, 0x3
new-instance v5, Lcom/google/android/exoplayer2/extractor/ogg/OggExtractor;
invoke-direct {v5}, Lcom/google/android/exoplayer2/extractor/ogg/OggExtractor;-><init>()V
aput-object v5, v0, v2
.line 214
const/4 v2, 0x4
new-instance v5, Lcom/google/android/exoplayer2/extractor/mp3/Mp3Extractor;
iget v6, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->mp3Flags:I
iget-boolean v7, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->constantBitrateSeekingEnabled:Z
if-eqz v7, :cond_3f
const/4 v7, 0x1
goto :goto_40
:cond_3f
const/4 v7, 0x0
:goto_40
or-int/2addr v6, v7
invoke-direct {v5, v6}, Lcom/google/android/exoplayer2/extractor/mp3/Mp3Extractor;-><init>(I)V
aput-object v5, v0, v2
.line 220
const/4 v2, 0x5
new-instance v5, Lcom/google/android/exoplayer2/extractor/ts/AdtsExtractor;
const-wide/16 v6, 0x0
iget v8, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->adtsFlags:I
iget-boolean v9, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->constantBitrateSeekingEnabled:Z
if-eqz v9, :cond_53
const/4 v9, 0x1
goto :goto_54
:cond_53
const/4 v9, 0x0
:goto_54
or-int/2addr v8, v9
invoke-direct {v5, v6, v7, v8}, Lcom/google/android/exoplayer2/extractor/ts/AdtsExtractor;-><init>(JI)V
aput-object v5, v0, v2
.line 227
const/4 v2, 0x6
new-instance v5, Lcom/google/android/exoplayer2/extractor/ts/Ac3Extractor;
invoke-direct {v5}, Lcom/google/android/exoplayer2/extractor/ts/Ac3Extractor;-><init>()V
aput-object v5, v0, v2
.line 228
const/4 v2, 0x7
new-instance v5, Lcom/google/android/exoplayer2/extractor/ts/TsExtractor;
iget v6, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->tsMode:I
iget v7, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->tsFlags:I
invoke-direct {v5, v6, v7}, Lcom/google/android/exoplayer2/extractor/ts/TsExtractor;-><init>(II)V
aput-object v5, v0, v2
.line 229
const/16 v2, 0x8
new-instance v5, Lcom/google/android/exoplayer2/extractor/flv/FlvExtractor;
invoke-direct {v5}, Lcom/google/android/exoplayer2/extractor/flv/FlvExtractor;-><init>()V
aput-object v5, v0, v2
.line 230
const/16 v2, 0x9
new-instance v5, Lcom/google/android/exoplayer2/extractor/ts/PsExtractor;
invoke-direct {v5}, Lcom/google/android/exoplayer2/extractor/ts/PsExtractor;-><init>()V
aput-object v5, v0, v2
.line 231
const/16 v2, 0xa
new-instance v5, Lcom/google/android/exoplayer2/extractor/wav/WavExtractor;
invoke-direct {v5}, Lcom/google/android/exoplayer2/extractor/wav/WavExtractor;-><init>()V
aput-object v5, v0, v2
.line 232
const/16 v2, 0xb
new-instance v5, Lcom/google/android/exoplayer2/extractor/amr/AmrExtractor;
iget v6, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->amrFlags:I
iget-boolean v7, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->constantBitrateSeekingEnabled:Z
if-eqz v7, :cond_94
goto :goto_95
:cond_94
const/4 v4, 0x0
:goto_95
or-int/2addr v4, v6
invoke-direct {v5, v4}, Lcom/google/android/exoplayer2/extractor/amr/AmrExtractor;-><init>(I)V
aput-object v5, v0, v2
.line 238
sget-object v2, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->FLAC_EXTRACTOR_CONSTRUCTOR:Ljava/lang/reflect/Constructor;
:try_end_9d
.catchall {:try_start_1 .. :try_end_9d} :catchall_b7
if-eqz v2, :cond_b5
.line 240
:try_start_9f
sget-object v2, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->FLAC_EXTRACTOR_CONSTRUCTOR:Ljava/lang/reflect/Constructor;
new-array v3, v3, [Ljava/lang/Object;
invoke-virtual {v2, v3}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/extractor/Extractor;
aput-object v2, v0, v1
:try_end_ab
.catch Ljava/lang/Exception; {:try_start_9f .. :try_end_ab} :catch_ac
.catchall {:try_start_9f .. :try_end_ab} :catchall_b7
.line 244
goto :goto_b5
.line 241
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
:catch_ac
move-exception v1
.line 243
.local v1, "e":Ljava/lang/Exception;
:try_start_ad
new-instance v2, Ljava/lang/IllegalStateException;
const-string v3, "Unexpected error creating FLAC extractor"
invoke-direct {v2, v3, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
:try_end_b5
.catchall {:try_start_ad .. :try_end_b5} :catchall_b7
.line 246
.end local v1 # "e":Ljava/lang/Exception;
:cond_b5
:goto_b5
monitor-exit p0
return-object v0
.line 208
.end local v0 # "extractors":[Lcom/google/android/exoplayer2/extractor/Extractor;
:catchall_b7
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized setAdtsExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 115
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->adtsFlags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 116
monitor-exit p0
return-object p0
.line 114
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setAmrExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 127
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->amrFlags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 128
monitor-exit p0
return-object p0
.line 126
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setConstantBitrateSeekingEnabled(Z)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "constantBitrateSeekingEnabled" # Z
monitor-enter p0
.line 102
:try_start_1
iput-boolean p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->constantBitrateSeekingEnabled:Z
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 103
monitor-exit p0
return-object p0
.line 101
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "constantBitrateSeekingEnabled":Z
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setFragmentedMp4ExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 165
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->fragmentedMp4Flags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 166
monitor-exit p0
return-object p0
.line 164
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setMatroskaExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 140
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->matroskaFlags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 141
monitor-exit p0
return-object p0
.line 139
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setMp3ExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 177
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->mp3Flags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 178
monitor-exit p0
return-object p0
.line 176
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setMp4ExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 152
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->mp4Flags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 153
monitor-exit p0
return-object p0
.line 151
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setTsExtractorFlags(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "flags" # I
monitor-enter p0
.line 203
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->tsFlags:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 204
monitor-exit p0
return-object p0
.line 202
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "flags":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized setTsExtractorMode(I)Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.registers 2
.param p1, "mode" # I
monitor-enter p0
.line 189
:try_start_1
iput p1, p0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->tsMode:I
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_5
.line 190
monitor-exit p0
return-object p0
.line 188
.end local p0 # "this":Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;
.end local p1 # "mode":I
:catchall_5
move-exception p1
monitor-exit p0
throw p1
.end method