FfmpegLibrary.smali

.class public final Lcom/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary;
.super Ljava/lang/Object;
.source "FfmpegLibrary.java"


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 29
    const-string v0, "goog.exo.ffmpeg"

    invoke-static {v0}, Lcom/google/android/exoplayer2/ExoPlayerLibraryInfo;->registerModule(Ljava/lang/String;)V

    .line 30
    return-void
.end method

.method private constructor <init>()V
    .registers 1

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

    return-void
.end method

.method private static native ffmpegGetVersion()Ljava/lang/String;
.end method

.method private static native ffmpegHasDecoder(Ljava/lang/String;)Z
.end method

.method static getCodecName(Ljava/lang/String;I)Ljava/lang/String;
    .registers 4
    .param p0, "mimeType"    # Ljava/lang/String;
    .param p1, "encoding"    # I

    .line 55
    invoke-virtual {p0}, Ljava/lang/String;->hashCode()I

    move-result v0

    sparse-switch v0, :sswitch_data_fe

    :cond_7
    goto/16 :goto_c3

    :sswitch_9
    const-string v0, "audio/true-hd"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x7

    goto/16 :goto_c4

    :sswitch_14
    const-string v0, "audio/vnd.dts.hd"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0x9

    goto/16 :goto_c4

    :sswitch_20
    const-string v0, "audio/opus"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0xb

    goto/16 :goto_c4

    :sswitch_2c
    const-string v0, "audio/mpeg"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x1

    goto/16 :goto_c4

    :sswitch_37
    const-string v0, "audio/flac"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0xe

    goto/16 :goto_c4

    :sswitch_43
    const-string v0, "audio/eac3"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x5

    goto/16 :goto_c4

    :sswitch_4e
    const-string v0, "audio/alac"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0xf

    goto/16 :goto_c4

    :sswitch_5a
    const-string v0, "audio/3gpp"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0xc

    goto :goto_c4

    :sswitch_65
    const-string v0, "audio/raw"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0x10

    goto :goto_c4

    :sswitch_70
    const-string v0, "audio/ac3"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x4

    goto :goto_c4

    :sswitch_7a
    const-string v0, "audio/mp4a-latm"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x0

    goto :goto_c4

    :sswitch_84
    const-string v0, "audio/mpeg-L2"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x3

    goto :goto_c4

    :sswitch_8e
    const-string v0, "audio/mpeg-L1"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x2

    goto :goto_c4

    :sswitch_98
    const-string v0, "audio/vorbis"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0xa

    goto :goto_c4

    :sswitch_a3
    const-string v0, "audio/vnd.dts"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0x8

    goto :goto_c4

    :sswitch_ae
    const-string v0, "audio/amr-wb"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/16 v0, 0xd

    goto :goto_c4

    :sswitch_b9
    const-string v0, "audio/eac3-joc"

    invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_7

    const/4 v0, 0x6

    goto :goto_c4

    :goto_c3
    const/4 v0, -0x1

    :goto_c4
    const/4 v1, 0x0

    packed-switch v0, :pswitch_data_144

    .line 93
    return-object v1

    .line 85
    :pswitch_c9
    const/high16 v0, 0x10000000

    if-ne p1, v0, :cond_d0

    .line 86
    const-string v0, "pcm_mulaw"

    return-object v0

    .line 87
    :cond_d0
    const/high16 v0, 0x20000000

    if-ne p1, v0, :cond_d7

    .line 88
    const-string v0, "pcm_alaw"

    return-object v0

    .line 90
    :cond_d7
    return-object v1

    .line 83
    :pswitch_d8
    const-string v0, "alac"

    return-object v0

    .line 81
    :pswitch_db
    const-string v0, "flac"

    return-object v0

    .line 79
    :pswitch_de
    const-string v0, "amrwb"

    return-object v0

    .line 77
    :pswitch_e1
    const-string v0, "amrnb"

    return-object v0

    .line 75
    :pswitch_e4
    const-string v0, "opus"

    return-object v0

    .line 73
    :pswitch_e7
    const-string/jumbo v0, "vorbis"

    return-object v0

    .line 71
    :pswitch_eb
    const-string v0, "dca"

    return-object v0

    .line 68
    :pswitch_ee
    const-string/jumbo v0, "truehd"

    return-object v0

    .line 66
    :pswitch_f2
    const-string v0, "eac3"

    return-object v0

    .line 63
    :pswitch_f5
    const-string v0, "ac3"

    return-object v0

    .line 61
    :pswitch_f8
    const-string v0, "mp3"

    return-object v0

    .line 57
    :pswitch_fb
    const-string v0, "aac"

    return-object v0

    :sswitch_data_fe
    .sparse-switch
        -0x7e929daa -> :sswitch_b9
        -0x5fc6f775 -> :sswitch_ae
        -0x41455b98 -> :sswitch_a3
        -0x3bd43e14 -> :sswitch_98
        -0x19cc928c -> :sswitch_8e
        -0x19cc928b -> :sswitch_84
        -0x3313c2e -> :sswitch_7a
        0xb269698 -> :sswitch_70
        0xb26d66f -> :sswitch_65
        0x59976a2d -> :sswitch_5a
        0x59ac6426 -> :sswitch_4e
        0x59ae0c65 -> :sswitch_43
        0x59aeaa01 -> :sswitch_37
        0x59b1e81e -> :sswitch_2c
        0x59b2d2d8 -> :sswitch_20
        0x59c2dc42 -> :sswitch_14
        0x5cc95062 -> :sswitch_9
    .end sparse-switch

    :pswitch_data_144
    .packed-switch 0x0
        :pswitch_fb
        :pswitch_f8
        :pswitch_f8
        :pswitch_f8
        :pswitch_f5
        :pswitch_f2
        :pswitch_f2
        :pswitch_ee
        :pswitch_eb
        :pswitch_eb
        :pswitch_e7
        :pswitch_e4
        :pswitch_e1
        :pswitch_de
        :pswitch_db
        :pswitch_d8
        :pswitch_c9
    .end packed-switch
.end method

.method public static getVersion()Ljava/lang/String;
    .registers 1

    .line 36
    invoke-static {}, Lcom/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary;->ffmpegGetVersion()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static supportsFormat(Ljava/lang/String;I)Z
    .registers 4
    .param p0, "mimeType"    # Ljava/lang/String;
    .param p1, "encoding"    # I

    .line 46
    invoke-static {p0, p1}, Lcom/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary;->getCodecName(Ljava/lang/String;I)Ljava/lang/String;

    move-result-object v0

    .line 47
    .local v0, "codecName":Ljava/lang/String;
    if-eqz v0, :cond_e

    invoke-static {v0}, Lcom/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary;->ffmpegHasDecoder(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_e

    const/4 v1, 0x1

    goto :goto_f

    :cond_e
    const/4 v1, 0x0

    :goto_f
    return v1
.end method