MimeTypes.smali
.class public final Lcom/google/android/exoplayer2/util/MimeTypes;
.super Ljava/lang/Object;
.source "MimeTypes.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
}
.end annotation
# static fields
.field public static final APPLICATION_CAMERA_MOTION:Ljava/lang/String; = "application/x-camera-motion"
.field public static final APPLICATION_CEA608:Ljava/lang/String; = "application/cea-608"
.field public static final APPLICATION_CEA708:Ljava/lang/String; = "application/cea-708"
.field public static final APPLICATION_DVBSUBS:Ljava/lang/String; = "application/dvbsubs"
.field public static final APPLICATION_EMSG:Ljava/lang/String; = "application/x-emsg"
.field public static final APPLICATION_EXIF:Ljava/lang/String; = "application/x-exif"
.field public static final APPLICATION_ICY:Ljava/lang/String; = "application/x-icy"
.field public static final APPLICATION_ID3:Ljava/lang/String; = "application/id3"
.field public static final APPLICATION_M3U8:Ljava/lang/String; = "application/x-mpegURL"
.field public static final APPLICATION_MP4:Ljava/lang/String; = "application/mp4"
.field public static final APPLICATION_MP4CEA608:Ljava/lang/String; = "application/x-mp4-cea-608"
.field public static final APPLICATION_MP4VTT:Ljava/lang/String; = "application/x-mp4-vtt"
.field public static final APPLICATION_MPD:Ljava/lang/String; = "application/dash+xml"
.field public static final APPLICATION_PGS:Ljava/lang/String; = "application/pgs"
.field public static final APPLICATION_RAWCC:Ljava/lang/String; = "application/x-rawcc"
.field public static final APPLICATION_SCTE35:Ljava/lang/String; = "application/x-scte35"
.field public static final APPLICATION_SS:Ljava/lang/String; = "application/vnd.ms-sstr+xml"
.field public static final APPLICATION_SUBRIP:Ljava/lang/String; = "application/x-subrip"
.field public static final APPLICATION_TTML:Ljava/lang/String; = "application/ttml+xml"
.field public static final APPLICATION_TX3G:Ljava/lang/String; = "application/x-quicktime-tx3g"
.field public static final APPLICATION_VOBSUB:Ljava/lang/String; = "application/vobsub"
.field public static final APPLICATION_WEBM:Ljava/lang/String; = "application/webm"
.field public static final AUDIO_AAC:Ljava/lang/String; = "audio/mp4a-latm"
.field public static final AUDIO_AC3:Ljava/lang/String; = "audio/ac3"
.field public static final AUDIO_ALAC:Ljava/lang/String; = "audio/alac"
.field public static final AUDIO_ALAW:Ljava/lang/String; = "audio/g711-alaw"
.field public static final AUDIO_AMR_NB:Ljava/lang/String; = "audio/3gpp"
.field public static final AUDIO_AMR_WB:Ljava/lang/String; = "audio/amr-wb"
.field public static final AUDIO_DTS:Ljava/lang/String; = "audio/vnd.dts"
.field public static final AUDIO_DTS_EXPRESS:Ljava/lang/String; = "audio/vnd.dts.hd;profile=lbr"
.field public static final AUDIO_DTS_HD:Ljava/lang/String; = "audio/vnd.dts.hd"
.field public static final AUDIO_E_AC3:Ljava/lang/String; = "audio/eac3"
.field public static final AUDIO_E_AC3_JOC:Ljava/lang/String; = "audio/eac3-joc"
.field public static final AUDIO_FLAC:Ljava/lang/String; = "audio/flac"
.field public static final AUDIO_MLAW:Ljava/lang/String; = "audio/g711-mlaw"
.field public static final AUDIO_MP4:Ljava/lang/String; = "audio/mp4"
.field public static final AUDIO_MPEG:Ljava/lang/String; = "audio/mpeg"
.field public static final AUDIO_MPEG_L1:Ljava/lang/String; = "audio/mpeg-L1"
.field public static final AUDIO_MPEG_L2:Ljava/lang/String; = "audio/mpeg-L2"
.field public static final AUDIO_MSGSM:Ljava/lang/String; = "audio/gsm"
.field public static final AUDIO_OPUS:Ljava/lang/String; = "audio/opus"
.field public static final AUDIO_RAW:Ljava/lang/String; = "audio/raw"
.field public static final AUDIO_TRUEHD:Ljava/lang/String; = "audio/true-hd"
.field public static final AUDIO_UNKNOWN:Ljava/lang/String; = "audio/x-unknown"
.field public static final AUDIO_VORBIS:Ljava/lang/String; = "audio/vorbis"
.field public static final AUDIO_WEBM:Ljava/lang/String; = "audio/webm"
.field public static final BASE_TYPE_APPLICATION:Ljava/lang/String; = "application"
.field public static final BASE_TYPE_AUDIO:Ljava/lang/String; = "audio"
.field public static final BASE_TYPE_TEXT:Ljava/lang/String; = "text"
.field public static final BASE_TYPE_VIDEO:Ljava/lang/String; = "video"
.field public static final TEXT_SSA:Ljava/lang/String; = "text/x-ssa"
.field public static final TEXT_VTT:Ljava/lang/String; = "text/vtt"
.field public static final VIDEO_H263:Ljava/lang/String; = "video/3gpp"
.field public static final VIDEO_H264:Ljava/lang/String; = "video/avc"
.field public static final VIDEO_H265:Ljava/lang/String; = "video/hevc"
.field public static final VIDEO_MP4:Ljava/lang/String; = "video/mp4"
.field public static final VIDEO_MP4V:Ljava/lang/String; = "video/mp4v-es"
.field public static final VIDEO_MPEG:Ljava/lang/String; = "video/mpeg"
.field public static final VIDEO_MPEG2:Ljava/lang/String; = "video/mpeg2"
.field public static final VIDEO_UNKNOWN:Ljava/lang/String; = "video/x-unknown"
.field public static final VIDEO_VC1:Ljava/lang/String; = "video/wvc1"
.field public static final VIDEO_VP8:Ljava/lang/String; = "video/x-vnd.on2.vp8"
.field public static final VIDEO_VP9:Ljava/lang/String; = "video/x-vnd.on2.vp9"
.field public static final VIDEO_WEBM:Ljava/lang/String; = "video/webm"
.field private static final customMimeTypes:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 97
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 418
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 420
return-void
.end method
.method public static getAudioMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
.registers 8
.param p0, "codecs" # Ljava/lang/String;
.line 188
const/4 v0, 0x0
if-nez p0, :cond_4
.line 189
return-object v0
.line 191
:cond_4
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->splitCodecs(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 192
.local v1, "codecList":[Ljava/lang/String;
array-length v2, v1
const/4 v3, 0x0
:goto_a
if-ge v3, v2, :cond_1e
aget-object v4, v1, v3
.line 193
.local v4, "codec":Ljava/lang/String;
invoke-static {v4}, Lcom/google/android/exoplayer2/util/MimeTypes;->getMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 194
.local v5, "mimeType":Ljava/lang/String;
if-eqz v5, :cond_1b
invoke-static {v5}, Lcom/google/android/exoplayer2/util/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_1b
.line 195
return-object v5
.line 192
.end local v4 # "codec":Ljava/lang/String;
.end local v5 # "mimeType":Ljava/lang/String;
:cond_1b
add-int/lit8 v3, v3, 0x1
goto :goto_a
.line 198
:cond_1e
return-object v0
.end method
.method private static getCustomMimeTypeForCodec(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "codec" # Ljava/lang/String;
.line 397
sget-object v0, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 398
.local v0, "customMimeTypeCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_1f
.line 399
sget-object v2, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
.line 400
.local v2, "customMimeType":Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
iget-object v3, v2, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;->codecPrefix:Ljava/lang/String;
invoke-virtual {p0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_1c
.line 401
iget-object v3, v2, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;->mimeType:Ljava/lang/String;
return-object v3
.line 398
.end local v2 # "customMimeType":Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
:cond_1c
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 404
.end local v1 # "i":I
:cond_1f
const/4 v1, 0x0
return-object v1
.end method
.method public static getEncoding(Ljava/lang/String;)I
.registers 8
.param p0, "mimeType" # Ljava/lang/String;
.line 352
invoke-virtual {p0}, Ljava/lang/String;->hashCode()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x4
const/4 v3, 0x3
const/4 v4, 0x2
const/4 v5, 0x1
const/4 v6, 0x5
sparse-switch v0, :sswitch_data_64
:cond_d
goto :goto_4a
:sswitch_e
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_d
const/4 v0, 0x5
goto :goto_4b
:sswitch_18
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_d
const/4 v0, 0x4
goto :goto_4b
:sswitch_22
const-string v0, "audio/eac3"
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_d
const/4 v0, 0x1
goto :goto_4b
:sswitch_2c
const-string v0, "audio/ac3"
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_d
const/4 v0, 0x0
goto :goto_4b
:sswitch_36
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_d
const/4 v0, 0x3
goto :goto_4b
:sswitch_40
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_d
const/4 v0, 0x2
goto :goto_4b
:goto_4a
const/4 v0, -0x1
:goto_4b
if-eqz v0, :cond_62
if-eq v0, v5, :cond_60
if-eq v0, v4, :cond_60
if-eq v0, v3, :cond_5e
if-eq v0, v2, :cond_5b
if-eq v0, v6, :cond_58
.line 365
return v1
.line 363
:cond_58
const/16 v0, 0xe
return v0
.line 361
:cond_5b
const/16 v0, 0x8
return v0
.line 359
:cond_5e
const/4 v0, 0x7
return v0
.line 357
:cond_60
const/4 v0, 0x6
return v0
.line 354
:cond_62
return v6
nop
:sswitch_data_64
.sparse-switch
-0x7e929daa -> :sswitch_40
-0x41455b98 -> :sswitch_36
0xb269698 -> :sswitch_2c
0x59ae0c65 -> :sswitch_22
0x59c2dc42 -> :sswitch_18
0x5cc95062 -> :sswitch_e
.end sparse-switch
.end method
.method public static getMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
.registers 6
.param p0, "codec" # Ljava/lang/String;
.line 208
if-nez p0, :cond_4
.line 209
const/4 v0, 0x0
return-object v0
.line 211
:cond_4
invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
.line 212
const-string v0, "avc1"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_121
const-string v0, "avc3"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_1e
goto/16 :goto_121
.line 214
:cond_1e
const-string v0, "hev1"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_11d
const-string v0, "hvc1"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_30
goto/16 :goto_11d
.line 216
:cond_30
const-string/jumbo v0, "vp9"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_119
const-string/jumbo v0, "vp09"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_44
goto/16 :goto_119
.line 218
:cond_44
const-string/jumbo v0, "vp8"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_115
const-string/jumbo v0, "vp08"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_58
goto/16 :goto_115
.line 220
:cond_58
const-string v0, "mp4a"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_92
.line 221
const/4 v0, 0x0
.line 222
.local v0, "mimeType":Ljava/lang/String;
const-string v1, "mp4a."
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_8b
.line 223
const/4 v1, 0x5
invoke-virtual {p0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v1
.line 224
.local v1, "objectTypeString":Ljava/lang/String;
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
const/4 v3, 0x2
if-lt v2, v3, :cond_8b
.line 226
const/4 v2, 0x0
:try_start_76
invoke-virtual {v1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Util;->toUpperInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 227
.local v2, "objectTypeHexString":Ljava/lang/String;
const/16 v3, 0x10
invoke-static {v2, v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
move-result v3
.line 228
.local v3, "objectTypeInt":I
invoke-static {v3}, Lcom/google/android/exoplayer2/util/MimeTypes;->getMimeTypeFromMp4ObjectType(I)Ljava/lang/String;
move-result-object v4
:try_end_88
.catch Ljava/lang/NumberFormatException; {:try_start_76 .. :try_end_88} :catch_8a
move-object v0, v4
.line 231
.end local v2 # "objectTypeHexString":Ljava/lang/String;
.end local v3 # "objectTypeInt":I
goto :goto_8b
.line 229
:catch_8a
move-exception v2
.line 234
.end local v1 # "objectTypeString":Ljava/lang/String;
:cond_8b
:goto_8b
if-nez v0, :cond_90
const-string v1, "audio/mp4a-latm"
goto :goto_91
:cond_90
move-object v1, v0
:goto_91
return-object v1
.line 235
.end local v0 # "mimeType":Ljava/lang/String;
:cond_92
const-string v0, "ac-3"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_112
const-string v0, "dac3"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_a4
goto/16 :goto_112
.line 237
:cond_a4
const-string v0, "ec-3"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_10f
const-string v0, "dec3"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_b5
goto :goto_10f
.line 239
:cond_b5
const-string v0, "ec+3"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_c0
.line 240
const-string v0, "audio/eac3-joc"
return-object v0
.line 241
:cond_c0
const-string v0, "dtsc"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_10c
const-string v0, "dtse"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_d1
goto :goto_10c
.line 243
:cond_d1
const-string v0, "dtsh"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_109
const-string v0, "dtsl"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_e2
goto :goto_109
.line 245
:cond_e2
const-string v0, "opus"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_ed
.line 246
const-string v0, "audio/opus"
return-object v0
.line 247
:cond_ed
const-string/jumbo v0, "vorbis"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_f9
.line 248
const-string v0, "audio/vorbis"
return-object v0
.line 249
:cond_f9
const-string v0, "flac"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_104
.line 250
const-string v0, "audio/flac"
return-object v0
.line 252
:cond_104
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getCustomMimeTypeForCodec(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 244
:cond_109
:goto_109
const-string v0, "audio/vnd.dts.hd"
return-object v0
.line 242
:cond_10c
:goto_10c
const-string v0, "audio/vnd.dts"
return-object v0
.line 238
:cond_10f
:goto_10f
const-string v0, "audio/eac3"
return-object v0
.line 236
:cond_112
:goto_112
const-string v0, "audio/ac3"
return-object v0
.line 219
:cond_115
:goto_115
const-string/jumbo v0, "video/x-vnd.on2.vp8"
return-object v0
.line 217
:cond_119
:goto_119
const-string/jumbo v0, "video/x-vnd.on2.vp9"
return-object v0
.line 215
:cond_11d
:goto_11d
const-string/jumbo v0, "video/hevc"
return-object v0
.line 213
:cond_121
:goto_121
const-string/jumbo v0, "video/avc"
return-object v0
.end method
.method public static getMimeTypeFromMp4ObjectType(I)Ljava/lang/String;
.registers 2
.param p0, "objectType" # I
.line 265
const/16 v0, 0x20
if-eq p0, v0, :cond_55
const/16 v0, 0x21
if-eq p0, v0, :cond_51
const/16 v0, 0x23
if-eq p0, v0, :cond_4d
const/16 v0, 0x40
if-eq p0, v0, :cond_4a
const/16 v0, 0xa3
if-eq p0, v0, :cond_46
const/16 v0, 0xb1
if-eq p0, v0, :cond_42
const/16 v0, 0xa5
if-eq p0, v0, :cond_3f
const/16 v0, 0xa6
if-eq p0, v0, :cond_3c
packed-switch p0, :pswitch_data_5a
packed-switch p0, :pswitch_data_76
.line 306
const/4 v0, 0x0
return-object v0
.line 304
:pswitch_28
const-string v0, "audio/opus"
return-object v0
.line 302
:pswitch_2b
const-string v0, "audio/vnd.dts.hd"
return-object v0
.line 299
:pswitch_2e
const-string v0, "audio/vnd.dts"
return-object v0
.line 280
:pswitch_31
const-string/jumbo v0, "video/mpeg"
return-object v0
.line 283
:pswitch_35
const-string v0, "audio/mpeg"
return-object v0
.line 278
:pswitch_38
const-string/jumbo v0, "video/mpeg2"
return-object v0
.line 296
:cond_3c
const-string v0, "audio/eac3"
return-object v0
.line 294
:cond_3f
const-string v0, "audio/ac3"
return-object v0
.line 287
:cond_42
const-string/jumbo v0, "video/x-vnd.on2.vp9"
return-object v0
.line 285
:cond_46
const-string/jumbo v0, "video/wvc1"
return-object v0
.line 292
:cond_4a
:pswitch_4a
const-string v0, "audio/mp4a-latm"
return-object v0
.line 271
:cond_4d
const-string/jumbo v0, "video/hevc"
return-object v0
.line 269
:cond_51
const-string/jumbo v0, "video/avc"
return-object v0
.line 267
:cond_55
const-string/jumbo v0, "video/mp4v-es"
return-object v0
nop
:pswitch_data_5a
.packed-switch 0x60
:pswitch_38
:pswitch_38
:pswitch_38
:pswitch_38
:pswitch_38
:pswitch_38
:pswitch_4a
:pswitch_4a
:pswitch_4a
:pswitch_35
:pswitch_31
:pswitch_35
.end packed-switch
:pswitch_data_76
.packed-switch 0xa9
:pswitch_2e
:pswitch_2b
:pswitch_2b
:pswitch_2e
:pswitch_28
.end packed-switch
.end method
.method private static getTopLevelType(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "mimeType" # Ljava/lang/String;
.line 386
if-nez p0, :cond_4
.line 387
const/4 v0, 0x0
return-object v0
.line 389
:cond_4
const/16 v0, 0x2f
invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(I)I
move-result v0
.line 390
.local v0, "indexOfSlash":I
const/4 v1, -0x1
if-eq v0, v1, :cond_13
.line 393
const/4 v1, 0x0
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
return-object v1
.line 391
:cond_13
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Invalid mime type: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public static getTrackType(Ljava/lang/String;)I
.registers 2
.param p0, "mimeType" # Ljava/lang/String;
.line 319
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_8
.line 320
const/4 v0, -0x1
return v0
.line 321
:cond_8
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->isAudio(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_10
.line 322
const/4 v0, 0x1
return v0
.line 323
:cond_10
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->isVideo(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_18
.line 324
const/4 v0, 0x2
return v0
.line 325
:cond_18
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->isText(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_a1
const-string v0, "application/cea-608"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
.line 326
const-string v0, "application/cea-708"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
const-string v0, "application/x-mp4-cea-608"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
.line 327
const-string v0, "application/x-subrip"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
const-string v0, "application/ttml+xml"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
.line 328
const-string v0, "application/x-quicktime-tx3g"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
const-string v0, "application/x-mp4-vtt"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
.line 329
const-string v0, "application/x-rawcc"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
const-string v0, "application/vobsub"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
.line 330
const-string v0, "application/pgs"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_a1
const-string v0, "application/dvbsubs"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_77
goto :goto_a1
.line 332
:cond_77
const-string v0, "application/id3"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_9f
.line 333
const-string v0, "application/x-emsg"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_9f
.line 334
const-string v0, "application/x-scte35"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_90
goto :goto_9f
.line 336
:cond_90
const-string v0, "application/x-camera-motion"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_9a
.line 337
const/4 v0, 0x5
return v0
.line 339
:cond_9a
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackTypeForCustomMimeType(Ljava/lang/String;)I
move-result v0
return v0
.line 335
:cond_9f
:goto_9f
const/4 v0, 0x4
return v0
.line 331
:cond_a1
:goto_a1
const/4 v0, 0x3
return v0
.end method
.method private static getTrackTypeForCustomMimeType(Ljava/lang/String;)I
.registers 5
.param p0, "mimeType" # Ljava/lang/String;
.line 408
sget-object v0, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 409
.local v0, "customMimeTypeCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_1f
.line 410
sget-object v2, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
.line 411
.local v2, "customMimeType":Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
iget-object v3, v2, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;->mimeType:Ljava/lang/String;
invoke-virtual {p0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1c
.line 412
iget v3, v2, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;->trackType:I
return v3
.line 409
.end local v2 # "customMimeType":Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
:cond_1c
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 415
.end local v1 # "i":I
:cond_1f
const/4 v1, -0x1
return v1
.end method
.method public static getTrackTypeOfCodec(Ljava/lang/String;)I
.registers 2
.param p0, "codec" # Ljava/lang/String;
.line 376
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackType(Ljava/lang/String;)I
move-result v0
return v0
.end method
.method public static getVideoMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
.registers 8
.param p0, "codecs" # Ljava/lang/String;
.line 168
const/4 v0, 0x0
if-nez p0, :cond_4
.line 169
return-object v0
.line 171
:cond_4
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->splitCodecs(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 172
.local v1, "codecList":[Ljava/lang/String;
array-length v2, v1
const/4 v3, 0x0
:goto_a
if-ge v3, v2, :cond_1e
aget-object v4, v1, v3
.line 173
.local v4, "codec":Ljava/lang/String;
invoke-static {v4}, Lcom/google/android/exoplayer2/util/MimeTypes;->getMediaMimeType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 174
.local v5, "mimeType":Ljava/lang/String;
if-eqz v5, :cond_1b
invoke-static {v5}, Lcom/google/android/exoplayer2/util/MimeTypes;->isVideo(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_1b
.line 175
return-object v5
.line 172
.end local v4 # "codec":Ljava/lang/String;
.end local v5 # "mimeType":Ljava/lang/String;
:cond_1b
add-int/lit8 v3, v3, 0x1
goto :goto_a
.line 178
:cond_1e
return-object v0
.end method
.method public static isApplication(Ljava/lang/String;)Z
.registers 3
.param p0, "mimeType" # Ljava/lang/String;
.line 158
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTopLevelType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "application"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public static isAudio(Ljava/lang/String;)Z
.registers 3
.param p0, "mimeType" # Ljava/lang/String;
.line 128
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTopLevelType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "audio"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public static isText(Ljava/lang/String;)Z
.registers 3
.param p0, "mimeType" # Ljava/lang/String;
.line 148
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTopLevelType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "text"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public static isVideo(Ljava/lang/String;)Z
.registers 3
.param p0, "mimeType" # Ljava/lang/String;
.line 138
invoke-static {p0}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTopLevelType(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "video"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public static registerCustomMimeType(Ljava/lang/String;Ljava/lang/String;I)V
.registers 7
.param p0, "mimeType" # Ljava/lang/String;
.param p1, "codecPrefix" # Ljava/lang/String;
.param p2, "trackType" # I
.line 110
new-instance v0, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
invoke-direct {v0, p0, p1, p2}, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
.line 111
.local v0, "customMimeType":Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
sget-object v1, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 112
.local v1, "customMimeTypeCount":I
const/4 v2, 0x0
.local v2, "i":I
:goto_c
if-ge v2, v1, :cond_27
.line 113
sget-object v3, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;
iget-object v3, v3, Lcom/google/android/exoplayer2/util/MimeTypes$CustomMimeType;->mimeType:Ljava/lang/String;
invoke-virtual {p0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_24
.line 114
sget-object v3, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 115
goto :goto_27
.line 112
:cond_24
add-int/lit8 v2, v2, 0x1
goto :goto_c
.line 118
.end local v2 # "i":I
:cond_27
:goto_27
sget-object v2, Lcom/google/android/exoplayer2/util/MimeTypes;->customMimeTypes:Ljava/util/ArrayList;
invoke-virtual {v2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 119
return-void
.end method