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