CameraCaptureSingleton.smali
.class public Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
.implements Lcom/tencent/liteav/videoproducer/capture/CameraEventCallback;
# annotations
.annotation runtime Lcom/tencent/liteav/base/annotations/JNINamespace;
value = "liteav::video"
.end annotation
# static fields
.field private static final DELAY_FOR_RESTART_CAMERA:I = 0x7d0
.field private static final DELAY_FOR_SWITCH_TO_CAMERA1:I = 0x3e8
.field private static final HOLD_POOL_MAX_SIZE:I = 0x1
.field private static final TAG:Ljava/lang/String; = "CameraCaptureSingleton"
.field private static final USE_DEFAULT_FRONT_CAMERA:Z = true
.field private static volatile sInstance:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
# instance fields
.field private mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.field private volatile mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
.field private final mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
.field private mCloudConfig:Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;
.field protected mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
.field protected mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
.field private mEnableTapToFocus:Z
.field private mEnableZoom:Z
.field private final mExpectFrontCamera:Ljava/util/concurrent/atomic/AtomicBoolean;
.field private mExposureCompensation:F
.field protected mGLTexturePool:Lcom/tencent/liteav/videobase/frame/e;
.field private mIsCameraAutoFocusFaceModeSupported:Z
.field private mIsCameraInRestarting:Z
.field private mIsCameraInSwitching:Z
.field private mIsFirstFrameCaptured:Z
.field private mIsFocusPositionInPreviewSupported:Z
.field private mIsTorchSupported:Z
.field private mIsZoomSupported:Z
.field private final mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
.field private final mMatrix:[F
.field private mMaxZoomLevel:I
.field private mNeedNotifyStartFinish:Z
.field private mOESTextureId:I
.field protected mPausedCount:I
.field private mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
.field private final mRestartCameraRunnable:Ljava/lang/Runnable;
.field private final mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
.field private mServerConfig:Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;
.field private mSharedContext:Ljava/lang/Object;
.field private mSurfaceTexture:Landroid/graphics/SurfaceTexture;
.field private final mSwitchToCamera1Runnable:Ljava/lang/Runnable;
.field private mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
.field private final mThrottlers:Lcom/tencent/liteav/base/b/b;
.field private mZoomPercent:F
# direct methods
.method private constructor <init>()V
.registers 6
.line 146
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 55
new-instance v0, Lcom/tencent/liteav/base/b/b;
invoke-direct {v0}, Lcom/tencent/liteav/base/b/b;-><init>()V
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const/16 v0, 0x10
new-array v0, v0, [F
.line 57
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMatrix:[F
const/4 v0, 0x1
.line 59
iput-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
.line 74
new-instance v1, Lcom/tencent/liteav/videoproducer/capture/at;
invoke-direct {v1}, Lcom/tencent/liteav/videoproducer/capture/at;-><init>()V
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
.line 76
new-instance v1, Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-direct {v1}, Lcom/tencent/liteav/videoproducer/capture/ai;-><init>()V
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
const/4 v1, 0x0
.line 79
iput v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
const/4 v2, 0x0
.line 80
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
.line 81
new-instance v3, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {v3}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
iput-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExpectFrontCamera:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v4, -0x1
.line 85
iput v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
.line 89
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableTapToFocus:Z
.line 90
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableZoom:Z
const/4 v4, 0x0
.line 91
iput v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mZoomPercent:F
.line 92
iput v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExposureCompensation:F
.line 93
sget-object v4, Lcom/tencent/liteav/videobase/utils/Rotation;->a:Lcom/tencent/liteav/videobase/utils/Rotation;
iput-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
.line 95
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFirstFrameCaptured:Z
.line 96
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsZoomSupported:Z
.line 97
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsTorchSupported:Z
.line 98
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFocusPositionInPreviewSupported:Z
.line 99
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraAutoFocusFaceModeSupported:Z
.line 100
iput v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMaxZoomLevel:I
.line 102
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInRestarting:Z
.line 104
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInSwitching:Z
.line 107
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mServerConfig:Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;
.line 108
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCloudConfig:Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;
.line 110
new-instance v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton$1;
invoke-direct {v1, p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton$1;-><init>(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)V
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mRestartCameraRunnable:Ljava/lang/Runnable;
.line 127
new-instance v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton$2;
invoke-direct {v1, p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton$2;-><init>(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)V
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSwitchToCamera1Runnable:Ljava/lang/Runnable;
.line 147
new-instance v1, Lcom/tencent/liteav/base/util/l;
invoke-direct {v1}, Lcom/tencent/liteav/base/util/l;-><init>()V
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
.line 148
invoke-virtual {v3, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
return-void
.end method
.method static synthetic access$002(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)Z
.registers 2
.line 43
iput-boolean p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInRestarting:Z
return p1
.end method
.method static synthetic access$100(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.registers 1
.line 43
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
return-object p0
.end method
.method static synthetic access$200(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
.registers 2
.line 43
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
move-result p0
return p0
.end method
.method static synthetic access$300(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Ljava/lang/Runnable;
.registers 1
.line 43
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mRestartCameraRunnable:Ljava/lang/Runnable;
return-object p0
.end method
.method static synthetic access$400(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Lcom/tencent/liteav/base/util/l;
.registers 1
.line 43
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
return-object p0
.end method
.method static synthetic access$502(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)Z
.registers 2
.line 43
iput-boolean p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInSwitching:Z
return p1
.end method
.method static synthetic access$600(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Ljava/lang/Runnable;
.registers 1
.line 43
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSwitchToCamera1Runnable:Ljava/lang/Runnable;
return-object p0
.end method
.method private checkFirstFrameCaptured()V
.registers 3
.line 821
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFirstFrameCaptured:Z
if-nez v0, :cond_e
const/4 v0, 0x1
.line 822
iput-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFirstFrameCaptured:Z
const-string v0, "CameraCaptureSingleton"
const-string v1, "camera capture first frame."
.line 823
invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->d(Ljava/lang/String;Ljava/lang/String;)V
:cond_e
return-void
.end method
.method private closeCamera()V
.registers 6
const-string v0, "CameraCaptureSingleton"
const-string v1, "closeCamera"
.line 677
invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
const/4 v1, 0x0
const/4 v2, 0x0
.line 679
:try_start_9
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz v3, :cond_10
.line 680
invoke-virtual {v3}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->stopCapture()V
:try_end_10
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_10} :catch_1b
.catchall {:try_start_9 .. :try_end_10} :catchall_19
.line 685
:cond_10
:goto_10
sget-object v0, Lcom/tencent/liteav/videobase/utils/Rotation;->a:Lcom/tencent/liteav/videobase/utils/Rotation;
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
.line 686
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.line 687
iput v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMaxZoomLevel:I
goto :goto_2a
:catchall_19
move-exception v0
goto :goto_40
:catch_1b
move-exception v3
:try_start_1c
const-string v4, "closeCamera fail, Exception:"
.line 683
invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v4, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v0, v3}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;)V
:try_end_29
.catchall {:try_start_1c .. :try_end_29} :catchall_19
goto :goto_10
.line 690
:goto_2a
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
if-eqz v0, :cond_33
.line 691
invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->release()V
.line 692
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
.line 694
:cond_33
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
invoke-static {v0}, Lcom/tencent/liteav/videobase/utils/OpenGlUtils;->deleteTexture(I)V
const/4 v0, -0x1
.line 695
iput v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
.line 696
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
.line 697
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFirstFrameCaptured:Z
return-void
.line 685
:goto_40
sget-object v3, Lcom/tencent/liteav/videobase/utils/Rotation;->a:Lcom/tencent/liteav/videobase/utils/Rotation;
iput-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
.line 686
iput-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.line 687
iput v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMaxZoomLevel:I
.line 688
throw v0
.end method
.method private createCameraController(Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;)Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.registers 6
.line 620
sget-object v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton$3;->a:[I
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;->ordinal()I
move-result v1
aget v0, v0, v1
const/4 v1, 0x1
if-eq v0, v1, :cond_1c
const/4 v1, 0x2
if-eq v0, v1, :cond_14
.line 640
new-instance v0, Lcom/tencent/liteav/videoproducer/capture/a/a;
invoke-direct {v0}, Lcom/tencent/liteav/videoproducer/capture/a/a;-><init>()V
goto :goto_37
.line 635
:cond_14
new-instance v0, Lcom/tencent/liteav/videoproducer/capture/b/a;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
invoke-direct {v0, v1}, Lcom/tencent/liteav/videoproducer/capture/b/a;-><init>(Lcom/tencent/liteav/base/util/v;)V
goto :goto_37
:cond_1c
const/4 v0, 0x0
:try_start_1d
const-string v1, "com.tencent.liteav.videoengine.demo.mock.camera.MockCameraController"
.line 624
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
const/4 v2, 0x0
new-array v3, v2, [Ljava/lang/Class;
.line 626
invoke-virtual {v1, v3}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v1
new-array v2, v2, [Ljava/lang/Object;
.line 627
invoke-virtual {v1, v2}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
:try_end_30
.catch Ljava/lang/Exception; {:try_start_1d .. :try_end_30} :catch_31
goto :goto_35
:catch_31
move-exception v1
.line 629
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
.line 631
:goto_35
check-cast v0, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
:goto_37
if-eqz v0, :cond_43
.line 645
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mServerConfig:Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;
invoke-virtual {v0, v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->setServerConfig(Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;)V
.line 646
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCloudConfig:Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;
invoke-virtual {v0, v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->setCloudConfig(Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;)V
.line 648
:cond_43
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "createCameraController, CameraAPIType:"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p1, ", return camera controller: "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
.end method
.method public static getInstance()Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
.registers 2
.line 63
sget-object v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->sInstance:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
if-nez v0, :cond_17
.line 64
const-class v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
monitor-enter v0
.line 65
:try_start_7
sget-object v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->sInstance:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
if-nez v1, :cond_12
.line 66
new-instance v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
invoke-direct {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;-><init>()V
sput-object v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->sInstance:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
.line 68
:cond_12
monitor-exit v0
goto :goto_17
:catchall_14
move-exception v1
monitor-exit v0
:try_end_16
.catchall {:try_start_7 .. :try_end_16} :catchall_14
throw v1
.line 70
:cond_17
:goto_17
sget-object v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->sInstance:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;
return-object v0
.end method
.method private getMockCameraMatrix([F)V
.registers 8
.line 479
:try_start_0
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "getTransformMatrix"
const/4 v2, 0x1
new-array v3, v2, [Ljava/lang/Class;
.line 480
const-class v4, [F
const/4 v5, 0x0
aput-object v4, v3, v5
.line 481
invoke-virtual {v0, v1, v3}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 482
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
new-array v2, v2, [Ljava/lang/Object;
aput-object p1, v2, v5
invoke-virtual {v0, v1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_1d
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1d} :catch_1e
return-void
:catch_1e
move-exception p1
.line 484
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v0, "getMockCameraMatrix with exception: "
invoke-virtual {v0, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string v0, "CameraCaptureSingleton"
invoke-static {v0, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private handleCameraStartFailed()V
.registers 10
const/4 v0, 0x1
new-array v1, v0, [Ljava/lang/Object;
.line 861
iget-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
const/4 v3, 0x0
aput-object v2, v1, v3
const-string v2, "CameraCaptureSingleton"
const-string v4, "camera start failed. params: %s"
invoke-static {v2, v4, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 862
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz v1, :cond_16
.line 863
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->stopCapture()V
:cond_16
const/4 v1, 0x0
.line 865
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.line 866
iget-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInRestarting:Z
if-eqz v1, :cond_27
.line 867
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mRestartCameraRunnable:Ljava/lang/Runnable;
const-wide/16 v2, 0x7d0
invoke-virtual {v0, v1, v2, v3}, Lcom/tencent/liteav/base/util/l;->b(Ljava/lang/Runnable;J)V
return-void
.line 868
:cond_27
iget-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInSwitching:Z
const-wide/16 v4, 0x3e8
if-eqz v1, :cond_35
.line 869
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSwitchToCamera1Runnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1, v4, v5}, Lcom/tencent/liteav/base/util/l;->b(Ljava/lang/Runnable;J)V
return-void
.line 871
:cond_35
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v1
.line 872
iget-object v6, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
.line 1150
iget-object v7, v6, Lcom/tencent/liteav/videoproducer/capture/ai;->a:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
sget-object v8, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;->c:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
if-ne v7, v8, :cond_45
.line 1151
iput-boolean v0, v6, Lcom/tencent/liteav/videoproducer/capture/ai;->c:Z
.line 874
:cond_45
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v0
if-eq v1, v0, :cond_74
.line 875
new-instance v0, Ljava/lang/StringBuilder;
const-string v3, "camera switch from "
invoke-direct {v0, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, " to "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
.line 877
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 875
invoke-static {v2, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 878
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSwitchToCamera1Runnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1, v4, v5}, Lcom/tencent/liteav/base/util/l;->b(Ljava/lang/Runnable;J)V
return-void
.line 880
:cond_74
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
if-eqz v0, :cond_7f
.line 881
iput-boolean v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
.line 882
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v0, v3}, Lcom/tencent/liteav/videoproducer/capture/at;->onStartFinish(Z)V
:cond_7f
return-void
.end method
.method private handleCameraStartSuccess()V
.registers 7
.line 832
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
const-string v1, "CameraCaptureSingleton"
if-eqz v0, :cond_77
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
if-nez v0, :cond_b
goto :goto_77
:cond_b
const/4 v0, 0x1
new-array v2, v0, [Ljava/lang/Object;
.line 837
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
const/4 v4, 0x0
aput-object v3, v2, v4
const-string v3, "camera start success. params: %s"
invoke-static {v1, v3, v2}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 838
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->getCameraRotation()Lcom/tencent/liteav/videobase/utils/Rotation;
move-result-object v1
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
.line 839
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->isZoomSupported()Z
move-result v1
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsZoomSupported:Z
.line 840
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->isTorchSupported()Z
move-result v1
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsTorchSupported:Z
.line 841
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.line 842
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->isCameraAutoFocusFaceModeSupported()Z
move-result v1
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraAutoFocusFaceModeSupported:Z
.line 843
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.line 844
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->isCameraFocusPositionInPreviewSupported()Z
move-result v1
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFocusPositionInPreviewSupported:Z
.line 845
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->getMaxZoom()I
move-result v1
iput v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMaxZoomLevel:I
.line 846
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->getPreviewSize()Lcom/tencent/liteav/base/util/Size;
move-result-object v1
.line 848
iget-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSharedContext:Ljava/lang/Object;
if-nez v3, :cond_5a
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
.line 849
invoke-virtual {v3}, Lcom/tencent/liteav/videobase/egl/EGLCore;->getEglContext()Ljava/lang/Object;
move-result-object v3
:cond_5a
iget v5, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
.line 848
invoke-static {v1, v2, v3, v5}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->initOutputPixelFrame(Lcom/tencent/liteav/base/util/Size;Lcom/tencent/liteav/videobase/utils/Rotation;Ljava/lang/Object;I)Lcom/tencent/liteav/videobase/frame/PixelFrame;
move-result-object v1
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
.line 851
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
invoke-virtual {v1, p0}, Landroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
.line 852
iget-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
if-eqz v1, :cond_72
.line 853
iput-boolean v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
.line 854
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v1, v0}, Lcom/tencent/liteav/videoproducer/capture/at;->onStartFinish(Z)V
.line 856
:cond_72
iput-boolean v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInRestarting:Z
.line 857
iput-boolean v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraInSwitching:Z
return-void
:cond_77
:goto_77
const-string v0, "camera start success, but mCameraController or mSurfaceTexture is null."
.line 833
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private initGLComponents(Ljava/lang/Object;)V
.registers 6
.line 510
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
if-eqz v0, :cond_5
return-void
.line 514
:cond_5
new-instance v0, Lcom/tencent/liteav/videobase/egl/EGLCore;
invoke-direct {v0}, Lcom/tencent/liteav/videobase/egl/EGLCore;-><init>()V
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
.line 515
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
if-nez v0, :cond_17
.line 516
new-instance v0, Lcom/tencent/liteav/videobase/frame/l;
invoke-direct {v0}, Lcom/tencent/liteav/videobase/frame/l;-><init>()V
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
:cond_17
const/4 v0, 0x0
.line 519
:try_start_18
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
const/16 v2, 0x80
invoke-virtual {v1, p1, v0, v2, v2}, Lcom/tencent/liteav/videobase/egl/EGLCore;->initialize(Ljava/lang/Object;Landroid/view/Surface;II)V
.line 521
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
invoke-virtual {v1}, Lcom/tencent/liteav/videobase/egl/EGLCore;->makeCurrent()V
.line 522
iput-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSharedContext:Ljava/lang/Object;
:try_end_26
.catch Lcom/tencent/liteav/videobase/egl/f; {:try_start_18 .. :try_end_26} :catch_27
goto :goto_3e
:catch_27
move-exception p1
.line 524
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const-string v2, "initGL"
invoke-virtual {v1, v2}, Lcom/tencent/liteav/base/b/b;->a(Ljava/lang/String;)Lcom/tencent/liteav/base/b/a;
move-result-object v1
const-string v2, "CameraCaptureSingleton"
const-string v3, "initializeEGL failed."
invoke-static {v1, v2, v3, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Lcom/tencent/liteav/base/b/a;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 525
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/capture/at;->onCaptureError()V
.line 526
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
.line 528
:goto_3e
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
if-eqz p1, :cond_49
.line 529
new-instance p1, Lcom/tencent/liteav/videobase/frame/e;
invoke-direct {p1}, Lcom/tencent/liteav/videobase/frame/e;-><init>()V
iput-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mGLTexturePool:Lcom/tencent/liteav/videobase/frame/e;
:cond_49
return-void
.end method
.method private static initOutputPixelFrame(Lcom/tencent/liteav/base/util/Size;Lcom/tencent/liteav/videobase/utils/Rotation;Ljava/lang/Object;I)Lcom/tencent/liteav/videobase/frame/PixelFrame;
.registers 6
.line 657
new-instance v0, Lcom/tencent/liteav/videobase/frame/PixelFrame;
invoke-direct {v0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;-><init>()V
.line 658
sget-object v1, Lcom/tencent/liteav/videobase/utils/Rotation;->b:Lcom/tencent/liteav/videobase/utils/Rotation;
if-eq p1, v1, :cond_19
sget-object v1, Lcom/tencent/liteav/videobase/utils/Rotation;->d:Lcom/tencent/liteav/videobase/utils/Rotation;
if-ne p1, v1, :cond_e
goto :goto_19
.line 662
:cond_e
iget p1, p0, Lcom/tencent/liteav/base/util/Size;->width:I
invoke-virtual {v0, p1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setWidth(I)V
.line 663
iget p0, p0, Lcom/tencent/liteav/base/util/Size;->height:I
invoke-virtual {v0, p0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setHeight(I)V
goto :goto_23
.line 659
:cond_19
:goto_19
iget p1, p0, Lcom/tencent/liteav/base/util/Size;->height:I
invoke-virtual {v0, p1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setWidth(I)V
.line 660
iget p0, p0, Lcom/tencent/liteav/base/util/Size;->width:I
invoke-virtual {v0, p0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setHeight(I)V
.line 665
:goto_23
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$PixelBufferType;->c:Lcom/tencent/liteav/videobase/base/GLConstants$PixelBufferType;
invoke-virtual {v0, p0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setPixelBufferType(Lcom/tencent/liteav/videobase/base/GLConstants$PixelBufferType;)V
.line 666
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$PixelFormatType;->f:Lcom/tencent/liteav/videobase/base/GLConstants$PixelFormatType;
invoke-virtual {v0, p0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setPixelFormatType(Lcom/tencent/liteav/videobase/base/GLConstants$PixelFormatType;)V
.line 667
sget-object p0, Lcom/tencent/liteav/videobase/utils/Rotation;->a:Lcom/tencent/liteav/videobase/utils/Rotation;
invoke-virtual {v0, p0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setRotation(Lcom/tencent/liteav/videobase/utils/Rotation;)V
.line 668
invoke-virtual {v0, p2}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setGLContext(Ljava/lang/Object;)V
.line 669
invoke-virtual {v0, p3}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setTextureId(I)V
return-object v0
.end method
.method private isNeedRestartCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
.registers 8
.line 729
iget-object v0, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget-object v1, v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
const/4 v2, 0x0
const/4 v3, 0x1
if-eq v0, v1, :cond_1f
.line 730
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget-object v1, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
iput-object v1, v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
.line 732
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget v1, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->c:I
iput v1, v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->c:I
.line 733
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget v1, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->d:I
iput v1, v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->d:I
move v0, v3
move v1, v0
goto :goto_47
.line 735
:cond_1f
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-nez v0, :cond_25
move v0, v2
goto :goto_38
.line 738
:cond_25
iget v1, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->c:I
iget v4, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->d:I
iget-object v5, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
.line 739
invoke-virtual {v5}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v5
if-gt v5, v3, :cond_33
move v5, v3
goto :goto_34
:cond_33
move v5, v2
.line 738
:goto_34
invoke-virtual {v0, v1, v4, v5}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->isCurrentPreviewSizeAspectRatioMatch(IIZ)Z
move-result v0
:goto_38
if-nez v0, :cond_46
.line 742
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget v4, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->c:I
iput v4, v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->c:I
.line 743
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget v4, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->d:I
iput v4, v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->d:I
:cond_46
move v1, v2
.line 747
:goto_47
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v4}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v4
if-gt v4, v3, :cond_57
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget v4, v4, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->b:I
iget v5, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->b:I
if-ne v4, v5, :cond_67
:cond_57
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
.line 748
invoke-virtual {v4}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v4
if-le v4, v3, :cond_6e
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget v4, v4, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->b:I
iget v5, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->b:I
if-ge v4, v5, :cond_6e
.line 749
:cond_67
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget p1, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->b:I
iput p1, v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->b:I
move v1, v3
:cond_6e
if-nez v1, :cond_74
if-nez v0, :cond_73
goto :goto_74
:cond_73
return v2
:cond_74
:goto_74
return v3
.end method
.method static synthetic lambda$enableCameraZoom$7(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)V
.registers 2
.line 287
iput-boolean p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableZoom:Z
.line 288
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/at;->onCameraZoomEnable(Z)V
return-void
.end method
.method static synthetic lambda$enableTapToFocus$5(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)V
.registers 3
.line 250
iput-boolean p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableTapToFocus:Z
.line 251
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz v0, :cond_9
.line 252
invoke-virtual {v0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->enableTapToFocus(Z)V
.line 254
:cond_9
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/at;->onCameraTouchEnable(Z)V
return-void
.end method
.method static synthetic lambda$onCameraError$12(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;)V
.registers 4
.line 403
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz v0, :cond_1a
if-eq v0, p1, :cond_7
goto :goto_1a
:cond_7
const-string p1, "CameraCaptureSingleton"
const-string v0, "VideoCapture: camera error"
.line 406
invoke-static {p1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 407
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->closeCamera()V
.line 409
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mRestartCameraRunnable:Ljava/lang/Runnable;
const-wide/16 v0, 0x7d0
invoke-virtual {p1, p0, v0, v1}, Lcom/tencent/liteav/base/util/l;->b(Ljava/lang/Runnable;J)V
:cond_1a
:goto_1a
return-void
.end method
.method static synthetic lambda$onFrameAvailable$13(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Landroid/graphics/SurfaceTexture;)V
.registers 4
.line 418
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
if-eqz v0, :cond_26
if-eq p1, v0, :cond_7
goto :goto_26
.line 421
:cond_7
invoke-virtual {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->makeCurrent()Z
move-result p1
if-nez p1, :cond_20
.line 422
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const-string p1, "onFrameAvailable"
invoke-virtual {p0, p1}, Lcom/tencent/liteav/base/b/b;->a(Ljava/lang/String;)Lcom/tencent/liteav/base/b/a;
move-result-object p0
const/4 p1, 0x0
new-array p1, p1, [Ljava/lang/Object;
const-string v0, "CameraCaptureSingleton"
const-string v1, "make current failed."
invoke-static {p0, v0, v1, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Lcom/tencent/liteav/base/b/a;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 425
:cond_20
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->checkFirstFrameCaptured()V
.line 426
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->onCaptureFrameAvailable()V
:cond_26
:goto_26
return-void
.end method
.method static synthetic lambda$removeListener$0(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;)V
.registers 2
.line 152
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/at;->b(Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;)V
return-void
.end method
.method static synthetic lambda$resume$16(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)V
.registers 2
.line 757
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
invoke-virtual {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->resumeInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
return-void
.end method
.method static synthetic lambda$setCameraAPIType$11(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;I)V
.registers 5
.line 369
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v0
const/4 v1, 0x1
if-ne p1, v1, :cond_10
.line 371
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
sget-object v2, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;->b:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
.line 2143
iput-object v2, p1, Lcom/tencent/liteav/videoproducer/capture/ai;->b:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
goto :goto_1f
:cond_10
const/4 v2, 0x2
if-ne p1, v2, :cond_1a
.line 373
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
sget-object v2, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;->c:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
.line 3143
iput-object v2, p1, Lcom/tencent/liteav/videoproducer/capture/ai;->b:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
goto :goto_1f
.line 375
:cond_1a
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
const/4 v2, 0x0
.line 4143
iput-object v2, p1, Lcom/tencent/liteav/videoproducer/capture/ai;->b:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
.line 377
:goto_1f
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
const-string v2, "CameraCaptureSingleton"
if-eqz p1, :cond_43
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
if-nez p1, :cond_2a
goto :goto_43
.line 381
:cond_2a
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object p1
if-ne v0, p1, :cond_38
const-string p0, "setCameraAPIType,decided api type is not changed."
.line 382
invoke-static {v2, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 385
:cond_38
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->closeCamera()V
.line 386
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
.line 387
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
return-void
:cond_43
:goto_43
const-string p0, "setCameraAPIType,mCameraController is null."
.line 378
invoke-static {v2, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method static synthetic lambda$setCaptureCloudConfig$2(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;)V
.registers 3
.line 167
iput-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCloudConfig:Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;
.line 168
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
.line 169
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;->getCamera2SupportMinApiLevel()I
move-result v0
.line 168
invoke-virtual {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/ai;->a(I)V
.line 170
new-instance p0, Ljava/lang/StringBuilder;
const-string v0, "setCaptureCloudConfig minApiLevel:"
invoke-direct {p0, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 172
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;->getCamera2SupportMinApiLevel()I
move-result p1
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string p1, "CameraCaptureSingleton"
.line 170
invoke-static {p1, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method static synthetic lambda$setExposureCompensation$10(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;F)V
.registers 2
.line 353
iput p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExposureCompensation:F
.line 354
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz p0, :cond_9
.line 355
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->setExposureCompensation(F)V
:cond_9
return-void
.end method
.method static synthetic lambda$setPercentOfMaxZoomLevel$9(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;F)V
.registers 2
.line 320
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->setZoomInternal(F)V
return-void
.end method
.method static synthetic lambda$setServerConfig$1(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;)V
.registers 3
.line 157
iput-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mServerConfig:Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;
.line 158
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
.line 159
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;->getCamera2SupportMinApiLevel()I
move-result v0
.line 158
invoke-virtual {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/ai;->a(I)V
.line 160
new-instance p0, Ljava/lang/StringBuilder;
const-string v0, "setServerConfig minApiLevel:"
invoke-direct {p0, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 161
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;->getCamera2SupportMinApiLevel()I
move-result p1
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
const-string p1, "CameraCaptureSingleton"
.line 160
invoke-static {p1, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method static synthetic lambda$setZoomLevel$8(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;F)V
.registers 3
.line 307
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMaxZoomLevel:I
if-gtz v0, :cond_14
.line 309
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
const-string p1, "setZoomLevel maxZoomLevel="
invoke-virtual {p1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string p1, "CameraCaptureSingleton"
invoke-static {p1, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_14
int-to-float v0, v0
div-float/2addr p1, v0
.line 312
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->setZoomInternal(F)V
return-void
.end method
.method static synthetic lambda$start$14(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
.registers 4
.line 498
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v0, p1}, Lcom/tencent/liteav/videoproducer/capture/at;->a(Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;)V
.line 499
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
if-eqz p1, :cond_18
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
if-eqz p1, :cond_18
const-string p1, "CameraCaptureSingleton"
const-string v0, "capture source has already started!"
.line 500
invoke-static {p1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 501
invoke-direct {p0, p2}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->updateParamsInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
return-void
.line 503
:cond_18
invoke-static {}, Lcom/tencent/liteav/videoproducer/capture/ax;->a()Lcom/tencent/liteav/videoproducer/capture/ax;
move-result-object p1
invoke-virtual {p1}, Lcom/tencent/liteav/videoproducer/capture/ax;->b()Ljava/lang/Object;
move-result-object p1
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->initGLComponents(Ljava/lang/Object;)V
.line 504
invoke-direct {p0, p2}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
return-void
.end method
.method static synthetic lambda$startAutoFocusAtPosition$6(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;II)V
.registers 4
.line 271
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableTapToFocus:Z
if-nez v0, :cond_5
return-void
.line 274
:cond_5
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz p0, :cond_c
.line 275
invoke-virtual {p0, p1, p2}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->startAutoFocusAtPosition(II)V
:cond_c
return-void
.end method
.method static synthetic lambda$stopAndWaitDone$15(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)V
.registers 3
const-string v0, "CameraCaptureSingleton"
const-string v1, "stop camera begin"
.line 535
invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 536
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->stopInternal()V
const-string p0, "stop camera end"
.line 537
invoke-static {v0, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method static synthetic lambda$switchCamera$3(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)V
.registers 3
.line 184
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExpectFrontCamera:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
.line 185
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
if-eqz v1, :cond_28
iget-object v1, v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
.line 186
invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
if-eq v1, v0, :cond_28
.line 187
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->closeCamera()V
const/4 v1, 0x0
.line 188
iput v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mZoomPercent:F
const/4 v1, 0x1
.line 189
iput-boolean v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
.line 190
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
iput-object v0, v1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
.line 191
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
invoke-direct {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
:cond_28
return-void
.end method
.method static synthetic lambda$turnOnTorch$4(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)V
.registers 2
.line 237
iget-object p0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz p0, :cond_7
.line 238
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->turnOnTorch(Z)V
:cond_7
return-void
.end method
.method static synthetic lambda$updateParams$17(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
.registers 4
.line 767
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
if-eqz v0, :cond_12
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
if-eqz v0, :cond_12
const-string v0, "CameraCaptureSingleton"
const-string v1, "capture source has already started!"
.line 768
invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 769
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->updateParamsInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
:cond_12
return-void
.end method
.method private onCaptureFrameAvailable()V
.registers 13
.line 431
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mGLTexturePool:Lcom/tencent/liteav/videobase/frame/e;
const-string v1, "CameraCaptureSingleton"
if-eqz v0, :cond_c3
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
if-nez v0, :cond_c
goto/16 :goto_c3
:cond_c
const/4 v2, 0x0
.line 440
:try_start_d
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/frame/l;->a()Lcom/tencent/liteav/videobase/frame/k;
move-result-object v0
check-cast v0, Lcom/tencent/liteav/videobase/frame/l$b;
:try_end_13
.catch Ljava/lang/InterruptedException; {:try_start_d .. :try_end_13} :catch_14
goto :goto_15
:catch_14
move-object v0, v2
.line 445
:goto_15
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
invoke-virtual {v3}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getMatrix()[F
move-result-object v3
if-nez v3, :cond_24
.line 446
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMatrix:[F
invoke-virtual {v3, v4}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setMatrix([F)V
.line 449
:cond_24
:try_start_24
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
invoke-virtual {v3}, Landroid/graphics/SurfaceTexture;->updateTexImage()V
.line 450
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMatrix:[F
invoke-virtual {v3, v4}, Landroid/graphics/SurfaceTexture;->getTransformMatrix([F)V
:try_end_30
.catch Ljava/lang/Exception; {:try_start_24 .. :try_end_30} :catch_31
goto :goto_4a
:catch_31
move-exception v3
.line 453
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const-string v5, "updateTexImage"
invoke-virtual {v4, v5}, Lcom/tencent/liteav/base/b/b;->a(Ljava/lang/String;)Lcom/tencent/liteav/base/b/a;
move-result-object v4
invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
const-string v5, "updateTexImage exception: "
invoke-virtual {v5, v3}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
const/4 v5, 0x0
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v4, v1, v3, v5}, Lcom/tencent/liteav/base/util/LiteavLog;->w(Lcom/tencent/liteav/base/b/a;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 456
:goto_4a
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v1
sget-object v3, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;->a:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
if-ne v1, v3, :cond_59
.line 457
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMatrix:[F
invoke-direct {p0, v1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->getMockCameraMatrix([F)V
:cond_59
const v1, 0x8d65
.line 459
iget v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
iget-object v4, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
.line 460
invoke-virtual {v4}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getWidth()I
move-result v4
iget-object v5, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
invoke-virtual {v5}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getHeight()I
move-result v5
.line 459
invoke-virtual {v0, v1, v3, v4, v5}, Lcom/tencent/liteav/videobase/frame/l$b;->a(IIII)V
.line 461
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPixelFrame:Lcom/tencent/liteav/videobase/frame/PixelFrame;
invoke-virtual {v1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getGLContext()Ljava/lang/Object;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/tencent/liteav/videobase/frame/l$b;->a(Ljava/lang/Object;)Lcom/tencent/liteav/videobase/frame/PixelFrame;
move-result-object v1
.line 462
invoke-virtual {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->isFrontCamera()Z
move-result v3
invoke-virtual {v1, v3}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setMirrorHorizontal(Z)V
.line 463
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMatrix:[F
invoke-virtual {v1, v3}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setMatrix([F)V
.line 464
invoke-static {}, Lcom/tencent/liteav/base/util/TimeUtil;->a()J
move-result-wide v3
invoke-virtual {v1, v3, v4}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setTimestamp(J)V
.line 465
new-instance v3, Lcom/tencent/liteav/videobase/frame/FrameMetaData;
invoke-direct {v3}, Lcom/tencent/liteav/videobase/frame/FrameMetaData;-><init>()V
.line 466
invoke-virtual {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->isFrontCamera()Z
move-result v6
const/4 v7, 0x0
const/4 v8, 0x0
invoke-virtual {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->isFrontCamera()Z
move-result v9
.line 467
invoke-virtual {v1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getWidth()I
move-result v10
invoke-virtual {v1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getHeight()I
move-result v11
move-object v5, v3
.line 466
invoke-virtual/range {v5 .. v11}, Lcom/tencent/liteav/videobase/frame/FrameMetaData;->setCaptureMetaData(ZZIZII)V
.line 468
invoke-virtual {v1, v3}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setMetaData(Lcom/tencent/liteav/videobase/frame/FrameMetaData;)V
.line 469
invoke-virtual {v1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getGLContext()Ljava/lang/Object;
move-result-object v3
if-nez v3, :cond_b7
.line 470
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
invoke-virtual {v3}, Lcom/tencent/liteav/videobase/egl/EGLCore;->getEglContext()Ljava/lang/Object;
move-result-object v3
invoke-virtual {v1, v3}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->setGLContext(Ljava/lang/Object;)V
.line 472
:cond_b7
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v3, v2, v1}, Lcom/tencent/liteav/videoproducer/capture/at;->onFrameAvailable(Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface;Lcom/tencent/liteav/videobase/frame/PixelFrame;)V
.line 473
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/frame/l$b;->release()V
.line 474
invoke-virtual {v1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->release()V
return-void
.line 432
:cond_c3
:goto_c3
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "onCaptureFrameAvailable mGLTexturePool:"
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mGLTexturePool:Lcom/tencent/liteav/videobase/frame/e;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v2, " mTextureHolderPool:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
.registers 3
.line 580
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz v0, :cond_d
const-string p1, "CameraCaptureSingleton"
const-string v0, "camera is opened, you should Stop it first."
.line 581
invoke-static {p1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x1
return p1
.line 584
:cond_d
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCameraInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
move-result p1
if-eqz p1, :cond_17
.line 586
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->handleCameraStartSuccess()V
goto :goto_1a
.line 588
:cond_17
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->handleCameraStartFailed()V
:goto_1a
return p1
.end method
.method private openCameraInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
.registers 5
.line 594
invoke-virtual {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->makeCurrent()Z
move-result v0
const-string v1, "CameraCaptureSingleton"
if-nez v0, :cond_f
const-string p1, "openCameraInternal: set opengl context fail."
.line 595
invoke-static {v1, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x0
return p1
.line 598
:cond_f
invoke-static {}, Lcom/tencent/liteav/videobase/utils/OpenGlUtils;->generateTextureOES()I
move-result v0
iput v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
.line 599
new-instance v0, Landroid/graphics/SurfaceTexture;
iget v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mOESTextureId:I
invoke-direct {v0, v2}, Landroid/graphics/SurfaceTexture;-><init>(I)V
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
.line 600
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v0
invoke-direct {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->createCameraController(Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;)Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
move-result-object v0
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
.line 601
iget-object v0, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
if-nez v0, :cond_4d
.line 602
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExpectFrontCamera:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
iput-object v0, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
.line 603
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "openCameraInternal frontCamera not set, use expect front camera:"
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 607
:cond_4d
iput-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
.line 609
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableTapToFocus:Z
invoke-virtual {p1, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->enableTapToFocus(Z)V
.line 610
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExposureCompensation:F
invoke-virtual {p1, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->setExposureCompensation(F)V
.line 611
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mZoomPercent:F
invoke-virtual {p1, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->setZoom(F)V
.line 613
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableTapToFocus:Z
invoke-virtual {p1, v0}, Lcom/tencent/liteav/videoproducer/capture/at;->onCameraTouchEnable(Z)V
.line 614
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableZoom:Z
invoke-virtual {p1, v0}, Lcom/tencent/liteav/videoproducer/capture/at;->onCameraZoomEnable(Z)V
.line 615
iget-object p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;
invoke-virtual {p1, v0, v1, p0}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->startCapture(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;Landroid/graphics/SurfaceTexture;Lcom/tencent/liteav/videoproducer/capture/CameraEventCallback;)Z
move-result p1
return p1
.end method
.method private setZoomInternal(F)V
.registers 6
.line 324
invoke-static {p1}, Ljava/lang/String;->valueOf(F)Ljava/lang/String;
move-result-object v0
const-string v1, "setZoomInternal "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 325
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mZoomPercent:F
sub-float/2addr v0, p1
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v0
float-to-double v0, v0
const-wide v2, 0x3f50624dd2f1a9fcL # 0.001
cmpg-double v0, v0, v2
if-gez v0, :cond_21
return-void
.line 328
:cond_21
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraController:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;
if-eqz v0, :cond_2a
.line 329
iput p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mZoomPercent:F
.line 330
invoke-virtual {v0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;->setZoom(F)V
:cond_2a
return-void
.end method
.method private stopInternal()V
.registers 3
.line 542
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "stop listener count: "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 543
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v0
if-nez v0, :cond_30
.line 544
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->closeCamera()V
const/4 v0, 0x0
.line 545
iput v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mZoomPercent:F
const/4 v0, 0x1
.line 546
iput-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
const/4 v0, 0x0
.line 547
iput-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
.line 548
invoke-virtual {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->uninitGLComponents()V
:cond_30
return-void
.end method
.method private updateParamsInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
.registers 5
.line 780
iget-object v0, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
const-string v1, "CameraCaptureSingleton"
if-nez v0, :cond_21
.line 781
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget-object v0, v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
iput-object v0, p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
.line 782
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "params not set frontCamera, use mCurrentCaptureParams frontCamera:"
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
iget-object v2, v2, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 786
:cond_21
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->isNeedRestartCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
move-result v0
if-eqz v0, :cond_37
.line 787
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v2, "reopen camera params: "
invoke-virtual {v2, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 788
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->updateCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
:cond_37
return-void
.end method
# virtual methods
.method public enableCameraZoom(Z)V
.registers 4
.line 285
invoke-static {p1}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v0
const-string v1, "enableCameraZoom "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 286
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/r;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public enableMockCamera(Z)V
.registers 3
.line 339
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
if-eqz p1, :cond_7
sget-object p1, Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;->a:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
goto :goto_8
:cond_7
const/4 p1, 0x0
.line 1143
:goto_8
iput-object p1, v0, Lcom/tencent/liteav/videoproducer/capture/ai;->b:Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
return-void
.end method
.method public enableTapToFocus(Z)V
.registers 4
.line 248
invoke-static {p1}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v0
const-string v1, "enableTapToFocus "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 249
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/p;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public getCameraAPIType()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
.registers 2
.line 775
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraSupervisor:Lcom/tencent/liteav/videoproducer/capture/ai;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/ai;->a()Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface$a;
move-result-object v0
return-object v0
.end method
.method public getCameraRotation()Lcom/tencent/liteav/videobase/utils/Rotation;
.registers 2
.line 395
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCameraRotation:Lcom/tencent/liteav/videobase/utils/Rotation;
return-object v0
.end method
.method public getMaxZoomLevel()I
.registers 2
.line 297
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mMaxZoomLevel:I
return v0
.end method
.method public isAutoFocusEnabled()Z
.registers 2
.line 217
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEnableTapToFocus:Z
if-nez v0, :cond_6
const/4 v0, 0x1
return v0
:cond_6
const/4 v0, 0x0
return v0
.end method
.method public isCameraAutoFocusFaceModeSupported()Z
.registers 2
.line 227
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsCameraAutoFocusFaceModeSupported:Z
return v0
.end method
.method public isCameraFocusPositionInPreviewSupported()Z
.registers 2
.line 222
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsFocusPositionInPreviewSupported:Z
return v0
.end method
.method public isFrontCamera()Z
.registers 3
.line 198
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mCurrentCaptureParams:Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
if-eqz v0, :cond_f
.line 199
iget-object v1, v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
if-eqz v1, :cond_f
.line 200
iget-object v0, v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;->a:Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
return v0
:cond_f
const/4 v0, 0x0
return v0
.end method
.method public isTorchSupported()Z
.registers 2
.line 212
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsTorchSupported:Z
return v0
.end method
.method public isZoomSupported()Z
.registers 2
.line 207
iget-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mIsZoomSupported:Z
return v0
.end method
.method protected makeCurrent()Z
.registers 6
.line 805
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
const-string v1, "CameraCaptureSingleton"
const/4 v2, 0x0
if-nez v0, :cond_17
.line 806
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const-string v3, "makeCurrentNull"
invoke-virtual {v0, v3}, Lcom/tencent/liteav/base/b/b;->a(Ljava/lang/String;)Lcom/tencent/liteav/base/b/a;
move-result-object v0
new-array v3, v2, [Ljava/lang/Object;
const-string v4, "makeCurrent on mEGLCore is null"
invoke-static {v0, v1, v4, v3}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Lcom/tencent/liteav/base/b/a;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return v2
.line 811
:cond_17
:try_start_17
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/egl/EGLCore;->makeCurrent()V
:try_end_1a
.catch Lcom/tencent/liteav/videobase/egl/f; {:try_start_17 .. :try_end_1a} :catch_1c
const/4 v0, 0x1
return v0
:catch_1c
move-exception v0
.line 813
iget-object v3, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const-string v4, "makeCurrentError"
invoke-virtual {v3, v4}, Lcom/tencent/liteav/base/b/b;->a(Ljava/lang/String;)Lcom/tencent/liteav/base/b/a;
move-result-object v3
const-string v4, "make current failed."
invoke-static {v3, v1, v4, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Lcom/tencent/liteav/base/b/a;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 814
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/at;->onCaptureError()V
return v2
.end method
.method public onCameraError(Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;)V
.registers 2
.line 401
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/e;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CameraControllerInterface;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public onFrameAvailable(Landroid/graphics/SurfaceTexture;)V
.registers 2
.line 417
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/f;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Landroid/graphics/SurfaceTexture;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public pause()V
.registers 3
const-string v0, "CameraCaptureSingleton"
const-string v1, "pause"
.line 707
invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 708
invoke-static {p0}, Lcom/tencent/liteav/videoproducer/capture/i;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Ljava/lang/Runnable;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method protected pauseInternal()V
.registers 4
.line 712
iget v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
.line 713
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v0
.line 714
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "pauseInternal paused cnt= "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " , listener cnt="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "CameraCaptureSingleton"
invoke-static {v2, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 716
iget v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
if-le v1, v0, :cond_2f
.line 717
iput v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
.line 719
:cond_2f
iget v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
if-eq v0, v1, :cond_39
const-string v0, "pauseInternal listeners is not zero."
.line 720
invoke-static {v2, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 723
:cond_39
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->closeCamera()V
return-void
.end method
.method public removeListener(Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;)V
.registers 2
.line 152
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/a;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public resume()V
.registers 3
const-string v0, "CameraCaptureSingleton"
const-string v1, "resume"
.line 756
invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 757
invoke-static {p0}, Lcom/tencent/liteav/videoproducer/capture/j;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Ljava/lang/Runnable;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method protected resumeInternal(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
.registers 7
const/4 v0, 0x2
new-array v0, v0, [Ljava/lang/Object;
.line 793
iget v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const/4 v2, 0x0
aput-object v1, v0, v2
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
.line 794
invoke-virtual {v1}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const/4 v3, 0x1
aput-object v1, v0, v3
const-string v1, "CameraCaptureSingleton"
const-string v4, "resumeInternal pausedCount %d, listeners size = %d"
.line 793
invoke-static {v1, v4, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 795
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mListenerManager:Lcom/tencent/liteav/videoproducer/capture/at;
invoke-virtual {v0}, Lcom/tencent/liteav/videoproducer/capture/at;->a()I
move-result v0
iget v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
if-ne v0, v1, :cond_2d
.line 796
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
.line 798
:cond_2d
iget p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
sub-int/2addr p1, v3
iput p1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
if-gez p1, :cond_36
.line 800
iput v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mPausedCount:I
:cond_36
return-void
.end method
.method protected runInGLThread(Ljava/lang/Runnable;)V
.registers 3
.line 828
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
invoke-virtual {v0, p1}, Lcom/tencent/liteav/base/util/l;->a(Ljava/lang/Runnable;)V
return-void
.end method
.method public setCameraAPIType(I)V
.registers 4
.line 367
invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v0
const-string v1, "setCameraAPIType "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 368
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/d;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;I)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public setCaptureCloudConfig(Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;)V
.registers 2
.line 166
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/m;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CaptureCloudConfig;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public setExposureCompensation(F)V
.registers 4
.line 351
invoke-static {p1}, Ljava/lang/String;->valueOf(F)Ljava/lang/String;
move-result-object v0
const-string v1, "setExposureCompensation "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 352
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/c;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;F)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public setPercentOfMaxZoomLevel(F)V
.registers 2
.line 320
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/b;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;F)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public setServerConfig(Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;)V
.registers 2
.line 156
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/l;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/producer/ServerVideoProducerConfig;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public setZoomLevel(F)V
.registers 4
.line 305
invoke-static {p1}, Ljava/lang/String;->valueOf(F)Ljava/lang/String;
move-result-object v0
const-string v1, "setZoomLevel "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 306
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/s;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;F)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public start(Ljava/lang/Object;Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureParams;Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;)V
.registers 5
.line 495
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v0, "Start "
invoke-virtual {v0, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string v0, "CameraCaptureSingleton"
invoke-static {v0, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 496
new-instance p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
check-cast p2, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
invoke-direct {p1, p2}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;-><init>(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
.line 497
invoke-static {p0, p3, p1}, Lcom/tencent/liteav/videoproducer/capture/g;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureSourceListener;Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public startAutoFocusAtPosition(II)V
.registers 5
.line 269
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "startAutoFocusAtPosition "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 270
invoke-static {p0, p1, p2}, Lcom/tencent/liteav/videoproducer/capture/q;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;II)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public stopAndWaitDone(I)V
.registers 6
.line 534
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
invoke-static {p0}, Lcom/tencent/liteav/videoproducer/capture/h;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Ljava/lang/Runnable;
move-result-object v1
int-to-long v2, p1
invoke-virtual {v0, v1, v2, v3}, Lcom/tencent/liteav/base/util/l;->a(Ljava/lang/Runnable;J)V
return-void
.end method
.method public switchCamera(Z)V
.registers 4
.line 181
invoke-static {p1}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v0
const-string v1, "switchCamera "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 182
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mExpectFrontCamera:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
.line 183
invoke-static {p0}, Lcom/tencent/liteav/videoproducer/capture/n;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method public turnOnTorch(Z)V
.registers 4
.line 235
invoke-static {p1}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v0
const-string v1, "turnOnTorch "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "CameraCaptureSingleton"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 236
invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/o;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Z)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method
.method protected uninitGLComponents()V
.registers 6
.line 553
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
if-nez v0, :cond_5
return-void
.line 556
:cond_5
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
const/4 v1, 0x0
if-eqz v0, :cond_f
.line 557
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/frame/l;->b()V
.line 558
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mTextureHolderPool:Lcom/tencent/liteav/videobase/frame/l;
.line 561
:cond_f
:try_start_f
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/egl/EGLCore;->makeCurrent()V
.line 562
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mGLTexturePool:Lcom/tencent/liteav/videobase/frame/e;
if-eqz v0, :cond_2e
.line 563
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/frame/e;->b()V
.line 564
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mGLTexturePool:Lcom/tencent/liteav/videobase/frame/e;
:try_end_1d
.catch Lcom/tencent/liteav/videobase/egl/f; {:try_start_f .. :try_end_1d} :catch_1e
goto :goto_2e
:catch_1e
move-exception v0
.line 567
iget-object v2, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mThrottlers:Lcom/tencent/liteav/base/b/b;
const-string v3, "uninitGL"
invoke-virtual {v2, v3}, Lcom/tencent/liteav/base/b/b;->a(Ljava/lang/String;)Lcom/tencent/liteav/base/b/a;
move-result-object v2
const-string v3, "CameraCaptureSingleton"
const-string v4, "EGLCore destroy failed."
invoke-static {v2, v3, v4, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Lcom/tencent/liteav/base/b/a;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 569
:cond_2e
:goto_2e
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSharedContext:Ljava/lang/Object;
.line 570
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
invoke-static {v0}, Lcom/tencent/liteav/videobase/egl/EGLCore;->destroy(Lcom/tencent/liteav/videobase/egl/EGLCore;)V
.line 571
iput-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mEGLCore:Lcom/tencent/liteav/videobase/egl/EGLCore;
.line 572
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mRestartCameraRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Lcom/tencent/liteav/base/util/l;->c(Ljava/lang/Runnable;)V
.line 573
iget-object v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSequenceTaskRunner:Lcom/tencent/liteav/base/util/l;
iget-object v1, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mSwitchToCamera1Runnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Lcom/tencent/liteav/base/util/l;->c(Ljava/lang/Runnable;)V
return-void
.end method
.method protected updateCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
.registers 3
.line 701
invoke-direct {p0}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->closeCamera()V
const/4 v0, 0x1
.line 702
iput-boolean v0, p0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->mNeedNotifyStartFinish:Z
.line 703
invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->openCamera(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Z
return-void
.end method
.method public updateParams(Lcom/tencent/liteav/videoproducer/capture/CaptureSourceInterface$CaptureParams;)V
.registers 4
.line 764
new-instance v0, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
check-cast p1, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;
invoke-direct {v0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;-><init>(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)V
const-string p1, "CameraCaptureSingleton"
const-string v1, "updateParams"
.line 765
invoke-static {p1, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 766
invoke-static {p0, v0}, Lcom/tencent/liteav/videoproducer/capture/k;->a(Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;Lcom/tencent/liteav/videoproducer/capture/CameraCaptureParams;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videoproducer/capture/CameraCaptureSingleton;->runInGLThread(Ljava/lang/Runnable;)V
return-void
.end method