VideoCaptureCamera.smali
.class public abstract Lio/agora/rtc2/video/VideoCaptureCamera;
.super Lio/agora/rtc2/video/VideoCapture;
.source "VideoCaptureCamera.java"
# interfaces
.implements Lio/agora/rtc2/video/IVideoCaptureCamera;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
}
.end annotation
# static fields
.field static final ANDROID_CAMERA_SKIP_CONTROL_AE:I = 0x1
.field static final ANDROID_CAMERA_SKIP_CONTROL_AF:I = 0x2
.field static final ANDROID_CAMERA_SKIP_CONTROL_DEFAULT:I = 0x0
.field protected static final CAMERA_TORCH_DEFAULT:I = 0x0
.field protected static final CAMERA_TORCH_DISENABLE:I = -0x1
.field protected static final CAMERA_TORCH_ENABLE:I = 0x1
.field protected static final CONTROL_VIDEO_STABILIZATION_MODE_OFF:I = 0x0
.field protected static final CONTROL_VIDEO_STABILIZATION_MODE_ON:I = 0x1
.field protected static final MAX_CAMERA_TIME_MS:I = 0x7d0
.field private static final SIZE_HEIGHT_GT_720_BUGGY_DEVICE_LIST:[Ljava/lang/String;
.field private static final TAG:Ljava/lang/String; = "VideoCaptureCamera"
# instance fields
.field isMirror:Z
.field protected mCameraExposureCompensation:I
.field protected mCameraExposurePositions:[F
.field protected mCameraFocusPositions:[F
.field protected mCameraZoomFactor:F
.field protected final mCaptureToTexture:Z
.field protected mEnableAutoFaceFocus:Z
.field protected mEnableFaceDetection:Z
.field protected final mId:I
.field protected mIsCameraTorchStarted:Z
.field protected mIsExposureCompensationStarted:Z
.field protected mIsFaceDetectionStarted:Z
.field protected mIsmCameraExposureStarted:Z
.field protected mIsmCameraFocusStarted:Z
.field protected mIsmCameraZoomStarted:Z
.field protected mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/LinkedBlockingQueue<",
"Ljava/util/List<",
"Lio/agora/base/FaceDetectionInfo;",
">;>;"
}
.end annotation
.end field
.field mRenderMode:I
.field mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.field protected final mSkipControl:I
.field protected mTorchMode:I
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string v0, "Lenovo K520"
.line 97
filled-new-array {v0}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lio/agora/rtc2/video/VideoCaptureCamera;->SIZE_HEIGHT_GT_720_BUGGY_DEVICE_LIST:[Ljava/lang/String;
return-void
.end method
.method constructor <init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
.registers 8
.line 90
invoke-direct {p0, p2, p3, p7}, Lio/agora/rtc2/video/VideoCapture;-><init>(JLio/agora/base/internal/video/EglBase$Context;)V
const/4 p2, 0x0
.line 49
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mEnableAutoFaceFocus:Z
.line 50
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mEnableFaceDetection:Z
.line 51
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsFaceDetectionStarted:Z
.line 56
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mTorchMode:I
.line 57
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsmCameraExposureStarted:Z
const/4 p3, 0x2
new-array p7, p3, [F
.line 58
fill-array-data p7, :array_4a
iput-object p7, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCameraExposurePositions:[F
.line 59
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsmCameraFocusStarted:Z
new-array p3, p3, [F
.line 60
fill-array-data p3, :array_52
iput-object p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCameraFocusPositions:[F
.line 61
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsmCameraZoomStarted:Z
const/high16 p3, -0x40800000 # -1.0f
.line 62
iput p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCameraZoomFactor:F
.line 63
iput p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCameraExposureCompensation:I
.line 64
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsExposureCompensationStarted:Z
.line 237
new-instance p3, Ljava/util/concurrent/LinkedBlockingQueue;
invoke-direct {p3}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V
iput-object p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
.line 282
new-instance p3, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
const/4 p7, 0x0
invoke-direct {p3, p0, p7}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera;Landroid/view/View;)V
iput-object p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 283
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->isMirror:Z
.line 91
iput p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mId:I
.line 92
iput p6, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mSkipControl:I
.line 93
iput-boolean p5, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mPQFirst:Z
if-eqz p4, :cond_47
.line 94
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mSurfaceTextureHelper:Lio/agora/base/internal/video/ISurfaceTextureHelper;
if-eqz p1, :cond_47
const/4 p2, 0x1
:cond_47
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCaptureToTexture:Z
return-void
:array_4a
.array-data 4
-0x40800000 # -1.0f
-0x40800000 # -1.0f
.end array-data
:array_52
.array-data 4
-0x40800000 # -1.0f
-0x40800000 # -1.0f
.end array-data
.end method
.method static findBestFrameRateRange(Ljava/util/List;IZ)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;",
">;IZ)",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;"
}
.end annotation
.line 211
invoke-interface {p0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_8
const/4 p0, 0x0
return-object p0
.line 215
:cond_8
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "findBestFrameRateRange "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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
if-eqz p2, :cond_29
.line 218
invoke-static {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->findBestFrameRateRangePreferPQ(Ljava/util/List;I)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
move-result-object v1
goto :goto_2d
.line 220
:cond_29
invoke-static {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->findBestFrameRateRangePreferFPS(Ljava/util/List;I)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
move-result-object v1
:goto_2d
if-nez v1, :cond_53
.line 223
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Failed to find match fps in "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-eqz p2, :cond_3e
const-string p2, "PQ"
goto :goto_40
:cond_3e
const-string p2, " FPS"
.line 224
:goto_40
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, " first mode, try closest."
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
.line 223
invoke-static {v0, p2}, Lio/agora/base/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 225
invoke-static {p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->getClosestFramerateRange(Ljava/util/List;I)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
move-result-object v1
:cond_53
return-object v1
.end method
.method private static findBestFrameRateRangePreferFPS(Ljava/util/List;I)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;",
">;I)",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;"
}
.end annotation
.line 162
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera$2;
invoke-direct {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$2;-><init>()V
invoke-static {p0, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 170
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "sorted fps Ranges List order by min first:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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 171
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_26
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_59
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.line 172
iget v1, v0, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->min:I
if-lt v1, p1, :cond_26
.line 173
sget-object p0, Lio/agora/rtc2/video/VideoCaptureCamera;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "set fps : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 174
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " to camera in fps first mode, request:"
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 p1
.line 173
invoke-static {p0, p1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
:cond_59
const/4 p0, 0x0
return-object p0
.end method
.method private static findBestFrameRateRangePreferPQ(Ljava/util/List;I)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;",
">;I)",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;"
}
.end annotation
.line 187
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera$3;
invoke-direct {v0}, Lio/agora/rtc2/video/VideoCaptureCamera$3;-><init>()V
invoke-static {p0, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 195
sget-object v0, Lio/agora/rtc2/video/VideoCaptureCamera;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "sorted fps Ranges List order by max first:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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 197
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_26
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_59
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.line 198
iget v1, v0, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->max:I
if-lt v1, p1, :cond_26
.line 199
sget-object p0, Lio/agora/rtc2/video/VideoCaptureCamera;->TAG:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "set fps : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 200
invoke-virtual {v0}, Lio/agora/rtc2/video/VideoCapture$FramerateRange;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " to camera in PQ first mode, request:"
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 p1
.line 199
invoke-static {p0, p1}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
:cond_59
const/4 p0, 0x0
return-object p0
.end method
.method protected static getClosestFramerateRange(Ljava/util/List;I)Lio/agora/rtc2/video/VideoCapture$FramerateRange;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;",
">;I)",
"Lio/agora/rtc2/video/VideoCapture$FramerateRange;"
}
.end annotation
.line 124
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera$1;
invoke-direct {v0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera$1;-><init>(I)V
invoke-static {p0, v0}, Ljava/util/Collections;->min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lio/agora/rtc2/video/VideoCapture$FramerateRange;
return-object p0
.end method
.method static shouldExcludeSize(II)Z
.registers 6
const/4 p0, 0x0
const/16 v0, 0x2d0
if-le p1, v0, :cond_1a
.line 104
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera;->SIZE_HEIGHT_GT_720_BUGGY_DEVICE_LIST:[Ljava/lang/String;
array-length v0, p1
move v1, p0
:goto_9
if-ge v1, v0, :cond_1a
aget-object v2, p1, v1
.line 105
sget-object v3, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->contentEquals(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_17
const/4 p0, 0x1
return p0
:cond_17
add-int/lit8 v1, v1, 0x1
goto :goto_9
:cond_1a
return p0
.end method
# virtual methods
.method protected attachPerFrameMetaInfos(Lio/agora/base/VideoFrame;)V
.registers 6
.line 301
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {v0}, Ljava/util/concurrent/LinkedBlockingQueue;->isEmpty()Z
move-result v0
if-eqz v0, :cond_9
return-void
.line 303
:cond_9
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
.line 304
invoke-virtual {v0}, Ljava/util/concurrent/LinkedBlockingQueue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
if-eqz v0, :cond_39
.line 306
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_17
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_39
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lio/agora/base/FaceDetectionInfo;
.line 307
invoke-virtual {p1}, Lio/agora/base/VideoFrame;->getMetaInfo()Lio/agora/base/VideoFrameMetaInfo;
move-result-object v2
const-class v3, Lio/agora/base/FaceDetectionInfo;
.line 308
invoke-virtual {v3}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Lio/agora/base/VideoFrameMetaInfo;->getCustomMetaInfo(Ljava/lang/String;)Landroid/util/SparseArray;
move-result-object v2
.line 309
invoke-virtual {v1}, Lio/agora/base/FaceDetectionInfo;->getId()I
move-result v3
invoke-virtual {v2, v3, v1}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
goto :goto_17
:cond_39
return-void
.end method
.method public isEnableAutoFaceFocus()Z
.registers 2
.line 68
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mEnableAutoFaceFocus:Z
return v0
.end method
.method public isEnableFaceDetection()Z
.registers 2
.line 73
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mEnableFaceDetection:Z
return v0
.end method
.method public isFaceDetectionStarted()Z
.registers 2
.line 78
iget-boolean v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsFaceDetectionStarted:Z
return v0
.end method
.method protected native nativeNotifyCameraExposureAreaChanged(JIIII)V
.end method
.method protected native nativeNotifyCameraFocusAreaChanged(JIIII)V
.end method
.method protected notifyCameraExposureAreaChanged(Landroid/graphics/Rect;)V
.registers 10
.line 255
iget-wide v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mNativeVideoCaptureAndroid:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-eqz v0, :cond_1a
.line 256
iget-wide v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mNativeVideoCaptureAndroid:J
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v4, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mWidth:I
iget-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCaptureFormat:Lio/agora/rtc2/video/VideoCaptureFormat;
iget v5, v0, Lio/agora/rtc2/video/VideoCaptureFormat;->mHeight:I
iget v6, p1, Landroid/graphics/Rect;->left:I
iget v7, p1, Landroid/graphics/Rect;->top:I
move-object v1, p0
invoke-virtual/range {v1 .. v7}, Lio/agora/rtc2/video/VideoCaptureCamera;->nativeNotifyCameraExposureAreaChanged(JIIII)V
:cond_1a
return-void
.end method
.method protected notifyCameraFocusAreaChanged(Landroid/graphics/Rect;)V
.registers 10
.line 231
iget-wide v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mNativeVideoCaptureAndroid:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-eqz v0, :cond_1a
.line 232
iget-wide v2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mNativeVideoCaptureAndroid:J
invoke-virtual {p1}, Landroid/graphics/Rect;->width()I
move-result v4
.line 233
invoke-virtual {p1}, Landroid/graphics/Rect;->height()I
move-result v5
iget v6, p1, Landroid/graphics/Rect;->left:I
iget v7, p1, Landroid/graphics/Rect;->top:I
move-object v1, p0
.line 232
invoke-virtual/range {v1 .. v7}, Lio/agora/rtc2/video/VideoCaptureCamera;->nativeNotifyCameraFocusAreaChanged(JIIII)V
:cond_1a
return-void
.end method
.method protected notifyFaceDetection(IILjava/util/ArrayList;Ljava/util/ArrayList;)V
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(II",
"Ljava/util/ArrayList<",
"Landroid/graphics/RectF;",
">;",
"Ljava/util/ArrayList<",
"Ljava/lang/Double;",
">;)V"
}
.end annotation
.line 242
invoke-virtual {p3}, Ljava/util/ArrayList;->size()I
move-result p1
.line 243
iget-wide v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mNativeVideoCaptureAndroid:J
const-wide/16 v2, 0x0
cmp-long p2, v0, v2
if-eqz p2, :cond_40
if-lez p1, :cond_40
.line 244
new-instance p2, Ljava/util/ArrayList;
invoke-direct {p2}, Ljava/util/ArrayList;-><init>()V
const/4 v0, 0x0
:goto_14
add-int/lit8 v1, p1, -0x1
if-gt v0, v1, :cond_3b
.line 246
new-instance v1, Landroid/graphics/Rect;
invoke-direct {v1}, Landroid/graphics/Rect;-><init>()V
.line 247
invoke-virtual {p3, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/graphics/RectF;
invoke-virtual {v2, v1}, Landroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
.line 248
new-instance v2, Lio/agora/base/FaceDetectionInfo;
invoke-virtual {p4, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/Double;
invoke-virtual {v3}, Ljava/lang/Double;->doubleValue()D
move-result-wide v3
invoke-direct {v2, v0, v1, v3, v4}, Lio/agora/base/FaceDetectionInfo;-><init>(ILandroid/graphics/Rect;D)V
invoke-virtual {p2, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v0, v0, 0x1
goto :goto_14
.line 250
:cond_3b
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mPerFrameFaceDetectionInfoQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invoke-virtual {p1, p2}, Ljava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;)Z
:cond_40
return-void
.end method
.method public setCameraProxyHandler()V
.registers 3
.line 83
new-instance v0, Landroid/os/HandlerThread;
const-string v1, "VideoCaptureCamera_ProxyThread"
invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
.line 84
invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V
.line 85
new-instance v1, Landroid/os/Handler;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {v1, v0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mProxyThreadHandler:Landroid/os/Handler;
return-void
.end method
.method public setPreviewInfo(Landroid/view/View;ZI)V
.registers 6
.line 263
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-direct {v0, p0, p1}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;-><init>(Lio/agora/rtc2/video/VideoCaptureCamera;Landroid/view/View;)V
iput-object v0, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
.line 264
iput-boolean p2, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->isMirror:Z
.line 265
iput p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mRenderMode:I
.line 266
sget-object p1, Lio/agora/rtc2/video/VideoCaptureCamera;->TAG:Ljava/lang/String;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p3, "setPreviewInfo "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {p3}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getWidth()I
move-result p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p3, " x "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p3, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mRenderView:Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;
invoke-virtual {p3}, Lio/agora/rtc2/video/VideoCaptureCamera$CaptureViewWeakRef;->getHeight()I
move-result p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-static {p1, p2}, Lio/agora/base/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 267
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsmCameraFocusStarted:Z
const/4 p2, 0x1
const/4 p3, 0x0
const/4 v0, 0x0
if-nez p1, :cond_51
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCameraFocusPositions:[F
aget v1, p1, v0
cmpl-float v1, v1, p3
if-lez v1, :cond_51
aget v1, p1, p2
cmpl-float v1, v1, p3
if-lez v1, :cond_51
.line 268
aget v1, p1, v0
aget p1, p1, p2
invoke-virtual {p0, v1, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->setFocus(FF)I
.line 270
:cond_51
iget-boolean p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mIsmCameraExposureStarted:Z
if-nez p1, :cond_6a
iget-object p1, p0, Lio/agora/rtc2/video/VideoCaptureCamera;->mCameraExposurePositions:[F
aget v1, p1, v0
cmpl-float v1, v1, p3
if-lez v1, :cond_6a
aget v1, p1, p2
cmpl-float p3, v1, p3
if-lez p3, :cond_6a
.line 271
aget p3, p1, v0
aget p1, p1, p2
invoke-virtual {p0, p3, p1}, Lio/agora/rtc2/video/VideoCaptureCamera;->setExposure(FF)I
:cond_6a
return-void
.end method