VideoCaptureCamera1.smali
.class public Lio/agora/rtc2/video/VideoCaptureCamera1;
.super Lio/agora/rtc2/video/VideoCaptureCamera;
.source "VideoCaptureCamera1.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/agora/rtc2/video/VideoCaptureCamera1$CrErrorCallback;,
Lio/agora/rtc2/video/VideoCaptureCamera1$BuggyDeviceHack;
}
.end annotation
# static fields
.field private static final COLOR_TEMPERATURES_MAP:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static final DEBUG:Z = false
.field private static final GL_TEXTURE_EXTERNAL_OES:I = 0x8d65
.field private static IMAGE_FORMAT:I = 0x0
.field private static final NUM_CAPTURE_BUFFERS:I = 0x3
.field private static final TAG:Ljava/lang/String; = "VideoCaptureCamera1"
# instance fields
.field private mAreaOfInterest:Landroid/hardware/Camera$Area;
.field private mCamera:Landroid/hardware/Camera;
.field private mExpectedFrameSize:I
.field private mIsRunning:Z
.field private final mObjectLock:Ljava/lang/Object;
.field private mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
.field private mPreviewParameters:Landroid/hardware/Camera$Parameters;
# direct methods
.method static constructor <clinit>()V
.registers 3
.line 70
new-instance v0, Landroid/util/SparseArray;
invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
sput-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->COLOR_TEMPERATURES_MAP:Landroid/util/SparseArray;
const/16 v1, 0xb22
const-string v2, "incandescent"
.line 71
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v1, 0xb86
const-string v2, "warm-fluorescent"
.line 73
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v1, 0x109a
const-string v2, "fluorescent"
.line 75
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v1, 0x11f8
const-string v2, "twilight"
.line 77
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v1, 0x157c
const-string v2, "daylight"
.line 78
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v1, 0x1770
const-string v2, "cloudy-daylight"
.line 79
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v1, 0x1b58
const-string v2, "shade"
.line 81
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->append(ILjava/lang/Object;)V
const/16 v0, 0x11
.line 115
sput v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->IMAGE_FORMAT:I
return-void
.end method
.method constructor <init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
.registers 8
.line 321
invoke-direct/range {p0 .. p7}, Lio/agora/rtc2/video/VideoCaptureCamera;-><init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
.line 124
new-instance p1, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {p1}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
.line 128
new-instance p1, Ljava/lang/Object;
invoke-direct {p1}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mObjectLock:Ljava/lang/Object;
return-void
.end method
.method static synthetic access$000()Ljava/lang/String;
.registers 1
.line 59
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$100(Lio/agora/rtc2/video/VideoCaptureCamera1;)Landroid/hardware/Camera;
.registers 1
.line 59
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
return-object p0
.end method
.method static synthetic access$1000(Lio/agora/rtc2/video/VideoCaptureCamera1;)I
.registers 1
.line 59
iget p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mExpectedFrameSize:I
return p0
.end method
.method static synthetic access$102(Lio/agora/rtc2/video/VideoCaptureCamera1;Landroid/hardware/Camera;)Landroid/hardware/Camera;
.registers 2
.line 59
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
return-object p1
.end method
.method static synthetic access$200(Lio/agora/rtc2/video/VideoCaptureCamera1;[Landroid/hardware/Camera$Face;)V
.registers 2
.line 59
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->notifyFaceDetection([Landroid/hardware/Camera$Face;)V
return-void
.end method
.method static synthetic access$300(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
.registers 1
.line 59
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->safetyStopFaceDetection()V
return-void
.end method
.method static synthetic access$400(Lio/agora/rtc2/video/VideoCaptureCamera1;)Ljava/lang/Object;
.registers 1
.line 59
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mObjectLock:Ljava/lang/Object;
return-object p0
.end method
.method static synthetic access$500(Lio/agora/rtc2/video/VideoCaptureCamera1;I)Ljava/lang/String;
.registers 2
.line 59
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->toCamera1ABMode(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static synthetic access$600(Ljava/lang/String;Ljava/util/List;)Z
.registers 2
.line 59
invoke-static {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isSupported(Ljava/lang/String;Ljava/util/List;)Z
move-result p0
return p0
.end method
.method static synthetic access$700(Lio/agora/rtc2/video/VideoCaptureCamera1;)Ljava/util/concurrent/locks/ReentrantLock;
.registers 1
.line 59
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
return-object p0
.end method
.method static synthetic access$800(Lio/agora/rtc2/video/VideoCaptureCamera1;)Z
.registers 1
.line 59
iget-boolean p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsRunning:Z
return p0
.end method
.method static synthetic access$901(Lio/agora/rtc2/video/VideoCaptureCamera1;I)V
.registers 2
.line 59
invoke-super {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->onFrameDropped(I)V
return-void
.end method
.method private static getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
.registers 4
.line 132
new-instance v0, Landroid/hardware/Camera$CameraInfo;
invoke-direct {v0}, Landroid/hardware/Camera$CameraInfo;-><init>()V
.line 134
:try_start_5
invoke-static {p0, v0}, Landroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
:try_end_8
.catch Ljava/lang/RuntimeException; {:try_start_5 .. :try_end_8} :catch_9
return-object v0
:catch_9
move-exception p0
.line 136
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "getCameraInfo: Camera.getCameraInfo: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v0, p0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 p0, 0x0
return-object p0
.end method
.method static getCaptureApiType(I)I
.registers 1
.line 189
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object p0
if-nez p0, :cond_9
const/16 p0, 0xb
return p0
:cond_9
const/4 p0, 0x6
return p0
.end method
.method private getClosestWhiteBalance(ILjava/util/List;)Ljava/lang/String;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/List<",
"Ljava/lang/String;",
">;)",
"Ljava/lang/String;"
}
.end annotation
const v0, 0x7fffffff
const/4 v1, 0x0
const/4 v2, 0x0
.line 147
:goto_5
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->COLOR_TEMPERATURES_MAP:Landroid/util/SparseArray;
invoke-virtual {v3}, Landroid/util/SparseArray;->size()I
move-result v4
if-ge v2, v4, :cond_30
.line 148
invoke-virtual {v3, v2}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v4
invoke-interface {p2, v4}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_18
goto :goto_2d
.line 150
:cond_18
invoke-virtual {v3, v2}, Landroid/util/SparseArray;->keyAt(I)I
move-result v4
sub-int v4, p1, v4
invoke-static {v4}, Ljava/lang/Math;->abs(I)I
move-result v4
if-lt v4, v0, :cond_25
goto :goto_2d
.line 154
:cond_25
invoke-virtual {v3, v2}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
move-object v1, v0
move v0, v4
:goto_2d
add-int/lit8 v2, v2, 0x1
goto :goto_5
:cond_30
return-object v1
.end method
.method static getDeviceId(I)Ljava/lang/String;
.registers 1
.line 224
invoke-static {p0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static getDeviceSupportedFormats(I)Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCaptureFormat;",
">;"
}
.end annotation
.line 229
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "getDeviceSupportedFormats() "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
.line 234
:try_start_17
invoke-static {p0}, Landroid/hardware/Camera;->open(I)Landroid/hardware/Camera;
move-result-object v1
:try_end_1b
.catch Ljava/lang/RuntimeException; {:try_start_17 .. :try_end_1b} :catch_5c
if-nez v1, :cond_1e
return-object v0
.line 245
:cond_1e
:try_start_1e
invoke-virtual {v1}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
:try_end_22
.catch Ljava/lang/RuntimeException; {:try_start_1e .. :try_end_22} :catch_23
goto :goto_3a
:catch_23
move-exception v2
.line 247
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Failed to get camera parameters "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4, v2}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 249
:goto_3a
sget v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->IMAGE_FORMAT:I
invoke-static {v0, v2}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getFormatsFromParemeters(Landroid/hardware/Camera$Parameters;I)Ljava/util/List;
move-result-object v0
.line 251
:try_start_40
invoke-virtual {v1}, Landroid/hardware/Camera;->release()V
:try_end_43
.catch Ljava/lang/Exception; {:try_start_40 .. :try_end_43} :catch_44
goto :goto_5b
:catch_44
move-exception v1
.line 253
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Failed to release camera: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v2, p0, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_5b
return-object v0
:catch_5c
move-exception p0
.line 236
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Camera.open: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v1, p0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
.end method
.method static getFacingMode(I)I
.registers 3
.line 196
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object p0
const/4 v0, 0x0
if-nez p0, :cond_8
return v0
.line 201
:cond_8
iget p0, p0, Landroid/hardware/Camera$CameraInfo;->facing:I
if-eqz p0, :cond_11
const/4 v1, 0x1
if-eq p0, v1, :cond_10
return v0
:cond_10
return v1
:cond_11
const/4 p0, 0x2
return p0
.end method
.method private static getFormatsFromParemeters(Landroid/hardware/Camera$Parameters;I)Ljava/util/List;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/hardware/Camera$Parameters;",
"I)",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCaptureFormat;",
">;"
}
.end annotation
.line 261
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "getFormatsFromParemeters() "
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 262
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
if-nez p0, :cond_f
return-object v1
.line 267
:cond_f
invoke-virtual {p0}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFormats()Ljava/util/List;
move-result-object v2
if-eqz v2, :cond_bf
.line 268
invoke-interface {v2}, Ljava/util/List;->isEmpty()Z
move-result v3
if-eqz v3, :cond_1d
goto/16 :goto_bf
.line 273
:cond_1d
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_21
:goto_21
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_be
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Integer;
.line 276
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
if-eq v2, p1, :cond_34
goto :goto_21
:cond_34
const/16 v2, 0x11
const/4 v3, 0x0
.line 285
:try_start_37
invoke-virtual {p0}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFpsRange()Ljava/util/List;
move-result-object v3
:try_end_3b
.catch Ljava/lang/StringIndexOutOfBoundsException; {:try_start_37 .. :try_end_3b} :catch_3c
goto :goto_57
:catch_3c
move-exception v4
.line 287
sget-object v5, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "Camera.Parameters.getSupportedPreviewFpsRange: "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringIndexOutOfBoundsException;->getMessage()Ljava/lang/String;
move-result-object v4
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v5, v4}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
:goto_57
if-nez v3, :cond_5e
.line 290
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 292
:cond_5e
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v4
if-nez v4, :cond_6d
const/4 v4, 0x2
new-array v4, v4, [I
.line 293
fill-array-data v4, :array_c6
invoke-interface {v3, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_6d
const/4 v4, 0x0
.line 298
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_72
:goto_72
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_89
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, [I
const/4 v6, 0x1
.line 299
aget v5, v5, v6
add-int/lit16 v5, v5, 0x3e7
div-int/lit16 v5, v5, 0x3e8
if-ge v4, v5, :cond_72
move v4, v5
goto :goto_72
.line 305
:cond_89
invoke-virtual {p0}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List;
move-result-object v3
if-eqz v3, :cond_21
.line 306
invoke-interface {v3}, Ljava/util/List;->isEmpty()Z
move-result v5
if-eqz v5, :cond_96
goto :goto_21
.line 309
:cond_96
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_9a
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_21
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/hardware/Camera$Size;
.line 310
iget v6, v5, Landroid/hardware/Camera$Size;->width:I
iget v7, v5, Landroid/hardware/Camera$Size;->height:I
invoke-static {v6, v7}, Lio/agora/rtc2/video/VideoCaptureCamera1;->shouldExcludeSize(II)Z
move-result v6
if-eqz v6, :cond_b1
goto :goto_9a
.line 313
:cond_b1
new-instance v6, Lio/agora/rtc2/video/VideoCaptureFormat;
iget v7, v5, Landroid/hardware/Camera$Size;->width:I
iget v5, v5, Landroid/hardware/Camera$Size;->height:I
invoke-direct {v6, v7, v5, v4, v2}, Lio/agora/rtc2/video/VideoCaptureFormat;-><init>(IIII)V
invoke-interface {v1, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_9a
:cond_be
return-object v1
:cond_bf
:goto_bf
const-string p0, "failed to getFormatsFromParemeters, preview formats null or empty"
.line 269
invoke-static {v0, p0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v1
nop
:array_c6
.array-data 4
0x0
0x0
.end array-data
.end method
.method static getName(I)Ljava/lang/String;
.registers 4
.line 213
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object v0
if-nez v0, :cond_8
const/4 p0, 0x0
return-object p0
.line 217
:cond_8
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "camera "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p0, ", facing "
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 218
iget p0, v0, Landroid/hardware/Camera$CameraInfo;->facing:I
const/4 v0, 0x1
if-ne p0, v0, :cond_22
const-string p0, "front"
goto :goto_24
:cond_22
const-string p0, "back"
.line 219
:goto_24
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static getNumberOfCameras()I
.registers 4
.line 181
:try_start_0
invoke-static {}, Landroid/hardware/Camera;->getNumberOfCameras()I
move-result v0
:try_end_4
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4} :catch_5
goto :goto_21
:catch_5
move-exception v0
.line 183
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "getNumberOfCameras: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
:goto_21
return v0
.end method
.method private getZoomRatios()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.line 1504
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v0, :cond_13
.line 1505
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
.line 1506
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isZoomSupported(Landroid/hardware/Camera$Parameters;)Z
move-result v1
if-eqz v1, :cond_13
.line 1507
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getZoomRatios()Ljava/util/List;
move-result-object v0
return-object v0
:cond_13
const/4 v0, 0x0
return-object v0
.end method
.method private static isSupported(Ljava/lang/String;Ljava/util/List;)Z
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/List<",
"Ljava/lang/String;",
">;)Z"
}
.end annotation
if-eqz p1, :cond_a
.line 1567
invoke-interface {p1, p0}, Ljava/util/List;->indexOf(Ljava/lang/Object;)I
move-result p0
if-ltz p0, :cond_a
const/4 p0, 0x1
goto :goto_b
:cond_a
const/4 p0, 0x0
:goto_b
return p0
.end method
.method private isZoomSupported(Landroid/hardware/Camera$Parameters;)Z
.registers 4
const/4 v0, 0x0
if-eqz p1, :cond_12
.line 1515
invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->isZoomSupported()Z
move-result p1
if-eqz p1, :cond_b
const/4 p1, 0x1
return p1
.line 1519
:cond_b
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "camera zoom is not supported!"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
:cond_12
return v0
.end method
.method private listenForBytebufferFrames()V
.registers 3
.line 1447
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
new-instance v1, Lio/agora/rtc2/video/VideoCaptureCamera1$12;
invoke-direct {v1, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$12;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V
return-void
.end method
.method private listenForTextureFrames()V
.registers 3
.line 1413
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
if-nez v0, :cond_5
return-void
.line 1416
:cond_5
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
new-instance v1, Lio/agora/rtc2/video/VideoCaptureCamera1$11;
invoke-direct {v1, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$11;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-interface {v0, v1}, Lio/agora/base/internal/video/ISurfaceTextureHelper;->startListening(Lio/agora/base/internal/video/VideoSink;)V
return-void
.end method
.method private notifyFaceDetection([Landroid/hardware/Camera$Face;)V
.registers 20
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 1527
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 1528
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 1531
iget v4, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
const/4 v5, 0x1
.line 1535
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v4
iput-object v4, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
if-eqz v4, :cond_ca
.line 1536
invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v4
if-nez v4, :cond_21
goto/16 :goto_ca
.line 1539
:cond_21
array-length v4, v1
const/4 v6, 0x0
move v7, v6
:goto_24
if-ge v7, v4, :cond_b4
aget-object v8, v1, v7
.line 1540
new-instance v9, Landroid/graphics/RectF;
iget-object v8, v8, Landroid/hardware/Camera$Face;->rect:Landroid/graphics/Rect;
invoke-direct {v9, v8}, Landroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
invoke-static {v9}, Lio/agora/rtc2/video/CoordinatesTransform;->cameraToNormalized(Landroid/graphics/RectF;)Landroid/graphics/RectF;
move-result-object v10
if-nez v10, :cond_37
goto/16 :goto_b0
.line 1544
:cond_37
iget v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v8, v5, :cond_4f
const-wide v8, 0x4026795810624dd3L # 11.237
.line 1545
invoke-virtual {v10}, Landroid/graphics/RectF;->width()F
move-result v11
float-to-double v11, v11
const-wide v13, -0x40115810624dd2f2L # -0.958
invoke-static {v11, v12, v13, v14}, Ljava/lang/Math;->pow(DD)D
move-result-wide v11
goto :goto_62
:cond_4f
const-wide v8, 0x402d7020c49ba5e3L # 14.719
.line 1546
invoke-virtual {v10}, Landroid/graphics/RectF;->height()F
move-result v11
float-to-double v11, v11
const-wide v13, -0x4010ed916872b021L # -0.971
invoke-static {v11, v12, v13, v14}, Ljava/lang/Math;->pow(DD)D
move-result-wide v11
:goto_62
mul-double/2addr v11, v8
.line 1544
invoke-static {v11, v12}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v8
invoke-virtual {v3, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1547
iget-object v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v8}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v11
iget-object v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v8}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v12
iget-object v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
.line 1548
invoke-virtual {v8}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v8
iget v13, v8, Landroid/hardware/Camera$Size;->width:I
iget-object v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
invoke-virtual {v8}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v8
iget v14, v8, Landroid/hardware/Camera$Size;->height:I
iget v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v8, v5, :cond_8c
move v15, v5
goto :goto_8d
:cond_8c
move v15, v6
.line 1550
:goto_8d
iget v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v8, v5, :cond_93
move v8, v5
goto :goto_94
:cond_93
const/4 v8, -0x1
:goto_94
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraRotation()I
move-result v9
mul-int v16, v8, v9
iget v8, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderMode:I
move/from16 v17, v8
.line 1547
invoke-static/range {v10 .. v17}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToView(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v8
if-nez v8, :cond_ad
.line 1553
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v8
sub-int/2addr v8, v5
invoke-virtual {v3, v8}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
goto :goto_b0
.line 1556
:cond_ad
invoke-virtual {v2, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:goto_b0
add-int/lit8 v7, v7, 0x1
goto/16 :goto_24
.line 1558
:cond_b4
invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z
move-result v1
if-eqz v1, :cond_bb
return-void
.line 1562
:cond_bb
iget-object v1, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1563
invoke-virtual {v1}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v1
iget-object v4, v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v4}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v4
.line 1562
invoke-virtual {v0, v1, v4, v2, v3}, Lio/agora/rtc2/video/VideoCaptureCamera1;->notifyFaceDetection(IILjava/util/ArrayList;Ljava/util/ArrayList;)V
:cond_ca
:goto_ca
return-void
.end method
.method private onFaceDetectionRequestChanged()V
.registers 4
.line 587
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableAutoFaceFocus:Z
if-eqz v0, :cond_20
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isAutoFaceFocusSupported()Z
move-result v0
if-eqz v0, :cond_20
.line 588
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "startFaceDetection for auto focus enabled"
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 589
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera1$3;
invoke-direct {v0, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$3;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
.line 660
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isFaceDetectSupported()Z
move-result v1
if-eqz v1, :cond_3d
.line 661
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->safetyStarFaceDetection(Landroid/hardware/Camera$FaceDetectionListener;)V
goto :goto_3d
.line 663
:cond_20
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableFaceDetection:Z
if-eqz v0, :cond_3a
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isFaceDetectSupported()Z
move-result v0
if-eqz v0, :cond_3a
.line 664
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera1$4;
invoke-direct {v0, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$4;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
.line 671
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v2, "startFaceDetection for face dectect enabled"
invoke-static {v1, v2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 672
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->safetyStarFaceDetection(Landroid/hardware/Camera$FaceDetectionListener;)V
goto :goto_3d
.line 674
:cond_3a
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->safetyStopFaceDetection()V
:cond_3d
:goto_3d
return-void
.end method
.method private releaseCamera()V
.registers 5
.line 1387
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v0, :cond_c
.line 1388
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "proxyThread unavailable"
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 1392
:cond_c
:try_start_c
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
const-wide/16 v1, 0x7d0
new-instance v3, Lio/agora/rtc2/video/VideoCaptureCamera1$10;
invoke-direct {v3, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$10;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-static {v0, v1, v2, v3}, Lio/agora/base/internal/ThreadUtils;->invokeAtFrontUninterruptibly(Landroid/os/Handler;JLjava/util/concurrent/Callable;)Ljava/lang/Object;
:try_end_18
.catch Ljava/lang/Exception; {:try_start_c .. :try_end_18} :catch_19
goto :goto_34
:catch_19
move-exception v0
.line 1408
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "releaseCamera: failed to release camera, "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
:goto_34
return-void
.end method
.method private safetyStarFaceDetection(Landroid/hardware/Camera$FaceDetectionListener;)V
.registers 5
.line 679
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "facedetect: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableFaceDetection:Z
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 681
:try_start_18
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v0, :cond_4b
.line 682
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsFaceDetectionStarted:Z
if-eqz v0, :cond_25
.line 683
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0}, Landroid/hardware/Camera;->stopFaceDetection()V
.line 685
:cond_25
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0, p1}, Landroid/hardware/Camera;->setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V
.line 686
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {p1}, Landroid/hardware/Camera;->startFaceDetection()V
const/4 p1, 0x1
.line 687
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsFaceDetectionStarted:Z
:try_end_32
.catch Ljava/lang/Exception; {:try_start_18 .. :try_end_32} :catch_33
goto :goto_4b
:catch_33
move-exception p1
.line 690
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "Failed to stop face detection"
invoke-static {v0, v1, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 691
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz p1, :cond_4b
.line 692
invoke-virtual {p1}, Landroid/hardware/Camera;->stopFaceDetection()V
.line 693
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v0, 0x0
invoke-virtual {p1, v0}, Landroid/hardware/Camera;->setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V
const/4 p1, 0x0
.line 694
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsFaceDetectionStarted:Z
:cond_4b
:goto_4b
return-void
.end method
.method private safetyStopFaceDetection()V
.registers 5
.line 700
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "stopFaceDetection()"
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
.line 702
:try_start_8
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsFaceDetectionStarted:Z
if-eqz v1, :cond_1b
.line 703
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v1, :cond_13
.line 704
invoke-virtual {v1}, Landroid/hardware/Camera;->stopFaceDetection()V
:cond_13
const/4 v1, 0x0
.line 706
iput-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsFaceDetectionStarted:Z
.line 707
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {v1}, Ljava/util/concurrent/LinkedBlockingQueue;->clear()V
:try_end_1b
.catch Ljava/lang/RuntimeException; {:try_start_8 .. :try_end_1b} :catch_25
.catchall {:try_start_8 .. :try_end_1b} :catchall_23
.line 712
:cond_1b
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v1, :cond_32
.line 713
:goto_1f
invoke-virtual {v1, v0}, Landroid/hardware/Camera;->setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V
goto :goto_32
:catchall_23
move-exception v1
goto :goto_33
:catch_25
move-exception v1
.line 710
:try_start_26
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v3, "Failed to stop face detection"
invoke-static {v2, v3, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_2d
.catchall {:try_start_26 .. :try_end_2d} :catchall_23
.line 712
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v1, :cond_32
goto :goto_1f
:cond_32
:goto_32
return-void
:goto_33
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v2, :cond_3a
.line 713
invoke-virtual {v2, v0}, Landroid/hardware/Camera;->setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V
:cond_3a
throw v1
.end method
.method private setPreviewFrameRateModeFPS(Landroid/hardware/Camera$Parameters;I)V
.registers 12
.line 560
invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFpsRange()Ljava/util/List;
move-result-object v0
if-eqz v0, :cond_90
.line 562
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
if-nez v1, :cond_e
goto/16 :goto_90
:cond_e
const/4 v1, 0x0
.line 566
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, [I
aget v2, v2, v1
const/4 v3, 0x1
const/16 v4, 0x3e8
if-le v2, v4, :cond_1e
move v2, v3
goto :goto_1f
:cond_1e
move v2, v4
.line 567
:goto_1f
new-instance v5, Ljava/util/ArrayList;
.line 568
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v6
invoke-direct {v5, v6}, Ljava/util/ArrayList;-><init>(I)V
.line 570
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_2c
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_47
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, [I
.line 571
new-instance v7, Lio/agora/rtc2/video/VideoCapture$FramerateRange;
aget v8, v6, v1
mul-int/2addr v8, v2
aget v6, v6, v3
mul-int/2addr v6, v2
invoke-direct {v7, v8, v6}, Lio/agora/rtc2/video/VideoCapture$FramerateRange;-><init>(II)V
invoke-interface {v5, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_2c
:cond_47
mul-int/2addr p2, v4
.line 574
invoke-static {v5, p2, v1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->findBestFrameRateRange(Ljava/util/List;IZ)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
move-result-object p2
if-eqz p2, :cond_9a
.line 576
iget v0, p2, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->min:I
div-int/2addr v0, v2
iget v4, p2, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->max:I
div-int/2addr v4, v2
invoke-virtual {p1, v0, v4}, Landroid/hardware/Camera$Parameters;->setPreviewFpsRange(II)V
.line 578
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v4, 0x4
new-array v4, v4, [Ljava/lang/Object;
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v5, v5, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
.line 580
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v1
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v1, v1, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v4, v3
const/4 v1, 0x2
iget v3, p2, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->min:I
div-int/2addr v3, v2
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v4, v1
const/4 v1, 0x3
iget p2, p2, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->max:I
div-int/2addr p2, v2
.line 581
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
aput-object p2, v4, v1
const-string p2, "allocate: matched (%d x %d) @[%d - %d], fps first"
.line 579
invoke-static {v0, p2, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
.line 578
invoke-static {p1, p2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_9a
.line 563
:cond_90
:goto_90
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "allocate: camera don\'t supported fps first."
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 564
invoke-virtual {p1, p2}, Landroid/hardware/Camera$Parameters;->setPreviewFrameRate(I)V
:cond_9a
:goto_9a
return-void
.end method
.method private setPreviewFrameRateModePQ(Landroid/hardware/Camera$Parameters;I)V
.registers 9
.line 534
invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFrameRates()Ljava/util/List;
move-result-object v0
if-eqz v0, :cond_81
.line 535
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
if-nez v1, :cond_e
goto/16 :goto_81
:cond_e
const/4 v1, 0x0
.line 539
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Integer;
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
sub-int/2addr v2, p2
invoke-static {v2}, Ljava/lang/Math;->abs(I)I
move-result v2
.line 540
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
.line 541
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_2c
:goto_2c
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_4a
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Integer;
.line 542
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v5
sub-int/2addr v5, p2
invoke-static {v5}, Ljava/lang/Math;->abs(I)I
move-result v5
if-ge v5, v2, :cond_2c
.line 545
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v2
move v3, v2
move v2, v5
goto :goto_2c
.line 549
:cond_4a
invoke-virtual {p1, v3}, Landroid/hardware/Camera$Parameters;->setPreviewFrameRate(I)V
.line 550
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v2, 0x4
new-array v2, v2, [Ljava/lang/Object;
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v4, v4, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
.line 552
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v1
const/4 v1, 0x1
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v4, v4, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v1
const/4 v1, 0x2
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
aput-object p2, v2, v1
const/4 p2, 0x3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v2, p2
const-string p2, "allocate: matched (%d x %d) @%d -set- @%d, PQ first"
.line 551
invoke-static {v0, p2, v2}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
.line 550
invoke-static {p1, p2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_8b
.line 536
:cond_81
:goto_81
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "allocate: camera don\'t supported PQ first."
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 537
invoke-direct {p0, p1, p2}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setPreviewFrameRateModeFPS(Landroid/hardware/Camera$Parameters;I)V
:goto_8b
return-void
.end method
.method private toCamera1ABMode(I)Ljava/lang/String;
.registers 3
if-eqz p1, :cond_11
const/4 v0, 0x1
if-eq p1, v0, :cond_e
const/4 v0, 0x2
if-eq p1, v0, :cond_b
const-string p1, "auto"
return-object p1
:cond_b
const-string p1, "60hz"
return-object p1
:cond_e
const-string p1, "50hz"
return-object p1
:cond_11
const-string p1, "off"
return-object p1
.end method
# virtual methods
.method public allocate(Lio/agora/rtc2/video/VideoCaptureFormat;)Z
.registers 13
const-string v0, "allocate: "
.line 326
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v3, 0x3
new-array v4, v3, [Ljava/lang/Object;
.line 327
invoke-virtual {p1}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v5
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
const/4 v6, 0x0
aput-object v5, v4, v6
.line 328
invoke-virtual {p1}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v5
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
const/4 v7, 0x1
aput-object v5, v4, v7
invoke-virtual {p1}, Lio/agora/rtc2/video/VideoCaptureFormat;->getFramerate()I
move-result v5
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
const/4 v8, 0x2
aput-object v5, v4, v8
const-string v5, "allocate: requested (%d x %d) @%dfps"
.line 327
invoke-static {v2, v5, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
.line 326
invoke-static {v1, v2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 330
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
if-nez v2, :cond_3d
const-string p1, "surfaceTextureHelper null"
.line 332
invoke-static {v1, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v6
.line 336
:cond_3d
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v2, :cond_47
const-string p1, "proxyThread unavailable"
.line 337
invoke-static {v1, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v6
.line 341
:cond_47
iget v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
invoke-static {v2}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraInfo(I)Landroid/hardware/Camera$CameraInfo;
move-result-object v2
if-nez v2, :cond_69
.line 343
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "failed to get camera info for "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v1, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 344
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
return v6
.line 350
:cond_69
:try_start_69
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
const-wide/16 v9, 0x7d0
new-instance v5, Lio/agora/rtc2/video/VideoCaptureCamera1$1;
invoke-direct {v5, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$1;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-static {v4, v9, v10, v5}, Lio/agora/base/internal/ThreadUtils;->invokeAtFrontUninterruptibly(Landroid/os/Handler;JLjava/util/concurrent/Callable;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Boolean;
:try_end_78
.catch Ljava/lang/Exception; {:try_start_69 .. :try_end_78} :catch_1ec
if-eqz v4, :cond_1ec
.line 366
invoke-virtual {v4}, Ljava/lang/Boolean;->booleanValue()Z
move-result v4
if-nez v4, :cond_82
goto/16 :goto_1ec
.line 368
:cond_82
iget v4, v2, Landroid/hardware/Camera$CameraInfo;->orientation:I
iput v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraNativeOrientation:I
.line 370
iget v2, v2, Landroid/hardware/Camera$CameraInfo;->facing:I
if-nez v2, :cond_8c
move v2, v7
goto :goto_8d
:cond_8c
move v2, v6
:goto_8d
iput-boolean v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mInvertDeviceOrientationReadings:Z
.line 372
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
.line 374
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getDeviceRotation()I
move-result v5
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v6
iget v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraNativeOrientation:I
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v7
iget-boolean v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mInvertDeviceOrientationReadings:Z
invoke-static {v5}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v5
aput-object v5, v4, v8
const-string v5, "allocate: Rotation dev=%d, cam=%d, facing back? %s"
.line 373
invoke-static {v2, v5, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
.line 372
invoke-static {v1, v2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v1, 0x0
.line 378
:try_start_b7
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v2}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v1
:try_end_bd
.catch Ljava/lang/RuntimeException; {:try_start_b7 .. :try_end_bd} :catch_be
goto :goto_d7
:catch_be
move-exception v2
.line 380
sget-object v4, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "failed to get camera parameters for "
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v8, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v4, v5, v2}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_d7
if-nez v1, :cond_e4
.line 383
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v0, "failed to get camera parameters"
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 384
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
return v6
.line 389
:cond_e4
sget v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->IMAGE_FORMAT:I
invoke-static {v1, v2}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getFormatsFromParemeters(Landroid/hardware/Camera$Parameters;I)Ljava/util/List;
move-result-object v2
.line 390
invoke-static {v2, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->FindBestMatchedCapability(Ljava/util/List;Lio/agora/rtc2/video/VideoCaptureFormat;)Lio/agora/rtc2/video/VideoCaptureFormat;
move-result-object p1
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 391
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
if-nez p1, :cond_ff
.line 392
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v0, "failed to match capability"
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 393
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
return v6
.line 397
:cond_ff
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget p1, p1, Lio/agora/rtc2/video/VideoCaptureFormat;->mFramerate:I
.line 398
iget-boolean v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPQFirst:Z
if-eqz v2, :cond_10b
.line 399
invoke-direct {p0, v1, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setPreviewFrameRateModePQ(Landroid/hardware/Camera$Parameters;I)V
goto :goto_10e
.line 401
:cond_10b
invoke-direct {p0, v1, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setPreviewFrameRateModeFPS(Landroid/hardware/Camera$Parameters;I)V
.line 404
:goto_10e
iget p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mSkipControl:I
if-eq p1, v7, :cond_122
.line 405
invoke-virtual {v1}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;
move-result-object p1
const-string v2, "continuous-video"
invoke-interface {p1, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_122
.line 407
invoke-virtual {v1, v2}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V
goto :goto_129
.line 409
:cond_122
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v2, "Continuous focus mode not supported."
invoke-static {p1, v2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 412
:goto_129
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget p1, p1, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v2, v2, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
invoke-virtual {v1, p1, v2}, Landroid/hardware/Camera$Parameters;->setPreviewSize(II)V
.line 413
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget p1, p1, Lio/agora/rtc2/video/VideoCaptureFormat;->mPixelFormat:I
invoke-virtual {v1, p1}, Landroid/hardware/Camera$Parameters;->setPreviewFormat(I)V
.line 416
:try_start_13b
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {p1, v1}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
:try_end_140
.catch Ljava/lang/Exception; {:try_start_13b .. :try_end_140} :catch_1ce
.line 424
:try_start_140
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v1, v1, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v2, v2, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
invoke-interface {p1, v1, v2}, Lio/agora/base/internal/video/ISurfaceTextureHelper;->setTextureSize(II)V
.line 425
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
invoke-interface {v1}, Lio/agora/base/internal/video/ISurfaceTextureHelper;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;
move-result-object v1
invoke-virtual {p1, v1}, Landroid/hardware/Camera;->setPreviewTexture(Landroid/graphics/SurfaceTexture;)V
:try_end_158
.catch Ljava/io/IOException; {:try_start_140 .. :try_end_158} :catch_1b1
.catch Ljava/lang/Exception; {:try_start_140 .. :try_end_158} :catch_194
.line 436
new-instance p1, Lio/agora/rtc2/video/VideoCaptureCamera1$CrErrorCallback;
invoke-direct {p1, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$CrErrorCallback;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
.line 438
invoke-virtual {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->notifyInjector(Ljava/lang/Object;)V
.line 440
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0, p1}, Landroid/hardware/Camera;->setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V
.line 442
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureToTexture:Z
if-nez p1, :cond_18e
.line 443
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget p1, p1, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v0, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
mul-int/2addr p1, v0
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v0, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mPixelFormat:I
.line 444
invoke-static {v0}, Landroid/graphics/ImageFormat;->getBitsPerPixel(I)I
move-result v0
mul-int/2addr p1, v0
div-int/lit8 p1, p1, 0x8
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mExpectedFrameSize:I
move p1, v6
:goto_180
if-ge p1, v3, :cond_18e
.line 446
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mExpectedFrameSize:I
new-array v0, v0, [B
.line 447
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v1, v0}, Landroid/hardware/Camera;->addCallbackBuffer([B)V
add-int/lit8 p1, p1, 0x1
goto :goto_180
.line 452
:cond_18e
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {p1, v6}, Landroid/hardware/Camera;->setDisplayOrientation(I)V
return v7
:catch_194
move-exception p1
.line 431
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v1, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 432
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
return v6
:catch_1b1
move-exception p1
.line 427
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v1, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 428
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
return v6
:catch_1ce
move-exception p1
.line 418
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "setParameters: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 419
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
:catch_1ec
:cond_1ec
:goto_1ec
return v6
.end method
.method public deallocate()V
.registers 3
.line 1364
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "deallocate()"
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1365
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->stopCaptureAndBlockUntilStopped()V
.line 1366
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v1, :cond_14
const-string v1, "proxyThread unavailable"
.line 1367
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 1370
:cond_14
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
new-instance v1, Lio/agora/rtc2/video/VideoCaptureCamera1$9;
invoke-direct {v1, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$9;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 1383
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
return-void
.end method
.method public getCameraParameters()Landroid/hardware/Camera$Parameters;
.registers 4
.line 1491
:try_start_0
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
:try_end_6
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_6} :catch_7
return-object v0
:catch_7
move-exception v0
.line 1493
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v2, "getCameraParameters: Camera.getParameters: "
invoke-static {v1, v2, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1494
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v0, :cond_19
.line 1495
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->safetyStopFaceDetection()V
.line 1496
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->releaseCamera()V
:cond_19
const/4 v0, 0x0
return-object v0
.end method
.method public getMaxZoom()F
.registers 4
.line 848
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v0, :cond_2e
.line 849
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
const/4 v1, 0x0
.line 851
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isZoomSupported(Landroid/hardware/Camera$Parameters;)Z
move-result v2
if-eqz v2, :cond_13
.line 852
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I
move-result v1
.line 855
:cond_13
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getZoomRatios()Ljava/util/List;
move-result-object v0
if-eqz v0, :cond_2e
.line 856
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
if-le v2, v1, :cond_2e
.line 857
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
int-to-float v0, v0
const/high16 v1, 0x42c80000 # 100.0f
div-float/2addr v0, v1
return v0
:cond_2e
const/high16 v0, -0x40800000 # -1.0f
return v0
.end method
.method public isAutoFaceFocusSupported()Z
.registers 4
.line 1027
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-eqz v0, :cond_24
.line 1028
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-eqz v0, :cond_24
.line 1030
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumDetectedFaces()I
move-result v2
if-lez v2, :cond_24
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumFocusAreas()I
move-result v2
if-lez v2, :cond_24
.line 1031
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;
move-result-object v0
const-string v2, "auto"
invoke-static {v2, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isSupported(Ljava/lang/String;Ljava/util/List;)Z
move-result v0
if-eqz v0, :cond_24
const/4 v1, 0x1
:cond_24
return v1
.end method
.method public isCameraExposureSupported()Z
.registers 7
.line 1260
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-eqz v0, :cond_36
.line 1261
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-eqz v0, :cond_36
.line 1263
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMinExposureCompensation()I
move-result v2
.line 1264
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxExposureCompensation()I
move-result v0
.line 1265
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "isCameraExposureSupported compensation min: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v5, " max: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
if-gez v2, :cond_36
if-lez v0, :cond_36
const/4 v1, 0x1
:cond_36
return v1
.end method
.method public isExposureSupported()Z
.registers 3
.line 1249
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-eqz v0, :cond_13
.line 1250
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-eqz v0, :cond_13
.line 1252
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumMeteringAreas()I
move-result v0
if-lez v0, :cond_13
const/4 v0, 0x1
move v1, v0
:cond_13
return v1
.end method
.method public isFaceDetectSupported()Z
.registers 6
.line 1188
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-eqz v0, :cond_2c
.line 1189
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-eqz v0, :cond_2c
.line 1191
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "face dedect, numDetectedFaces: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumDetectedFaces()I
move-result v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1192
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumDetectedFaces()I
move-result v0
if-lez v0, :cond_2c
const/4 v1, 0x1
:cond_2c
return v1
.end method
.method public isFocusSupported()Z
.registers 4
.line 865
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-eqz v0, :cond_1e
.line 866
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-eqz v0, :cond_1e
.line 868
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumFocusAreas()I
move-result v2
if-lez v2, :cond_1e
.line 869
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;
move-result-object v0
const-string v2, "auto"
invoke-static {v2, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isSupported(Ljava/lang/String;Ljava/util/List;)Z
move-result v0
if-eqz v0, :cond_1e
const/4 v1, 0x1
:cond_1e
return v1
.end method
.method public isTorchSupported()Z
.registers 3
.line 1200
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v0, :cond_15
.line 1201
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-eqz v0, :cond_15
.line 1203
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;
move-result-object v0
const-string v1, "torch"
invoke-static {v1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isSupported(Ljava/lang/String;Ljava/util/List;)Z
move-result v0
return v0
:cond_15
const/4 v0, 0x0
return v0
.end method
.method public isZoomSupported()Z
.registers 2
.line 782
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v0, :cond_d
.line 783
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
.line 784
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isZoomSupported(Landroid/hardware/Camera$Parameters;)Z
move-result v0
return v0
:cond_d
const/4 v0, 0x0
return v0
.end method
.method public needFallback()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
.method public setAntiBandingMode(I)I
.registers 5
.line 1100
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
const/4 v1, -0x1
if-nez v0, :cond_6
return v1
.line 1103
:cond_6
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
new-instance v2, Lio/agora/rtc2/video/VideoCaptureCamera1$8;
invoke-direct {v2, p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1$8;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;I)V
invoke-static {v0, v2}, Lio/agora/base/internal/ThreadUtils;->invokeAtFrontUninterruptibly(Landroid/os/Handler;Ljava/util/concurrent/Callable;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
if-nez p1, :cond_16
goto :goto_1a
.line 1129
:cond_16
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result v1
:goto_1a
return v1
.end method
.method public setAutoFaceFocus(Z)I
.registers 4
.line 1039
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableAutoFaceFocus:Z
const/4 v1, 0x0
if-ne v0, p1, :cond_6
return v1
.line 1043
:cond_6
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableAutoFaceFocus:Z
.line 1044
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->onFaceDetectionRequestChanged()V
return v1
.end method
.method public setEdgeEnhanceMode(I)I
.registers 3
.line 1094
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v0, "EdgeEnhancement not supported in camera1 "
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, -0x1
return p1
.end method
.method public setExposure(FF)I
.registers 26
move-object/from16 v1, p0
move/from16 v0, p1
move/from16 v2, p2
.line 1274
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v4, 0x0
const/4 v5, 0x1
if-eqz v3, :cond_1d4
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v3}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v3
if-eqz v3, :cond_1d4
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v3}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v3
if-nez v3, :cond_1e
goto/16 :goto_1d4
.line 1279
:cond_1e
iget-boolean v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraExposureStarted:Z
if-eqz v3, :cond_44
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aget v3, v3, v4
sub-float/2addr v3, v0
invoke-static {v3}, Ljava/lang/Math;->abs(F)F
move-result v3
float-to-double v6, v3
const-wide v8, 0x3fb999999999999aL # 0.1
cmpg-double v3, v6, v8
if-gez v3, :cond_44
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aget v3, v3, v5
sub-float/2addr v3, v2
.line 1280
invoke-static {v3}, Ljava/lang/Math;->abs(F)F
move-result v3
float-to-double v6, v3
cmpg-double v3, v6, v8
if-gez v3, :cond_44
return v4
.line 1283
:cond_44
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aput v0, v3, v4
.line 1284
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aput v2, v3, v5
.line 1286
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "setExposure called camera api1 x = "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v7, " y = "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v3, v6}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v6, 0x0
cmpg-float v7, v0, v6
const/4 v8, -0x1
if-ltz v7, :cond_1ce
.line 1287
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v7}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v7
int-to-float v7, v7
cmpl-float v7, v0, v7
if-gtz v7, :cond_1ce
cmpg-float v6, v2, v6
if-ltz v6, :cond_1ce
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 1288
invoke-virtual {v6}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v6
int-to-float v6, v6
cmpl-float v6, v2, v6
if-lez v6, :cond_8c
goto/16 :goto_1ce
.line 1293
:cond_8c
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v6
iput-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
if-eqz v6, :cond_1cd
.line 1294
invoke-virtual {v6}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v6
if-nez v6, :cond_9c
goto/16 :goto_1cd
.line 1297
:cond_9c
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9, v0, v2, v0, v2}, Landroid/graphics/RectF;-><init>(FFFF)V
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 1299
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v10
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v11
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v12, v0, Landroid/hardware/Camera$Size;->width:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
.line 1300
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v13, v0, Landroid/hardware/Camera$Size;->height:I
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v0, v5, :cond_c3
move v14, v5
goto :goto_c4
:cond_c3
move v14, v4
.line 1301
:goto_c4
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v0, v5, :cond_ca
move v0, v5
goto :goto_cb
:cond_ca
move v0, v8
:goto_cb
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraRotation()I
move-result v2
mul-int v15, v0, v2
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderMode:I
move/from16 v16, v0
.line 1297
invoke-static/range {v9 .. v16}, Lio/agora/rtc2/video/CoordinatesTransform;->viewToNormalized(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v0
const-string v2, "Failed to translate input coordinate"
if-nez v0, :cond_e1
.line 1304
invoke-static {v3, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1308
:cond_e1
iget v6, v0, Landroid/graphics/RectF;->left:F
.line 1309
iget v0, v0, Landroid/graphics/RectF;->top:F
const/high16 v7, 0x3fc00000 # 1.5f
.line 1311
invoke-static {v6, v0, v7}, Lio/agora/rtc2/video/CoordinatesTransform;->calculateFocusArea(FFF)Landroid/graphics/Rect;
move-result-object v0
.line 1312
new-instance v6, Landroid/graphics/RectF;
invoke-direct {v6, v0}, Landroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
invoke-static {v6}, Lio/agora/rtc2/video/CoordinatesTransform;->cameraToNormalized(Landroid/graphics/RectF;)Landroid/graphics/RectF;
move-result-object v9
.line 1313
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v10, v6, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v11, v6, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v12, v6, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v13, v6, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
const/4 v14, 0x0
const/4 v15, 0x0
invoke-static/range {v9 .. v15}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToSensor(Landroid/graphics/RectF;IIIIIZ)Landroid/graphics/RectF;
move-result-object v6
if-nez v6, :cond_110
.line 1316
invoke-static {v3, v2}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1319
:cond_110
invoke-virtual {v6, v0}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 1321
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
if-eqz v2, :cond_166
.line 1322
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v2
if-nez v2, :cond_123
const-string v0, "getCameraParameters null"
.line 1324
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1328
:cond_123
invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getMaxNumMeteringAreas()I
move-result v6
if-lez v6, :cond_13c
.line 1329
new-instance v6, Ljava/util/ArrayList;
invoke-direct {v6}, Ljava/util/ArrayList;-><init>()V
.line 1330
new-instance v7, Landroid/hardware/Camera$Area;
const/16 v9, 0x320
invoke-direct {v7, v0, v9}, Landroid/hardware/Camera$Area;-><init>(Landroid/graphics/Rect;I)V
invoke-interface {v6, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1331
invoke-virtual {v2, v6}, Landroid/hardware/Camera$Parameters;->setMeteringAreas(Ljava/util/List;)V
goto :goto_141
:cond_13c
const-string v6, "metering areas not supported"
.line 1333
invoke-static {v3, v6}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1337
:goto_141
:try_start_141
iput-boolean v5, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraExposureStarted:Z
.line 1338
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v6, v2}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
.line 1339
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v2}, Landroid/hardware/Camera;->startPreview()V
:try_end_14d
.catch Ljava/lang/Exception; {:try_start_141 .. :try_end_14d} :catch_14e
goto :goto_166
:catch_14e
move-exception v0
.line 1341
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setExposure failed, "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1346
:cond_166
:goto_166
new-instance v2, Landroid/graphics/Rect;
invoke-direct {v2}, Landroid/graphics/Rect;-><init>()V
.line 1347
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9, v0}, Landroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v10
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1348
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v11
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v12, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v13, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
const/4 v14, 0x0
.line 1347
invoke-static/range {v9 .. v14}, Lio/agora/rtc2/video/CoordinatesTransform;->sensorToNormalized(Landroid/graphics/RectF;IIIIZ)Landroid/graphics/RectF;
move-result-object v15
.line 1349
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v16
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v17
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1350
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v18
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v19
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v0, v5, :cond_1a8
move/from16 v20, v5
goto :goto_1aa
:cond_1a8
move/from16 v20, v4
.line 1352
:goto_1aa
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v0, v5, :cond_1af
goto :goto_1b0
:cond_1af
move v5, v8
:goto_1b0
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraRotation()I
move-result v0
mul-int v21, v5, v0
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderMode:I
move/from16 v22, v0
.line 1349
invoke-static/range {v15 .. v22}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToView(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v0
if-nez v0, :cond_1c6
const-string v0, "failed to translate coordinate from normalized to view!"
.line 1354
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1357
:cond_1c6
invoke-virtual {v0, v2}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 1358
invoke-virtual {v1, v2}, Lio/agora/rtc2/video/VideoCaptureCamera1;->notifyCameraExposureAreaChanged(Landroid/graphics/Rect;)V
return v4
:cond_1cd
:goto_1cd
return v8
:cond_1ce
:goto_1ce
const-string v0, "setExposure unreasonable inputs!"
.line 1289
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1275
:cond_1d4
:goto_1d4
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aput v0, v3, v4
.line 1276
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aput v2, v0, v5
return v4
.end method
.method public setExposureCompensation(I)I
.registers 11
.line 1149
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-nez v0, :cond_8
.line 1150
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposureCompensation:I
return v1
.line 1153
:cond_8
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsExposureCompensationStarted:Z
if-eqz v0, :cond_11
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposureCompensation:I
if-ne v0, p1, :cond_11
return v1
.line 1156
:cond_11
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposureCompensation:I
.line 1158
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setExposureCompensation:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)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 1159
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v2}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v2
if-eqz v2, :cond_ba
.line 1161
invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getExposureCompensationStep()F
move-result v3
.line 1162
invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getMinExposureCompensation()I
move-result v4
.line 1163
invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getMaxExposureCompensation()I
move-result v5
.line 1164
invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getExposureCompensation()I
move-result v6
.line 1165
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "compensation step="
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v8, ", min="
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, ", max="
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, ", cur index="
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v0, v6}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
if-le p1, v5, :cond_70
goto :goto_71
:cond_70
move v5, p1
:goto_71
if-ge p1, v4, :cond_74
goto :goto_75
:cond_74
move v4, v5
.line 1171
:goto_75
invoke-virtual {v2, v4}, Landroid/hardware/Camera$Parameters;->setExposureCompensation(I)V
const/4 p1, 0x1
.line 1173
:try_start_79
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsExposureCompensationStarted:Z
.line 1174
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {p1, v2}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
.line 1175
invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getExposureCompensation()I
move-result p1
int-to-float v2, p1
mul-float/2addr v3, v2
.line 1177
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "cur index="
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, ", ev="
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
:try_end_a2
.catch Ljava/lang/Exception; {:try_start_79 .. :try_end_a2} :catch_a3
return v1
:catch_a3
move-exception p1
.line 1180
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "exposure compensation got exception:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
:cond_ba
const/4 p1, -0x1
return p1
.end method
.method public setFaceDetection(Z)I
.registers 4
.line 1050
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableFaceDetection:Z
const/4 v1, 0x0
if-ne v0, p1, :cond_6
return v1
.line 1053
:cond_6
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mEnableFaceDetection:Z
.line 1054
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->onFaceDetectionRequestChanged()V
return v1
.end method
.method public setFocus(FF)I
.registers 26
move-object/from16 v1, p0
move/from16 v0, p1
move/from16 v2, p2
.line 883
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v4, 0x0
const/4 v5, 0x1
if-eqz v3, :cond_2cb
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v3}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v3
if-eqz v3, :cond_2cb
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v3}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v3
if-nez v3, :cond_1e
goto/16 :goto_2cb
.line 888
:cond_1e
iget-boolean v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraFocusStarted:Z
if-eqz v3, :cond_44
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aget v3, v3, v4
sub-float/2addr v3, v0
invoke-static {v3}, Ljava/lang/Math;->abs(F)F
move-result v3
float-to-double v6, v3
const-wide v8, 0x3fb999999999999aL # 0.1
cmpg-double v3, v6, v8
if-gez v3, :cond_44
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aget v3, v3, v5
sub-float/2addr v3, v2
.line 889
invoke-static {v3}, Ljava/lang/Math;->abs(F)F
move-result v3
float-to-double v6, v3
cmpg-double v3, v6, v8
if-gez v3, :cond_44
return v4
.line 892
:cond_44
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aput v0, v3, v4
.line 893
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aput v2, v3, v5
.line 895
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "setFocus "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v7, " - "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v3, v6}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v6, 0x0
cmpg-float v7, v0, v6
const/4 v8, -0x1
if-ltz v7, :cond_2c5
.line 896
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v7}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v7
int-to-float v7, v7
cmpl-float v7, v0, v7
if-gtz v7, :cond_2c5
cmpg-float v6, v2, v6
if-ltz v6, :cond_2c5
iget-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v6}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v6
int-to-float v6, v6
cmpl-float v6, v2, v6
if-lez v6, :cond_8c
goto/16 :goto_2c5
.line 901
:cond_8c
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v6
iput-object v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
if-eqz v6, :cond_2c4
.line 902
invoke-virtual {v6}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v6
if-nez v6, :cond_9c
goto/16 :goto_2c4
.line 906
:cond_9c
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9, v0, v2, v0, v2}, Landroid/graphics/RectF;-><init>(FFFF)V
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v10
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 907
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v11
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v12, v0, Landroid/hardware/Camera$Size;->width:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
.line 908
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v13, v0, Landroid/hardware/Camera$Size;->height:I
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v0, v5, :cond_c3
move v14, v5
goto :goto_c4
:cond_c3
move v14, v4
.line 909
:goto_c4
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v0, v5, :cond_ca
move v0, v5
goto :goto_cb
:cond_ca
move v0, v8
:goto_cb
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraRotation()I
move-result v2
mul-int v15, v0, v2
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderMode:I
move/from16 v16, v0
.line 906
invoke-static/range {v9 .. v16}, Lio/agora/rtc2/video/CoordinatesTransform;->viewToNormalized(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v0
if-nez v0, :cond_e1
const-string v0, "Failed to translate input coordinate"
.line 912
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 916
:cond_e1
iget v2, v0, Landroid/graphics/RectF;->left:F
.line 917
iget v0, v0, Landroid/graphics/RectF;->top:F
const/high16 v6, 0x3f800000 # 1.0f
.line 918
invoke-static {v2, v0, v6}, Lio/agora/rtc2/video/CoordinatesTransform;->calculateFocusArea(FFF)Landroid/graphics/Rect;
move-result-object v6
const/high16 v7, 0x3fc00000 # 1.5f
.line 919
invoke-static {v2, v0, v7}, Lio/agora/rtc2/video/CoordinatesTransform;->calculateFocusArea(FFF)Landroid/graphics/Rect;
move-result-object v2
.line 920
new-instance v0, Landroid/graphics/RectF;
invoke-direct {v0, v2}, Landroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
invoke-static {v0}, Lio/agora/rtc2/video/CoordinatesTransform;->cameraToNormalized(Landroid/graphics/RectF;)Landroid/graphics/RectF;
move-result-object v9
.line 921
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v10, v0, Landroid/hardware/Camera$Size;->width:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
.line 922
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v11, v0, Landroid/hardware/Camera$Size;->height:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v12, v0, Landroid/hardware/Camera$Size;->width:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewParameters:Landroid/hardware/Camera$Parameters;
.line 923
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v0
iget v13, v0, Landroid/hardware/Camera$Size;->height:I
const/4 v14, 0x0
const/4 v15, 0x0
.line 921
invoke-static/range {v9 .. v15}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToSensor(Landroid/graphics/RectF;IIIIIZ)Landroid/graphics/RectF;
move-result-object v0
if-nez v0, :cond_128
const-string v0, "Failed to translate input coordinate"
.line 925
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 928
:cond_128
invoke-virtual {v0, v2}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 930
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "mCamera.autoFocus focusRect: "
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v7, ", meteringRect: "
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 932
:try_start_147
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0}, Landroid/hardware/Camera;->cancelAutoFocus()V
:try_end_14c
.catch Ljava/lang/RuntimeException; {:try_start_147 .. :try_end_14c} :catch_14d
goto :goto_164
:catch_14d
move-exception v0
.line 934
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "Failed to cancle AutoFocus"
invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 937
:goto_164
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
if-nez v0, :cond_16b
return v8
.line 942
:cond_16b
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumFocusAreas()I
move-result v3
const/16 v7, 0x320
if-lez v3, :cond_184
.line 943
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 944
new-instance v9, Landroid/hardware/Camera$Area;
invoke-direct {v9, v6, v7}, Landroid/hardware/Camera$Area;-><init>(Landroid/graphics/Rect;I)V
invoke-interface {v3, v9}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 945
invoke-virtual {v0, v3}, Landroid/hardware/Camera$Parameters;->setFocusAreas(Ljava/util/List;)V
goto :goto_18b
.line 947
:cond_184
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v9, "focus areas not supported"
invoke-static {v3, v9}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 950
:goto_18b
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumMeteringAreas()I
move-result v3
if-lez v3, :cond_1a2
.line 951
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 952
new-instance v9, Landroid/hardware/Camera$Area;
invoke-direct {v9, v2, v7}, Landroid/hardware/Camera$Area;-><init>(Landroid/graphics/Rect;I)V
invoke-interface {v3, v9}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 953
invoke-virtual {v0, v3}, Landroid/hardware/Camera$Parameters;->setMeteringAreas(Ljava/util/List;)V
goto :goto_1a9
.line 955
:cond_1a2
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v7, "metering areas not supported"
invoke-static {v3, v7}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 959
:goto_1a9
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getFocusMode()Ljava/lang/String;
move-result-object v3
const-string v7, "macro"
.line 960
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;
move-result-object v9
invoke-static {v7, v9}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isSupported(Ljava/lang/String;Ljava/util/List;)Z
move-result v7
if-eqz v7, :cond_1e4
const-string v7, "macro"
.line 961
invoke-virtual {v0, v7}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V
.line 962
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mObjectLock:Ljava/lang/Object;
monitor-enter v7
.line 964
:try_start_1c1
iget-object v9, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v9, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
:try_end_1c6
.catch Ljava/lang/Exception; {:try_start_1c1 .. :try_end_1c6} :catch_1c9
.catchall {:try_start_1c1 .. :try_end_1c6} :catchall_1c7
goto :goto_1e0
:catchall_1c7
move-exception v0
goto :goto_1e2
:catch_1c9
move-exception v0
.line 966
:try_start_1ca
sget-object v9, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v11, "mCamera.setParameters Exception: "
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v9, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 968
:goto_1e0
monitor-exit v7
goto :goto_1eb
:goto_1e2
monitor-exit v7
:try_end_1e3
.catchall {:try_start_1ca .. :try_end_1e3} :catchall_1c7
throw v0
:cond_1e4
const-string v0, "focus"
const-string v7, "FOCUS_MODE_MACRO is not supported"
.line 970
invoke-static {v0, v7}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 974
:goto_1eb
:try_start_1eb
iput-boolean v5, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraFocusStarted:Z
.line 975
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
new-instance v7, Lio/agora/rtc2/video/VideoCaptureCamera1$7;
invoke-direct {v7, v1, v3}, Lio/agora/rtc2/video/VideoCaptureCamera1$7;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;Ljava/lang/String;)V
invoke-virtual {v0, v7}, Landroid/hardware/Camera;->autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V
:try_end_1f7
.catch Ljava/lang/Exception; {:try_start_1eb .. :try_end_1f7} :catch_2ad
.line 996
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
.line 997
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9, v2}, Landroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v10
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 998
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v11
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v12, v2, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v13, v2, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
const/4 v14, 0x0
.line 997
invoke-static/range {v9 .. v14}, Lio/agora/rtc2/video/CoordinatesTransform;->sensorToNormalized(Landroid/graphics/RectF;IIIIZ)Landroid/graphics/RectF;
move-result-object v15
.line 999
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v16
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v17
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1000
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v18
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v19
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v2, v5, :cond_239
move/from16 v20, v5
goto :goto_23b
:cond_239
move/from16 v20, v4
.line 1002
:goto_23b
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v2, v5, :cond_241
move v2, v5
goto :goto_242
:cond_241
move v2, v8
:goto_242
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraRotation()I
move-result v3
mul-int v21, v2, v3
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderMode:I
move/from16 v22, v2
.line 999
invoke-static/range {v15 .. v22}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToView(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v2
if-nez v2, :cond_25a
.line 1004
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v2, "failed to translate coordinate from normalized to view!"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1007
:cond_25a
invoke-virtual {v2, v0}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 1008
invoke-virtual {v1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->notifyCameraExposureAreaChanged(Landroid/graphics/Rect;)V
.line 1010
new-instance v2, Landroid/graphics/RectF;
invoke-direct {v2, v6}, Landroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
invoke-static {v2}, Lio/agora/rtc2/video/CoordinatesTransform;->cameraToNormalized(Landroid/graphics/RectF;)Landroid/graphics/RectF;
move-result-object v9
.line 1011
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v10
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v11
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1012
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v12
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v13
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v2, v5, :cond_287
move v14, v5
goto :goto_288
:cond_287
move v14, v4
.line 1014
:goto_288
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mId:I
if-ne v2, v5, :cond_28d
goto :goto_28e
:cond_28d
move v5, v8
:goto_28e
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraRotation()I
move-result v2
mul-int v15, v5, v2
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mRenderMode:I
move/from16 v16, v2
.line 1011
invoke-static/range {v9 .. v16}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToView(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v2
if-nez v2, :cond_2a6
.line 1016
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v2, "failed to translate coordinate from normalized to view!"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1019
:cond_2a6
invoke-virtual {v2, v0}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 1020
invoke-virtual {v1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->notifyCameraFocusAreaChanged(Landroid/graphics/Rect;)V
return v4
:catch_2ad
move-exception v0
.line 992
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "mCamera.autoFocus Exception: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
:cond_2c4
:goto_2c4
return v8
:cond_2c5
:goto_2c5
const-string v0, "set focus unreasonable inputs"
.line 897
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 884
:cond_2cb
:goto_2cb
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aput v0, v3, v4
.line 885
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aput v2, v0, v5
return v4
.end method
.method public setNoiseReductionMode(I)I
.registers 3
.line 1088
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v0, "NoiseReduction not supported in camera1 "
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, -0x1
return p1
.end method
.method public setTorchMode(Z)I
.registers 9
const/4 v0, 0x1
const/4 v1, -0x1
if-eqz p1, :cond_6
move v2, v0
goto :goto_7
:cond_6
move v2, v1
.line 1212
:goto_7
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v4, 0x0
if-nez v3, :cond_13
if-eqz p1, :cond_f
goto :goto_10
:cond_f
move v0, v1
.line 1213
:goto_10
iput v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mTorchMode:I
return v4
.line 1216
:cond_13
iget-boolean v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsCameraTorchStarted:Z
if-eqz v3, :cond_1c
iget v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mTorchMode:I
if-ne v3, v2, :cond_1c
return v4
.line 1219
:cond_1c
iput v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mTorchMode:I
.line 1220
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "setTorchMode isOn: "
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1221
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v3
if-eqz v3, :cond_8a
.line 1223
invoke-virtual {v3}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;
move-result-object v5
if-eqz v5, :cond_84
const-string v6, "torch"
.line 1224
invoke-interface {v5, v6}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_84
const-string v5, "setTorchMode isFlashSupported: true"
.line 1225
invoke-static {v2, v5}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
const-string v2, "off"
if-eqz p1, :cond_55
.line 1227
invoke-virtual {v3, v6}, Landroid/hardware/Camera$Parameters;->setFlashMode(Ljava/lang/String;)V
goto :goto_58
.line 1229
:cond_55
invoke-virtual {v3, v2}, Landroid/hardware/Camera$Parameters;->setFlashMode(Ljava/lang/String;)V
.line 1232
:goto_58
:try_start_58
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsCameraTorchStarted:Z
.line 1233
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0, v3}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
:try_end_5f
.catch Ljava/lang/Exception; {:try_start_58 .. :try_end_5f} :catch_60
return v4
:catch_60
move-exception v0
.line 1235
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "setTorchMode failed, mode: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-eqz p1, :cond_70
goto :goto_71
:cond_70
move-object v6, v2
:goto_71
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", "
invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v3, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
:cond_84
const-string p1, "setTorchMode isFlashSupported: false"
.line 1240
invoke-static {v2, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
:cond_8a
const/4 p1, -0x2
return p1
.end method
.method public setVideoStabilityMode(I)I
.registers 7
.line 1060
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "setVideoStabilityMode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1061
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v2, -0x1
if-nez v1, :cond_1c
return v2
.line 1064
:cond_1c
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object v1
if-nez v1, :cond_23
return v2
.line 1068
:cond_23
invoke-virtual {v1}, Landroid/hardware/Camera$Parameters;->isVideoStabilizationSupported()Z
move-result v3
if-nez v3, :cond_3e
.line 1069
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not supported VideoStability Mode = "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
:cond_3e
const/4 v0, 0x0
const/4 v3, 0x1
if-ne p1, v3, :cond_46
.line 1073
invoke-virtual {v1, v3}, Landroid/hardware/Camera$Parameters;->setVideoStabilization(Z)V
goto :goto_4b
:cond_46
if-nez p1, :cond_4b
.line 1075
invoke-virtual {v1, v0}, Landroid/hardware/Camera$Parameters;->setVideoStabilization(Z)V
.line 1078
:cond_4b
:goto_4b
:try_start_4b
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v3, v1}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
:try_end_50
.catch Ljava/lang/Exception; {:try_start_4b .. :try_end_50} :catch_51
return v0
:catch_51
move-exception v0
.line 1080
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setVideoStabilityMode failed, mode: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, ", "
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v1, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v2
.end method
.method public setZoom(F)I
.registers 8
.line 795
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v1, 0x0
if-nez v0, :cond_8
.line 796
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraZoomFactor:F
return v1
.line 799
:cond_8
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraZoomStarted:Z
if-eqz v0, :cond_1e
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraZoomFactor:F
sub-float/2addr v0, p1
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v0
float-to-double v2, v0
const-wide v4, 0x3fb999999999999aL # 0.1
cmpg-double v0, v2, v4
if-gez v0, :cond_1e
return v1
.line 802
:cond_1e
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraZoomFactor:F
.line 804
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setCameraZoom api1 called zoomValue ="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(F)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
const/4 v0, 0x0
cmpg-float v0, p1, v0
const/4 v2, -0x1
if-gez v0, :cond_3d
return v2
:cond_3d
const/high16 v0, 0x42c80000 # 100.0f
mul-float/2addr p1, v0
const/high16 v0, 0x3f000000 # 0.5f
add-float/2addr p1, v0
float-to-int p1, p1
.line 810
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getZoomRatios()Ljava/util/List;
move-result-object v0
if-nez v0, :cond_4b
return v2
:cond_4b
move v3, v1
.line 817
:goto_4c
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v4
if-ge v3, v4, :cond_62
.line 818
invoke-interface {v0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Integer;
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v4
if-gt p1, v4, :cond_5f
goto :goto_63
:cond_5f
add-int/lit8 v3, v3, 0x1
goto :goto_4c
:cond_62
move v3, v1
.line 826
:goto_63
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCameraParameters()Landroid/hardware/Camera$Parameters;
move-result-object p1
.line 827
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera1;->isZoomSupported(Landroid/hardware/Camera$Parameters;)Z
move-result v0
if-nez v0, :cond_6e
return v2
.line 830
:cond_6e
invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I
move-result v0
if-le v3, v0, :cond_7c
.line 832
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v0, "zoom value is larger than maxZoom value"
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v2
.line 835
:cond_7c
invoke-virtual {p1, v3}, Landroid/hardware/Camera$Parameters;->setZoom(I)V
const/4 v0, 0x1
.line 837
:try_start_80
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraZoomStarted:Z
.line 838
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
invoke-virtual {v0, p1}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
:try_end_87
.catch Ljava/lang/Exception; {:try_start_80 .. :try_end_87} :catch_88
return v1
:catch_88
move-exception p1
.line 840
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setParameters failed, zoomLevel: "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v2
.end method
.method public startCaptureMaybeAsync()Z
.registers 7
.line 458
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "startCaptureMaybeAsync, use Texture: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureToTexture:Z
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 459
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCamera:Landroid/hardware/Camera;
const/4 v2, 0x0
if-nez v1, :cond_23
const-string v1, "startCaptureAsync: mCamera is null"
.line 460
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
.line 463
:cond_23
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v1, :cond_2d
const-string v1, "proxyThread unavailable"
.line 464
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v2
.line 467
:cond_2d
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 469
:try_start_32
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsRunning:Z
:try_end_34
.catchall {:try_start_32 .. :try_end_34} :catchall_ee
const/4 v1, 0x1
if-eqz v0, :cond_3d
.line 473
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return v1
:cond_3d
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
.line 476
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCaptureToTexture:Z
if-eqz v0, :cond_4a
.line 477
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->listenForTextureFrames()V
goto :goto_4d
.line 479
:cond_4a
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->listenForBytebufferFrames()V
.line 484
:goto_4d
:try_start_4d
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
const-wide/16 v3, 0x7d0
new-instance v5, Lio/agora/rtc2/video/VideoCaptureCamera1$2;
invoke-direct {v5, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$2;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-static {v0, v3, v4, v5}, Lio/agora/base/internal/ThreadUtils;->invokeAtFrontUninterruptibly(Landroid/os/Handler;JLjava/util/concurrent/Callable;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
:try_end_5c
.catch Ljava/lang/Exception; {:try_start_4d .. :try_end_5c} :catch_ed
if-eqz v0, :cond_ed
.line 500
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
if-nez v0, :cond_66
goto/16 :goto_ed
.line 502
:cond_66
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsCameraTorchStarted:Z
if-nez v0, :cond_78
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mTorchMode:I
if-eqz v0, :cond_78
.line 503
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mTorchMode:I
if-ne v0, v1, :cond_74
move v0, v1
goto :goto_75
:cond_74
move v0, v2
:goto_75
invoke-virtual {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setTorchMode(Z)I
.line 505
:cond_78
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraExposureStarted:Z
const/4 v3, 0x0
if-nez v0, :cond_98
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aget v0, v0, v2
cmpl-float v0, v0, v3
if-lez v0, :cond_98
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aget v0, v0, v1
cmpl-float v0, v0, v3
if-lez v0, :cond_98
.line 506
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aget v0, v0, v2
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposurePositions:[F
aget v4, v4, v1
invoke-virtual {p0, v0, v4}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setExposure(FF)I
.line 508
:cond_98
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraFocusStarted:Z
if-nez v0, :cond_b7
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aget v0, v0, v2
cmpl-float v0, v0, v3
if-lez v0, :cond_b7
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aget v0, v0, v1
cmpl-float v0, v0, v3
if-lez v0, :cond_b7
.line 509
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aget v0, v0, v2
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraFocusPositions:[F
aget v2, v2, v1
invoke-virtual {p0, v0, v2}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setFocus(FF)I
.line 511
:cond_b7
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraZoomStarted:Z
if-nez v0, :cond_c6
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraZoomFactor:F
cmpl-float v0, v0, v3
if-lez v0, :cond_c6
.line 512
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraZoomFactor:F
invoke-virtual {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setZoom(F)I
.line 514
:cond_c6
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsExposureCompensationStarted:Z
if-nez v0, :cond_d3
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposureCompensation:I
if-eqz v0, :cond_d3
.line 515
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mCameraExposureCompensation:I
invoke-virtual {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->setExposureCompensation(I)I
.line 519
:cond_d3
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->onFaceDetectionRequestChanged()V
.line 521
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 523
:try_start_db
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->onStarted()V
.line 524
iput-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsRunning:Z
:try_end_e0
.catchall {:try_start_db .. :try_end_e0} :catchall_e6
.line 526
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return v1
:catchall_e6
move-exception v0
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v0
:catch_ed
:cond_ed
:goto_ed
return v2
:catchall_ee
move-exception v0
.line 473
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v0
.end method
.method public stopCaptureAndBlockUntilStopped()V
.registers 5
.line 720
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
const-string v1, "stopCaptureAndBlockUntilStopped()"
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 721
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v1, :cond_11
const-string v1, "proxyThread unavailable"
.line 722
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 725
:cond_11
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 727
:try_start_16
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsRunning:Z
:try_end_18
.catchall {:try_start_16 .. :try_end_18} :catchall_65
if-nez v0, :cond_20
.line 732
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-void
:cond_20
const/4 v0, 0x0
.line 730
:try_start_21
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsRunning:Z
:try_end_23
.catchall {:try_start_21 .. :try_end_23} :catchall_65
.line 732
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
.line 735
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsCameraTorchStarted:Z
.line 736
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraExposureStarted:Z
.line 737
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraFocusStarted:Z
.line 738
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsmCameraZoomStarted:Z
.line 739
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mIsExposureCompensationStarted:Z
.line 740
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
new-instance v1, Lio/agora/rtc2/video/VideoCaptureCamera1$5;
invoke-direct {v1, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$5;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 748
:try_start_3c
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mProxyThreadHandler:Landroid/os/Handler;
const-wide/16 v1, 0x7d0
new-instance v3, Lio/agora/rtc2/video/VideoCaptureCamera1$6;
invoke-direct {v3, p0}, Lio/agora/rtc2/video/VideoCaptureCamera1$6;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera1;)V
invoke-static {v0, v1, v2, v3}, Lio/agora/base/internal/ThreadUtils;->invokeAtFrontUninterruptibly(Landroid/os/Handler;JLjava/util/concurrent/Callable;)Ljava/lang/Object;
:try_end_48
.catch Ljava/lang/Exception; {:try_start_3c .. :try_end_48} :catch_49
goto :goto_64
:catch_49
move-exception v0
.line 771
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera1;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "stopPreview got exception:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
:goto_64
return-void
:catchall_65
move-exception v0
.line 732
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera1;->mPreviewBufferLock:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v0
.end method