.class public final Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil; .super Ljava/lang/Object; .source "MediaCodecUtil.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV21;, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider; } .end annotation # static fields .field private static final CODEC_ID_AV01:Ljava/lang/String; = "av01" .field private static final CODEC_ID_AVC1:Ljava/lang/String; = "avc1" .field private static final CODEC_ID_AVC2:Ljava/lang/String; = "avc2" .field private static final CODEC_ID_HEV1:Ljava/lang/String; = "hev1" .field private static final CODEC_ID_HVC1:Ljava/lang/String; = "hvc1" .field private static final CODEC_ID_MP4A:Ljava/lang/String; = "mp4a" .field private static final CODEC_ID_VP09:Ljava/lang/String; = "vp09" .field private static final PROFILE_PATTERN:Ljava/util/regex/Pattern; .field private static final TAG:Ljava/lang/String; = "MediaCodecUtil" .field private static final decoderInfosCache:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;>;" } .end annotation .end field .field private static maxH264DecodableFrameSize:I # direct methods .method static constructor ()V .locals 1 const-string v0, "^\\D?(\\d+)$" .line 68 invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 sput-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->PROFILE_PATTERN:Ljava/util/regex/Pattern; .line 71 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->decoderInfosCache:Ljava/util/HashMap; const/4 v0, -0x1 sput v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I return-void .end method .method private constructor ()V .locals 0 .line 90 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private static applyWorkarounds(Ljava/lang/String;Ljava/util/List;)V .locals 11 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;)V" } .end annotation const-string v0, "audio/raw" .line 637 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 const/4 v0, 0x1 const/4 v1, 0x0 if-eqz p0, :cond_1 .line 638 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v2, 0x1a if-ge p0, v2, :cond_0 sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string v2, "R9" .line 639 invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 .line 640 invoke-interface {p1}, Ljava/util/List;->size()I move-result p0 if-ne p0, v0, :cond_0 .line 641 invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String; const-string v2, "OMX.MTK.AUDIO.DECODER.RAW" invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_0 const-string v2, "OMX.google.raw.decoder" const-string v3, "audio/raw" const-string v4, "audio/raw" const/4 v5, 0x0 const/4 v6, 0x0 const/4 v7, 0x1 const/4 v8, 0x0 const/4 v9, 0x0 const/4 v10, 0x0 .line 645 invoke-static/range {v2 .. v10}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; move-result-object p0 .line 644 invoke-interface {p1, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 657 :cond_0 new-instance p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda2; invoke-direct {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda2;->()V invoke-static {p1, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V .line 674 :cond_1 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v2, 0x15 if-ge p0, v2, :cond_3 invoke-interface {p1}, Ljava/util/List;->size()I move-result p0 if-le p0, v0, :cond_3 .line 675 invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String; const-string v2, "OMX.SEC.mp3.dec" .line 676 invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_2 const-string v2, "OMX.SEC.MP3.Decoder" .line 677 invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_2 const-string v2, "OMX.brcm.audio.mp3.decoder" .line 678 invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_3 .line 683 :cond_2 new-instance p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda3; invoke-direct {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda3;->()V invoke-static {p1, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V .line 687 :cond_3 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v2, 0x20 if-ge p0, v2, :cond_4 invoke-interface {p1}, Ljava/util/List;->size()I move-result p0 if-le p0, v0, :cond_4 .line 688 invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String; const-string v0, "OMX.qti.audio.decoder.flac" .line 691 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_4 .line 692 invoke-interface {p1, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; invoke-interface {p1, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z :cond_4 return-void .end method .method private static av1LevelNumberToConst(I)I .locals 0 packed-switch p0, :pswitch_data_0 const/4 p0, -0x1 return p0 :pswitch_0 const/high16 p0, 0x800000 return p0 :pswitch_1 const/high16 p0, 0x400000 return p0 :pswitch_2 const/high16 p0, 0x200000 return p0 :pswitch_3 const/high16 p0, 0x100000 return p0 :pswitch_4 const/high16 p0, 0x80000 return p0 :pswitch_5 const/high16 p0, 0x40000 return p0 :pswitch_6 const/high16 p0, 0x20000 return p0 :pswitch_7 const/high16 p0, 0x10000 return p0 :pswitch_8 const p0, 0x8000 return p0 :pswitch_9 const/16 p0, 0x4000 return p0 :pswitch_a const/16 p0, 0x2000 return p0 :pswitch_b const/16 p0, 0x1000 return p0 :pswitch_c const/16 p0, 0x800 return p0 :pswitch_d const/16 p0, 0x400 return p0 :pswitch_e const/16 p0, 0x200 return p0 :pswitch_f const/16 p0, 0x100 return p0 :pswitch_10 const/16 p0, 0x80 return p0 :pswitch_11 const/16 p0, 0x40 return p0 :pswitch_12 const/16 p0, 0x20 return p0 :pswitch_13 const/16 p0, 0x10 return p0 :pswitch_14 const/16 p0, 0x8 return p0 :pswitch_15 const/4 p0, 0x4 return p0 :pswitch_16 const/4 p0, 0x2 return p0 :pswitch_17 const/4 p0, 0x1 return p0 nop :pswitch_data_0 .packed-switch 0x0 :pswitch_17 :pswitch_16 :pswitch_15 :pswitch_14 :pswitch_13 :pswitch_12 :pswitch_11 :pswitch_10 :pswitch_f :pswitch_e :pswitch_d :pswitch_c :pswitch_b :pswitch_a :pswitch_9 :pswitch_8 :pswitch_7 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static avcLevelNumberToConst(I)I .locals 0 packed-switch p0, :pswitch_data_0 packed-switch p0, :pswitch_data_1 packed-switch p0, :pswitch_data_2 packed-switch p0, :pswitch_data_3 packed-switch p0, :pswitch_data_4 const/4 p0, -0x1 return p0 :pswitch_0 const/high16 p0, 0x10000 return p0 :pswitch_1 const p0, 0x8000 return p0 :pswitch_2 const/16 p0, 0x4000 return p0 :pswitch_3 const/16 p0, 0x2000 return p0 :pswitch_4 const/16 p0, 0x1000 return p0 :pswitch_5 const/16 p0, 0x800 return p0 :pswitch_6 const/16 p0, 0x400 return p0 :pswitch_7 const/16 p0, 0x200 return p0 :pswitch_8 const/16 p0, 0x100 return p0 :pswitch_9 const/16 p0, 0x80 return p0 :pswitch_a const/16 p0, 0x40 return p0 :pswitch_b const/16 p0, 0x20 return p0 :pswitch_c const/16 p0, 0x10 return p0 :pswitch_d const/16 p0, 0x8 return p0 :pswitch_e const/4 p0, 0x4 return p0 :pswitch_f const/4 p0, 0x1 return p0 :pswitch_data_0 .packed-switch 0xa :pswitch_f :pswitch_e :pswitch_d :pswitch_c .end packed-switch :pswitch_data_1 .packed-switch 0x14 :pswitch_b :pswitch_a :pswitch_9 .end packed-switch :pswitch_data_2 .packed-switch 0x1e :pswitch_8 :pswitch_7 :pswitch_6 .end packed-switch :pswitch_data_3 .packed-switch 0x28 :pswitch_5 :pswitch_4 :pswitch_3 .end packed-switch :pswitch_data_4 .packed-switch 0x32 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static avcLevelToMaxFrameSize(I)I .locals 1 const/4 v0, 0x1 if-eq p0, v0, :cond_0 const/4 v0, 0x2 if-eq p0, v0, :cond_0 sparse-switch p0, :sswitch_data_0 const/4 p0, -0x1 return p0 :sswitch_0 const/high16 p0, 0x2200000 return p0 :sswitch_1 const/high16 p0, 0x900000 return p0 :sswitch_2 const p0, 0x564000 return p0 :sswitch_3 const/high16 p0, 0x220000 return p0 :sswitch_4 const/high16 p0, 0x200000 return p0 :sswitch_5 const/high16 p0, 0x140000 return p0 :sswitch_6 const p0, 0xe1000 return p0 :sswitch_7 const p0, 0x65400 return p0 :sswitch_8 const p0, 0x31800 return p0 :sswitch_9 const p0, 0x18c00 return p0 :cond_0 const/16 p0, 0x6300 return p0 nop :sswitch_data_0 .sparse-switch 0x8 -> :sswitch_9 0x10 -> :sswitch_9 0x20 -> :sswitch_9 0x40 -> :sswitch_8 0x80 -> :sswitch_7 0x100 -> :sswitch_7 0x200 -> :sswitch_6 0x400 -> :sswitch_5 0x800 -> :sswitch_4 0x1000 -> :sswitch_4 0x2000 -> :sswitch_3 0x4000 -> :sswitch_2 0x8000 -> :sswitch_1 0x10000 -> :sswitch_1 0x20000 -> :sswitch_0 0x40000 -> :sswitch_0 0x80000 -> :sswitch_0 .end sparse-switch .end method .method private static avcProfileNumberToConst(I)I .locals 1 const/16 v0, 0x42 if-eq p0, v0, :cond_6 const/16 v0, 0x4d if-eq p0, v0, :cond_5 const/16 v0, 0x58 if-eq p0, v0, :cond_4 const/16 v0, 0x64 if-eq p0, v0, :cond_3 const/16 v0, 0x6e if-eq p0, v0, :cond_2 const/16 v0, 0x7a if-eq p0, v0, :cond_1 const/16 v0, 0xf4 if-eq p0, v0, :cond_0 const/4 p0, -0x1 return p0 :cond_0 const/16 p0, 0x40 return p0 :cond_1 const/16 p0, 0x20 return p0 :cond_2 const/16 p0, 0x10 return p0 :cond_3 const/16 p0, 0x8 return p0 :cond_4 const/4 p0, 0x4 return p0 :cond_5 const/4 p0, 0x2 return p0 :cond_6 const/4 p0, 0x1 return p0 .end method .method public static declared-synchronized clearDecoderInfoCache()V .locals 2 const-class v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil; monitor-enter v0 :try_start_0 sget-object v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->decoderInfosCache:Ljava/util/HashMap; .line 116 invoke-virtual {v1}, Ljava/util/HashMap;->clear()V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 117 monitor-exit v0 return-void :catchall_0 move-exception v1 monitor-exit v0 throw v1 .end method .method private static dolbyVisionStringToLevel(Ljava/lang/String;)Ljava/lang/Integer; .locals 7 const/4 v0, 0x0 if-nez p0, :cond_0 return-object v0 .line 1394 :cond_0 invoke-virtual {p0}, Ljava/lang/String;->hashCode()I invoke-virtual {p0}, Ljava/lang/String;->hashCode()I move-result v1 const/16 v2, 0x8 const/4 v3, 0x4 const/4 v4, 0x2 const/4 v5, 0x1 const/4 v6, -0x1 sparse-switch v1, :sswitch_data_0 goto/16 :goto_0 :sswitch_0 const-string v1, "13" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 goto/16 :goto_0 :cond_1 const/16 v6, 0xc goto/16 :goto_0 :sswitch_1 const-string v1, "12" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_2 goto/16 :goto_0 :cond_2 const/16 v6, 0xb goto/16 :goto_0 :sswitch_2 const-string v1, "11" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_3 goto/16 :goto_0 :cond_3 const/16 v6, 0xa goto/16 :goto_0 :sswitch_3 const-string v1, "10" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_4 goto/16 :goto_0 :cond_4 const/16 v6, 0x9 goto/16 :goto_0 :sswitch_4 const-string v1, "09" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 goto/16 :goto_0 :cond_5 move v6, v2 goto/16 :goto_0 :sswitch_5 const-string v1, "08" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_6 goto :goto_0 :cond_6 const/4 v6, 0x7 goto :goto_0 :sswitch_6 const-string v1, "07" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_7 goto :goto_0 :cond_7 const/4 v6, 0x6 goto :goto_0 :sswitch_7 const-string v1, "06" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_8 goto :goto_0 :cond_8 const/4 v6, 0x5 goto :goto_0 :sswitch_8 const-string v1, "05" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_9 goto :goto_0 :cond_9 move v6, v3 goto :goto_0 :sswitch_9 const-string v1, "04" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a goto :goto_0 :cond_a const/4 v6, 0x3 goto :goto_0 :sswitch_a const-string v1, "03" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_b goto :goto_0 :cond_b move v6, v4 goto :goto_0 :sswitch_b const-string v1, "02" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_c goto :goto_0 :cond_c move v6, v5 goto :goto_0 :sswitch_c const-string v1, "01" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_d goto :goto_0 :cond_d const/4 v6, 0x0 :goto_0 packed-switch v6, :pswitch_data_0 return-object v0 :pswitch_0 const/16 p0, 0x1000 .line 1420 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_1 const/16 p0, 0x800 .line 1418 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_2 const/16 p0, 0x400 .line 1416 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_3 const/16 p0, 0x200 .line 1414 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_4 const/16 p0, 0x100 .line 1412 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_5 const/16 p0, 0x80 .line 1410 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_6 const/16 p0, 0x40 .line 1408 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_7 const/16 p0, 0x20 .line 1406 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_8 const/16 p0, 0x10 .line 1404 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1402 :pswitch_9 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1400 :pswitch_a invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1398 :pswitch_b invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1396 :pswitch_c invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 nop :sswitch_data_0 .sparse-switch 0x601 -> :sswitch_c 0x602 -> :sswitch_b 0x603 -> :sswitch_a 0x604 -> :sswitch_9 0x605 -> :sswitch_8 0x606 -> :sswitch_7 0x607 -> :sswitch_6 0x608 -> :sswitch_5 0x609 -> :sswitch_4 0x61f -> :sswitch_3 0x620 -> :sswitch_2 0x621 -> :sswitch_1 0x622 -> :sswitch_0 .end sparse-switch :pswitch_data_0 .packed-switch 0x0 :pswitch_c :pswitch_b :pswitch_a :pswitch_9 :pswitch_8 :pswitch_7 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static dolbyVisionStringToProfile(Ljava/lang/String;)Ljava/lang/Integer; .locals 7 const/4 v0, 0x0 if-nez p0, :cond_0 return-object v0 .line 1362 :cond_0 invoke-virtual {p0}, Ljava/lang/String;->hashCode()I invoke-virtual {p0}, Ljava/lang/String;->hashCode()I move-result v1 const/16 v2, 0x8 const/4 v3, 0x4 const/4 v4, 0x2 const/4 v5, 0x1 const/4 v6, -0x1 packed-switch v1, :pswitch_data_0 goto/16 :goto_0 :pswitch_0 const-string v1, "09" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 goto/16 :goto_0 :cond_1 const/16 v6, 0x9 goto/16 :goto_0 :pswitch_1 const-string v1, "08" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_2 goto/16 :goto_0 :cond_2 move v6, v2 goto/16 :goto_0 :pswitch_2 const-string v1, "07" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_3 goto :goto_0 :cond_3 const/4 v6, 0x7 goto :goto_0 :pswitch_3 const-string v1, "06" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_4 goto :goto_0 :cond_4 const/4 v6, 0x6 goto :goto_0 :pswitch_4 const-string v1, "05" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 goto :goto_0 :cond_5 const/4 v6, 0x5 goto :goto_0 :pswitch_5 const-string v1, "04" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_6 goto :goto_0 :cond_6 move v6, v3 goto :goto_0 :pswitch_6 const-string v1, "03" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_7 goto :goto_0 :cond_7 const/4 v6, 0x3 goto :goto_0 :pswitch_7 const-string v1, "02" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_8 goto :goto_0 :cond_8 move v6, v4 goto :goto_0 :pswitch_8 const-string v1, "01" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_9 goto :goto_0 :cond_9 move v6, v5 goto :goto_0 :pswitch_9 const-string v1, "00" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a goto :goto_0 :cond_a const/4 v6, 0x0 :goto_0 packed-switch v6, :pswitch_data_1 return-object v0 :pswitch_a const/16 p0, 0x200 .line 1382 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_b const/16 p0, 0x100 .line 1380 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_c const/16 p0, 0x80 .line 1378 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_d const/16 p0, 0x40 .line 1376 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_e const/16 p0, 0x20 .line 1374 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_f const/16 p0, 0x10 .line 1372 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1370 :pswitch_10 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1368 :pswitch_11 invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1366 :pswitch_12 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1364 :pswitch_13 invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_data_0 .packed-switch 0x600 :pswitch_9 :pswitch_8 :pswitch_7 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch :pswitch_data_1 .packed-switch 0x0 :pswitch_13 :pswitch_12 :pswitch_11 :pswitch_10 :pswitch_f :pswitch_e :pswitch_d :pswitch_c :pswitch_b :pswitch_a .end packed-switch .end method .method private static getAacCodecProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; .locals 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "[", "Ljava/lang/String;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 1008 array-length v0, p1 const/4 v1, 0x3 const/4 v2, 0x0 const-string v3, "Ignoring malformed MP4A codec string: " const-string v4, "MediaCodecUtil" if-eq v0, v1, :cond_0 .line 1009 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v2 :cond_0 const/4 v0, 0x1 .line 1014 :try_start_0 aget-object v0, p1, v0 const/16 v1, 0x10 invoke-static {v0, v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I move-result v0 .line 1015 invoke-static {v0}, Landroidx/media3/common/MimeTypes;->getMimeTypeFromMp4ObjectType(I)Ljava/lang/String; move-result-object v0 const-string v1, "audio/mp4a-latm" .line 1016 invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1 const/4 v0, 0x2 .line 1018 aget-object p1, p1, v0 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p1 .line 1019 invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->mp4aAudioObjectTypeToProfile(I)I move-result p1 const/4 v0, -0x1 if-eq p1, v0, :cond_1 .line 1022 new-instance v0, Landroid/util/Pair; invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 const/4 v1, 0x0 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 invoke-direct {v0, p1, v1}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 .line 1026 :catch_0 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V :cond_1 return-object v2 .end method .method public static getAlternativeCodecMimeType(Landroidx/media3/common/Format;)Ljava/lang/String; .locals 2 const-string v0, "audio/eac3-joc" .line 348 iget-object v1, p0, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 const-string p0, "audio/eac3" return-object p0 :cond_0 const-string v0, "video/dolby-vision" .line 352 iget-object v1, p0, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_3 .line 357 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair; move-result-object p0 if-eqz p0, :cond_3 .line 359 iget-object p0, p0, Landroid/util/Pair;->first:Ljava/lang/Object; check-cast p0, Ljava/lang/Integer; invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I move-result p0 const/16 v0, 0x10 if-eq p0, v0, :cond_2 const/16 v0, 0x100 if-ne p0, v0, :cond_1 goto :goto_0 :cond_1 const/16 v0, 0x200 if-ne p0, v0, :cond_3 const-string p0, "video/avc" return-object p0 :cond_2 :goto_0 const-string p0, "video/hevc" return-object p0 :cond_3 const/4 p0, 0x0 return-object p0 .end method .method public static getAlternativeDecoderInfos(Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;Landroidx/media3/common/Format;ZZ)Ljava/util/List; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;", "Landroidx/media3/common/Format;", "ZZ)", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation .line 256 invoke-static {p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAlternativeCodecMimeType(Landroidx/media3/common/Format;)Ljava/lang/String; move-result-object p1 if-nez p1, :cond_0 .line 258 invoke-static {}, Lcom/google/common/collect/ImmutableList;->of()Lcom/google/common/collect/ImmutableList; move-result-object p0 return-object p0 .line 260 :cond_0 invoke-interface {p0, p1, p2, p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List; move-result-object p0 return-object p0 .end method .method private static getAv1ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair; .locals 8 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "[", "Ljava/lang/String;", "Landroidx/media3/common/ColorInfo;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 918 array-length v0, p1 const/4 v1, 0x4 const-string v2, "Ignoring malformed AV1 codec string: " const/4 v3, 0x0 const-string v4, "MediaCodecUtil" if-ge v0, v1, :cond_0 .line 919 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_0 const/4 v0, 0x1 .line 926 :try_start_0 aget-object v1, p1, v0 invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v1 const/4 v5, 0x2 .line 927 aget-object v6, p1, v5 const/4 v7, 0x0 invoke-virtual {v6, v7, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v6 invoke-static {v6}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v6 const/4 v7, 0x3 .line 928 aget-object p1, p1, v7 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p0 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 if-eqz v1, :cond_1 .line 935 new-instance p0, Ljava/lang/StringBuilder; const-string p1, "Unknown AV1 profile: " invoke-direct {p0, p1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_1 const/16 p1, 0x8 if-eq p0, p1, :cond_2 const/16 v1, 0xa if-eq p0, v1, :cond_2 .line 939 new-instance p1, Ljava/lang/StringBuilder; const-string p2, "Unknown AV1 bit depth: " invoke-direct {p1, p2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_2 if-ne p0, p1, :cond_3 goto :goto_0 :cond_3 if-eqz p2, :cond_5 .line 945 iget-object p0, p2, Landroidx/media3/common/ColorInfo;->hdrStaticInfo:[B if-nez p0, :cond_4 iget p0, p2, Landroidx/media3/common/ColorInfo;->colorTransfer:I const/4 p1, 0x7 if-eq p0, p1, :cond_4 iget p0, p2, Landroidx/media3/common/ColorInfo;->colorTransfer:I const/4 p1, 0x6 if-ne p0, p1, :cond_5 :cond_4 const/16 v0, 0x1000 goto :goto_0 :cond_5 move v0, v5 .line 954 :goto_0 invoke-static {v6}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->av1LevelNumberToConst(I)I move-result p0 const/4 p1, -0x1 if-ne p0, p1, :cond_6 .line 956 new-instance p0, Ljava/lang/StringBuilder; const-string p1, "Unknown AV1 level: " invoke-direct {p0, p1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 959 :cond_6 new-instance p1, Landroid/util/Pair; invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 invoke-direct {p1, p2, p0}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p1 .line 930 :catch_0 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .end method .method private static getAvcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; .locals 7 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "[", "Ljava/lang/String;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 847 array-length v0, p1 const/4 v1, 0x0 const-string v2, "MediaCodecUtil" const-string v3, "Ignoring malformed AVC codec string: " const/4 v4, 0x2 if-ge v0, v4, :cond_0 .line 849 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v1 :cond_0 const/4 v0, 0x1 .line 855 :try_start_0 aget-object v5, p1, v0 invoke-virtual {v5}, Ljava/lang/String;->length()I move-result v5 const/4 v6, 0x6 if-ne v5, v6, :cond_1 .line 857 aget-object v5, p1, v0 const/4 v6, 0x0 invoke-virtual {v5, v6, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v4 const/16 v5, 0x10 invoke-static {v4, v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I move-result v4 .line 858 aget-object p1, p1, v0 const/4 v0, 0x4 invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 invoke-static {p1, v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I move-result p0 goto :goto_0 .line 859 :cond_1 array-length v5, p1 const/4 v6, 0x3 if-lt v5, v6, :cond_4 .line 861 aget-object v0, p1, v0 invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v0 .line 862 aget-object p1, p1, v4 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p0 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 move v4, v0 .line 873 :goto_0 invoke-static {v4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->avcProfileNumberToConst(I)I move-result p1 const/4 v0, -0x1 if-ne p1, v0, :cond_2 .line 875 new-instance p0, Ljava/lang/StringBuilder; const-string p1, "Unknown AVC profile: " invoke-direct {p0, p1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v1 .line 878 :cond_2 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->avcLevelNumberToConst(I)I move-result v3 if-ne v3, v0, :cond_3 .line 880 new-instance p1, Ljava/lang/StringBuilder; const-string v0, "Unknown AVC level: " invoke-direct {p1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v1 .line 883 :cond_3 new-instance p0, Landroid/util/Pair; invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-direct {p0, p1, v0}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 .line 865 :cond_4 :try_start_1 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v2, p1}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V :try_end_1 .catch Ljava/lang/NumberFormatException; {:try_start_1 .. :try_end_1} :catch_0 return-object v1 .line 869 :catch_0 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v2, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v1 .end method .method private static getCodecMimeType(Landroid/media/MediaCodecInfo;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 4 .line 490 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String; move-result-object p0 .line 491 array-length v0, p0 const/4 v1, 0x0 :goto_0 if-ge v1, v0, :cond_1 aget-object v2, p0, v1 .line 492 invoke-virtual {v2, p2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_0 return-object v2 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 const-string p0, "video/dolby-vision" .line 497 invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_4 const-string p0, "OMX.MS.HEVCDV.Decoder" .line 500 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_2 const-string p0, "video/hevcdv" return-object p0 :cond_2 const-string p0, "OMX.RTK.video.decoder" .line 502 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_3 const-string p0, "OMX.realtek.video.decoder.tunneled" .line 503 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_7 :cond_3 const-string p0, "video/dv_hevc" return-object p0 :cond_4 const-string p0, "audio/alac" .line 506 invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_5 const-string p0, "OMX.lge.alac.decoder" invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_5 const-string p0, "audio/x-lg-alac" return-object p0 :cond_5 const-string p0, "audio/flac" .line 508 invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_6 const-string p0, "OMX.lge.flac.decoder" invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_6 const-string p0, "audio/x-lg-flac" return-object p0 :cond_6 const-string p0, "audio/ac3" .line 510 invoke-virtual {p2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_7 const-string p0, "OMX.lge.ac3.decoder" invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_7 const-string p0, "audio/lg-ac3" return-object p0 :cond_7 const/4 p0, 0x0 return-object p0 .end method .method public static getCodecProfileAndLevel(Landroidx/media3/common/Format;)Landroid/util/Pair; .locals 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/media3/common/Format;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 311 iget-object v0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; const/4 v1, 0x0 if-nez v0, :cond_0 return-object v1 .line 314 :cond_0 iget-object v0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; const-string v2, "\\." invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v0 const-string v2, "video/dolby-vision" .line 316 iget-object v3, p0, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String; invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_1 .line 317 iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDolbyVisionProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; move-result-object p0 return-object p0 :cond_1 const/4 v2, 0x0 .line 319 aget-object v3, v0, v2 invoke-virtual {v3}, Ljava/lang/String;->hashCode()I invoke-virtual {v3}, Ljava/lang/String;->hashCode()I move-result v4 const/4 v5, -0x1 sparse-switch v4, :sswitch_data_0 :goto_0 move v2, v5 goto :goto_1 :sswitch_0 const-string v2, "vp09" invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_2 goto :goto_0 :cond_2 const/4 v2, 0x6 goto :goto_1 :sswitch_1 const-string v2, "mp4a" invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_3 goto :goto_0 :cond_3 const/4 v2, 0x5 goto :goto_1 :sswitch_2 const-string v2, "hvc1" invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_4 goto :goto_0 :cond_4 const/4 v2, 0x4 goto :goto_1 :sswitch_3 const-string v2, "hev1" invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_5 goto :goto_0 :cond_5 const/4 v2, 0x3 goto :goto_1 :sswitch_4 const-string v2, "avc2" invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_6 goto :goto_0 :cond_6 const/4 v2, 0x2 goto :goto_1 :sswitch_5 const-string v2, "avc1" invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_7 goto :goto_0 :cond_7 const/4 v2, 0x1 goto :goto_1 :sswitch_6 const-string v4, "av01" invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v3 if-nez v3, :cond_8 goto :goto_0 :cond_8 :goto_1 packed-switch v2, :pswitch_data_0 return-object v1 .line 324 :pswitch_0 iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getVp9ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; move-result-object p0 return-object p0 .line 331 :pswitch_1 iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAacCodecProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; move-result-object p0 return-object p0 .line 327 :pswitch_2 iget-object v1, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; iget-object p0, p0, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo; invoke-static {v1, v0, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getHevcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair; move-result-object p0 return-object p0 .line 322 :pswitch_3 iget-object p0, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; invoke-static {p0, v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAvcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; move-result-object p0 return-object p0 .line 329 :pswitch_4 iget-object v1, p0, Landroidx/media3/common/Format;->codecs:Ljava/lang/String; iget-object p0, p0, Landroidx/media3/common/Format;->colorInfo:Landroidx/media3/common/ColorInfo; invoke-static {v1, v0, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAv1ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair; move-result-object p0 return-object p0 nop :sswitch_data_0 .sparse-switch 0x2dd8f6 -> :sswitch_6 0x2ddf23 -> :sswitch_5 0x2ddf24 -> :sswitch_4 0x30d038 -> :sswitch_3 0x310dbc -> :sswitch_2 0x333790 -> :sswitch_1 0x374e43 -> :sswitch_0 .end sparse-switch :pswitch_data_0 .packed-switch 0x0 :pswitch_4 :pswitch_3 :pswitch_3 :pswitch_2 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method public static getDecoderInfo(Ljava/lang/String;ZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation .line 144 invoke-static {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List; move-result-object p0 .line 145 invoke-interface {p0}, Ljava/util/List;->isEmpty()Z move-result p1 if-eqz p1, :cond_0 const/4 p0, 0x0 goto :goto_0 :cond_0 const/4 p1, 0x0 invoke-interface {p0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; :goto_0 return-object p0 .end method .method public static declared-synchronized getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List; .locals 7 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "ZZ)", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation const-string v0, "MediaCodecList API didn\'t list secure decoder for: " const-class v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil; monitor-enter v1 .line 163 :try_start_0 new-instance v2, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey; invoke-direct {v2, p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->(Ljava/lang/String;ZZ)V sget-object v3, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->decoderInfosCache:Ljava/util/HashMap; .line 164 invoke-virtual {v3, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v4 check-cast v4, Ljava/util/List; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-eqz v4, :cond_0 .line 166 monitor-exit v1 return-object v4 .line 169 :cond_0 :try_start_1 sget v4, Landroidx/media3/common/util/Util;->SDK_INT:I const/4 v5, 0x0 const/16 v6, 0x15 if-lt v4, v6, :cond_1 .line 170 new-instance v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV21; invoke-direct {v4, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV21;->(ZZ)V goto :goto_0 .line 171 :cond_1 new-instance v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16; invoke-direct {v4, v5}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;->(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$1;)V .line 172 :goto_0 invoke-static {v2, v4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfosInternal(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;)Ljava/util/ArrayList; move-result-object p2 if-eqz p1, :cond_2 .line 173 invoke-virtual {p2}, Ljava/util/ArrayList;->isEmpty()Z move-result p1 if-eqz p1, :cond_2 sget p1, Landroidx/media3/common/util/Util;->SDK_INT:I if-gt v6, p1, :cond_2 sget p1, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v4, 0x17 if-gt p1, v4, :cond_2 .line 176 new-instance p1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16; invoke-direct {p1, v5}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompatV16;->(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$1;)V .line 177 invoke-static {v2, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfosInternal(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;)Ljava/util/ArrayList; move-result-object p2 .line 178 invoke-virtual {p2}, Ljava/util/ArrayList;->isEmpty()Z move-result p1 if-nez p1, :cond_2 const-string p1, "MediaCodecUtil" .line 179 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v4, ". Assuming: " invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const/4 v4, 0x0 .line 184 invoke-virtual {p2, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v4 check-cast v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; iget-object v4, v4, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String; invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 .line 179 invoke-static {p1, v0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V .line 187 :cond_2 invoke-static {p0, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->applyWorkarounds(Ljava/lang/String;Ljava/util/List;)V .line 188 invoke-static {p2}, Lcom/google/common/collect/ImmutableList;->copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList; move-result-object p0 .line 189 invoke-virtual {v3, v2, p0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 190 monitor-exit v1 return-object p0 :catchall_0 move-exception p0 monitor-exit v1 throw p0 .end method .method private static getDecoderInfosInternal(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;)Ljava/util/ArrayList; .locals 24 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;", "Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;", ")", "Ljava/util/ArrayList<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation move-object/from16 v1, p0 move-object/from16 v2, p1 const-string v3, "secure-playback" const-string v4, "tunneled-playback" .line 385 :try_start_0 new-instance v5, Ljava/util/ArrayList; invoke-direct {v5}, Ljava/util/ArrayList;->()V .line 386 iget-object v15, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->mimeType:Ljava/lang/String; .line 387 invoke-interface/range {p1 .. p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->getCodecCount()I move-result v14 .line 388 invoke-interface/range {p1 .. p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->secureDecodersExplicit()Z move-result v13 const/4 v0, 0x0 move v12, v0 :goto_0 if-ge v12, v14, :cond_d .line 391 invoke-interface {v2, v12}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->getCodecInfoAt(I)Landroid/media/MediaCodecInfo; move-result-object v0 .line 392 invoke-static {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isAlias(Landroid/media/MediaCodecInfo;)Z move-result v6 if-eqz v6, :cond_1 :cond_0 :goto_1 move/from16 v22, v12 move/from16 v23, v13 move/from16 v18, v14 goto/16 :goto_4 .line 397 :cond_1 invoke-virtual {v0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String; move-result-object v11 .line 398 invoke-static {v0, v11, v13, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isCodecUsableDecoder(Landroid/media/MediaCodecInfo;Ljava/lang/String;ZLjava/lang/String;)Z move-result v6 if-nez v6, :cond_2 goto :goto_1 .line 401 :cond_2 invoke-static {v0, v11, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getCodecMimeType(Landroid/media/MediaCodecInfo;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v10 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_5 if-nez v10, :cond_3 goto :goto_1 .line 406 :cond_3 :try_start_1 invoke-virtual {v0, v10}, Landroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities; move-result-object v9 .line 408 invoke-interface {v2, v4, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureSupported(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z move-result v6 .line 411 invoke-interface {v2, v4, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureRequired(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z move-result v7 .line 413 iget-boolean v8, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->tunneling:Z if-nez v8, :cond_4 if-nez v7, :cond_0 :cond_4 iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->tunneling:Z if-eqz v7, :cond_5 if-nez v6, :cond_5 goto :goto_1 .line 417 :cond_5 invoke-interface {v2, v3, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureSupported(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z move-result v6 .line 420 invoke-interface {v2, v3, v10, v9}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$MediaCodecListCompat;->isFeatureRequired(Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;)Z move-result v7 .line 422 iget-boolean v8, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z if-nez v8, :cond_6 if-nez v7, :cond_0 :cond_6 iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z if-eqz v7, :cond_7 if-nez v6, :cond_7 goto :goto_1 .line 425 :cond_7 invoke-static {v0, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isHardwareAccelerated(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z move-result v16 .line 426 invoke-static {v0, v15}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isSoftwareOnly(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z move-result v17 .line 427 invoke-static {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isVendor(Landroid/media/MediaCodecInfo;)Z move-result v0 if-eqz v13, :cond_8 .line 428 iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_4 if-eq v7, v6, :cond_9 :cond_8 if-nez v13, :cond_a :try_start_2 iget-boolean v7, v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$CodecKey;->secure:Z :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_1 if-nez v7, :cond_a :cond_9 const/16 v18, 0x0 const/16 v19, 0x0 move-object v6, v11 move-object v7, v15 move-object v8, v10 move-object/from16 v20, v10 move/from16 v10, v16 move-object/from16 v21, v11 move/from16 v11, v17 move/from16 v22, v12 move v12, v0 move/from16 v23, v13 move/from16 v13, v18 move/from16 v18, v14 move/from16 v14, v19 .line 431 :try_start_3 invoke-static/range {v6 .. v14}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; move-result-object v0 .line 430 invoke-virtual {v5, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z goto/16 :goto_4 :catch_0 move-exception v0 goto :goto_2 :catch_1 move-exception v0 move-object/from16 v20, v10 move-object/from16 v21, v11 move/from16 v22, v12 move/from16 v23, v13 move/from16 v18, v14 :goto_2 move-object/from16 v1, v21 goto :goto_3 :cond_a move-object/from16 v20, v10 move-object/from16 v21, v11 move/from16 v22, v12 move/from16 v23, v13 move/from16 v18, v14 if-nez v23, :cond_b if-eqz v6, :cond_b .line 442 new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;->()V :try_end_3 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0 move-object/from16 v14, v21 :try_start_4 invoke-virtual {v6, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 const-string v7, ".secure" invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 :try_end_4 .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_3 const/4 v13, 0x0 const/16 v19, 0x1 move-object v7, v15 move-object/from16 v8, v20 move/from16 v10, v16 move/from16 v11, v17 move v12, v0 move-object v1, v14 move/from16 v14, v19 .line 443 :try_start_5 invoke-static/range {v6 .. v14}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;ZZZZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; move-result-object v0 .line 442 invoke-virtual {v5, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z :try_end_5 .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_2 return-object v5 :catch_2 move-exception v0 goto :goto_3 :catch_3 move-exception v0 move-object v1, v14 goto :goto_3 :catch_4 move-exception v0 move-object/from16 v20, v10 move-object v1, v11 move/from16 v22, v12 move/from16 v23, v13 move/from16 v18, v14 .line 457 :goto_3 :try_start_6 sget v6, Landroidx/media3/common/util/Util;->SDK_INT:I :try_end_6 .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_5 const/16 v7, 0x17 const-string v8, "MediaCodecUtil" if-gt v6, v7, :cond_c :try_start_7 invoke-virtual {v5}, Ljava/util/ArrayList;->isEmpty()Z move-result v6 if-nez v6, :cond_c .line 459 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v6, "Skipping codec " invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, " (failed to query capabilities)" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v8, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V :cond_b :goto_4 add-int/lit8 v12, v22, 0x1 move-object/from16 v1, p0 move/from16 v14, v18 move/from16 v13, v23 goto/16 :goto_0 .line 463 :cond_c new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "Failed to query codec " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const-string v2, " (" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 move-object/from16 v2, v20 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const-string v2, ")" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v8, v1}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V .line 464 throw v0 :try_end_7 .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_5 :cond_d return-object v5 :catch_5 move-exception v0 .line 472 new-instance v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; const/4 v2, 0x0 invoke-direct {v1, v0, v2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException;->(Ljava/lang/Throwable;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$1;)V throw v1 .end method .method public static getDecoderInfosSoftMatch(Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;Landroidx/media3/common/Format;ZZ)Ljava/util/List; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;", "Landroidx/media3/common/Format;", "ZZ)", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation .annotation runtime Lorg/checkerframework/checker/nullness/qual/RequiresNonNull; value = { "#2.sampleMimeType" } .end annotation .line 220 iget-object v0, p1, Landroidx/media3/common/Format;->sampleMimeType:Ljava/lang/String; .line 221 invoke-interface {p0, v0, p2, p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List; move-result-object v0 .line 224 invoke-static {p0, p1, p2, p3}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getAlternativeDecoderInfos(Landroidx/media3/exoplayer/mediacodec/MediaCodecSelector;Landroidx/media3/common/Format;ZZ)Ljava/util/List; move-result-object p0 .line 226 invoke-static {}, Lcom/google/common/collect/ImmutableList;->builder()Lcom/google/common/collect/ImmutableList$Builder; move-result-object p1 .line 227 invoke-virtual {p1, v0}, Lcom/google/common/collect/ImmutableList$Builder;->addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList$Builder; move-result-object p1 .line 228 invoke-virtual {p1, p0}, Lcom/google/common/collect/ImmutableList$Builder;->addAll(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList$Builder; move-result-object p0 .line 229 invoke-virtual {p0}, Lcom/google/common/collect/ImmutableList$Builder;->build()Lcom/google/common/collect/ImmutableList; move-result-object p0 return-object p0 .end method .method public static getDecoderInfosSortedByFormatSupport(Ljava/util/List;Landroidx/media3/common/Format;)Ljava/util/List; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;", "Landroidx/media3/common/Format;", ")", "Ljava/util/List<", "Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;", ">;" } .end annotation .line 271 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0, p0}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V .line 272 new-instance p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda0; invoke-direct {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda0;->(Landroidx/media3/common/Format;)V invoke-static {v0, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V return-object v0 .end method .method public static getDecryptOnlyDecoderInfo()Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation const-string v0, "audio/raw" const/4 v1, 0x0 .line 127 invoke-static {v0, v1, v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfo(Ljava/lang/String;ZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; move-result-object v0 return-object v0 .end method .method private static getDolbyVisionProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; .locals 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "[", "Ljava/lang/String;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 778 array-length v0, p1 const/4 v1, 0x3 const-string v2, "Ignoring malformed Dolby Vision codec string: " const/4 v3, 0x0 const-string v4, "MediaCodecUtil" if-ge v0, v1, :cond_0 .line 780 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_0 sget-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->PROFILE_PATTERN:Ljava/util/regex/Pattern; const/4 v1, 0x1 .line 784 aget-object v5, p1, v1 invoke-virtual {v0, v5}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v0 .line 785 invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z move-result v5 if-nez v5, :cond_1 .line 786 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 789 :cond_1 invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object p0 .line 790 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->dolbyVisionStringToProfile(Ljava/lang/String;)Ljava/lang/Integer; move-result-object v0 if-nez v0, :cond_2 .line 792 new-instance p1, Ljava/lang/StringBuilder; const-string v0, "Unknown Dolby Vision profile string: " invoke-direct {p1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_2 const/4 p0, 0x2 .line 795 aget-object p0, p1, p0 .line 796 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->dolbyVisionStringToLevel(Ljava/lang/String;)Ljava/lang/Integer; move-result-object p1 if-nez p1, :cond_3 .line 798 new-instance p1, Ljava/lang/StringBuilder; const-string v0, "Unknown Dolby Vision level string: " invoke-direct {p1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 801 :cond_3 new-instance p0, Landroid/util/Pair; invoke-direct {p0, v0, p1}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 .end method .method private static getHevcProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;Landroidx/media3/common/ColorInfo;)Landroid/util/Pair; .locals 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "[", "Ljava/lang/String;", "Landroidx/media3/common/ColorInfo;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 807 array-length v0, p1 const/4 v1, 0x4 const-string v2, "Ignoring malformed HEVC codec string: " const/4 v3, 0x0 const-string v4, "MediaCodecUtil" if-ge v0, v1, :cond_0 .line 809 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_0 sget-object v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->PROFILE_PATTERN:Ljava/util/regex/Pattern; const/4 v1, 0x1 .line 813 aget-object v5, p1, v1 invoke-virtual {v0, v5}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v0 .line 814 invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z move-result v5 if-nez v5, :cond_1 .line 815 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 818 :cond_1 invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object p0 const-string v0, "1" .line 820 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_2 goto :goto_0 :cond_2 const-string v0, "2" .line 822 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_5 if-eqz p2, :cond_3 .line 823 iget p0, p2, Landroidx/media3/common/ColorInfo;->colorTransfer:I const/4 p2, 0x6 if-ne p0, p2, :cond_3 const/16 v1, 0x1000 goto :goto_0 :cond_3 const/4 v1, 0x2 :goto_0 const/4 p0, 0x3 .line 836 aget-object p0, p1, p0 .line 837 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->hevcCodecStringToProfileLevel(Ljava/lang/String;)Ljava/lang/Integer; move-result-object p1 if-nez p1, :cond_4 .line 839 new-instance p1, Ljava/lang/StringBuilder; const-string p2, "Unknown HEVC level string: " invoke-direct {p1, p2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 842 :cond_4 new-instance p0, Landroid/util/Pair; invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 invoke-direct {p0, p2, p1}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 .line 833 :cond_5 new-instance p1, Ljava/lang/StringBuilder; const-string p2, "Unknown HEVC profile string: " invoke-direct {p1, p2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .end method .method private static getVp9ProfileAndLevel(Ljava/lang/String;[Ljava/lang/String;)Landroid/util/Pair; .locals 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "[", "Ljava/lang/String;", ")", "Landroid/util/Pair<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation .line 888 array-length v0, p1 const/4 v1, 0x3 const-string v2, "Ignoring malformed VP9 codec string: " const/4 v3, 0x0 const-string v4, "MediaCodecUtil" if-ge v0, v1, :cond_0 .line 889 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 :cond_0 const/4 v0, 0x1 .line 895 :try_start_0 aget-object v0, p1, v0 invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v0 const/4 v1, 0x2 .line 896 aget-object p1, p1, v1 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p0 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 .line 902 invoke-static {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->vp9ProfileNumberToConst(I)I move-result p1 const/4 v1, -0x1 if-ne p1, v1, :cond_1 .line 904 new-instance p0, Ljava/lang/StringBuilder; const-string p1, "Unknown VP9 profile: " invoke-direct {p0, p1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 907 :cond_1 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->vp9LevelNumberToConst(I)I move-result v0 if-ne v0, v1, :cond_2 .line 909 new-instance p1, Ljava/lang/StringBuilder; const-string v0, "Unknown VP9 level: " invoke-direct {p1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .line 912 :cond_2 new-instance p0, Landroid/util/Pair; invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 invoke-direct {p0, p1, v0}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V return-object p0 .line 898 :catch_0 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {v4, p0}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V return-object v3 .end method .method private static hevcCodecStringToProfileLevel(Ljava/lang/String;)Ljava/lang/Integer; .locals 8 const/4 v0, 0x0 if-nez p0, :cond_0 return-object v0 .line 1299 :cond_0 invoke-virtual {p0}, Ljava/lang/String;->hashCode()I invoke-virtual {p0}, Ljava/lang/String;->hashCode()I move-result v1 const/16 v2, 0x10 const/16 v3, 0x8 const/4 v4, 0x4 const/4 v5, 0x2 const/4 v6, 0x1 const/4 v7, -0x1 sparse-switch v1, :sswitch_data_0 goto/16 :goto_0 :sswitch_0 const-string v1, "L186" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 goto/16 :goto_0 :cond_1 const/16 v7, 0x19 goto/16 :goto_0 :sswitch_1 const-string v1, "L183" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_2 goto/16 :goto_0 :cond_2 const/16 v7, 0x18 goto/16 :goto_0 :sswitch_2 const-string v1, "L180" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_3 goto/16 :goto_0 :cond_3 const/16 v7, 0x17 goto/16 :goto_0 :sswitch_3 const-string v1, "L156" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_4 goto/16 :goto_0 :cond_4 const/16 v7, 0x16 goto/16 :goto_0 :sswitch_4 const-string v1, "L153" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 goto/16 :goto_0 :cond_5 const/16 v7, 0x15 goto/16 :goto_0 :sswitch_5 const-string v1, "L150" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_6 goto/16 :goto_0 :cond_6 const/16 v7, 0x14 goto/16 :goto_0 :sswitch_6 const-string v1, "L123" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_7 goto/16 :goto_0 :cond_7 const/16 v7, 0x13 goto/16 :goto_0 :sswitch_7 const-string v1, "L120" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_8 goto/16 :goto_0 :cond_8 const/16 v7, 0x12 goto/16 :goto_0 :sswitch_8 const-string v1, "H186" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_9 goto/16 :goto_0 :cond_9 const/16 v7, 0x11 goto/16 :goto_0 :sswitch_9 const-string v1, "H183" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a goto/16 :goto_0 :cond_a move v7, v2 goto/16 :goto_0 :sswitch_a const-string v1, "H180" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_b goto/16 :goto_0 :cond_b const/16 v7, 0xf goto/16 :goto_0 :sswitch_b const-string v1, "H156" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_c goto/16 :goto_0 :cond_c const/16 v7, 0xe goto/16 :goto_0 :sswitch_c const-string v1, "H153" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_d goto/16 :goto_0 :cond_d const/16 v7, 0xd goto/16 :goto_0 :sswitch_d const-string v1, "H150" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_e goto/16 :goto_0 :cond_e const/16 v7, 0xc goto/16 :goto_0 :sswitch_e const-string v1, "H123" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_f goto/16 :goto_0 :cond_f const/16 v7, 0xb goto/16 :goto_0 :sswitch_f const-string v1, "H120" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_10 goto/16 :goto_0 :cond_10 const/16 v7, 0xa goto/16 :goto_0 :sswitch_10 const-string v1, "L93" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_11 goto/16 :goto_0 :cond_11 const/16 v7, 0x9 goto/16 :goto_0 :sswitch_11 const-string v1, "L90" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_12 goto/16 :goto_0 :cond_12 move v7, v3 goto/16 :goto_0 :sswitch_12 const-string v1, "L63" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_13 goto :goto_0 :cond_13 const/4 v7, 0x7 goto :goto_0 :sswitch_13 const-string v1, "L60" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_14 goto :goto_0 :cond_14 const/4 v7, 0x6 goto :goto_0 :sswitch_14 const-string v1, "L30" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_15 goto :goto_0 :cond_15 const/4 v7, 0x5 goto :goto_0 :sswitch_15 const-string v1, "H93" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_16 goto :goto_0 :cond_16 move v7, v4 goto :goto_0 :sswitch_16 const-string v1, "H90" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_17 goto :goto_0 :cond_17 const/4 v7, 0x3 goto :goto_0 :sswitch_17 const-string v1, "H63" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_18 goto :goto_0 :cond_18 move v7, v5 goto :goto_0 :sswitch_18 const-string v1, "H60" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_19 goto :goto_0 :cond_19 move v7, v6 goto :goto_0 :sswitch_19 const-string v1, "H30" invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1a goto :goto_0 :cond_1a const/4 v7, 0x0 :goto_0 packed-switch v7, :pswitch_data_0 return-object v0 :pswitch_0 const/high16 p0, 0x1000000 .line 1325 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_1 const/high16 p0, 0x400000 .line 1323 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_2 const/high16 p0, 0x100000 .line 1321 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_3 const/high16 p0, 0x40000 .line 1319 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_4 const/high16 p0, 0x10000 .line 1317 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_5 const/16 p0, 0x4000 .line 1315 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_6 const/16 p0, 0x1000 .line 1313 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_7 const/16 p0, 0x400 .line 1311 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_8 const/high16 p0, 0x2000000 .line 1351 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_9 const/high16 p0, 0x800000 .line 1349 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_a const/high16 p0, 0x200000 .line 1347 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_b const/high16 p0, 0x80000 .line 1345 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_c const/high16 p0, 0x20000 .line 1343 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_d const p0, 0x8000 .line 1341 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_e const/16 p0, 0x2000 .line 1339 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_f const/16 p0, 0x800 .line 1337 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_10 const/16 p0, 0x100 .line 1309 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_11 const/16 p0, 0x40 .line 1307 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1305 :pswitch_12 invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1303 :pswitch_13 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1301 :pswitch_14 invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_15 const/16 p0, 0x200 .line 1335 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_16 const/16 p0, 0x80 .line 1333 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :pswitch_17 const/16 p0, 0x20 .line 1331 invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1329 :pswitch_18 invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 .line 1327 :pswitch_19 invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p0 return-object p0 :sswitch_data_0 .sparse-switch 0x114a5 -> :sswitch_19 0x11502 -> :sswitch_18 0x11505 -> :sswitch_17 0x1155f -> :sswitch_16 0x11562 -> :sswitch_15 0x123a9 -> :sswitch_14 0x12406 -> :sswitch_13 0x12409 -> :sswitch_12 0x12463 -> :sswitch_11 0x12466 -> :sswitch_10 0x2178e7 -> :sswitch_f 0x2178ea -> :sswitch_e 0x217944 -> :sswitch_d 0x217947 -> :sswitch_c 0x21794a -> :sswitch_b 0x2179a1 -> :sswitch_a 0x2179a4 -> :sswitch_9 0x2179a7 -> :sswitch_8 0x234a63 -> :sswitch_7 0x234a66 -> :sswitch_6 0x234ac0 -> :sswitch_5 0x234ac3 -> :sswitch_4 0x234ac6 -> :sswitch_3 0x234b1d -> :sswitch_2 0x234b20 -> :sswitch_1 0x234b23 -> :sswitch_0 .end sparse-switch :pswitch_data_0 .packed-switch 0x0 :pswitch_19 :pswitch_18 :pswitch_17 :pswitch_16 :pswitch_15 :pswitch_14 :pswitch_13 :pswitch_12 :pswitch_11 :pswitch_10 :pswitch_f :pswitch_e :pswitch_d :pswitch_c :pswitch_b :pswitch_a :pswitch_9 :pswitch_8 :pswitch_7 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static isAlias(Landroid/media/MediaCodecInfo;)Z .locals 2 .line 698 sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v1, 0x1d if-lt v0, v1, :cond_0 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isAliasV29(Landroid/media/MediaCodecInfo;)Z move-result p0 if-eqz p0, :cond_0 const/4 p0, 0x1 goto :goto_0 :cond_0 const/4 p0, 0x0 :goto_0 return p0 .end method .method private static isAliasV29(Landroid/media/MediaCodecInfo;)Z .locals 0 .line 703 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isAlias()Z move-result p0 return p0 .end method .method private static isCodecUsableDecoder(Landroid/media/MediaCodecInfo;Ljava/lang/String;ZLjava/lang/String;)Z .locals 3 .line 531 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isEncoder()Z move-result p0 const/4 v0, 0x0 if-nez p0, :cond_10 if-nez p2, :cond_0 const-string p0, ".secure" invoke-virtual {p1, p0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_0 goto/16 :goto_0 .line 536 :cond_0 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 p2, 0x15 if-ge p0, p2, :cond_2 const-string p0, "CIPAACDecoder" .line 537 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 const-string p0, "CIPMP3Decoder" .line 538 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 const-string p0, "CIPVorbisDecoder" .line 539 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 const-string p0, "CIPAMRNBDecoder" .line 540 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 const-string p0, "AACDecoder" .line 541 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_1 const-string p0, "MP3Decoder" .line 542 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_2 :cond_1 return v0 .line 548 :cond_2 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 p2, 0x12 if-ge p0, p2, :cond_4 const-string p0, "OMX.MTK.AUDIO.DECODER.AAC" .line 549 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_4 const-string p0, "a70" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 550 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_3 const-string p0, "Xiaomi" sget-object p2, Landroidx/media3/common/util/Util;->MANUFACTURER:Ljava/lang/String; .line 551 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_4 sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string p2, "HM" invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_4 :cond_3 return v0 .line 557 :cond_4 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 p2, 0x10 if-ne p0, p2, :cond_6 const-string p0, "OMX.qcom.audio.decoder.mp3" .line 558 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_6 const-string p0, "dlxu" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 559 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "protou" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 560 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "ville" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 561 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "villeplus" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 562 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "villec2" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 563 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string v1, "gee" .line 564 invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "C6602" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 565 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "C6603" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 566 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "C6606" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 567 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "C6616" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 568 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "L36h" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 569 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_5 const-string p0, "SO-02E" sget-object v1, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 570 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_6 :cond_5 return v0 .line 575 :cond_6 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I if-ne p0, p2, :cond_8 const-string p0, "OMX.qcom.audio.decoder.aac" .line 576 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_8 const-string p0, "C1504" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 577 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_7 const-string p0, "C1505" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 578 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_7 const-string p0, "C1604" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 579 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_7 const-string p0, "C1605" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 580 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_8 :cond_7 return v0 .line 585 :cond_8 sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 p2, 0x18 const-string v1, "samsung" if-ge p0, p2, :cond_b const-string p0, "OMX.SEC.aac.dec" .line 586 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_9 const-string p0, "OMX.Exynos.AAC.Decoder" invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_b :cond_9 sget-object p0, Landroidx/media3/common/util/Util;->MANUFACTURER:Ljava/lang/String; .line 587 invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_b sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string p2, "zeroflte" .line 588 invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_a sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string p2, "zerolte" .line 589 invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_a sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string p2, "zenlte" .line 590 invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_a const-string p0, "SC-05G" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 591 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a const-string p0, "marinelteatt" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 592 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a const-string p0, "404SC" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 593 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a const-string p0, "SC-04G" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 594 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-nez p0, :cond_a const-string p0, "SCV31" sget-object p2, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 595 invoke-virtual {p0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_b :cond_a return v0 .line 601 :cond_b sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const-string p2, "jflte" const/16 v2, 0x13 if-gt p0, v2, :cond_d const-string p0, "OMX.SEC.vp8.dec" .line 602 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_d sget-object p0, Landroidx/media3/common/util/Util;->MANUFACTURER:Ljava/lang/String; .line 603 invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_d sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string v1, "d2" .line 604 invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_c sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string v1, "serrano" .line 605 invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_c sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 606 invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_c sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string v1, "santos" .line 607 invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_c sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; const-string v1, "t0" .line 608 invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_d :cond_c return v0 .line 613 :cond_d sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I if-gt p0, v2, :cond_e sget-object p0, Landroidx/media3/common/util/Util;->DEVICE:Ljava/lang/String; .line 614 invoke-virtual {p0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_e const-string p0, "OMX.qcom.video.decoder.vp8" .line 615 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_e return v0 .line 620 :cond_e sget p0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 p2, 0x17 if-gt p0, p2, :cond_f const-string p0, "audio/eac3-joc" .line 621 invoke-virtual {p0, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_f const-string p0, "OMX.MTK.AUDIO.DECODER.DSPAC3" .line 622 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_f return v0 :cond_f const/4 p0, 0x1 return p0 :cond_10 :goto_0 return v0 .end method .method private static isHardwareAccelerated(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z .locals 2 .line 712 sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v1, 0x1d if-lt v0, v1, :cond_0 .line 713 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isHardwareAcceleratedV29(Landroid/media/MediaCodecInfo;)Z move-result p0 return p0 .line 717 :cond_0 invoke-static {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isSoftwareOnly(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z move-result p0 xor-int/lit8 p0, p0, 0x1 return p0 .end method .method private static isHardwareAcceleratedV29(Landroid/media/MediaCodecInfo;)Z .locals 0 .line 722 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isHardwareAccelerated()Z move-result p0 return p0 .end method .method private static isSoftwareOnly(Landroid/media/MediaCodecInfo;Ljava/lang/String;)Z .locals 2 .line 730 sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v1, 0x1d if-lt v0, v1, :cond_0 .line 731 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isSoftwareOnlyV29(Landroid/media/MediaCodecInfo;)Z move-result p0 return p0 .line 733 :cond_0 invoke-static {p1}, Landroidx/media3/common/MimeTypes;->isAudio(Ljava/lang/String;)Z move-result p1 const/4 v0, 0x1 if-eqz p1, :cond_1 return v0 .line 737 :cond_1 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String; move-result-object p0 invoke-static {p0}, Lcom/google/common/base/Ascii;->toLowerCase(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 const-string p1, "arc." .line 738 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 const/4 v1, 0x0 if-eqz p1, :cond_2 return v1 :cond_2 const-string p1, "omx.google." .line 742 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 if-nez p1, :cond_5 const-string p1, "omx.ffmpeg." .line 743 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 if-nez p1, :cond_5 const-string p1, "omx.sec." .line 744 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 if-eqz p1, :cond_3 const-string p1, ".sw." invoke-virtual {p0, p1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result p1 if-nez p1, :cond_5 :cond_3 const-string p1, "omx.qcom.video.decoder.hevcswvdec" .line 745 invoke-virtual {p0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-nez p1, :cond_5 const-string p1, "c2.android." .line 746 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 if-nez p1, :cond_5 const-string p1, "c2.google." .line 747 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 if-nez p1, :cond_5 const-string p1, "omx." .line 748 invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p1 if-nez p1, :cond_4 const-string p1, "c2." invoke-virtual {p0, p1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_4 goto :goto_0 :cond_4 move v0, v1 :cond_5 :goto_0 return v0 .end method .method private static isSoftwareOnlyV29(Landroid/media/MediaCodecInfo;)Z .locals 0 .line 753 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isSoftwareOnly()Z move-result p0 return p0 .end method .method private static isVendor(Landroid/media/MediaCodecInfo;)Z .locals 2 .line 761 sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v1, 0x1d if-lt v0, v1, :cond_0 .line 762 invoke-static {p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->isVendorV29(Landroid/media/MediaCodecInfo;)Z move-result p0 return p0 .line 764 :cond_0 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String; move-result-object p0 invoke-static {p0}, Lcom/google/common/base/Ascii;->toLowerCase(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 const-string v0, "omx.google." .line 765 invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_1 const-string v0, "c2.android." .line 766 invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_1 const-string v0, "c2.google." .line 767 invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 if-nez p0, :cond_1 const/4 p0, 0x1 goto :goto_0 :cond_1 const/4 p0, 0x0 :goto_0 return p0 .end method .method private static isVendorV29(Landroid/media/MediaCodecInfo;)Z .locals 0 .line 772 invoke-virtual {p0}, Landroid/media/MediaCodecInfo;->isVendor()Z move-result p0 return p0 .end method .method static synthetic lambda$applyWorkarounds$1(Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;)I .locals 2 .line 660 iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String; const-string v0, "OMX.google" .line 661 invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_2 const-string v0, "c2.android" invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_0 goto :goto_0 .line 665 :cond_0 sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v1, 0x1a if-ge v0, v1, :cond_1 const-string v0, "OMX.MTK.AUDIO.DECODER.RAW" invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 if-eqz p0, :cond_1 const/4 p0, -0x1 return p0 :cond_1 const/4 p0, 0x0 return p0 :cond_2 :goto_0 const/4 p0, 0x1 return p0 .end method .method static synthetic lambda$applyWorkarounds$2(Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;)I .locals 1 .line 683 iget-object p0, p0, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->name:Ljava/lang/String; const-string v0, "OMX.google" invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result p0 return p0 .end method .method static synthetic lambda$getDecoderInfosSortedByFormatSupport$0(Landroidx/media3/common/Format;Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;)I .locals 0 .line 273 invoke-virtual {p1, p0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->isFormatFunctionallySupported(Landroidx/media3/common/Format;)Z move-result p0 return p0 .end method .method static synthetic lambda$sortByScore$3(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;Ljava/lang/Object;Ljava/lang/Object;)I .locals 0 .line 1033 invoke-interface {p0, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;->getScore(Ljava/lang/Object;)I move-result p2 invoke-interface {p0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;->getScore(Ljava/lang/Object;)I move-result p0 sub-int/2addr p2, p0 return p2 .end method .method public static maxH264DecodableFrameSize()I .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; } .end annotation sget v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I const/4 v1, -0x1 if-ne v0, v1, :cond_3 const-string v0, "video/avc" const/4 v1, 0x0 .line 287 invoke-static {v0, v1, v1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfo(Ljava/lang/String;ZZ)Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo; move-result-object v0 if-eqz v0, :cond_2 .line 289 invoke-virtual {v0}, Landroidx/media3/exoplayer/mediacodec/MediaCodecInfo;->getProfileLevels()[Landroid/media/MediaCodecInfo$CodecProfileLevel; move-result-object v0 array-length v2, v0 move v3, v1 :goto_0 if-ge v1, v2, :cond_0 aget-object v4, v0, v1 .line 290 iget v4, v4, Landroid/media/MediaCodecInfo$CodecProfileLevel;->level:I invoke-static {v4}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->avcLevelToMaxFrameSize(I)I move-result v4 invoke-static {v4, v3}, Ljava/lang/Math;->max(II)I move-result v3 add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 294 :cond_0 sget v0, Landroidx/media3/common/util/Util;->SDK_INT:I const/16 v1, 0x15 if-lt v0, v1, :cond_1 const v0, 0x54600 goto :goto_1 :cond_1 const v0, 0x2a300 :goto_1 invoke-static {v3, v0}, Ljava/lang/Math;->max(II)I move-result v1 :cond_2 sput v1, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I :cond_3 sget v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->maxH264DecodableFrameSize:I return v0 .end method .method private static mp4aAudioObjectTypeToProfile(I)I .locals 1 const/16 v0, 0x11 if-eq p0, v0, :cond_0 const/16 v0, 0x14 if-eq p0, v0, :cond_0 const/16 v0, 0x17 if-eq p0, v0, :cond_0 const/16 v0, 0x1d if-eq p0, v0, :cond_0 const/16 v0, 0x27 if-eq p0, v0, :cond_0 const/16 v0, 0x2a if-eq p0, v0, :cond_0 packed-switch p0, :pswitch_data_0 const/4 p0, -0x1 return p0 :pswitch_0 const/4 p0, 0x6 return p0 :pswitch_1 const/4 p0, 0x5 return p0 :pswitch_2 const/4 p0, 0x4 return p0 :pswitch_3 const/4 p0, 0x3 return p0 :pswitch_4 const/4 p0, 0x2 return p0 :pswitch_5 const/4 p0, 0x1 return p0 :cond_0 return v0 :pswitch_data_0 .packed-switch 0x1 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static sortByScore(Ljava/util/List;Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "TT;>;", "Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider<", "TT;>;)V" } .end annotation .line 1033 new-instance v0, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda1; invoke-direct {v0, p1}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$$ExternalSyntheticLambda1;->(Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$ScoreProvider;)V invoke-static {p0, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V return-void .end method .method private static vp9LevelNumberToConst(I)I .locals 1 const/16 v0, 0xa if-eq p0, v0, :cond_9 const/16 v0, 0xb if-eq p0, v0, :cond_8 const/16 v0, 0x14 if-eq p0, v0, :cond_7 const/16 v0, 0x15 if-eq p0, v0, :cond_6 const/16 v0, 0x1e if-eq p0, v0, :cond_5 const/16 v0, 0x1f if-eq p0, v0, :cond_4 const/16 v0, 0x28 if-eq p0, v0, :cond_3 const/16 v0, 0x29 if-eq p0, v0, :cond_2 const/16 v0, 0x32 if-eq p0, v0, :cond_1 const/16 v0, 0x33 if-eq p0, v0, :cond_0 packed-switch p0, :pswitch_data_0 const/4 p0, -0x1 return p0 :pswitch_0 const/16 p0, 0x2000 return p0 :pswitch_1 const/16 p0, 0x1000 return p0 :pswitch_2 const/16 p0, 0x800 return p0 :cond_0 const/16 p0, 0x200 return p0 :cond_1 const/16 p0, 0x100 return p0 :cond_2 const/16 p0, 0x80 return p0 :cond_3 const/16 p0, 0x40 return p0 :cond_4 const/16 p0, 0x20 return p0 :cond_5 const/16 p0, 0x10 return p0 :cond_6 const/16 p0, 0x8 return p0 :cond_7 const/4 p0, 0x4 return p0 :cond_8 const/4 p0, 0x2 return p0 :cond_9 const/4 p0, 0x1 return p0 nop :pswitch_data_0 .packed-switch 0x3c :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method private static vp9ProfileNumberToConst(I)I .locals 2 const/4 v0, 0x1 if-eqz p0, :cond_3 const/4 v1, 0x2 if-eq p0, v0, :cond_2 if-eq p0, v1, :cond_1 const/4 v0, 0x3 if-eq p0, v0, :cond_0 const/4 p0, -0x1 return p0 :cond_0 const/16 p0, 0x8 return p0 :cond_1 const/4 p0, 0x4 return p0 :cond_2 return v1 :cond_3 return v0 .end method .method public static warmDecoderInfoCache(Ljava/lang/String;ZZ)V .locals 0 .line 106 :try_start_0 invoke-static {p0, p1, p2}, Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil;->getDecoderInfos(Ljava/lang/String;ZZ)Ljava/util/List; :try_end_0 .catch Landroidx/media3/exoplayer/mediacodec/MediaCodecUtil$DecoderQueryException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception p0 const-string p1, "MediaCodecUtil" const-string p2, "Codec warming failed" .line 109 invoke-static {p1, p2, p0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V :goto_0 return-void .end method