VideoDecoderUtils$1.smali
.class Lio/agora/base/internal/video/VideoDecoderUtils$1;
.super Ljava/lang/Object;
.source "VideoDecoderUtils.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lio/agora/base/internal/video/VideoDecoderUtils;->findCodecForType(Lio/agora/base/internal/video/VideoCodecType;)Landroid/media/MediaCodecInfo;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic val$countDownLatch:Ljava/util/concurrent/CountDownLatch;
.field final synthetic val$result:[Landroid/media/MediaCodecInfo;
.field final synthetic val$type:Lio/agora/base/internal/video/VideoCodecType;
# direct methods
.method constructor <init>(Lio/agora/base/internal/video/VideoCodecType;[Landroid/media/MediaCodecInfo;Ljava/util/concurrent/CountDownLatch;)V
.registers 4
.line 61
iput-object p1, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$type:Lio/agora/base/internal/video/VideoCodecType;
iput-object p2, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$result:[Landroid/media/MediaCodecInfo;
iput-object p3, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$countDownLatch:Ljava/util/concurrent/CountDownLatch;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.registers 7
const-string v0, "HardwareVideoDecoderUtils"
const/4 v1, 0x0
move v2, v1
.line 64
:goto_4
invoke-static {}, Landroid/media/MediaCodecList;->getCodecCount()I
move-result v3
if-ge v2, v3, :cond_47
const/4 v3, 0x0
.line 67
:try_start_b
invoke-static {v2}, Landroid/media/MediaCodecList;->getCodecInfoAt(I)Landroid/media/MediaCodecInfo;
move-result-object v3
:try_end_f
.catch Ljava/lang/IllegalArgumentException; {:try_start_b .. :try_end_f} :catch_10
goto :goto_16
:catch_10
move-exception v4
const-string v5, "Cannot retrieve encoder codec info"
.line 69
invoke-static {v0, v5, v4}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_16
if-eqz v3, :cond_44
.line 71
invoke-virtual {v3}, Landroid/media/MediaCodecInfo;->isEncoder()Z
move-result v4
if-eqz v4, :cond_1f
goto :goto_44
.line 74
:cond_1f
iget-object v4, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$type:Lio/agora/base/internal/video/VideoCodecType;
invoke-static {v3, v4}, Lio/agora/base/internal/video/VideoDecoderUtils;->isSupportedCodec(Landroid/media/MediaCodecInfo;Lio/agora/base/internal/video/VideoCodecType;)Z
move-result v4
if-eqz v4, :cond_44
.line 75
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "found available decodec: "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Landroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 76
iget-object v0, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$result:[Landroid/media/MediaCodecInfo;
aput-object v3, v0, v1
goto :goto_47
:cond_44
:goto_44
add-int/lit8 v2, v2, 0x1
goto :goto_4
.line 80
:cond_47
:goto_47
# getter for: Lio/agora/base/internal/video/VideoDecoderUtils;->codecByTypeCache:Ljava/util/HashMap;
invoke-static {}, Lio/agora/base/internal/video/VideoDecoderUtils;->access$000()Ljava/util/HashMap;
move-result-object v0
iget-object v2, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$type:Lio/agora/base/internal/video/VideoCodecType;
iget-object v3, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$result:[Landroid/media/MediaCodecInfo;
aget-object v1, v3, v1
invoke-virtual {v0, v2, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 81
iget-object v0, p0, Lio/agora/base/internal/video/VideoDecoderUtils$1;->val$countDownLatch:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
return-void
.end method