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 defaultExtractorClasses:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Ljava/lang/Class<",
            "+",
            "Lcom/google/android/exoplayer2/extractor/Extractor;",
            ">;>;"
        }
    .end annotation
.end field


# direct methods
.method public constructor <init>()V
    .registers 5

    .line 47
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 48
    const-class v0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;

    monitor-enter v0

    .line 49
    :try_start_6
    sget-object v1, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->defaultExtractorClasses:Ljava/util/List;

    if-nez v1, :cond_c5

    .line 51
    new-instance v1, Ljava/util/ArrayList;

    invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
    :try_end_f
    .catchall {:try_start_6 .. :try_end_f} :catchall_c7

    :try_start_f
    const-string v2, "com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor"

    .line 57
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 58
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 56
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_1e
    .catch Ljava/lang/ClassNotFoundException; {:try_start_f .. :try_end_1e} :catch_1e
    .catchall {:try_start_f .. :try_end_1e} :catchall_c7

    :catch_1e
    :try_start_1e
    const-string v2, "com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor"

    .line 64
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 65
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 63
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_2d
    .catch Ljava/lang/ClassNotFoundException; {:try_start_1e .. :try_end_2d} :catch_2d
    .catchall {:try_start_1e .. :try_end_2d} :catchall_c7

    :catch_2d
    :try_start_2d
    const-string v2, "com.google.android.exoplayer2.extractor.mp4.Mp4Extractor"

    .line 71
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 72
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 70
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_3c
    .catch Ljava/lang/ClassNotFoundException; {:try_start_2d .. :try_end_3c} :catch_3c
    .catchall {:try_start_2d .. :try_end_3c} :catchall_c7

    :catch_3c
    :try_start_3c
    const-string v2, "com.google.android.exoplayer2.extractor.mp3.Mp3Extractor"

    .line 78
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 79
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 77
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_4b
    .catch Ljava/lang/ClassNotFoundException; {:try_start_3c .. :try_end_4b} :catch_4b
    .catchall {:try_start_3c .. :try_end_4b} :catchall_c7

    :catch_4b
    :try_start_4b
    const-string v2, "com.google.android.exoplayer2.extractor.ts.AdtsExtractor"

    .line 85
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 86
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 84
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_5a
    .catch Ljava/lang/ClassNotFoundException; {:try_start_4b .. :try_end_5a} :catch_5a
    .catchall {:try_start_4b .. :try_end_5a} :catchall_c7

    :catch_5a
    :try_start_5a
    const-string v2, "com.google.android.exoplayer2.extractor.ts.Ac3Extractor"

    .line 92
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 93
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 91
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_69
    .catch Ljava/lang/ClassNotFoundException; {:try_start_5a .. :try_end_69} :catch_69
    .catchall {:try_start_5a .. :try_end_69} :catchall_c7

    :catch_69
    :try_start_69
    const-string v2, "com.google.android.exoplayer2.extractor.ts.TsExtractor"

    .line 99
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 100
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 98
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_78
    .catch Ljava/lang/ClassNotFoundException; {:try_start_69 .. :try_end_78} :catch_78
    .catchall {:try_start_69 .. :try_end_78} :catchall_c7

    :catch_78
    :try_start_78
    const-string v2, "com.google.android.exoplayer2.extractor.flv.FlvExtractor"

    .line 106
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 107
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 105
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_87
    .catch Ljava/lang/ClassNotFoundException; {:try_start_78 .. :try_end_87} :catch_87
    .catchall {:try_start_78 .. :try_end_87} :catchall_c7

    :catch_87
    :try_start_87
    const-string v2, "com.google.android.exoplayer2.extractor.ogg.OggExtractor"

    .line 113
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 114
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 112
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_96
    .catch Ljava/lang/ClassNotFoundException; {:try_start_87 .. :try_end_96} :catch_96
    .catchall {:try_start_87 .. :try_end_96} :catchall_c7

    :catch_96
    :try_start_96
    const-string v2, "com.google.android.exoplayer2.extractor.ts.PsExtractor"

    .line 120
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 121
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 119
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_a5
    .catch Ljava/lang/ClassNotFoundException; {:try_start_96 .. :try_end_a5} :catch_a5
    .catchall {:try_start_96 .. :try_end_a5} :catchall_c7

    :catch_a5
    :try_start_a5
    const-string v2, "com.google.android.exoplayer2.extractor.wav.WavExtractor"

    .line 127
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 128
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 126
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_b4
    .catch Ljava/lang/ClassNotFoundException; {:try_start_a5 .. :try_end_b4} :catch_b4
    .catchall {:try_start_a5 .. :try_end_b4} :catchall_c7

    :catch_b4
    :try_start_b4
    const-string v2, "com.google.android.exoplayer2.ext.flac.FlacExtractor"

    .line 134
    invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v2

    const-class v3, Lcom/google/android/exoplayer2/extractor/Extractor;

    .line 135
    invoke-virtual {v2, v3}, Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;

    move-result-object v2

    .line 133
    invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_c3
    .catch Ljava/lang/ClassNotFoundException; {:try_start_b4 .. :try_end_c3} :catch_c3
    .catchall {:try_start_b4 .. :try_end_c3} :catchall_c7

    .line 139
    :catch_c3
    :try_start_c3
    sput-object v1, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->defaultExtractorClasses:Ljava/util/List;

    .line 141
    :cond_c5
    monitor-exit v0

    return-void

    :catchall_c7
    move-exception v1

    monitor-exit v0
    :try_end_c9
    .catchall {:try_start_c3 .. :try_end_c9} :catchall_c7

    throw v1
.end method


# virtual methods
.method public createExtractors()[Lcom/google/android/exoplayer2/extractor/Extractor;
    .registers 7

    .line 146
    sget-object v0, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->defaultExtractorClasses:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    new-array v1, v0, [Lcom/google/android/exoplayer2/extractor/Extractor;

    const/4 v2, 0x0

    const/4 v3, 0x0

    :goto_a
    if-ge v3, v0, :cond_30

    .line 149
    :try_start_c
    sget-object v4, Lcom/google/android/exoplayer2/extractor/DefaultExtractorsFactory;->defaultExtractorClasses:Ljava/util/List;

    invoke-interface {v4, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Ljava/lang/Class;

    new-array v5, v2, [Ljava/lang/Class;

    invoke-virtual {v4, v5}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;

    move-result-object v4

    new-array v5, v2, [Ljava/lang/Object;

    invoke-virtual {v4, v5}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/google/android/exoplayer2/extractor/Extractor;

    aput-object v4, v1, v3
    :try_end_24
    .catch Ljava/lang/Exception; {:try_start_c .. :try_end_24} :catch_27

    add-int/lit8 v3, v3, 0x1

    goto :goto_a

    :catch_27
    move-exception v0

    .line 152
    new-instance v1, Ljava/lang/IllegalStateException;

    const-string v2, "Unexpected error creating default extractor"

    invoke-direct {v1, v2, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v1

    :cond_30
    return-object v1
.end method