VideoCaptureCamera2.smali
.class public Lio/agora/rtc2/video/VideoCaptureCamera2;
.super Lio/agora/rtc2/video/VideoCaptureCamera;
.source "VideoCaptureCamera2.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;,
Lio/agora/rtc2/video/VideoCaptureCamera2$CameraState;,
Lio/agora/rtc2/video/VideoCaptureCamera2$StopCaptureTask;,
Lio/agora/rtc2/video/VideoCaptureCamera2$CrPreviewReaderListener;,
Lio/agora/rtc2/video/VideoCaptureCamera2$TextureVideoSinkListener;,
Lio/agora/rtc2/video/VideoCaptureCamera2$CrPreviewSessionListener;,
Lio/agora/rtc2/video/VideoCaptureCamera2$CrStateListener;
}
.end annotation
# static fields
.field private static final AE_TARGET_FPS_RANGE_BUGGY_DEVICE_LIST:[Ljava/lang/String;
.field static final ANDROID_CAMERA_HARDWARE_LEVEL_3:I = 0x5
.field static final ANDROID_CAMERA_HARDWARE_LEVEL_EXTERNAL:I = 0x2
.field static final ANDROID_CAMERA_HARDWARE_LEVEL_FULL:I = 0x4
.field static final ANDROID_CAMERA_HARDWARE_LEVEL_LEGACY:I = 0x1
.field static final ANDROID_CAMERA_HARDWARE_LEVEL_LIMITED:I = 0x3
.field static final ANDROID_CAMERA_HARDWARE_LEVEL_MAP:Landroid/util/SparseIntArray;
.field static final ANDROID_CAMERA_HARDWARE_NOT_SUPPORT:I = -0x80000000
.field private static final COLOR_TEMPERATURES_MAP:Landroid/util/SparseIntArray;
.field private static final DEFAULT_VALUE:F = -1.0f
.field private static IMAGE_FORMAT:I = 0x23
.field private static final TAG:Ljava/lang/String; = "VideoCaptureCamera2"
.field private static final ZOOM_UNSUPPORTED_DEFAULT_VALUE:F = 1.0f
.field private static final kNanosecondsPer100Microsecond:J = 0x186a0L
.field private static final kNanosecondsPerSecond:D = 1.0E9
# instance fields
.field private mAeFpsRange:Landroid/util/Range;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/Range<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private mAfCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
.field private mAreaOfInterest:Landroid/hardware/camera2/params/MeteringRectangle;
.field private mCameraDevice:Landroid/hardware/camera2/CameraDevice;
.field private mCameraState:I
.field private final mCameraStateLock:Ljava/lang/Object;
.field private mCameraThreadHandler:Landroid/os/Handler;
.field private final mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
.field private mColorTemperature:I
.field private mCropRect:Landroid/graphics/Rect;
.field private mCurrentFocusDistance:F
.field private mExposureMode:I
.field private mFaceDetectMode:I
.field private mFaceDetectSupported:Z
.field private mFillLightMode:I
.field private mFocusMode:I
.field private mImageReader:Landroid/media/ImageReader;
.field private final mImageReaderLock:Ljava/lang/Object;
.field private mIso:I
.field private mLastExposureTimeNs:J
.field private mLastZoomRatio:F
.field private mMaxZoom:F
.field private mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.field private mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
.field private mRedEyeReduction:Z
.field private mSensorRect:Landroid/graphics/Rect;
.field private mSurface:Landroid/view/Surface;
.field private final mSwitchLock:Ljava/lang/Object;
.field private mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
.field private mWaitForDeviceClosedConditionVariable:Landroid/os/ConditionVariable;
# direct methods
.method static constructor <clinit>()V
.registers 7
const-string v0, "Pixel 3"
const-string v1, "Pixel 3 XL"
const-string v2, "SDM845"
.line 564
filled-new-array {v0, v1, v2}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->AE_TARGET_FPS_RANGE_BUGGY_DEVICE_LIST:[Ljava/lang/String;
.line 576
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
sput-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->COLOR_TEMPERATURES_MAP:Landroid/util/SparseIntArray;
const/16 v1, 0xb22
const/4 v2, 0x2
.line 577
invoke-virtual {v0, v1, v2}, Landroid/util/SparseIntArray;->append(II)V
const/16 v1, 0xb86
const/4 v3, 0x4
.line 578
invoke-virtual {v0, v1, v3}, Landroid/util/SparseIntArray;->append(II)V
const/16 v1, 0x109a
const/4 v4, 0x3
.line 579
invoke-virtual {v0, v1, v4}, Landroid/util/SparseIntArray;->append(II)V
const/16 v1, 0x11f8
const/4 v5, 0x7
.line 580
invoke-virtual {v0, v1, v5}, Landroid/util/SparseIntArray;->append(II)V
const/16 v1, 0x1388
const/4 v5, 0x5
.line 581
invoke-virtual {v0, v1, v5}, Landroid/util/SparseIntArray;->append(II)V
const/16 v1, 0x1770
const/4 v6, 0x6
.line 582
invoke-virtual {v0, v1, v6}, Landroid/util/SparseIntArray;->append(II)V
const/16 v1, 0x1b58
const/16 v6, 0x8
.line 583
invoke-virtual {v0, v1, v6}, Landroid/util/SparseIntArray;->append(II)V
.line 647
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
sput-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->ANDROID_CAMERA_HARDWARE_LEVEL_MAP:Landroid/util/SparseIntArray;
.line 648
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v6, 0x15
if-lt v1, v6, :cond_56
const/4 v1, 0x1
.line 649
invoke-virtual {v0, v2, v1}, Landroid/util/SparseIntArray;->append(II)V
const/4 v6, 0x0
.line 651
invoke-virtual {v0, v6, v4}, Landroid/util/SparseIntArray;->append(II)V
.line 653
invoke-virtual {v0, v1, v3}, Landroid/util/SparseIntArray;->append(II)V
.line 656
:cond_56
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v6, 0x1c
if-lt v1, v6, :cond_5f
.line 657
invoke-virtual {v0, v3, v2}, Landroid/util/SparseIntArray;->append(II)V
.line 661
:cond_5f
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x18
if-lt v1, v2, :cond_68
.line 662
invoke-virtual {v0, v4, v5}, Landroid/util/SparseIntArray;->append(II)V
:cond_68
return-void
.end method
.method constructor <init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
.registers 8
.line 1220
invoke-direct/range {p0 .. p7}, Lio/agora/rtc2/video/VideoCaptureCamera;-><init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
.line 182
new-instance p2, Lio/agora/rtc2/video/VideoCaptureCamera2$1;
invoke-direct {p2, p0}, Lio/agora/rtc2/video/VideoCaptureCamera2$1;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;)V
iput-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
.line 318
new-instance p2, Lio/agora/rtc2/video/VideoCaptureCamera2$2;
invoke-direct {p2, p0}, Lio/agora/rtc2/video/VideoCaptureCamera2$2;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;)V
iput-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAfCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
.line 597
new-instance p2, Ljava/lang/Object;
invoke-direct {p2}, Ljava/lang/Object;-><init>()V
iput-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
.line 598
new-instance p2, Ljava/lang/Object;
invoke-direct {p2}, Ljava/lang/Object;-><init>()V
iput-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraStateLock:Ljava/lang/Object;
.line 599
new-instance p2, Ljava/lang/Object;
invoke-direct {p2}, Ljava/lang/Object;-><init>()V
iput-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReaderLock:Ljava/lang/Object;
.line 612
new-instance p2, Landroid/os/ConditionVariable;
invoke-direct {p2}, Landroid/os/ConditionVariable;-><init>()V
iput-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mWaitForDeviceClosedConditionVariable:Landroid/os/ConditionVariable;
const/4 p2, 0x4
.line 615
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraState:I
const/high16 p3, 0x3f800000 # 1.0f
.line 616
iput p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
.line 617
new-instance p4, Landroid/graphics/Rect;
invoke-direct {p4}, Landroid/graphics/Rect;-><init>()V
iput-object p4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCropRect:Landroid/graphics/Rect;
.line 618
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFocusMode:I
.line 619
iput p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCurrentFocusDistance:F
.line 620
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mExposureMode:I
const/4 p2, -0x1
.line 623
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mColorTemperature:I
const/4 p2, 0x1
.line 626
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFillLightMode:I
const/high16 p3, -0x40800000 # -1.0f
.line 631
iput p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mLastZoomRatio:F
const/4 p3, 0x0
.line 632
iput-object p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
const/4 p3, 0x0
.line 633
iput-boolean p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectSupported:Z
.line 1222
new-instance p3, Landroid/os/HandlerThread;
const-string p4, "VideoCaptureCamera2_CameraThread"
invoke-direct {p3, p4}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
.line 1223
invoke-virtual {p3}, Landroid/os/HandlerThread;->start()V
.line 1224
new-instance p4, Landroid/os/Handler;
invoke-virtual {p3}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object p5
invoke-direct {p4, p5}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1225
new-instance p4, Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-direct {p4, p3}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;-><init>(Ljava/lang/Thread;)V
iput-object p4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
.line 1227
invoke-static {p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p1
if-eqz p1, :cond_79
.line 1229
invoke-static {p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getMaxZoom(Landroid/hardware/camera2/CameraCharacteristics;)F
move-result p1
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
.line 1231
:cond_79
iget p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSkipControl:I
if-ne p1, p2, :cond_7f
.line 1232
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mExposureMode:I
.line 1234
:cond_7f
iget p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSkipControl:I
const/4 p2, 0x2
if-ne p1, p2, :cond_86
.line 1235
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFocusMode:I
:cond_86
return-void
.end method
.method static synthetic access$000(Lio/agora/rtc2/video/VideoCaptureCamera2;)Lio/agora/base/internal/ThreadUtils$ThreadChecker;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
return-object p0
.end method
.method static synthetic access$100()Ljava/lang/String;
.registers 1
.line 69
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$1000(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/hardware/camera2/CaptureRequest$Builder;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
return-object p0
.end method
.method static synthetic access$1100(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
return-object p0
.end method
.method static synthetic access$1200(Lio/agora/rtc2/video/VideoCaptureCamera2;)I
.registers 1
.line 69
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->createCaptureRequest()I
move-result p0
return p0
.end method
.method static synthetic access$1300(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/os/Handler;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
return-object p0
.end method
.method static synthetic access$1400(Lio/agora/rtc2/video/VideoCaptureCamera2;)I
.registers 1
.line 69
iget p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
return p0
.end method
.method static synthetic access$1500(Lio/agora/rtc2/video/VideoCaptureCamera2;Landroid/hardware/camera2/CaptureRequest$Builder;I)V
.registers 3
.line 69
invoke-direct {p0, p1, p2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->requestFaceDetection(Landroid/hardware/camera2/CaptureRequest$Builder;I)V
return-void
.end method
.method static synthetic access$1601(Lio/agora/rtc2/video/VideoCaptureCamera2;I)V
.registers 2
.line 69
invoke-super {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->onFrameDropped(I)V
return-void
.end method
.method static synthetic access$1700(Lio/agora/rtc2/video/VideoCaptureCamera2;)Ljava/lang/Object;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReaderLock:Ljava/lang/Object;
return-object p0
.end method
.method static synthetic access$1800(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/media/ImageReader;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
return-object p0
.end method
.method static synthetic access$1902(Lio/agora/rtc2/video/VideoCaptureCamera2;Landroid/graphics/Rect;)Landroid/graphics/Rect;
.registers 2
.line 69
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCropRect:Landroid/graphics/Rect;
return-object p1
.end method
.method static synthetic access$200(Lio/agora/rtc2/video/VideoCaptureCamera2;)Ljava/lang/Object;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraStateLock:Ljava/lang/Object;
return-object p0
.end method
.method static synthetic access$300(Lio/agora/rtc2/video/VideoCaptureCamera2;)I
.registers 1
.line 69
iget p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraState:I
return p0
.end method
.method static synthetic access$400(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/hardware/camera2/CameraDevice;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraDevice:Landroid/hardware/camera2/CameraDevice;
return-object p0
.end method
.method static synthetic access$402(Lio/agora/rtc2/video/VideoCaptureCamera2;Landroid/hardware/camera2/CameraDevice;)Landroid/hardware/camera2/CameraDevice;
.registers 2
.line 69
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraDevice:Landroid/hardware/camera2/CameraDevice;
return-object p1
.end method
.method static synthetic access$500(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/os/ConditionVariable;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mWaitForDeviceClosedConditionVariable:Landroid/os/ConditionVariable;
return-object p0
.end method
.method static synthetic access$600(Lio/agora/rtc2/video/VideoCaptureCamera2;I)V
.registers 2
.line 69
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->changeCameraStateAndNotify(I)V
return-void
.end method
.method static synthetic access$700(Lio/agora/rtc2/video/VideoCaptureCamera2;I)V
.registers 2
.line 69
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->createPreviewObjectsAndStartPreviewOrFailWith(I)V
return-void
.end method
.method static synthetic access$800(Lio/agora/rtc2/video/VideoCaptureCamera2;)Landroid/hardware/camera2/CameraCaptureSession;
.registers 1
.line 69
iget-object p0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
return-object p0
.end method
.method static synthetic access$802(Lio/agora/rtc2/video/VideoCaptureCamera2;Landroid/hardware/camera2/CameraCaptureSession;)Landroid/hardware/camera2/CameraCaptureSession;
.registers 2
.line 69
iput-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
return-object p1
.end method
.method static synthetic access$902(Lio/agora/rtc2/video/VideoCaptureCamera2;J)J
.registers 3
.line 69
iput-wide p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mLastExposureTimeNs:J
return-wide p1
.end method
.method private changeCameraStateAndNotify(I)V
.registers 5
.line 947
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "changeCameraStateAndNotify() "
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;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 948
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraStateLock:Ljava/lang/Object;
monitor-enter v0
.line 949
:try_start_19
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraState:I
.line 950
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraStateLock:Ljava/lang/Object;
invoke-virtual {p1}, Ljava/lang/Object;->notifyAll()V
.line 951
monitor-exit v0
return-void
:catchall_22
move-exception p1
monitor-exit v0
:try_end_24
.catchall {:try_start_19 .. :try_end_24} :catchall_22
throw p1
.end method
.method private configureCommonCaptureSettings(Landroid/hardware/camera2/CaptureRequest$Builder;)V
.registers 20
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 839
iget-object v2, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-virtual {v2}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;->checkIsOnValidThread()V
.line 840
iget v2, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v2
.line 845
iget v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFocusMode:I
const/4 v4, 0x4
const/4 v5, 0x2
const/4 v6, 0x0
.line 848
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
if-ne v3, v4, :cond_29
.line 846
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 847
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
.line 846
invoke-virtual {v1, v3, v8}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 848
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v3, v7}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_43
:cond_29
if-ne v3, v5, :cond_43
.line 850
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v3, v7}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 851
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v3, v7}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 852
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->LENS_FOCUS_DISTANCE:Landroid/hardware/camera2/CaptureRequest$Key;
const/high16 v8, 0x3f800000 # 1.0f
iget v9, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCurrentFocusDistance:F
div-float/2addr v8, v9
invoke-static {v8}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v8
invoke-virtual {v1, v3, v8}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 859
:cond_43
:goto_43
iget v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mExposureMode:I
const/4 v8, 0x1
if-eq v3, v8, :cond_6b
if-ne v3, v5, :cond_4b
goto :goto_6b
.line 880
:cond_4b
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
invoke-virtual {v1, v3, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 881
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
invoke-virtual {v1, v3, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 882
invoke-static {}, Lio/agora/rtc2/video/VideoCaptureCamera2;->shouldSkipSettingAeTargetFpsRange()Z
move-result v3
if-nez v3, :cond_c1
.line 883
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_TARGET_FPS_RANGE:Landroid/hardware/camera2/CaptureRequest$Key;
iget-object v9, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAeFpsRange:Landroid/util/Range;
invoke-virtual {v1, v3, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_c1
.line 860
:cond_6b
:goto_6b
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v3, v7}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 868
iget-wide v9, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mLastExposureTimeNs:J
const-wide/16 v11, 0x0
cmp-long v3, v9, v11
const-wide/32 v9, 0x186a0
if-eqz v3, :cond_88
.line 869
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->SENSOR_EXPOSURE_TIME:Landroid/hardware/camera2/CaptureRequest$Key;
iget-wide v11, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mLastExposureTimeNs:J
div-long/2addr v11, v9
.line 870
invoke-static {v11, v12}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v9
.line 869
invoke-virtual {v1, v3, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_c1
:cond_88
if-eqz v2, :cond_c1
.line 872
sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->SENSOR_INFO_EXPOSURE_TIME_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 873
invoke-virtual {v2, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroid/util/Range;
.line 874
sget-object v11, Landroid/hardware/camera2/CaptureRequest;->SENSOR_EXPOSURE_TIME:Landroid/hardware/camera2/CaptureRequest$Key;
.line 875
invoke-virtual {v3}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v12
check-cast v12, Ljava/lang/Long;
invoke-virtual {v12}, Ljava/lang/Long;->longValue()J
move-result-wide v12
invoke-virtual {v3}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v14
check-cast v14, Ljava/lang/Long;
invoke-virtual {v14}, Ljava/lang/Long;->longValue()J
move-result-wide v14
invoke-virtual {v3}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v3
check-cast v3, Ljava/lang/Long;
invoke-virtual {v3}, Ljava/lang/Long;->longValue()J
move-result-wide v16
add-long v14, v14, v16
const-wide/16 v16, 0x2
div-long v14, v14, v16
add-long/2addr v12, v14
div-long/2addr v12, v9
invoke-static {v12, v13}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
.line 874
invoke-virtual {v1, v11, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 887
:cond_c1
:goto_c1
iget-boolean v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsCameraTorchStarted:Z
if-eqz v3, :cond_df
.line 888
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 889
iget v7, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mExposureMode:I
if-ne v7, v4, :cond_cd
move v4, v8
goto :goto_ce
:cond_cd
move v4, v6
:goto_ce
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
.line 888
invoke-virtual {v1, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 891
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v1, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_116
.line 893
:cond_df
iget v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFillLightMode:I
if-eq v3, v8, :cond_10c
if-eq v3, v5, :cond_fc
const/4 v4, 0x3
if-eq v3, v4, :cond_e9
goto :goto_111
.line 906
:cond_e9
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 907
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
.line 906
invoke-virtual {v1, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 908
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v1, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_111
.line 900
:cond_fc
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 901
iget-boolean v9, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRedEyeReduction:Z
if-eqz v9, :cond_103
goto :goto_104
:cond_103
move v4, v5
:goto_104
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
.line 900
invoke-virtual {v1, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_111
.line 895
:cond_10c
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v3, v7}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 912
:goto_111
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_PRECAPTURE_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v3, v7}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 916
:goto_116
iget v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mColorTemperature:I
if-lez v3, :cond_153
const/4 v4, -0x1
if-eqz v2, :cond_12a
.line 919
sget-object v7, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AWB_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 920
invoke-virtual {v2, v7}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v2
check-cast v2, [I
.line 919
invoke-static {v3, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getClosestWhiteBalance(I[I)I
move-result v2
goto :goto_12b
:cond_12a
move v2, v4
.line 922
:goto_12b
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
sget-object v7, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v5, v5, [Ljava/lang/Object;
iget v9, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mColorTemperature:I
.line 924
invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
aput-object v9, v5, v6
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
aput-object v9, v5, v8
const-string v9, " Color temperature (%d ==> %d)"
.line 923
invoke-static {v7, v9, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
.line 922
invoke-static {v3, v5}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
if-eq v2, v4, :cond_153
.line 926
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AWB_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v1, v3, v2}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 930
:cond_153
iget-object v2, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAreaOfInterest:Landroid/hardware/camera2/params/MeteringRectangle;
if-eqz v2, :cond_181
new-array v3, v8, [Landroid/hardware/camera2/params/MeteringRectangle;
aput-object v2, v3, v6
.line 932
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v5, v8, [Ljava/lang/Object;
iget-object v7, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAreaOfInterest:Landroid/hardware/camera2/params/MeteringRectangle;
invoke-virtual {v7}, Landroid/hardware/camera2/params/MeteringRectangle;->toString()Ljava/lang/String;
move-result-object v7
aput-object v7, v5, v6
const-string v6, "Area of interest %s"
invoke-static {v4, v6, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-static {v2, v4}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 933
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 934
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 935
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AWB_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 938
:cond_181
iget-object v2, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCropRect:Landroid/graphics/Rect;
invoke-virtual {v2}, Landroid/graphics/Rect;->isEmpty()Z
move-result v2
if-nez v2, :cond_190
.line 939
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->SCALER_CROP_REGION:Landroid/hardware/camera2/CaptureRequest$Key;
iget-object v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCropRect:Landroid/graphics/Rect;
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 942
:cond_190
iget v2, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIso:I
if-lez v2, :cond_19f
.line 943
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->SENSOR_SENSITIVITY:Landroid/hardware/camera2/CaptureRequest$Key;
iget v3, v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIso:I
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v1, v2, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
:cond_19f
return-void
.end method
.method private createBufferPreviewObjectsAndStartPreview()Z
.registers 6
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 726
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-virtual {v0}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;->checkIsOnValidThread()V
.line 727
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraDevice:Landroid/hardware/camera2/CameraDevice;
if-nez v0, :cond_b
const/4 v0, 0x0
return v0
.line 732
:cond_b
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReaderLock:Ljava/lang/Object;
monitor-enter v0
.line 733
:try_start_e
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v1}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v1
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v2
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 734
invoke-virtual {v3}, Lio/agora/rtc2/video/VideoCaptureFormat;->getPixelFormat()I
move-result v3
const/4 v4, 0x2
.line 733
invoke-static {v1, v2, v3, v4}, Landroid/media/ImageReader;->newInstance(IIII)Landroid/media/ImageReader;
move-result-object v1
iput-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
.line 735
new-instance v1, Lio/agora/rtc2/video/VideoCaptureCamera2$CrPreviewReaderListener;
const/4 v2, 0x0
invoke-direct {v1, p0, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2$CrPreviewReaderListener;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;Lio/agora/rtc2/video/VideoCaptureCamera2$1;)V
:try_end_2d
.catchall {:try_start_e .. :try_end_2d} :catchall_49
.line 737
:try_start_2d
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
invoke-virtual {v2, v1, v3}, Landroid/media/ImageReader;->setOnImageAvailableListener(Landroid/media/ImageReader$OnImageAvailableListener;Landroid/os/Handler;)V
:try_end_34
.catch Ljava/lang/IllegalArgumentException; {:try_start_2d .. :try_end_34} :catch_35
.catchall {:try_start_2d .. :try_end_34} :catchall_49
goto :goto_3d
:catch_35
move-exception v1
.line 739
:try_start_36
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v3, "setOnImageAvailableListener error"
invoke-static {v2, v3, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 741
:goto_3d
monitor-exit v0
:try_end_3e
.catchall {:try_start_36 .. :try_end_3e} :catchall_49
.line 743
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
invoke-virtual {v0}, Landroid/media/ImageReader;->getSurface()Landroid/view/Surface;
move-result-object v0
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->createPreviewObjectsAndStartPreview(Landroid/view/Surface;)Z
move-result v0
return v0
:catchall_49
move-exception v1
.line 741
:try_start_4a
monitor-exit v0
:try_end_4b
.catchall {:try_start_4a .. :try_end_4b} :catchall_49
throw v1
.end method
.method private createCaptureRequest()I
.registers 7
const-string v0, "setRepeatingRequest: "
const/4 v1, -0x1
.line 2335
:try_start_3
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
invoke-virtual {v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v3
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
const/4 v5, 0x0
invoke-virtual {v2, v3, v4, v5}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_11
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_3 .. :try_end_11} :catch_3d
.catch Ljava/lang/IllegalArgumentException; {:try_start_3 .. :try_end_11} :catch_35
.catch Ljava/lang/SecurityException; {:try_start_3 .. :try_end_11} :catch_2d
.catch Ljava/lang/IllegalStateException; {:try_start_3 .. :try_end_11} :catch_14
.catch Ljava/lang/NoClassDefFoundError; {:try_start_3 .. :try_end_11} :catch_13
const/4 v0, 0x0
return v0
:catch_13
return v1
:catch_14
move-exception v0
.line 2346
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "capture:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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, -0x4
return v0
:catch_2d
move-exception v1
.line 2343
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
invoke-static {v2, v0, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
const/4 v0, -0x3
return v0
:catch_35
move-exception v1
.line 2340
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
invoke-static {v2, v0, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
const/4 v0, -0x2
return v0
:catch_3d
move-exception v2
.line 2337
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
invoke-static {v3, v0, v2}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
return v1
.end method
.method private createPreviewObjectsAndStartPreview(Landroid/view/Surface;)Z
.registers 8
const-string v0, "createCaptureRequest: "
const-string v1, "createCaptureSession: "
const/4 v2, 0x0
.line 767
:try_start_5
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraDevice:Landroid/hardware/camera2/CameraDevice;
const/4 v4, 0x1
invoke-virtual {v3, v4}, Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder;
move-result-object v3
iput-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
:try_end_e
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_5 .. :try_end_e} :catch_181
.catch Ljava/lang/IllegalArgumentException; {:try_start_5 .. :try_end_e} :catch_167
.catch Ljava/lang/SecurityException; {:try_start_5 .. :try_end_e} :catch_14d
if-nez v3, :cond_18
.line 780
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v0, "mPreviewRequestBuilder error"
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
.line 785
:cond_18
invoke-virtual {v3, p1}, Landroid/hardware/camera2/CaptureRequest$Builder;->addTarget(Landroid/view/Surface;)V
.line 788
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-virtual {v0, v3, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 789
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
const/4 v5, 0x3
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-virtual {v0, v3, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 790
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
invoke-virtual {v0, v3, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 792
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->configureCommonCaptureSettings(Landroid/hardware/camera2/CaptureRequest$Builder;)V
.line 795
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableFaceDetection:Z
if-eqz v0, :cond_5d
.line 796
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
const/4 v5, 0x2
.line 797
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
.line 796
invoke-virtual {v0, v3, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 798
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_SCENE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 799
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
.line 798
invoke-virtual {v0, v3, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 802
:cond_5d
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
iget v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
invoke-direct {p0, v0, v3}, Lio/agora/rtc2/video/VideoCaptureCamera2;->requestFaceDetection(Landroid/hardware/camera2/CaptureRequest$Builder;I)V
.line 803
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsCameraTorchStarted:Z
if-nez v0, :cond_76
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mTorchMode:I
if-eqz v0, :cond_76
.line 804
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mTorchMode:I
if-ne v0, v4, :cond_72
move v0, v4
goto :goto_73
:cond_72
move v0, v2
:goto_73
invoke-virtual {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->setTorchMode(Z)I
.line 806
:cond_76
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraExposureStarted:Z
const/4 v3, 0x0
if-nez v0, :cond_96
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aget v0, v0, v2
cmpl-float v0, v0, v3
if-lez v0, :cond_96
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aget v0, v0, v4
cmpl-float v0, v0, v3
if-lez v0, :cond_96
.line 807
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aget v0, v0, v2
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aget v5, v5, v4
invoke-virtual {p0, v0, v5}, Lio/agora/rtc2/video/VideoCaptureCamera2;->setExposure(FF)I
.line 809
:cond_96
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraFocusStarted:Z
if-nez v0, :cond_b5
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aget v0, v0, v2
cmpl-float v0, v0, v3
if-lez v0, :cond_b5
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aget v0, v0, v4
cmpl-float v0, v0, v3
if-lez v0, :cond_b5
.line 810
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aget v0, v0, v2
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aget v5, v5, v4
invoke-virtual {p0, v0, v5}, Lio/agora/rtc2/video/VideoCaptureCamera2;->setFocus(FF)I
.line 812
:cond_b5
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraZoomStarted:Z
if-nez v0, :cond_c4
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraZoomFactor:F
cmpl-float v0, v0, v3
if-lez v0, :cond_c4
.line 813
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraZoomFactor:F
invoke-virtual {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->setZoom(F)I
.line 815
:cond_c4
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsExposureCompensationStarted:Z
if-nez v0, :cond_d1
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposureCompensation:I
if-eqz v0, :cond_d1
.line 816
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposureCompensation:I
invoke-virtual {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->setExposureCompensation(I)I
.line 819
:cond_d1
:try_start_d1
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraDevice:Landroid/hardware/camera2/CameraDevice;
new-array v3, v4, [Landroid/view/Surface;
aput-object p1, v3, v2
.line 820
invoke-static {v3}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
new-instance v3, Lio/agora/rtc2/video/VideoCaptureCamera2$CrPreviewSessionListener;
const/4 v5, 0x0
invoke-direct {v3, p0, v5}, Lio/agora/rtc2/video/VideoCaptureCamera2$CrPreviewSessionListener;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;Lio/agora/rtc2/video/VideoCaptureCamera2$1;)V
.line 819
invoke-virtual {v0, p1, v3, v5}, Landroid/hardware/camera2/CameraDevice;->createCaptureSession(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V
:try_end_e4
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_d1 .. :try_end_e4} :catch_133
.catch Ljava/lang/IllegalArgumentException; {:try_start_d1 .. :try_end_e4} :catch_119
.catch Ljava/lang/SecurityException; {:try_start_d1 .. :try_end_e4} :catch_ff
.catch Ljava/lang/NoClassDefFoundError; {:try_start_d1 .. :try_end_e4} :catch_e5
return v4
:catch_e5
move-exception p1
.line 831
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/NoClassDefFoundError;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
:catch_ff
move-exception p1
.line 828
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/SecurityException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
:catch_119
move-exception p1
.line 825
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/IllegalArgumentException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
:catch_133
move-exception p1
.line 822
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/hardware/camera2/CameraAccessException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
:catch_14d
move-exception p1
.line 775
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/SecurityException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
:catch_167
move-exception p1
.line 772
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/IllegalArgumentException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
:catch_181
move-exception p1
.line 769
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/hardware/camera2/CameraAccessException;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
.end method
.method private createPreviewObjectsAndStartPreviewOrFailWith(I)V
.registers 3
.line 708
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-virtual {v0}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;->checkIsOnValidThread()V
.line 710
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureToTexture:Z
if-eqz v0, :cond_10
.line 711
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->createTexturePreviewObjectsAndStartPreview()Z
move-result v0
if-eqz v0, :cond_17
return-void
.line 715
:cond_10
invoke-direct {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->createBufferPreviewObjectsAndStartPreview()Z
move-result v0
if-eqz v0, :cond_17
return-void
:cond_17
const/4 v0, 0x4
.line 720
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->changeCameraStateAndNotify(I)V
const-string v0, "Error starting or restarting preview"
.line 721
invoke-virtual {p0, p1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->onError(ILjava/lang/String;)V
return-void
.end method
.method private createTexturePreviewObjectsAndStartPreview()Z
.registers 5
.line 747
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-virtual {v0}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;->checkIsOnValidThread()V
.line 748
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraDevice:Landroid/hardware/camera2/CameraDevice;
const/4 v1, 0x0
if-eqz v0, :cond_47
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
if-nez v0, :cond_f
goto :goto_47
.line 752
:cond_f
:try_start_f
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v2
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v3}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v3
invoke-interface {v0, v2, v3}, Lio/agora/base/internal/video/ISurfaceTextureHelper;->setTextureSize(II)V
:try_end_20
.catch Ljava/lang/IllegalArgumentException; {:try_start_f .. :try_end_20} :catch_3f
.line 757
new-instance v0, Landroid/view/Surface;
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->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-direct {v0, v1}, Landroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
iput-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurface:Landroid/view/Surface;
.line 758
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera2$TextureVideoSinkListener;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lio/agora/rtc2/video/VideoCaptureCamera2$TextureVideoSinkListener;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;Lio/agora/rtc2/video/VideoCaptureCamera2$1;)V
.line 759
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
invoke-interface {v1, v0}, Lio/agora/base/internal/video/ISurfaceTextureHelper;->startListening(Lio/agora/base/internal/video/VideoSink;)V
.line 760
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurface:Landroid/view/Surface;
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->createPreviewObjectsAndStartPreview(Landroid/view/Surface;)Z
move-result v0
return v0
:catch_3f
move-exception v0
.line 754
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v3, "setTextureSize:"
invoke-static {v2, v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_47
:goto_47
return v1
.end method
.method private cropRegionForZoom(F)Landroid/graphics/Rect;
.registers 8
.line 2320
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
invoke-virtual {v0}, Landroid/graphics/Rect;->width()I
move-result v0
div-int/lit8 v0, v0, 0x2
.line 2321
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
invoke-virtual {v1}, Landroid/graphics/Rect;->height()I
move-result v1
div-int/lit8 v1, v1, 0x2
.line 2322
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
invoke-virtual {v2}, Landroid/graphics/Rect;->width()I
move-result v2
int-to-float v2, v2
const/high16 v3, 0x3f000000 # 0.5f
mul-float/2addr v2, v3
div-float/2addr v2, p1
float-to-int v2, v2
.line 2323
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
invoke-virtual {v4}, Landroid/graphics/Rect;->height()I
move-result v4
int-to-float v4, v4
mul-float/2addr v4, v3
div-float/2addr v4, p1
float-to-int p1, v4
.line 2324
new-instance v3, Landroid/graphics/Rect;
sub-int v4, v0, v2
sub-int v5, v1, p1
add-int/2addr v0, v2
add-int/2addr v1, p1
invoke-direct {v3, v4, v5, v0, v1}, Landroid/graphics/Rect;-><init>(IIII)V
return-object v3
.end method
.method private static findInIntArray([II)I
.registers 4
const/4 v0, 0x0
.line 996
:goto_1
array-length v1, p0
if-ge v0, v1, :cond_c
.line 997
aget v1, p0, v0
if-ne p1, v1, :cond_9
return v0
:cond_9
add-int/lit8 v0, v0, 0x1
goto :goto_1
:cond_c
const/4 p0, -0x1
return p0
.end method
.method static getCamera2SupportedLevel(I)I
.registers 4
.line 668
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/high16 v1, -0x80000000
const/16 v2, 0x15
if-ge v0, v2, :cond_9
return v1
.line 671
:cond_9
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
if-nez p0, :cond_10
return v1
.line 675
:cond_10
sget-object v0, Landroid/hardware/camera2/CameraCharacteristics;->INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v0}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
move-result p0
return p0
.end method
.method private static getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
.registers 6
const-string v0, "getCameraCharacteristics: "
.line 681
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v1
const/4 v2, 0x0
if-nez v1, :cond_a
return-object v2
.line 684
:cond_a
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v1
const-string v3, "camera"
invoke-virtual {v1, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/hardware/camera2/CameraManager;
if-nez v1, :cond_19
return-object v2
.line 689
:cond_19
:try_start_19
invoke-virtual {v1}, Landroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String;
move-result-object v3
.line 690
array-length v4, v3
if-lt p0, v4, :cond_37
.line 691
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Invalid camera Id: "
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 {v1, p0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return-object v2
.line 694
:cond_37
aget-object p0, v3, p0
invoke-virtual {v1, p0}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
:try_end_3d
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_19 .. :try_end_3d} :catch_8a
.catch Ljava/lang/IllegalArgumentException; {:try_start_19 .. :try_end_3d} :catch_70
.catch Ljava/lang/AssertionError; {:try_start_19 .. :try_end_3d} :catch_56
.catch Ljava/lang/Exception; {:try_start_19 .. :try_end_3d} :catch_3e
return-object p0
:catch_3e
move-exception p0
.line 702
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "getNumberOfCameras: got exception: "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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
goto :goto_a3
:catch_56
move-exception p0
.line 700
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/AssertionError;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
goto :goto_a3
:catch_70
move-exception p0
.line 698
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/IllegalArgumentException;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
goto :goto_a3
:catch_8a
move-exception p0
.line 696
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Landroid/hardware/camera2/CameraAccessException;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, 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
:goto_a3
return-object v2
.end method
.method public static getCaptureApiType(I)I
.registers 9
.line 1079
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
const/16 v0, 0xb
if-nez p0, :cond_9
return v0
.line 1084
:cond_9
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1085
invoke-virtual {p0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
const/4 v2, 0x2
const/4 v3, 0x7
if-ne v1, v2, :cond_1a
return v3
.line 1093
:cond_1a
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->REQUEST_AVAILABLE_CAPABILITIES:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1094
invoke-virtual {p0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p0
check-cast p0, [I
.line 1096
array-length v2, p0
const/4 v4, 0x0
move v5, v4
:goto_25
const/4 v6, 0x1
if-ge v5, v2, :cond_31
aget v7, p0, v5
if-nez v7, :cond_2e
move v4, v6
goto :goto_31
:cond_2e
add-int/lit8 v5, v5, 0x1
goto :goto_25
:cond_31
:goto_31
if-nez v4, :cond_34
return v0
:cond_34
if-eqz v1, :cond_3c
if-eq v1, v6, :cond_39
return v3
:cond_39
const/16 p0, 0x8
return p0
:cond_3c
const/16 p0, 0x9
return p0
.end method
.method private static getClosestWhiteBalance(I[I)I
.registers 8
const/4 v0, -0x1
const v1, 0x7fffffff
const/4 v2, 0x0
move v3, v0
.line 1007
:goto_6
sget-object v4, Lio/agora/rtc2/video/VideoCaptureCamera2;->COLOR_TEMPERATURES_MAP:Landroid/util/SparseIntArray;
invoke-virtual {v4}, Landroid/util/SparseIntArray;->size()I
move-result v5
if-ge v2, v5, :cond_2e
.line 1008
invoke-virtual {v4, v2}, Landroid/util/SparseIntArray;->valueAt(I)I
move-result v5
invoke-static {p1, v5}, Lio/agora/rtc2/video/VideoCaptureCamera2;->findInIntArray([II)I
move-result v5
if-ne v5, v0, :cond_19
goto :goto_2b
.line 1011
:cond_19
invoke-virtual {v4, v2}, Landroid/util/SparseIntArray;->keyAt(I)I
move-result v5
sub-int v5, p0, v5
invoke-static {v5}, Ljava/lang/Math;->abs(I)I
move-result v5
if-lt v5, v1, :cond_26
goto :goto_2b
.line 1015
:cond_26
invoke-virtual {v4, v2}, Landroid/util/SparseIntArray;->valueAt(I)I
move-result v3
move v1, v5
:goto_2b
add-int/lit8 v2, v2, 0x1
goto :goto_6
:cond_2e
return v3
.end method
.method static getDeviceId(I)Ljava/lang/String;
.registers 4
.line 1145
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;
invoke-direct {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;-><init>()V
.line 1146
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;->getCameraIdList()[Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_12
.line 1147
array-length v1, v0
if-lt p0, v1, :cond_f
goto :goto_12
.line 1151
:cond_f
aget-object p0, v0, p0
return-object p0
.line 1148
:cond_12
:goto_12
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Invalid camera index: "
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 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 getDeviceSupportedFormats(I)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCaptureFormat;",
">;"
}
.end annotation
.line 1156
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->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
.line 1157
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
if-nez p0, :cond_1e
const/4 p0, 0x0
return-object p0
.line 1161
:cond_1e
sget v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->IMAGE_FORMAT:I
invoke-static {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getFormatsFromParemeters(Landroid/hardware/camera2/CameraCharacteristics;I)Ljava/util/List;
move-result-object p0
return-object p0
.end method
.method public static getFacingMode(I)I
.registers 3
.line 1117
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
const/4 v0, 0x0
if-nez p0, :cond_8
return v0
.line 1122
:cond_8
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {p0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
move-result p0
const/4 v1, 0x1
if-eqz p0, :cond_1c
if-eq p0, v1, :cond_1a
return v0
:cond_1a
const/4 p0, 0x2
return p0
:cond_1c
return v1
.end method
.method private static getFormatsFromParemeters(Landroid/hardware/camera2/CameraCharacteristics;I)Ljava/util/List;
.registers 20
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/hardware/camera2/CameraCharacteristics;",
"I)",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCaptureFormat;",
">;"
}
.end annotation
move-object/from16 v0, p0
.line 1167
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->REQUEST_AVAILABLE_CAPABILITIES:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1168
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v1
check-cast v1, [I
.line 1172
array-length v2, v1
const/4 v4, 0x0
:goto_c
const/4 v5, 0x1
if-ge v4, v2, :cond_17
aget v6, v1, v4
if-ne v6, v5, :cond_14
goto :goto_18
:cond_14
add-int/lit8 v4, v4, 0x1
goto :goto_c
:cond_17
const/4 v5, 0x0
.line 1179
:goto_18
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 1181
:try_start_1d
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->SCALER_STREAM_CONFIGURATION_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1182
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/camera2/params/StreamConfigurationMap;
.line 1183
invoke-virtual {v0}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputFormats()[I
move-result-object v2
.line 1184
array-length v4, v2
const/4 v6, 0x0
:goto_2b
if-ge v6, v4, :cond_87
aget v7, v2, v6
move/from16 v8, p1
if-eq v7, v8, :cond_34
goto :goto_7c
.line 1188
:cond_34
invoke-virtual {v0, v7}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputSizes(I)[Landroid/util/Size;
move-result-object v9
if-nez v9, :cond_3b
goto :goto_7c
.line 1191
:cond_3b
array-length v10, v9
const/4 v11, 0x0
:goto_3d
if-ge v11, v10, :cond_7c
aget-object v12, v9, v11
.line 1192
invoke-virtual {v12}, Landroid/util/Size;->getWidth()I
move-result v13
invoke-virtual {v12}, Landroid/util/Size;->getHeight()I
move-result v14
invoke-static {v13, v14}, Lio/agora/rtc2/video/VideoCaptureCamera2;->shouldExcludeSize(II)Z
move-result v13
if-eqz v13, :cond_50
goto :goto_79
:cond_50
const/16 v13, 0x1e
if-eqz v5, :cond_5e
.line 1199
invoke-virtual {v0, v7, v12}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputMinFrameDuration(ILandroid/util/Size;)J
move-result-wide v14
const-wide/16 v16, 0x0
cmp-long v16, v14, v16
if-nez v16, :cond_60
:cond_5e
int-to-double v13, v13
goto :goto_68
:cond_60
const-wide v16, 0x41cdcd6500000000L # 1.0E9
long-to-double v13, v14
div-double v13, v16, v13
.line 1208
:goto_68
new-instance v15, Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1209
invoke-virtual {v12}, Landroid/util/Size;->getWidth()I
move-result v3
invoke-virtual {v12}, Landroid/util/Size;->getHeight()I
move-result v12
double-to-int v13, v13
invoke-direct {v15, v3, v12, v13, v7}, Lio/agora/rtc2/video/VideoCaptureFormat;-><init>(IIII)V
.line 1208
invoke-virtual {v1, v15}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_79
.catch Ljava/lang/Exception; {:try_start_1d .. :try_end_79} :catch_7f
:goto_79
add-int/lit8 v11, v11, 0x1
goto :goto_3d
:cond_7c
:goto_7c
add-int/lit8 v6, v6, 0x1
goto :goto_2b
:catch_7f
move-exception v0
.line 1213
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v3, "Unable to catch device supported video formats: "
invoke-static {v2, v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_87
return-object v1
.end method
.method private static getMaxZoom(Landroid/hardware/camera2/CameraCharacteristics;)F
.registers 3
const/high16 v0, -0x40800000 # -1.0f
if-nez p0, :cond_c
.line 2307
sget-object p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "warning cameraCharacteristics is null"
invoke-static {p0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v0
.line 2310
:cond_c
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->SCALER_AVAILABLE_MAX_DIGITAL_ZOOM:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 2311
invoke-virtual {p0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Float;
if-nez p0, :cond_1e
.line 2313
sget-object p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "warning get max zoom return null"
invoke-static {p0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v0
.line 2316
:cond_1e
invoke-virtual {p0}, Ljava/lang/Float;->floatValue()F
move-result p0
return p0
.end method
.method public static getName(I)Ljava/lang/String;
.registers 4
.line 1135
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-nez v0, :cond_8
const/4 p0, 0x0
return-object p0
.line 1138
:cond_8
sget-object v1, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
.line 1139
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "camera2 "
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;
if-nez v0, :cond_2b
const-string p0, "front"
goto :goto_2d
:cond_2b
const-string p0, "back"
.line 1140
:goto_2d
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 public static getNumberOfCameras()I
.registers 2
.line 1070
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;
invoke-direct {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;-><init>()V
.line 1071
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;->getCameraIdList()[Ljava/lang/String;
move-result-object v1
if-nez v1, :cond_d
const/4 v0, 0x0
return v0
.line 1074
:cond_d
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2$CameraIdListTask;->getCameraIdList()[Ljava/lang/String;
move-result-object v0
array-length v0, v0
return v0
.end method
.method public static isLegacyDevice(I)Z
.registers 2
.line 1021
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object p0
if-eqz p0, :cond_17
.line 1022
sget-object v0, Landroid/hardware/camera2/CameraCharacteristics;->INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1023
invoke-virtual {p0, v0}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
move-result p0
const/4 v0, 0x2
if-ne p0, v0, :cond_17
const/4 p0, 0x1
goto :goto_18
:cond_17
const/4 p0, 0x0
:goto_18
return p0
.end method
.method private static isSupported(I[I)Z
.registers 6
const/4 v0, 0x0
if-nez p1, :cond_4
return v0
.line 2050
:cond_4
array-length v1, p1
move v2, v0
:goto_6
if-ge v2, v1, :cond_11
aget v3, p1, v2
if-ne v3, p0, :cond_e
const/4 p0, 0x1
return p0
:cond_e
add-int/lit8 v2, v2, 0x1
goto :goto_6
:cond_11
return v0
.end method
.method private isSupportedStability(I[I)Z
.registers 7
const/4 v0, 0x0
if-nez p2, :cond_4
return v0
.line 2067
:cond_4
array-length v1, p2
move v2, v0
:goto_6
if-ge v2, v1, :cond_11
aget v3, p2, v2
if-ne v3, p1, :cond_e
const/4 p1, 0x1
return p1
:cond_e
add-int/lit8 v2, v2, 0x1
goto :goto_6
:cond_11
return v0
.end method
.method private requestFaceDetection(Landroid/hardware/camera2/CaptureRequest$Builder;I)V
.registers 5
.line 959
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v0
if-nez p1, :cond_e
.line 961
:try_start_5
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string p2, "face detect requestBuilder error"
invoke-static {p1, p2}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 962
monitor-exit v0
return-void
.line 964
:cond_e
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectSupported:Z
if-nez v1, :cond_1b
.line 965
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string p2, "face detect not supported"
invoke-static {p1, p2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 966
monitor-exit v0
return-void
.line 968
:cond_1b
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-nez v1, :cond_28
.line 969
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string p2, "face detect not ready"
invoke-static {p1, p2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 970
monitor-exit v0
return-void
.line 972
:cond_28
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableAutoFaceFocus:Z
if-nez v1, :cond_30
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableFaceDetection:Z
if-eqz v1, :cond_58
:cond_30
if-eqz p2, :cond_43
.line 973
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
if-nez v1, :cond_43
const/4 v1, 0x1
.line 974
iput-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 975
sget-object v1, Landroid/hardware/camera2/CaptureRequest;->STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
invoke-virtual {p1, v1, p2}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_58
:cond_43
if-nez p2, :cond_58
const/4 p1, 0x0
.line 977
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 978
iget-object p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v1, Landroid/hardware/camera2/CaptureRequest;->STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 979
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
.line 978
invoke-virtual {p2, v1, p1}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 980
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {p1}, Ljava/util/concurrent/LinkedBlockingQueue;->clear()V
.line 983
:cond_58
:goto_58
monitor-exit v0
return-void
:catchall_5a
move-exception p1
monitor-exit v0
:try_end_5c
.catchall {:try_start_5 .. :try_end_5c} :catchall_5a
throw p1
.end method
.method private static shouldSkipSettingAeTargetFpsRange()Z
.registers 6
.line 987
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->AE_TARGET_FPS_RANGE_BUGGY_DEVICE_LIST:[Ljava/lang/String;
array-length v1, v0
const/4 v2, 0x0
move v3, v2
:goto_5
if-ge v3, v1, :cond_16
aget-object v4, v0, v3
.line 988
sget-object v5, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v5, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v4
if-eqz v4, :cond_13
const/4 v0, 0x1
return v0
:cond_13
add-int/lit8 v3, v3, 0x1
goto :goto_5
:cond_16
return v2
.end method
.method private toCamera2VideoStabilityMode(I)I
.registers 3
if-ltz p1, :cond_7
const/4 v0, 0x1
if-le p1, v0, :cond_6
goto :goto_7
:cond_6
return p1
:cond_7
:goto_7
const/4 p1, 0x0
return p1
.end method
# virtual methods
.method public allocate(Lio/agora/rtc2/video/VideoCaptureFormat;)Z
.registers 13
.line 1268
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v2, "allocate: requested (%d x %d) @%dfps"
const/4 v3, 0x3
new-array v4, v3, [Ljava/lang/Object;
.line 1269
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 1270
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
.line 1269
invoke-static {v1, v2, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
.line 1268
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1271
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraStateLock:Ljava/lang/Object;
monitor-enter v1
.line 1272
:try_start_34
iget v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraState:I
if-eqz v2, :cond_1dd
if-ne v2, v7, :cond_3c
goto/16 :goto_1dd
.line 1276
:cond_3c
monitor-exit v1
:try_end_3d
.catchall {:try_start_34 .. :try_end_3d} :catchall_1e4
.line 1277
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v1
if-nez v1, :cond_4b
const-string p1, "failed to getCameraCharacteristics."
.line 1279
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v6
.line 1284
:cond_4b
sget v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->IMAGE_FORMAT:I
.line 1285
invoke-static {v1, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getFormatsFromParemeters(Landroid/hardware/camera2/CameraCharacteristics;I)Ljava/util/List;
move-result-object v2
.line 1286
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "format list: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v2}, Ljava/util/List;->toArray()[Ljava/lang/Object;
move-result-object v5
invoke-static {v5}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v0, v4}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1287
invoke-static {v2, p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->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/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1288
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
if-nez p1, :cond_7d
const-string p1, "failed to match capability"
.line 1289
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v6
.line 1293
:cond_7d
sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1294
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p1
check-cast p1, [Ljava/lang/Object;
.line 1293
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
.line 1295
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "fpsRanges: "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {p1}, Ljava/util/List;->toArray()[Ljava/lang/Object;
move-result-object v4
invoke-static {v4}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1296
invoke-interface {p1}, Ljava/util/List;->isEmpty()Z
move-result v2
if-eqz v2, :cond_b1
const-string p1, "No supported framerate ranges."
.line 1297
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v6
.line 1300
:cond_b1
new-instance v0, Ljava/util/ArrayList;
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v2
invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(I)V
.line 1304
invoke-interface {p1, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/util/Range;
invoke-virtual {v2}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v2
check-cast v2, Ljava/lang/Integer;
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
const/16 v4, 0x3e8
if-le v2, v4, :cond_d0
move v2, v7
goto :goto_d1
:cond_d0
move v2, v4
.line 1305
:goto_d1
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_d5
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_100
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroid/util/Range;
.line 1306
new-instance v9, Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.line 1307
invoke-virtual {v5}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v10
check-cast v10, Ljava/lang/Integer;
invoke-virtual {v10}, Ljava/lang/Integer;->intValue()I
move-result v10
mul-int/2addr v10, v2
invoke-virtual {v5}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v5
check-cast v5, Ljava/lang/Integer;
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
mul-int/2addr v5, v2
invoke-direct {v9, v10, v5}, Lio/agora/rtc2/video/VideoCapture$FramerateRange;-><init>(II)V
.line 1306
invoke-interface {v0, v9}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_d5
.line 1309
:cond_100
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1310
invoke-virtual {p1}, Lio/agora/rtc2/video/VideoCaptureFormat;->getFramerate()I
move-result p1
mul-int/2addr p1, v4
iget-boolean v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPQFirst:Z
invoke-static {v0, p1, v4}, Lio/agora/rtc2/video/VideoCaptureCamera2;->findBestFrameRateRange(Ljava/util/List;IZ)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
move-result-object p1
if-nez p1, :cond_117
.line 1312
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v0, "No matched framerate ranges."
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v6
.line 1316
:cond_117
new-instance v0, Landroid/util/Range;
iget v4, p1, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->min:I
div-int/2addr v4, v2
.line 1317
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
iget p1, p1, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->max:I
div-int/2addr p1, v2
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-direct {v0, v4, p1}, Landroid/util/Range;-><init>(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
iput-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAeFpsRange:Landroid/util/Range;
.line 1318
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v2, "allocate: matched (%d x %d) @[%d - %d]"
const/4 v4, 0x4
new-array v4, v4, [Ljava/lang/Object;
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v5, v5, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
.line 1319
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v6
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v5, v5, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
.line 1320
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v7
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAeFpsRange:Landroid/util/Range;
invoke-virtual {v5}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v5
aput-object v5, v4, v8
iget-object v5, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAeFpsRange:Landroid/util/Range;
invoke-virtual {v5}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v5
aput-object v5, v4, v3
.line 1319
invoke-static {v0, v2, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 1318
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1322
sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->SENSOR_ORIENTATION:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraNativeOrientation:I
.line 1325
sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
if-ne p1, v7, :cond_17e
move p1, v7
goto :goto_17f
:cond_17e
move p1, v6
:goto_17f
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mInvertDeviceOrientationReadings:Z
.line 1328
sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object p1
check-cast p1, [I
.line 1330
sget-object v0, Landroid/hardware/camera2/CameraCharacteristics;->STATISTICS_INFO_MAX_FACE_COUNT:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1331
invoke-virtual {v1, v0}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
if-eqz p1, :cond_1b2
.line 1333
array-length v1, p1
if-le v1, v7, :cond_1b2
if-eqz v0, :cond_1b2
.line 1334
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v1
if-lez v1, :cond_1b2
.line 1335
iput-boolean v7, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectSupported:Z
.line 1337
array-length v1, p1
move v2, v6
:goto_1a2
if-ge v6, v1, :cond_1aa
aget v3, p1, v6
add-int/2addr v2, v3
add-int/lit8 v6, v6, 0x1
goto :goto_1a2
.line 1341
:cond_1aa
rem-int/2addr v2, v8
if-eqz v2, :cond_1b0
.line 1342
iput v7, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
goto :goto_1b2
.line 1344
:cond_1b0
iput v8, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
.line 1348
:cond_1b2
:goto_1b2
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "allocate() face detection: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v0, " "
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectSupported:Z
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v7
:cond_1dd
:goto_1dd
:try_start_1dd
const-string p1, "allocate() invoked while Camera is busy opening/configuring."
.line 1273
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 1274
monitor-exit v1
return v6
:catchall_1e4
move-exception p1
.line 1276
monitor-exit v1
:try_end_1e6
.catchall {:try_start_1dd .. :try_end_1e6} :catchall_1e4
throw p1
.end method
.method clampFace(Landroid/graphics/Rect;)Landroid/graphics/Rect;
.registers 8
.line 178
new-instance v0, Landroid/graphics/Rect;
iget v1, p1, Landroid/graphics/Rect;->left:I
iget v2, p1, Landroid/graphics/Rect;->right:I
const/4 v3, 0x0
invoke-static {v1, v3, v2}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(III)I
move-result v1
iget v2, p1, Landroid/graphics/Rect;->top:I
iget v4, p1, Landroid/graphics/Rect;->bottom:I
invoke-static {v2, v3, v4}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(III)I
move-result v2
iget v4, p1, Landroid/graphics/Rect;->right:I
iget v5, p1, Landroid/graphics/Rect;->right:I
.line 179
invoke-static {v4, v3, v5}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(III)I
move-result v4
iget v5, p1, Landroid/graphics/Rect;->bottom:I
iget p1, p1, Landroid/graphics/Rect;->bottom:I
invoke-static {v5, v3, p1}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(III)I
move-result p1
invoke-direct {v0, v1, v2, v4, p1}, Landroid/graphics/Rect;-><init>(IIII)V
return-object v0
.end method
.method public deallocate()V
.registers 3
.line 1490
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->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
return-void
.end method
.method public finalize()V
.registers 2
.line 1255
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
if-eqz v0, :cond_e
.line 1256
invoke-virtual {v0}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Looper;->quitSafely()V
const/4 v0, 0x0
.line 1257
iput-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
:cond_e
return-void
.end method
.method getCameraThreadHandler()Landroid/os/Handler;
.registers 2
.line 1242
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
return-object v0
.end method
.method public getMaxZoom()F
.registers 3
.line 1583
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
const/high16 v1, 0x3f800000 # 1.0f
cmpg-float v0, v0, v1
if-gtz v0, :cond_16
.line 1584
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-eqz v0, :cond_16
.line 1586
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getMaxZoom(Landroid/hardware/camera2/CameraCharacteristics;)F
move-result v0
iput v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
.line 1589
:cond_16
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
return v0
.end method
.method public isAutoFaceFocusSupported()Z
.registers 4
.line 1726
invoke-virtual {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->isFocusSupported()Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_8
return v1
.line 1729
:cond_8
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-nez v0, :cond_18
.line 1731
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v2, "warning cameraCharacteristics is null"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 1735
:cond_18
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->STATISTICS_INFO_MAX_FACE_COUNT:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1736
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
if-eqz v0, :cond_29
.line 1737
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
if-lez v0, :cond_29
const/4 v1, 0x1
:cond_29
return v1
.end method
.method public isCameraExposureSupported()Z
.registers 7
.line 2181
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
const/4 v1, 0x0
if-nez v0, :cond_11
.line 2183
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v2, "warning cameraCharacteristics is null"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 2186
:cond_11
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_COMPENSATION_STEP:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/util/Rational;
.line 2187
sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_COMPENSATION_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/Range;
if-eqz v0, :cond_5d
if-nez v2, :cond_26
goto :goto_5d
.line 2191
:cond_26
invoke-virtual {v0}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v2
check-cast v2, Ljava/lang/Integer;
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
.line 2192
invoke-virtual {v0}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
.line 2193
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->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, v0}, 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, v2}, 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 v0, :cond_5d
if-lez v2, :cond_5d
const/4 v1, 0x1
:cond_5d
:goto_5d
return v1
.end method
.method public isExposureSupported()Z
.registers 7
.line 2160
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
const/4 v1, 0x0
if-nez v0, :cond_11
.line 2162
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v2, "warning cameraCharacteristics is null"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 2166
:cond_11
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 2167
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
if-eqz v0, :cond_3e
move v2, v1
.line 2169
:goto_1c
array-length v3, v0
if-ge v2, v3, :cond_3e
.line 2170
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "isExposureSupported AE mode = "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
aget v5, v0, v2
invoke-virtual {v4, v5}, 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
const/4 v3, 0x1
if-ne v3, v2, :cond_3b
return v3
:cond_3b
add-int/lit8 v2, v2, 0x1
goto :goto_1c
:cond_3e
return v1
.end method
.method public isFaceDetectSupported()Z
.registers 6
.line 2076
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
const/4 v1, 0x0
if-nez v0, :cond_11
.line 2078
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v2, "warning cameraCharacteristics is null"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 2082
:cond_11
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->STATISTICS_INFO_MAX_FACE_COUNT:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 2083
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
if-nez v0, :cond_1d
move v0, v1
goto :goto_21
.line 2088
:cond_1d
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
.line 2090
:goto_21
sget-object v2, Lio/agora/rtc2/video/VideoCaptureCamera2;->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 {v3, v0}, 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
if-lez v0, :cond_3a
const/4 v1, 0x1
:cond_3a
return v1
.end method
.method public isFocusSupported()Z
.registers 5
.line 1594
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
const/4 v1, 0x0
if-nez v0, :cond_11
.line 1596
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v2, "warning cameraCharacteristics is null"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 1600
:cond_11
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AF_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
.line 1601
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
if-eqz v0, :cond_26
move v2, v1
.line 1603
:goto_1c
array-length v3, v0
if-ge v2, v3, :cond_26
const/4 v3, 0x1
if-ne v3, v2, :cond_23
return v3
:cond_23
add-int/lit8 v2, v2, 0x1
goto :goto_1c
:cond_26
return v1
.end method
.method public isTorchSupported()Z
.registers 4
.line 2096
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
const/4 v1, 0x0
if-nez v0, :cond_11
.line 2098
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v2, "warning cameraCharacteristics is null"
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 2101
:cond_11
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->FLASH_INFO_AVAILABLE:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
if-nez v0, :cond_1c
goto :goto_20
.line 2102
:cond_1c
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
:goto_20
return v1
.end method
.method public isZoomSupported()Z
.registers 4
.line 1495
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
const/high16 v1, 0x3f800000 # 1.0f
cmpl-float v0, v0, v1
const/4 v2, 0x1
if-lez v0, :cond_a
return v2
.line 1498
:cond_a
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-eqz v0, :cond_18
.line 1500
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getMaxZoom(Landroid/hardware/camera2/CameraCharacteristics;)F
move-result v0
iput v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
.line 1502
:cond_18
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
cmpl-float v0, v0, v1
if-lez v0, :cond_1f
goto :goto_20
:cond_1f
const/4 v2, 0x0
:goto_20
return v2
.end method
.method public needFallback()Z
.registers 2
const/4 v0, 0x1
return v0
.end method
.method public setAntiBandingMode(I)I
.registers 8
.line 1919
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
const/4 v1, -0x1
if-nez v0, :cond_d
.line 1920
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v0, "setAntiBandingMode mPreviewRequestBuilder return."
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 1923
:cond_d
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-nez v0, :cond_16
return v1
:cond_16
const/4 v2, 0x3
if-ltz p1, :cond_1b
if-le p1, v2, :cond_1c
:cond_1b
move p1, v2
.line 1930
:cond_1c
sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_ANTIBANDING_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
if-eqz v0, :cond_8e
.line 1931
array-length v2, v0
if-lez v2, :cond_8e
.line 1932
array-length v2, v0
const/4 v3, 0x0
move v4, v3
:goto_2c
if-ge v4, v2, :cond_8e
aget v5, v0, v4
if-ne v5, p1, :cond_8b
.line 1934
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v0, :cond_74
.line 1935
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v2, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_ANTIBANDING_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v0, v2, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1937
:try_start_41
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setEdgeEnhanceMode = "
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;
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 1938
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 1939
invoke-virtual {v2}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v2
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
const/4 v5, 0x0
.line 1938
invoke-virtual {v0, v2, v4, v5}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_65
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_41 .. :try_end_65} :catch_70
.catch Ljava/lang/IllegalStateException; {:try_start_41 .. :try_end_65} :catch_6b
.catch Ljava/lang/IllegalArgumentException; {:try_start_41 .. :try_end_65} :catch_66
return v3
:catch_66
move-exception v0
.line 1946
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_74
:catch_6b
move-exception v0
.line 1944
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_74
:catch_70
move-exception v0
.line 1942
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
.line 1949
:cond_74
:goto_74
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "AgoraVideo set anti-banding = "
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 p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v1
:cond_8b
add-int/lit8 v4, v4, 0x1
goto :goto_2c
.line 1954
:cond_8e
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not supported anti-banding = "
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 p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v1
.end method
.method public setAutoFaceFocus(Z)I
.registers 6
.line 1742
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v0
.line 1743
:try_start_3
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableAutoFaceFocus:Z
const/4 v2, 0x0
if-ne v1, p1, :cond_11
.line 1744
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect no change"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1745
monitor-exit v0
return v2
.line 1747
:cond_11
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableAutoFaceFocus:Z
.line 1749
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectSupported:Z
if-nez p1, :cond_20
.line 1750
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect not supported"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1751
monitor-exit v0
return v2
.line 1754
:cond_20
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz p1, :cond_87
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
if-eqz p1, :cond_87
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-nez p1, :cond_2d
goto :goto_87
.line 1759
:cond_2d
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableAutoFaceFocus:Z
if-eqz p1, :cond_46
.line 1760
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
if-nez p1, :cond_65
const/4 p1, 0x1
.line 1761
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 1762
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v1, Landroid/hardware/camera2/CaptureRequest;->STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
iget v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {p1, v1, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_65
.line 1765
:cond_46
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableFaceDetection:Z
if-eqz p1, :cond_53
.line 1766
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect did not turn off due to faceDistance on"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1767
monitor-exit v0
return v2
.line 1769
:cond_53
iput-boolean v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 1770
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v1, Landroid/hardware/camera2/CaptureRequest;->STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 1771
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
.line 1770
invoke-virtual {p1, v1, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1772
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {p1}, Ljava/util/concurrent/LinkedBlockingQueue;->clear()V
.line 1774
:cond_65
:goto_65
monitor-exit v0
:try_end_66
.catchall {:try_start_3 .. :try_end_66} :catchall_90
.line 1776
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz p1, :cond_86
.line 1778
:try_start_6a
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 1779
invoke-virtual {v0}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v0
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1778
invoke-virtual {p1, v0, v1, v3}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_77
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_6a .. :try_end_77} :catch_82
.catch Ljava/lang/IllegalStateException; {:try_start_6a .. :try_end_77} :catch_7d
.catch Ljava/lang/IllegalArgumentException; {:try_start_6a .. :try_end_77} :catch_78
return v2
:catch_78
move-exception p1
.line 1786
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_86
:catch_7d
move-exception p1
.line 1784
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_86
:catch_82
move-exception p1
.line 1782
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
:cond_86
:goto_86
return v2
.line 1755
:cond_87
:goto_87
:try_start_87
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect not ready"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1756
monitor-exit v0
return v2
:catchall_90
move-exception p1
.line 1774
monitor-exit v0
:try_end_92
.catchall {:try_start_87 .. :try_end_92} :catchall_90
throw p1
.end method
.method public setCameraThreadHandler()V
.registers 4
.line 1247
new-instance v0, Landroid/os/HandlerThread;
const-string v1, "VideoCaptureCamera2_CameraThread"
invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
.line 1248
invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V
.line 1249
new-instance v1, Landroid/os/Handler;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v2
invoke-direct {v1, v2}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1250
new-instance v1, Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-direct {v1, v0}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;-><init>(Ljava/lang/Thread;)V
iput-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
return-void
.end method
.method public setEdgeEnhanceMode(I)I
.registers 8
.line 1883
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
const/4 v1, -0x1
if-nez v0, :cond_d
.line 1884
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v0, "setEdgeEnhanceMode mPreviewRequestBuilder return."
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 1887
:cond_d
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-nez v0, :cond_16
return v1
:cond_16
const/4 v2, 0x0
if-ltz p1, :cond_1c
const/4 v3, 0x3
if-le p1, v3, :cond_1d
:cond_1c
move p1, v2
.line 1894
:cond_1d
sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->EDGE_AVAILABLE_EDGE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
.line 1895
invoke-static {p1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->isSupported(I[I)Z
move-result v0
if-eqz v0, :cond_6d
.line 1896
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v0, :cond_6d
.line 1897
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->EDGE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v0, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1899
:try_start_3a
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setEdgeEnhanceMode = "
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;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1900
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 1901
invoke-virtual {v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v3
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
const/4 v5, 0x0
.line 1900
invoke-virtual {v0, v3, v4, v5}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_5e
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_3a .. :try_end_5e} :catch_69
.catch Ljava/lang/IllegalStateException; {:try_start_3a .. :try_end_5e} :catch_64
.catch Ljava/lang/IllegalArgumentException; {:try_start_3a .. :try_end_5e} :catch_5f
return v2
:catch_5f
move-exception v0
.line 1908
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_6d
:catch_64
move-exception v0
.line 1906
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_6d
:catch_69
move-exception v0
.line 1904
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
.line 1912
:cond_6d
:goto_6d
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not supported EdgeEnhance Mode = "
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 p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v1
.end method
.method public setExposure(FF)I
.registers 28
move-object/from16 v1, p0
move/from16 v0, p1
move/from16 v2, p2
.line 2199
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v3
.line 2200
:try_start_9
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
const/4 v5, 0x0
const/4 v6, 0x1
if-eqz v4, :cond_227
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-eqz v4, :cond_227
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v4}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v4
if-eqz v4, :cond_227
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 2201
invoke-virtual {v4}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v4
if-nez v4, :cond_25
goto/16 :goto_227
.line 2206
:cond_25
iget-boolean v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraExposureStarted:Z
if-eqz v4, :cond_4c
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aget v4, v4, v5
sub-float/2addr v4, v0
.line 2207
invoke-static {v4}, Ljava/lang/Math;->abs(F)F
move-result v4
float-to-double v7, v4
const-wide v9, 0x3fb999999999999aL # 0.1
cmpg-double v4, v7, v9
if-gez v4, :cond_4c
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aget v4, v4, v6
sub-float/2addr v4, v2
.line 2208
invoke-static {v4}, Ljava/lang/Math;->abs(F)F
move-result v4
float-to-double v7, v4
cmpg-double v4, v7, v9
if-gez v4, :cond_4c
.line 2209
monitor-exit v3
return v5
.line 2211
:cond_4c
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aput v0, v4, v5
.line 2212
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aput v2, v4, v6
.line 2213
monitor-exit v3
:try_end_55
.catchall {:try_start_9 .. :try_end_55} :catchall_232
.line 2214
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "setExposure called camera api2 "
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v7, "x"
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(F)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
const/4 v4, 0x0
cmpg-float v7, v0, v4
const/4 v8, -0x1
if-ltz v7, :cond_221
.line 2216
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->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_221
cmpg-float v7, v2, v4
if-ltz v7, :cond_221
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 2217
invoke-virtual {v7}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v7
int-to-float v7, v7
cmpl-float v7, v2, v7
if-lez v7, :cond_95
goto/16 :goto_221
.line 2222
:cond_95
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v9, Landroid/hardware/camera2/CaptureRequest;->SCALER_CROP_REGION:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v7, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroid/graphics/Rect;
if-nez v7, :cond_a2
return v8
.line 2227
:cond_a2
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9, v0, v2, v0, v2}, Landroid/graphics/RectF;-><init>(FFFF)V
iget-object v10, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 2229
invoke-virtual {v10}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v10
iget-object v11, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v11}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v11
iget-object v12, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v12, v12, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v13, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v13, v13, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
iget v14, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v14, v6, :cond_c1
move v14, v6
goto :goto_c2
:cond_c1
move v14, v5
.line 2231
:goto_c2
iget v15, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v15, v6, :cond_c8
move v15, v6
goto :goto_c9
:cond_c8
move v15, v8
:goto_c9
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraRotation()I
move-result v16
mul-int v15, v15, v16
iget v5, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderMode:I
move/from16 v16, v5
.line 2227
invoke-static/range {v9 .. v16}, Lio/agora/rtc2/video/CoordinatesTransform;->viewToNormalized(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v5
if-nez v5, :cond_fb
.line 2234
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "setExposure coordinate "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v0, " - "
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v0, " out of image bounds!!"
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 2239
:cond_fb
iget v0, v5, Landroid/graphics/RectF;->left:F
.line 2240
iget v2, v5, Landroid/graphics/RectF;->top:F
.line 2242
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9}, Landroid/graphics/RectF;-><init>()V
const v5, 0x3d4ccccd # 0.05f
sub-float v10, v0, v5
const/high16 v11, 0x3f800000 # 1.0f
.line 2243
invoke-static {v10, v4, v11}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v10
iput v10, v9, Landroid/graphics/RectF;->left:F
add-float/2addr v0, v5
.line 2244
invoke-static {v0, v4, v11}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/RectF;->right:F
sub-float v0, v2, v5
.line 2245
invoke-static {v0, v4, v11}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/RectF;->top:F
add-float/2addr v2, v5
.line 2246
invoke-static {v2, v4, v11}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/RectF;->bottom:F
.line 2247
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v10, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v11, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
.line 2248
invoke-virtual {v7}, Landroid/graphics/Rect;->width()I
move-result v12
invoke-virtual {v7}, Landroid/graphics/Rect;->height()I
move-result v13
.line 2249
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v0, v6, :cond_13d
move v0, v6
goto :goto_13e
:cond_13d
move v0, v8
:goto_13e
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraRotation()I
move-result v2
mul-int v14, v0, v2
const/4 v15, 0x1
.line 2247
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_151
const-string v0, "Failed to translate input coordinate"
.line 2251
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 2255
:cond_151
new-instance v2, Landroid/graphics/Rect;
invoke-direct {v2}, Landroid/graphics/Rect;-><init>()V
.line 2256
invoke-virtual {v0}, Landroid/graphics/RectF;->width()F
move-result v5
cmpl-float v5, v5, v4
if-eqz v5, :cond_16c
invoke-virtual {v0}, Landroid/graphics/RectF;->height()F
move-result v5
cmpl-float v4, v5, v4
if-nez v4, :cond_167
goto :goto_16c
.line 2259
:cond_167
invoke-virtual {v0, v2}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
const/4 v0, 0x0
goto :goto_172
.line 2257
:cond_16c
:goto_16c
new-instance v2, Landroid/graphics/Rect;
const/4 v0, 0x0
invoke-direct {v2, v0, v0, v0, v0}, Landroid/graphics/Rect;-><init>(IIII)V
.line 2263
:goto_172
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v5, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;
new-array v9, v6, [Landroid/hardware/camera2/params/MeteringRectangle;
new-instance v10, Landroid/hardware/camera2/params/MeteringRectangle;
const/16 v11, 0x3e8
invoke-direct {v10, v2, v11}, Landroid/hardware/camera2/params/MeteringRectangle;-><init>(Landroid/graphics/Rect;I)V
aput-object v10, v9, v0
invoke-virtual {v4, v5, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 2266
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_PRECAPTURE_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;
.line 2267
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
.line 2266
invoke-virtual {v0, v4, v5}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 2269
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v0, :cond_1b6
.line 2271
:try_start_193
iput-boolean v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraExposureStarted:Z
.line 2272
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
invoke-virtual {v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v4
const/4 v5, 0x0
invoke-virtual {v0, v4, v5, v5}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_1a1
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_193 .. :try_end_1a1} :catch_1b1
.catch Ljava/lang/IllegalStateException; {:try_start_193 .. :try_end_1a1} :catch_1ac
.catch Ljava/lang/IllegalArgumentException; {:try_start_193 .. :try_end_1a1} :catch_1a7
.catch Ljava/lang/NoClassDefFoundError; {:try_start_193 .. :try_end_1a1} :catch_1a2
goto :goto_1b6
:catch_1a2
move-exception v0
.line 2283
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
:catch_1a7
move-exception v0
.line 2280
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
:catch_1ac
move-exception v0
.line 2277
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
:catch_1b1
move-exception v0
.line 2274
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
.line 2288
:cond_1b6
:goto_1b6
new-instance v9, Landroid/graphics/RectF;
iget v0, v2, Landroid/graphics/Rect;->left:I
int-to-float v0, v0
iget v4, v2, Landroid/graphics/Rect;->top:I
int-to-float v4, v4
iget v5, v2, Landroid/graphics/Rect;->right:I
int-to-float v5, v5
iget v10, v2, Landroid/graphics/Rect;->bottom:I
int-to-float v10, v10
invoke-direct {v9, v0, v4, v5, v10}, Landroid/graphics/RectF;-><init>(FFFF)V
.line 2289
invoke-virtual {v7}, Landroid/graphics/Rect;->width()I
move-result v10
invoke-virtual {v7}, Landroid/graphics/Rect;->height()I
move-result v11
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v12, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v13, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
const/4 v14, 0x1
.line 2288
invoke-static/range {v9 .. v14}, Lio/agora/rtc2/video/CoordinatesTransform;->sensorToNormalized(Landroid/graphics/RectF;IIIIZ)Landroid/graphics/RectF;
move-result-object v17
.line 2291
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v18
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v19
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 2292
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v20
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v21
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v0, v6, :cond_1fb
move/from16 v22, v6
goto :goto_1fd
:cond_1fb
const/16 v22, 0x0
.line 2294
:goto_1fd
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v0, v6, :cond_202
goto :goto_203
:cond_202
move v6, v8
:goto_203
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraRotation()I
move-result v0
mul-int v23, v6, v0
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderMode:I
move/from16 v24, v0
.line 2291
invoke-static/range {v17 .. v24}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToView(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v0
if-nez v0, :cond_219
const-string v0, "Failed to translate coordinate from normalized to view!!"
.line 2296
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 2299
:cond_219
invoke-virtual {v0, v2}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 2301
invoke-virtual {v1, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->notifyCameraExposureAreaChanged(Landroid/graphics/Rect;)V
const/4 v0, 0x0
return v0
:cond_221
:goto_221
const-string v0, "set exposure unreasonable inputs"
.line 2218
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 2202
:cond_227
:goto_227
:try_start_227
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
const/4 v5, 0x0
aput v0, v4, v5
.line 2203
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposurePositions:[F
aput v2, v0, v6
.line 2204
monitor-exit v3
return v5
:catchall_232
move-exception v0
.line 2213
monitor-exit v3
:try_end_234
.catchall {:try_start_227 .. :try_end_234} :catchall_232
throw v0
.end method
.method public setExposureCompensation(I)I
.registers 10
.line 1996
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v0
.line 1997
:try_start_3
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
const/4 v2, 0x0
if-eqz v1, :cond_c6
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-nez v1, :cond_e
goto/16 :goto_c6
.line 2001
:cond_e
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsExposureCompensationStarted:Z
if-eqz v1, :cond_18
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposureCompensation:I
if-ne v1, p1, :cond_18
.line 2002
monitor-exit v0
return v2
.line 2004
:cond_18
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposureCompensation:I
.line 2005
monitor-exit v0
:try_end_1b
.catchall {:try_start_3 .. :try_end_1b} :catchall_ca
.line 2006
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setExposureCompensation:"
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 v1
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 2008
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v1
const/4 v3, -0x1
if-nez v1, :cond_3b
return v3
.line 2012
:cond_3b
sget-object v4, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_COMPENSATION_STEP:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v1, v4}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/util/Rational;
.line 2013
sget-object v5, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_COMPENSATION_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v1, v5}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/util/Range;
if-eqz v1, :cond_c5
if-nez v4, :cond_51
goto/16 :goto_c5
.line 2017
:cond_51
invoke-virtual {v1}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;
move-result-object v5
check-cast v5, Ljava/lang/Integer;
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
.line 2018
invoke-virtual {v1}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.line 2019
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "compensation step="
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v4, ", min="
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, ", max="
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v0, v4}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
if-le p1, v5, :cond_8c
move p1, v5
:cond_8c
if-ge p1, v1, :cond_8f
goto :goto_90
:cond_8f
move v1, p1
.line 2026
:goto_90
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz p1, :cond_c5
const/4 p1, 0x1
.line 2028
:try_start_95
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsExposureCompensationStarted:Z
.line 2029
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_EXPOSURE_COMPENSATION:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {p1, v0, v1}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 2032
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
invoke-virtual {v0}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v0
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
invoke-virtual {p1, v0, v1, v4}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_b1
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_95 .. :try_end_b1} :catch_c1
.catch Ljava/lang/IllegalStateException; {:try_start_95 .. :try_end_b1} :catch_bc
.catch Ljava/lang/IllegalArgumentException; {:try_start_95 .. :try_end_b1} :catch_b7
.catch Ljava/lang/NoClassDefFoundError; {:try_start_95 .. :try_end_b1} :catch_b2
return v2
:catch_b2
move-exception p1
.line 2041
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_c5
:catch_b7
move-exception p1
.line 2039
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_c5
:catch_bc
move-exception p1
.line 2037
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_c5
:catch_c1
move-exception p1
.line 2035
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
:cond_c5
:goto_c5
return v3
.line 1998
:cond_c6
:goto_c6
:try_start_c6
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraExposureCompensation:I
.line 1999
monitor-exit v0
return v2
:catchall_ca
move-exception p1
.line 2005
monitor-exit v0
:try_end_cc
.catchall {:try_start_c6 .. :try_end_cc} :catchall_ca
throw p1
.end method
.method public setFaceDetection(Z)I
.registers 6
.line 1794
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v0
.line 1795
:try_start_3
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableFaceDetection:Z
const/4 v2, 0x0
if-ne v1, p1, :cond_11
.line 1796
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect no change"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1797
monitor-exit v0
return v2
.line 1799
:cond_11
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableFaceDetection:Z
.line 1801
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectSupported:Z
if-nez p1, :cond_20
.line 1802
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect not supported"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1803
monitor-exit v0
return v2
.line 1806
:cond_20
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz p1, :cond_92
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
if-eqz p1, :cond_92
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-nez p1, :cond_2d
goto :goto_92
.line 1810
:cond_2d
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableFaceDetection:Z
if-eqz p1, :cond_46
.line 1811
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
if-nez p1, :cond_65
const/4 p1, 0x1
.line 1812
iput-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 1813
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v1, Landroid/hardware/camera2/CaptureRequest;->STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
iget v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mFaceDetectMode:I
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {p1, v1, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_65
.line 1816
:cond_46
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mEnableAutoFaceFocus:Z
if-eqz p1, :cond_53
.line 1817
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect did not turn off due to autoFocus on"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1818
monitor-exit v0
return v2
.line 1820
:cond_53
iput-boolean v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 1821
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v1, Landroid/hardware/camera2/CaptureRequest;->STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
.line 1822
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
.line 1821
invoke-virtual {p1, v1, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1823
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {p1}, Ljava/util/concurrent/LinkedBlockingQueue;->clear()V
.line 1825
:cond_65
:goto_65
monitor-exit v0
:try_end_66
.catchall {:try_start_3 .. :try_end_66} :catchall_9b
.line 1827
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
if-eqz p1, :cond_91
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-eqz p1, :cond_91
.line 1828
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v0, :cond_91
.line 1831
:try_start_72
invoke-virtual {p1}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object p1
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1830
invoke-virtual {v0, p1, v1, v3}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_7d
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_72 .. :try_end_7d} :catch_8d
.catch Ljava/lang/IllegalStateException; {:try_start_72 .. :try_end_7d} :catch_88
.catch Ljava/lang/IllegalArgumentException; {:try_start_72 .. :try_end_7d} :catch_83
.catch Ljava/lang/NoClassDefFoundError; {:try_start_72 .. :try_end_7d} :catch_7e
goto :goto_91
:catch_7e
move-exception p1
.line 1839
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_91
:catch_83
move-exception p1
.line 1837
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_91
:catch_88
move-exception p1
.line 1835
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_91
:catch_8d
move-exception p1
.line 1833
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
:cond_91
:goto_91
return v2
.line 1807
:cond_92
:goto_92
:try_start_92
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v1, "face detect not ready"
invoke-static {p1, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 1808
monitor-exit v0
return v2
:catchall_9b
move-exception p1
.line 1825
monitor-exit v0
:try_end_9d
.catchall {:try_start_92 .. :try_end_9d} :catchall_9b
throw p1
.end method
.method public setFocus(FF)I
.registers 28
move-object/from16 v1, p0
move/from16 v0, p1
move/from16 v2, p2
.line 1614
iget-object v3, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v3
.line 1615
:try_start_9
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
const/4 v5, 0x0
const/4 v6, 0x1
if-eqz v4, :cond_241
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-eqz v4, :cond_241
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v4}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v4
if-eqz v4, :cond_241
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 1616
invoke-virtual {v4}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v4
if-nez v4, :cond_25
goto/16 :goto_241
.line 1621
:cond_25
iget-boolean v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraFocusStarted:Z
if-eqz v4, :cond_4c
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aget v4, v4, v5
sub-float/2addr v4, v0
invoke-static {v4}, Ljava/lang/Math;->abs(F)F
move-result v4
float-to-double v7, v4
const-wide v9, 0x3fb999999999999aL # 0.1
cmpg-double v4, v7, v9
if-gez v4, :cond_4c
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aget v4, v4, v6
sub-float/2addr v4, v2
.line 1622
invoke-static {v4}, Ljava/lang/Math;->abs(F)F
move-result v4
float-to-double v7, v4
cmpg-double v4, v7, v9
if-gez v4, :cond_4c
.line 1623
monitor-exit v3
return v5
.line 1625
:cond_4c
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aput v0, v4, v5
.line 1626
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aput v2, v4, v6
.line 1627
monitor-exit v3
:try_end_55
.catchall {:try_start_9 .. :try_end_55} :catchall_24b
.line 1628
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "setFocus "
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v7, " - "
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(F)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
const/4 v4, 0x0
cmpg-float v7, v0, v4
const/4 v8, -0x1
if-ltz v7, :cond_23b
.line 1630
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->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_23b
cmpg-float v7, v2, v4
if-ltz v7, :cond_23b
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 1631
invoke-virtual {v7}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v7
int-to-float v7, v7
cmpl-float v7, v2, v7
if-lez v7, :cond_95
goto/16 :goto_23b
.line 1636
:cond_95
iget-object v7, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v9, Landroid/hardware/camera2/CaptureRequest;->SCALER_CROP_REGION:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v7, v9}, Landroid/hardware/camera2/CaptureRequest$Builder;->get(Landroid/hardware/camera2/CaptureRequest$Key;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroid/graphics/Rect;
if-nez v7, :cond_a2
return v8
.line 1640
:cond_a2
invoke-virtual {v7}, Landroid/graphics/Rect;->width()I
move-result v16
.line 1641
invoke-virtual {v7}, Landroid/graphics/Rect;->height()I
move-result v7
.line 1643
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9, v0, v2, v0, v2}, Landroid/graphics/RectF;-><init>(FFFF)V
iget-object v10, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v10}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v18
iget-object v10, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 1644
invoke-virtual {v10}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v19
iget-object v10, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v10, v10, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v11, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v11, v11, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
iget v12, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v12, v6, :cond_ca
move/from16 v22, v6
goto :goto_cc
:cond_ca
move/from16 v22, v5
.line 1646
:goto_cc
iget v12, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v12, v6, :cond_d2
move v12, v6
goto :goto_d3
:cond_d2
move v12, v8
:goto_d3
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraRotation()I
move-result v13
mul-int v23, v12, v13
iget v12, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderMode:I
move-object/from16 v17, v9
move/from16 v20, v10
move/from16 v21, v11
move/from16 v24, v12
.line 1643
invoke-static/range {v17 .. v24}, Lio/agora/rtc2/video/CoordinatesTransform;->viewToNormalized(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v9
if-nez v9, :cond_10b
.line 1649
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "setFocus coordinate "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v0, " - "
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v0, " out of image bounds!!"
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1652
:cond_10b
iget v0, v9, Landroid/graphics/RectF;->left:F
.line 1653
iget v2, v9, Landroid/graphics/RectF;->top:F
.line 1655
new-instance v9, Landroid/graphics/RectF;
invoke-direct {v9}, Landroid/graphics/RectF;-><init>()V
const v10, 0x3d4ccccd # 0.05f
sub-float v11, v0, v10
const/high16 v12, 0x3f800000 # 1.0f
.line 1656
invoke-static {v11, v4, v12}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v11
iput v11, v9, Landroid/graphics/RectF;->left:F
add-float/2addr v0, v10
.line 1657
invoke-static {v0, v4, v12}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/RectF;->right:F
sub-float v0, v2, v10
.line 1658
invoke-static {v0, v4, v12}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/RectF;->top:F
add-float/2addr v2, v10
.line 1659
invoke-static {v2, v4, v12}, Lio/agora/rtc2/video/CoordinatesTransform;->clamp(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/RectF;->bottom:F
.line 1660
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v10, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v11, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
.line 1661
iget v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v0, v6, :cond_145
move v0, v6
goto :goto_146
:cond_145
move v0, v8
:goto_146
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraRotation()I
move-result v2
mul-int v14, v0, v2
const/4 v15, 0x1
move/from16 v12, v16
move v13, v7
.line 1660
invoke-static/range {v9 .. v15}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToSensor(Landroid/graphics/RectF;IIIIIZ)Landroid/graphics/RectF;
move-result-object v9
if-nez v9, :cond_15c
const-string v0, "Failed to translate input coordinate"
.line 1665
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1669
:cond_15c
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
.line 1670
invoke-virtual {v9}, Landroid/graphics/RectF;->width()F
move-result v2
cmpl-float v2, v2, v4
if-eqz v2, :cond_176
invoke-virtual {v9}, Landroid/graphics/RectF;->height()F
move-result v2
cmpl-float v2, v2, v4
if-nez v2, :cond_172
goto :goto_176
.line 1673
:cond_172
invoke-virtual {v9, v0}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
goto :goto_17b
.line 1671
:cond_176
:goto_176
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0, v5, v5, v5, v5}, Landroid/graphics/Rect;-><init>(IIII)V
.line 1676
:goto_17b
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;
new-array v10, v6, [Landroid/hardware/camera2/params/MeteringRectangle;
new-instance v11, Landroid/hardware/camera2/params/MeteringRectangle;
const/16 v12, 0x3e8
invoke-direct {v11, v0, v12}, Landroid/hardware/camera2/params/MeteringRectangle;-><init>(Landroid/graphics/Rect;I)V
aput-object v11, v10, v5
invoke-virtual {v2, v4, v10}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1679
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;
new-array v10, v6, [Landroid/hardware/camera2/params/MeteringRectangle;
new-instance v11, Landroid/hardware/camera2/params/MeteringRectangle;
invoke-direct {v11, v0, v12}, Landroid/hardware/camera2/params/MeteringRectangle;-><init>(Landroid/graphics/Rect;I)V
aput-object v11, v10, v5
invoke-virtual {v2, v4, v10}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1682
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
invoke-virtual {v2, v4, v10}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1683
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AF_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;
.line 1684
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
.line 1683
invoke-virtual {v2, v4, v10}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1685
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->CONTROL_AE_PRECAPTURE_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;
.line 1686
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
.line 1685
invoke-virtual {v2, v4, v10}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1688
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
if-eqz v2, :cond_23a
.line 1689
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v2, :cond_1e7
.line 1691
:try_start_1c6
iput-boolean v6, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraFocusStarted:Z
.line 1692
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 1693
invoke-virtual {v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v4
iget-object v10, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mAfCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
iget-object v11, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1692
invoke-virtual {v2, v4, v10, v11}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_1d7
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_1c6 .. :try_end_1d7} :catch_1e2
.catch Ljava/lang/IllegalStateException; {:try_start_1c6 .. :try_end_1d7} :catch_1dd
.catch Ljava/lang/IllegalArgumentException; {:try_start_1c6 .. :try_end_1d7} :catch_1d8
goto :goto_1e7
:catch_1d8
move-exception v0
.line 1701
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
:catch_1dd
move-exception v0
.line 1698
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
:catch_1e2
move-exception v0
.line 1695
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return v8
.line 1706
:cond_1e7
:goto_1e7
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v12, v2, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v13, v2, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
const/4 v14, 0x1
move/from16 v10, v16
move v11, v7
invoke-static/range {v9 .. v14}, Lio/agora/rtc2/video/CoordinatesTransform;->sensorToNormalized(Landroid/graphics/RectF;IIIIZ)Landroid/graphics/RectF;
move-result-object v17
.line 1708
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result v18
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result v19
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
.line 1709
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getWidth()I
move-result v20
iget-object v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
invoke-virtual {v2}, Lio/agora/rtc2/video/VideoCaptureFormat;->getHeight()I
move-result v21
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v2, v6, :cond_216
move/from16 v22, v6
goto :goto_218
:cond_216
move/from16 v22, v5
.line 1711
:goto_218
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
if-ne v2, v6, :cond_21d
goto :goto_21e
:cond_21d
move v6, v8
:goto_21e
invoke-virtual/range {p0 .. p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraRotation()I
move-result v2
mul-int v23, v6, v2
iget v2, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mRenderMode:I
move/from16 v24, v2
.line 1708
invoke-static/range {v17 .. v24}, Lio/agora/rtc2/video/CoordinatesTransform;->normalizedToView(Landroid/graphics/RectF;IIIIZII)Landroid/graphics/RectF;
move-result-object v2
if-nez v2, :cond_234
const-string v0, "Failed to translate coordinate from normalized to view!!"
.line 1714
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1717
:cond_234
invoke-virtual {v2, v0}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 1719
invoke-virtual {v1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->notifyCameraFocusAreaChanged(Landroid/graphics/Rect;)V
:cond_23a
return v5
:cond_23b
:goto_23b
const-string v0, "set focus unreasonable inputs"
.line 1632
invoke-static {v3, v0}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v8
.line 1617
:cond_241
:goto_241
:try_start_241
iget-object v4, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aput v0, v4, v5
.line 1618
iget-object v0, v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraFocusPositions:[F
aput v2, v0, v6
.line 1619
monitor-exit v3
return v5
:catchall_24b
move-exception v0
.line 1627
monitor-exit v3
:try_end_24d
.catchall {:try_start_241 .. :try_end_24d} :catchall_24b
throw v0
.end method
.method public setNoiseReductionMode(I)I
.registers 8
.line 1960
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
const/4 v1, -0x1
if-nez v0, :cond_d
.line 1961
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v0, "setAntiBandingMode mPreviewRequestBuilder return."
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 1964
:cond_d
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v0
if-nez v0, :cond_16
return v1
:cond_16
const/4 v2, 0x0
if-ltz p1, :cond_1c
const/4 v3, 0x4
if-le p1, v3, :cond_1d
:cond_1c
move p1, v2
.line 1972
:cond_1d
sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v0, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [I
.line 1973
invoke-static {p1, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->isSupported(I[I)Z
move-result v0
if-eqz v0, :cond_6d
.line 1974
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v0, :cond_6d
.line 1975
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->NOISE_REDUCTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-virtual {v0, v3, v4}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1977
:try_start_3a
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setNoiseReductionMode = "
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;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1978
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 1979
invoke-virtual {v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v3
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
const/4 v5, 0x0
.line 1978
invoke-virtual {v0, v3, v4, v5}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_5e
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_3a .. :try_end_5e} :catch_69
.catch Ljava/lang/IllegalStateException; {:try_start_3a .. :try_end_5e} :catch_64
.catch Ljava/lang/IllegalArgumentException; {:try_start_3a .. :try_end_5e} :catch_5f
return v2
:catch_5f
move-exception v0
.line 1986
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_6d
:catch_64
move-exception v0
.line 1984
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_6d
:catch_69
move-exception v0
.line 1982
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
.line 1990
:cond_6d
:goto_6d
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not supported NoiseReductionMode = "
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 p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v1
.end method
.method public setTorchMode(Z)I
.registers 9
.line 2107
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v0
const/4 v1, 0x1
const/4 v2, -0x1
if-eqz p1, :cond_9
move v3, v1
goto :goto_a
:cond_9
move v3, v2
.line 2109
:goto_a
:try_start_a
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
const/4 v5, 0x0
if-eqz v4, :cond_ba
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-nez v4, :cond_15
goto/16 :goto_ba
.line 2113
:cond_15
iget-boolean v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsCameraTorchStarted:Z
if-eqz v4, :cond_1f
iget v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mTorchMode:I
if-ne v4, v3, :cond_1f
.line 2114
monitor-exit v0
return v5
.line 2116
:cond_1f
iput v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mTorchMode:I
.line 2117
monitor-exit v0
:try_end_22
.catchall {:try_start_a .. :try_end_22} :catchall_be
.line 2118
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "setTorchMode called camera api2, isOn: "
invoke-virtual {v3, v4}, 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 {v0, v3}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 2120
iget v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v3}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v3
if-nez v3, :cond_46
const-string p1, "warning cameraCharacteristics is null"
.line 2122
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v2
.line 2126
:cond_46
sget-object v4, Landroid/hardware/camera2/CameraCharacteristics;->FLASH_INFO_AVAILABLE:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v3, v4}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/Boolean;
if-nez v3, :cond_52
move v3, v5
goto :goto_56
.line 2127
:cond_52
invoke-virtual {v3}, Ljava/lang/Boolean;->booleanValue()Z
move-result v3
.line 2128
:goto_56
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "setTorchMode isFlashSupported: "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-eqz v3, :cond_65
const-string v6, "true"
goto :goto_67
:cond_65
const-string v6, "false"
:goto_67
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v0, v4}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
if-eqz v3, :cond_b4
if-eqz p1, :cond_82
.line 2131
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
const/4 v3, 0x2
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {p1, v0, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
goto :goto_8d
.line 2133
:cond_82
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v0, Landroid/hardware/camera2/CaptureRequest;->FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {p1, v0, v3}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 2135
:goto_8d
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz p1, :cond_b9
.line 2137
:try_start_91
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 2138
invoke-virtual {v0}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v0
const/4 v3, 0x0
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 2137
invoke-virtual {p1, v0, v3, v4}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
.line 2139
iput-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsCameraTorchStarted:Z
:try_end_9f
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_91 .. :try_end_9f} :catch_af
.catch Ljava/lang/IllegalStateException; {:try_start_91 .. :try_end_9f} :catch_aa
.catch Ljava/lang/IllegalArgumentException; {:try_start_91 .. :try_end_9f} :catch_a5
.catch Ljava/lang/NoClassDefFoundError; {:try_start_91 .. :try_end_9f} :catch_a0
return v5
:catch_a0
move-exception p1
.line 2148
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_b9
:catch_a5
move-exception p1
.line 2146
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_b9
:catch_aa
move-exception p1
.line 2144
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_b9
:catch_af
move-exception p1
.line 2142
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_b9
:cond_b4
const-string p1, "flash is not supported"
.line 2152
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
:cond_b9
:goto_b9
return v2
.line 2110
:cond_ba
:goto_ba
:try_start_ba
iput v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mTorchMode:I
.line 2111
monitor-exit v0
return v5
:catchall_be
move-exception p1
.line 2117
monitor-exit v0
:try_end_c0
.catchall {:try_start_ba .. :try_end_c0} :catchall_be
throw p1
.end method
.method public setVideoStabilityMode(I)I
.registers 7
.line 1851
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
const/4 v1, -0x1
if-nez v0, :cond_d
.line 1852
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
const-string v0, "setVideoStabilityMode mPreviewRequestBuilder return."
invoke-static {p1, v0}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v1
.line 1855
:cond_d
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->toCamera2VideoStabilityMode(I)I
move-result v0
.line 1856
iget v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v2
if-nez v2, :cond_1a
return v1
.line 1860
:cond_1a
sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v2, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v2
check-cast v2, [I
.line 1861
invoke-direct {p0, v0, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->isSupportedStability(I[I)Z
move-result v2
if-eqz v2, :cond_6b
.line 1862
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz v2, :cond_6b
.line 1863
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->CONTROL_VIDEO_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v2, v3, v0}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1865
:try_start_37
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setVideoStabilityMode = "
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 1866
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
invoke-virtual {v2}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v2
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
const/4 v4, 0x0
invoke-virtual {v0, v2, v3, v4}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_5b
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_37 .. :try_end_5b} :catch_67
.catch Ljava/lang/IllegalStateException; {:try_start_37 .. :try_end_5b} :catch_62
.catch Ljava/lang/IllegalArgumentException; {:try_start_37 .. :try_end_5b} :catch_5d
const/4 p1, 0x0
return p1
:catch_5d
move-exception v0
.line 1873
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_6b
:catch_62
move-exception v0
.line 1871
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
goto :goto_6b
:catch_67
move-exception v0
.line 1869
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
.line 1877
:cond_6b
:goto_6b
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "not supported VideoStability Mode = "
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 p1
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v1
.end method
.method public setZoom(F)I
.registers 9
.line 1515
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSwitchLock:Ljava/lang/Object;
monitor-enter v0
.line 1516
:try_start_3
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
const/4 v2, 0x0
if-eqz v1, :cond_e0
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
if-nez v1, :cond_e
goto/16 :goto_e0
.line 1520
:cond_e
iget-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraZoomStarted:Z
if-eqz v1, :cond_25
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraZoomFactor:F
sub-float/2addr v1, p1
invoke-static {v1}, Ljava/lang/Math;->abs(F)F
move-result v1
float-to-double v3, v1
const-wide v5, 0x3fb999999999999aL # 0.1
cmpg-double v1, v3, v5
if-gez v1, :cond_25
.line 1521
monitor-exit v0
return v2
.line 1523
:cond_25
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraZoomFactor:F
.line 1524
monitor-exit v0
:try_end_28
.catchall {:try_start_3 .. :try_end_28} :catchall_e4
.line 1525
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setCameraZoom api2 called zoomValue ="
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(F)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 v1, 0x0
cmpg-float v1, p1, v1
const/4 v3, -0x1
if-gtz v1, :cond_45
return v3
.line 1532
:cond_45
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
if-nez v1, :cond_67
.line 1533
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-static {v1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCameraCharacteristics(I)Landroid/hardware/camera2/CameraCharacteristics;
move-result-object v1
if-nez v1, :cond_57
const-string p1, "warning cameraCharacteristics is null"
.line 1535
invoke-static {v0, p1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v3
.line 1538
:cond_57
sget-object v4, Landroid/hardware/camera2/CameraCharacteristics;->SENSOR_INFO_ACTIVE_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;
invoke-virtual {v1, v4}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/graphics/Rect;
iput-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSensorRect:Landroid/graphics/Rect;
.line 1539
invoke-static {v1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getMaxZoom(Landroid/hardware/camera2/CameraCharacteristics;)F
move-result v1
iput v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
.line 1545
:cond_67
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
const/high16 v4, 0x3f800000 # 1.0f
sub-float/2addr v1, v4
invoke-static {v1}, Ljava/lang/Math;->abs(F)F
move-result v1
const v5, 0x3a83126f # 0.001f
cmpg-float v1, v1, v5
if-gez v1, :cond_93
.line 1546
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Camera "
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mId:I
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " does not support camera zoom"
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, 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 v3
:cond_93
cmpl-float v0, p1, v4
const/4 v1, 0x1
if-ltz v0, :cond_a6
.line 1551
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mMaxZoom:F
cmpg-float v0, p1, v0
if-gtz v0, :cond_a6
iget v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mLastZoomRatio:F
cmpl-float v0, p1, v0
if-eqz v0, :cond_a6
move v0, v1
goto :goto_a7
:cond_a6
move v0, v2
:goto_a7
if-nez v0, :cond_ab
const/4 p1, -0x2
return p1
.line 1558
:cond_ab
invoke-direct {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->cropRegionForZoom(F)Landroid/graphics/Rect;
move-result-object v0
.line 1559
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
sget-object v4, Landroid/hardware/camera2/CaptureRequest;->SCALER_CROP_REGION:Landroid/hardware/camera2/CaptureRequest$Key;
invoke-virtual {v3, v4, v0}, Landroid/hardware/camera2/CaptureRequest$Builder;->set(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V
.line 1560
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mLastZoomRatio:F
.line 1562
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
if-eqz p1, :cond_df
const/4 p1, -0x4
.line 1564
:try_start_bd
iput-boolean v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraZoomStarted:Z
.line 1565
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewSession:Landroid/hardware/camera2/CameraCaptureSession;
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPreviewRequestBuilder:Landroid/hardware/camera2/CaptureRequest$Builder;
.line 1566
invoke-virtual {v1}, Landroid/hardware/camera2/CaptureRequest$Builder;->build()Landroid/hardware/camera2/CaptureRequest;
move-result-object v1
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCaptureCallback:Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
iget-object v4, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1565
invoke-virtual {v0, v1, v3, v4}, Landroid/hardware/camera2/CameraCaptureSession;->setRepeatingRequest(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;Landroid/os/Handler;)I
:try_end_ce
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_bd .. :try_end_ce} :catch_d9
.catch Ljava/lang/IllegalStateException; {:try_start_bd .. :try_end_ce} :catch_d4
.catch Ljava/lang/IllegalArgumentException; {:try_start_bd .. :try_end_ce} :catch_cf
goto :goto_df
:catch_cf
move-exception v0
.line 1574
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return p1
:catch_d4
move-exception v0
.line 1571
invoke-static {v0}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
return p1
:catch_d9
move-exception p1
.line 1568
invoke-static {p1}, Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;->printStackTrace(Ljava/lang/Throwable;)V
const/4 p1, -0x3
return p1
:cond_df
:goto_df
return v2
.line 1517
:cond_e0
:goto_e0
:try_start_e0
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraZoomFactor:F
.line 1518
monitor-exit v0
return v2
:catchall_e4
move-exception p1
.line 1524
monitor-exit v0
:try_end_e6
.catchall {:try_start_e0 .. :try_end_e6} :catchall_e4
throw p1
.end method
.method public startCaptureMaybeAsync()Z
.registers 8
.line 1356
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->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/VideoCaptureCamera2;->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
const/4 v1, 0x0
.line 1357
invoke-direct {p0, v1}, Lio/agora/rtc2/video/VideoCaptureCamera2;->changeCameraStateAndNotify(I)V
.line 1358
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v2
if-eqz v2, :cond_60
iget-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v2, :cond_27
goto :goto_60
.line 1363
:cond_27
invoke-static {}, Lio/agora/base/internal/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string v2, "camera"
invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/hardware/camera2/CameraManager;
if-nez v0, :cond_36
return v1
.line 1367
:cond_36
new-instance v2, Lio/agora/rtc2/video/VideoCaptureCamera2$CrStateListener;
invoke-direct {v2, p0}, Lio/agora/rtc2/video/VideoCaptureCamera2$CrStateListener;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;)V
.line 1369
invoke-virtual {p0, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2;->notifyInjector(Ljava/lang/Object;)V
.line 1371
:try_start_3e
iget-object v3, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mProxyThreadHandler:Landroid/os/Handler;
const-wide/16 v4, 0x7d0
new-instance v6, Lio/agora/rtc2/video/VideoCaptureCamera2$3;
invoke-direct {v6, p0, v0, v2}, Lio/agora/rtc2/video/VideoCaptureCamera2$3;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;Landroid/hardware/camera2/CameraManager;Lio/agora/rtc2/video/VideoCaptureCamera2$CrStateListener;)V
invoke-static {v3, v4, v5, v6}, 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;
if-eqz v0, :cond_5b
.line 1398
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v2
if-nez v2, :cond_56
goto :goto_5b
.line 1402
:cond_56
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
return v0
:cond_5b
:goto_5b
const/4 v0, 0x4
.line 1399
invoke-direct {p0, v0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->changeCameraStateAndNotify(I)V
:try_end_5f
.catch Ljava/lang/Exception; {:try_start_3e .. :try_end_5f} :catch_5f
:catch_5f
return v1
:cond_60
:goto_60
const-string v2, "context or proxyThread unavailable"
.line 1359
invoke-static {v0, v2}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return v1
.end method
.method public stopCaptureAndBlockUntilStopped()V
.registers 7
.line 1410
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera2;->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 1412
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mProxyThreadHandler:Landroid/os/Handler;
if-nez v1, :cond_11
const-string v1, "proxyThread unavailable"
.line 1413
invoke-static {v0, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 1417
:cond_11
:try_start_11
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mProxyThreadHandler:Landroid/os/Handler;
const-wide/16 v1, 0x7d0
new-instance v3, Lio/agora/rtc2/video/VideoCaptureCamera2$4;
invoke-direct {v3, p0}, Lio/agora/rtc2/video/VideoCaptureCamera2$4;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera2;)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_1d
.catch Ljava/lang/Exception; {:try_start_11 .. :try_end_1d} :catch_1e
goto :goto_39
:catch_1e
move-exception v0
.line 1455
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "stopCaptureAndBlockUntilStopped fail: "
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
.line 1458
:goto_39
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReaderLock:Ljava/lang/Object;
monitor-enter v0
.line 1459
:try_start_3c
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
:try_end_3e
.catchall {:try_start_3c .. :try_end_3e} :catchall_ad
const/4 v2, 0x0
if-eqz v1, :cond_83
.line 1461
:try_start_41
invoke-virtual {v1, v2, v2}, Landroid/media/ImageReader;->setOnImageAvailableListener(Landroid/media/ImageReader$OnImageAvailableListener;Landroid/os/Handler;)V
.line 1462
iget-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
invoke-virtual {v1}, Landroid/media/ImageReader;->close()V
:try_end_49
.catch Ljava/lang/IllegalStateException; {:try_start_41 .. :try_end_49} :catch_66
.catch Ljava/lang/IllegalArgumentException; {:try_start_41 .. :try_end_49} :catch_4a
.catchall {:try_start_41 .. :try_end_49} :catchall_ad
goto :goto_81
:catch_4a
move-exception v1
.line 1466
:try_start_4b
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "ImageReader Close():"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/IllegalArgumentException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_81
:catch_66
move-exception v1
.line 1464
sget-object v3, Lio/agora/rtc2/video/VideoCaptureCamera2;->TAG:Ljava/lang/String;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "ImageReader Close():"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/IllegalStateException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 1468
:goto_81
iput-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mImageReader:Landroid/media/ImageReader;
.line 1470
:cond_83
monitor-exit v0
:try_end_84
.catchall {:try_start_4b .. :try_end_84} :catchall_ad
.line 1471
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
if-eqz v0, :cond_91
.line 1472
invoke-virtual {v0}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Looper;->quitSafely()V
.line 1473
iput-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mCameraThreadHandler:Landroid/os/Handler;
.line 1475
:cond_91
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurface:Landroid/view/Surface;
if-eqz v0, :cond_9a
.line 1476
invoke-virtual {v0}, Landroid/view/Surface;->release()V
.line 1477
iput-object v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mSurface:Landroid/view/Surface;
:cond_9a
const/4 v0, 0x0
.line 1479
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsFaceDetectionStarted:Z
.line 1480
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsCameraTorchStarted:Z
.line 1481
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraExposureStarted:Z
.line 1482
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraFocusStarted:Z
.line 1483
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsmCameraZoomStarted:Z
.line 1484
iput-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mIsExposureCompensationStarted:Z
.line 1485
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera2;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {v0}, Ljava/util/concurrent/LinkedBlockingQueue;->clear()V
return-void
:catchall_ad
move-exception v1
.line 1470
:try_start_ae
monitor-exit v0
:try_end_af
.catchall {:try_start_ae .. :try_end_af} :catchall_ad
throw v1
.end method