CameraCapturer.smali
.class abstract Lorg/webrtc/ali/CameraCapturer;
.super Ljava/lang/Object;
.source "CameraCapturer.java"
# interfaces
.implements Lorg/webrtc/ali/CameraVideoCapturer;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;,
Lorg/webrtc/ali/CameraCapturer$SwitchState;
}
.end annotation
# static fields
.field private static final MAX_OPEN_CAMERA_ATTEMPTS:I
.field private static final OPEN_CAMERA_DELAY_MS:I
.field private static final OPEN_CAMERA_TIMEOUT:I
.field private static final TAG:Ljava/lang/String; = "CameraCapturer"
# instance fields
.field private applicationContext:Landroid/content/Context;
.field private final cameraEnumerator:Lorg/webrtc/ali/CameraEnumerator;
.field private cameraName:Ljava/lang/String;
.field private final cameraSessionEventsHandler:Lorg/webrtc/ali/CameraSession$Events;
.field private cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.field private cameraThreadHandler:Landroid/os/Handler;
.field private capturerObserver:Lorg/webrtc/ali/VideoCapturer$CapturerObserver;
.field private final createSessionCallback:Lorg/webrtc/ali/CameraSession$CreateSessionCallback;
.field private currentSession:Lorg/webrtc/ali/CameraSession;
.field private final eventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraEventsHandler;
.field private firstFrameObserved:Z
.field private framerate:I
.field private height:I
.field private mediaRecorderEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.field private mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
.field private openAttemptsRemaining:I
.field private final openCameraTimeoutRunnable:Ljava/lang/Runnable;
.field private sessionOpening:Z
.field private final stateLock:Ljava/lang/Object;
.field private surfaceHelper:Lorg/webrtc/ali/SurfaceTextureHelper;
.field private switchEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.field private switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
.field private final uiThreadHandler:Landroid/os/Handler;
.field private width:I
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, 0x156c
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lorg/webrtc/ali/CameraCapturer;->MAX_OPEN_CAMERA_ATTEMPTS:I
const v0, 0x149b
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lorg/webrtc/ali/CameraCapturer;->OPEN_CAMERA_DELAY_MS:I
const v0, 0x327f
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lorg/webrtc/ali/CameraCapturer;->OPEN_CAMERA_TIMEOUT:I
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$CameraEventsHandler;Lorg/webrtc/ali/CameraEnumerator;)V
.registers 8
.param p1, "cameraName" # Ljava/lang/String;
.param p2, "eventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$CameraEventsHandler;
.param p3, "cameraEnumerator" # Lorg/webrtc/ali/CameraEnumerator;
.line 251
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 43
new-instance v0, Lorg/webrtc/ali/CameraCapturer$1;
invoke-direct {v0, p0}, Lorg/webrtc/ali/CameraCapturer$1;-><init>(Lorg/webrtc/ali/CameraCapturer;)V
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->createSessionCallback:Lorg/webrtc/ali/CameraSession$CreateSessionCallback;
.line 128
new-instance v0, Lorg/webrtc/ali/CameraCapturer$2;
invoke-direct {v0, p0}, Lorg/webrtc/ali/CameraCapturer$2;-><init>(Lorg/webrtc/ali/CameraCapturer;)V
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraSessionEventsHandler:Lorg/webrtc/ali/CameraSession$Events;
.line 218
new-instance v0, Lorg/webrtc/ali/CameraCapturer$3;
invoke-direct {v0, p0}, Lorg/webrtc/ali/CameraCapturer$3;-><init>(Lorg/webrtc/ali/CameraCapturer;)V
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->openCameraTimeoutRunnable:Ljava/lang/Runnable;
.line 232
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
.line 240
sget-object v0, Lorg/webrtc/ali/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/ali/CameraCapturer$SwitchState;
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
.line 247
sget-object v0, Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;->IDLE:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
.line 252
if-nez p2, :cond_2f
.line 253
new-instance v0, Lorg/webrtc/ali/CameraCapturer$4;
invoke-direct {v0, p0}, Lorg/webrtc/ali/CameraCapturer$4;-><init>(Lorg/webrtc/ali/CameraCapturer;)V
move-object p2, v0
.line 269
:cond_2f
iput-object p2, p0, Lorg/webrtc/ali/CameraCapturer;->eventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraEventsHandler;
.line 270
iput-object p3, p0, Lorg/webrtc/ali/CameraCapturer;->cameraEnumerator:Lorg/webrtc/ali/CameraEnumerator;
.line 271
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
.line 272
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->uiThreadHandler:Landroid/os/Handler;
.line 274
invoke-interface {p3}, Lorg/webrtc/ali/CameraEnumerator;->getDeviceNames()[Ljava/lang/String;
move-result-object v0
.line 276
.local v0, "deviceNames":[Ljava/lang/String;
array-length v1, v0
if-eqz v1, :cond_72
.line 279
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
iget-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
invoke-interface {v1, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_54
.line 283
return-void
.line 280
:cond_54
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Camera name "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, " does not match any known camera device."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 277
:cond_72
new-instance v1, Ljava/lang/RuntimeException;
const-string v2, "No cameras attached."
invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method static synthetic access$000(Lorg/webrtc/ali/CameraCapturer;)V
.registers 1
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
invoke-direct {p0}, Lorg/webrtc/ali/CameraCapturer;->checkIsOnCameraThread()V
return-void
.end method
.method static synthetic access$100(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraCapturer$SwitchState;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
return-object v0
.end method
.method static synthetic access$1000(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/SurfaceTextureHelper;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->surfaceHelper:Lorg/webrtc/ali/SurfaceTextureHelper;
return-object v0
.end method
.method static synthetic access$102(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraCapturer$SwitchState;)Lorg/webrtc/ali/CameraCapturer$SwitchState;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraCapturer$SwitchState;
.line 20
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
return-object p1
.end method
.method static synthetic access$1100(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraVideoCapturer$CameraEventsHandler;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->eventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraEventsHandler;
return-object v0
.end method
.method static synthetic access$1200(Lorg/webrtc/ali/CameraCapturer;)Z
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-boolean v0, p0, Lorg/webrtc/ali/CameraCapturer;->firstFrameObserved:Z
return v0
.end method
.method static synthetic access$1202(Lorg/webrtc/ali/CameraCapturer;Z)Z
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Z
.line 20
iput-boolean p1, p0, Lorg/webrtc/ali/CameraCapturer;->firstFrameObserved:Z
return p1
.end method
.method static synthetic access$1300(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->switchEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
return-object v0
.end method
.method static synthetic access$1302(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.line 20
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->switchEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
return-object p1
.end method
.method static synthetic access$1400(Lorg/webrtc/ali/CameraCapturer;)Ljava/lang/String;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$1500(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraEnumerator;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraEnumerator:Lorg/webrtc/ali/CameraEnumerator;
return-object v0
.end method
.method static synthetic access$1600(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.line 20
invoke-direct {p0, p1}, Lorg/webrtc/ali/CameraCapturer;->switchCameraInternal(Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
return-void
.end method
.method static synthetic access$1700(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
return-object v0
.end method
.method static synthetic access$1702(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 20
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
return-object p1
.end method
.method static synthetic access$1800(Lorg/webrtc/ali/CameraCapturer;)I
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget v0, p0, Lorg/webrtc/ali/CameraCapturer;->openAttemptsRemaining:I
return v0
.end method
.method static synthetic access$1810(Lorg/webrtc/ali/CameraCapturer;)I
.registers 3
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget v0, p0, Lorg/webrtc/ali/CameraCapturer;->openAttemptsRemaining:I
add-int/lit8 v1, v0, -0x1
iput v1, p0, Lorg/webrtc/ali/CameraCapturer;->openAttemptsRemaining:I
return v0
.end method
.method static synthetic access$1900(Lorg/webrtc/ali/CameraCapturer;ILandroid/media/MediaRecorder;)V
.registers 3
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # I
.param p2, "x2" # Landroid/media/MediaRecorder;
.line 20
invoke-direct {p0, p1, p2}, Lorg/webrtc/ali/CameraCapturer;->createSessionInternal(ILandroid/media/MediaRecorder;)V
return-void
.end method
.method static synthetic access$200(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
return-object v0
.end method
.method static synthetic access$2000(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraSession$CreateSessionCallback;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->createSessionCallback:Lorg/webrtc/ali/CameraSession$CreateSessionCallback;
return-object v0
.end method
.method static synthetic access$202(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;)Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
.line 20
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
return-object p1
.end method
.method static synthetic access$2100(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraSession$Events;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraSessionEventsHandler:Lorg/webrtc/ali/CameraSession$Events;
return-object v0
.end method
.method static synthetic access$2200(Lorg/webrtc/ali/CameraCapturer;)Landroid/content/Context;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->applicationContext:Landroid/content/Context;
return-object v0
.end method
.method static synthetic access$2300(Lorg/webrtc/ali/CameraCapturer;)I
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget v0, p0, Lorg/webrtc/ali/CameraCapturer;->width:I
return v0
.end method
.method static synthetic access$2400(Lorg/webrtc/ali/CameraCapturer;)I
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget v0, p0, Lorg/webrtc/ali/CameraCapturer;->height:I
return v0
.end method
.method static synthetic access$2500(Lorg/webrtc/ali/CameraCapturer;)I
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget v0, p0, Lorg/webrtc/ali/CameraCapturer;->framerate:I
return v0
.end method
.method static synthetic access$2600(Lorg/webrtc/ali/CameraCapturer;Landroid/media/MediaRecorder;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 3
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Landroid/media/MediaRecorder;
.param p2, "x2" # Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 20
invoke-direct {p0, p1, p2}, Lorg/webrtc/ali/CameraCapturer;->updateMediaRecorderInternal(Landroid/media/MediaRecorder;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
return-void
.end method
.method static synthetic access$300(Lorg/webrtc/ali/CameraCapturer;)Ljava/lang/Runnable;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->openCameraTimeoutRunnable:Ljava/lang/Runnable;
return-object v0
.end method
.method static synthetic access$400(Lorg/webrtc/ali/CameraCapturer;)Landroid/os/Handler;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->uiThreadHandler:Landroid/os/Handler;
return-object v0
.end method
.method static synthetic access$500(Lorg/webrtc/ali/CameraCapturer;)Ljava/lang/Object;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
return-object v0
.end method
.method static synthetic access$600(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/VideoCapturer$CapturerObserver;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->capturerObserver:Lorg/webrtc/ali/VideoCapturer$CapturerObserver;
return-object v0
.end method
.method static synthetic access$702(Lorg/webrtc/ali/CameraCapturer;Z)Z
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Z
.line 20
iput-boolean p1, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
return p1
.end method
.method static synthetic access$800(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraSession;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
return-object v0
.end method
.method static synthetic access$802(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraSession;)Lorg/webrtc/ali/CameraSession;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraSession;
.line 20
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
return-object p1
.end method
.method static synthetic access$900(Lorg/webrtc/ali/CameraCapturer;)Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.line 20
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
return-object v0
.end method
.method static synthetic access$902(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.registers 2
.param p0, "x0" # Lorg/webrtc/ali/CameraCapturer;
.param p1, "x1" # Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.line 20
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
return-object p1
.end method
.method private checkIsOnCameraThread()V
.registers 3
.line 557
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
invoke-virtual {v1}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v1
if-ne v0, v1, :cond_11
.line 561
return-void
.line 558
:cond_11
const-string v0, "CameraCapturer"
const-string v1, "Check is on camera thread failed."
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 559
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Not on camera thread."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private createSessionInternal(ILandroid/media/MediaRecorder;)V
.registers 7
.param p1, "delayMs" # I
.param p2, "mediaRecorder" # Landroid/media/MediaRecorder;
.line 319
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->uiThreadHandler:Landroid/os/Handler;
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->openCameraTimeoutRunnable:Ljava/lang/Runnable;
add-int/lit16 v2, p1, 0x2710
int-to-long v2, v2
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 320
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/ali/CameraCapturer$5;
invoke-direct {v1, p0, p2}, Lorg/webrtc/ali/CameraCapturer$5;-><init>(Lorg/webrtc/ali/CameraCapturer;Landroid/media/MediaRecorder;)V
int-to-long v2, p1
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 327
return-void
.end method
.method private reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 4
.param p1, "error" # Ljava/lang/String;
.param p2, "switchEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.line 431
const-string v0, "CameraCapturer"
invoke-static {v0, p1}, Lorg/webrtc/ali/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 432
if-eqz p2, :cond_a
.line 433
invoke-interface {p2, p1}, Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;->onCameraSwitchError(Ljava/lang/String;)V
.line 435
:cond_a
return-void
.end method
.method private reportUpdateMediaRecorderError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 4
.param p1, "error" # Ljava/lang/String;
.param p2, "mediaRecoderEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 495
invoke-direct {p0}, Lorg/webrtc/ali/CameraCapturer;->checkIsOnCameraThread()V
.line 496
const-string v0, "CameraCapturer"
invoke-static {v0, p1}, Lorg/webrtc/ali/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 497
if-eqz p2, :cond_d
.line 498
invoke-interface {p2, p1}, Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;->onMediaRecorderError(Ljava/lang/String;)V
.line 500
:cond_d
return-void
.end method
.method private switchCameraInternal(Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 9
.param p1, "switchEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.line 438
const-string v0, "CameraCapturer"
const-string v1, "switchCamera internal"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 440
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraEnumerator:Lorg/webrtc/ali/CameraEnumerator;
invoke-interface {v0}, Lorg/webrtc/ali/CameraEnumerator;->getDeviceNames()[Ljava/lang/String;
move-result-object v0
.line 442
.local v0, "deviceNames":[Ljava/lang/String;
array-length v1, v0
const/4 v2, 0x2
if-ge v1, v2, :cond_19
.line 443
if-eqz p1, :cond_18
.line 444
const-string v1, "No camera to switch to."
invoke-interface {p1, v1}, Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;->onCameraSwitchError(Ljava/lang/String;)V
.line 446
:cond_18
return-void
.line 449
:cond_19
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v1
.line 450
:try_start_1c
iget-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
sget-object v3, Lorg/webrtc/ali/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/ali/CameraCapturer$SwitchState;
if-eq v2, v3, :cond_29
.line 451
const-string v2, "Camera switch already in progress."
invoke-direct {p0, v2, p1}, Lorg/webrtc/ali/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.line 452
monitor-exit v1
return-void
.line 454
:cond_29
iget-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
sget-object v3, Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;->IDLE:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
if-eq v2, v3, :cond_36
.line 455
const-string v2, "switchCamera: media recording is active"
invoke-direct {p0, v2, p1}, Lorg/webrtc/ali/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.line 456
monitor-exit v1
return-void
.line 458
:cond_36
iget-boolean v2, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
if-nez v2, :cond_45
iget-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
if-nez v2, :cond_45
.line 459
const-string v2, "switchCamera: camera is not running."
invoke-direct {p0, v2, p1}, Lorg/webrtc/ali/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.line 460
monitor-exit v1
return-void
.line 463
:cond_45
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->switchEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.line 464
iget-boolean v2, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
if-eqz v2, :cond_51
.line 465
sget-object v2, Lorg/webrtc/ali/CameraCapturer$SwitchState;->PENDING:Lorg/webrtc/ali/CameraCapturer$SwitchState;
iput-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
.line 466
monitor-exit v1
return-void
.line 468
:cond_51
sget-object v2, Lorg/webrtc/ali/CameraCapturer$SwitchState;->IN_PROGRESS:Lorg/webrtc/ali/CameraCapturer$SwitchState;
iput-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
.line 471
const-string v2, "CameraCapturer"
const-string v3, "switchCamera: Stopping session"
invoke-static {v2, v3}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 472
iget-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
invoke-virtual {v2}, Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;->release()V
.line 473
const/4 v2, 0x0
iput-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.line 474
iget-object v3, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
.line 475
.local v3, "oldSession":Lorg/webrtc/ali/CameraSession;
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v5, Lorg/webrtc/ali/CameraCapturer$10;
invoke-direct {v5, p0, v3}, Lorg/webrtc/ali/CameraCapturer$10;-><init>(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraSession;)V
invoke-virtual {v4, v5}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 481
iput-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
.line 483
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v4
iget-object v5, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
invoke-interface {v4, v5}, Ljava/util/List;->indexOf(Ljava/lang/Object;)I
move-result v4
.line 484
.local v4, "cameraNameIndex":I
add-int/lit8 v5, v4, 0x1
array-length v6, v0
rem-int/2addr v5, v6
aget-object v5, v0, v5
iput-object v5, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
.line 486
const/4 v5, 0x1
iput-boolean v5, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
.line 487
iput v5, p0, Lorg/webrtc/ali/CameraCapturer;->openAttemptsRemaining:I
.line 488
const/4 v5, 0x0
invoke-direct {p0, v5, v2}, Lorg/webrtc/ali/CameraCapturer;->createSessionInternal(ILandroid/media/MediaRecorder;)V
.line 489
.end local v3 # "oldSession":Lorg/webrtc/ali/CameraSession;
.end local v4 # "cameraNameIndex":I
monitor-exit v1
:try_end_8e
.catchall {:try_start_1c .. :try_end_8e} :catchall_96
.line 490
const-string v1, "CameraCapturer"
const-string v2, "switchCamera done"
invoke-static {v1, v2}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 491
return-void
.line 489
:catchall_96
move-exception v2
:try_start_97
monitor-exit v1
:try_end_98
.catchall {:try_start_97 .. :try_end_98} :catchall_96
throw v2
.end method
.method private updateMediaRecorderInternal(Landroid/media/MediaRecorder;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 11
.param p1, "mediaRecorder" # Landroid/media/MediaRecorder;
.param p2, "mediaRecoderEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 504
invoke-direct {p0}, Lorg/webrtc/ali/CameraCapturer;->checkIsOnCameraThread()V
.line 505
const/4 v0, 0x0
const/4 v1, 0x1
if-eqz p1, :cond_9
const/4 v2, 0x1
goto :goto_a
:cond_9
const/4 v2, 0x0
.line 506
.local v2, "addMediaRecorder":Z
:goto_a
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "updateMediaRecoderInternal internal. State: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v4, ". Switch state: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v4, ". Add MediaRecorder: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
const-string v4, "CameraCapturer"
invoke-static {v4, v3}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 510
iget-object v3, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v3
.line 511
if-eqz v2, :cond_42
:try_start_39
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
sget-object v5, Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;->IDLE:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
if-ne v4, v5, :cond_4a
goto :goto_42
.line 552
:catchall_40
move-exception v0
goto :goto_ac
.line 511
:cond_42
:goto_42
if-nez v2, :cond_51
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
sget-object v5, Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;->ACTIVE:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
if-eq v4, v5, :cond_51
.line 513
:cond_4a
const-string v0, "Incorrect state for MediaRecorder update."
invoke-direct {p0, v0, p2}, Lorg/webrtc/ali/CameraCapturer;->reportUpdateMediaRecorderError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.line 515
monitor-exit v3
return-void
.line 517
:cond_51
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->switchState:Lorg/webrtc/ali/CameraCapturer$SwitchState;
sget-object v5, Lorg/webrtc/ali/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/ali/CameraCapturer$SwitchState;
if-eq v4, v5, :cond_5e
.line 518
const-string v0, "MediaRecorder update while camera is switching."
invoke-direct {p0, v0, p2}, Lorg/webrtc/ali/CameraCapturer;->reportUpdateMediaRecorderError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.line 520
monitor-exit v3
return-void
.line 522
:cond_5e
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
if-nez v4, :cond_69
.line 523
const-string v0, "MediaRecorder update while camera is closed."
invoke-direct {p0, v0, p2}, Lorg/webrtc/ali/CameraCapturer;->reportUpdateMediaRecorderError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.line 525
monitor-exit v3
return-void
.line 527
:cond_69
iget-boolean v4, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
if-eqz v4, :cond_74
.line 528
const-string v0, "MediaRecorder update while camera is still opening."
invoke-direct {p0, v0, p2}, Lorg/webrtc/ali/CameraCapturer;->reportUpdateMediaRecorderError(Ljava/lang/String;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.line 530
monitor-exit v3
return-void
.line 533
:cond_74
iput-object p2, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderEventsHandler:Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 534
if-eqz v2, :cond_7b
sget-object v4, Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;->IDLE_TO_ACTIVE:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
goto :goto_7d
:cond_7b
sget-object v4, Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;->ACTIVE_TO_IDLE:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
:goto_7d
iput-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->mediaRecorderState:Lorg/webrtc/ali/CameraCapturer$MediaRecorderState;
.line 537
const-string v4, "CameraCapturer"
const-string v5, "updateMediaRecoder: Stopping session"
invoke-static {v4, v5}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 538
iget-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
invoke-virtual {v4}, Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;->release()V
.line 539
const/4 v4, 0x0
iput-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.line 540
iget-object v5, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
.line 541
.local v5, "oldSession":Lorg/webrtc/ali/CameraSession;
iget-object v6, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v7, Lorg/webrtc/ali/CameraCapturer$11;
invoke-direct {v7, p0, v5}, Lorg/webrtc/ali/CameraCapturer$11;-><init>(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraSession;)V
invoke-virtual {v6, v7}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 547
iput-object v4, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
.line 549
iput-boolean v1, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
.line 550
iput v1, p0, Lorg/webrtc/ali/CameraCapturer;->openAttemptsRemaining:I
.line 551
invoke-direct {p0, v0, p1}, Lorg/webrtc/ali/CameraCapturer;->createSessionInternal(ILandroid/media/MediaRecorder;)V
.line 552
.end local v5 # "oldSession":Lorg/webrtc/ali/CameraSession;
monitor-exit v3
:try_end_a4
.catchall {:try_start_39 .. :try_end_a4} :catchall_40
.line 553
const-string v0, "CameraCapturer"
const-string v1, "updateMediaRecoderInternal done"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 554
return-void
.line 552
:goto_ac
:try_start_ac
monitor-exit v3
:try_end_ad
.catchall {:try_start_ac .. :try_end_ad} :catchall_40
throw v0
.end method
# virtual methods
.method public addMediaRecorderToCamera(Landroid/media/MediaRecorder;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 5
.param p1, "mediaRecorder" # Landroid/media/MediaRecorder;
.param p2, "mediaRecoderEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 389
const-string v0, "CameraCapturer"
const-string v1, "addMediaRecorderToCamera"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 390
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/ali/CameraCapturer$8;
invoke-direct {v1, p0, p1, p2}, Lorg/webrtc/ali/CameraCapturer$8;-><init>(Lorg/webrtc/ali/CameraCapturer;Landroid/media/MediaRecorder;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 396
return-void
.end method
.method public changeCaptureFormat(III)V
.registers 6
.param p1, "width" # I
.param p2, "height" # I
.param p3, "framerate" # I
.line 362
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "changeCaptureFormat: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "x"
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;
const-string v1, "@"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, 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, "CameraCapturer"
invoke-static {v1, v0}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 363
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 364
:try_start_29
invoke-virtual {p0}, Lorg/webrtc/ali/CameraCapturer;->stopCapture()V
.line 365
invoke-virtual {p0, p1, p2, p3}, Lorg/webrtc/ali/CameraCapturer;->startCapture(III)V
.line 366
monitor-exit v0
.line 367
return-void
.line 366
:catchall_31
move-exception v1
monitor-exit v0
:try_end_33
.catchall {:try_start_29 .. :try_end_33} :catchall_31
throw v1
.end method
.method protected abstract createCameraSession(Lorg/webrtc/ali/CameraSession$CreateSessionCallback;Lorg/webrtc/ali/CameraSession$Events;Landroid/content/Context;Lorg/webrtc/ali/SurfaceTextureHelper;Landroid/media/MediaRecorder;Ljava/lang/String;III)V
.end method
.method public dispose()V
.registers 3
.line 371
const-string v0, "CameraCapturer"
const-string v1, "dispose"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 372
invoke-virtual {p0}, Lorg/webrtc/ali/CameraCapturer;->stopCapture()V
.line 373
return-void
.end method
.method protected getCameraName()Ljava/lang/String;
.registers 3
.line 564
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 565
:try_start_3
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraName:Ljava/lang/String;
monitor-exit v0
return-object v1
.line 566
:catchall_7
move-exception v1
monitor-exit v0
:try_end_9
.catchall {:try_start_3 .. :try_end_9} :catchall_7
throw v1
.end method
.method public initialize(Lorg/webrtc/ali/SurfaceTextureHelper;Landroid/content/Context;Lorg/webrtc/ali/VideoCapturer$CapturerObserver;)V
.registers 5
.param p1, "surfaceTextureHelper" # Lorg/webrtc/ali/SurfaceTextureHelper;
.param p2, "applicationContext" # Landroid/content/Context;
.param p3, "capturerObserver" # Lorg/webrtc/ali/VideoCapturer$CapturerObserver;
.line 288
iput-object p2, p0, Lorg/webrtc/ali/CameraCapturer;->applicationContext:Landroid/content/Context;
.line 289
iput-object p3, p0, Lorg/webrtc/ali/CameraCapturer;->capturerObserver:Lorg/webrtc/ali/VideoCapturer$CapturerObserver;
.line 290
iput-object p1, p0, Lorg/webrtc/ali/CameraCapturer;->surfaceHelper:Lorg/webrtc/ali/SurfaceTextureHelper;
.line 291
if-nez p1, :cond_a
const/4 v0, 0x0
goto :goto_e
.line 292
:cond_a
invoke-virtual {p1}, Lorg/webrtc/ali/SurfaceTextureHelper;->getHandler()Landroid/os/Handler;
move-result-object v0
:goto_e
iput-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
.line 293
return-void
.end method
.method public isScreencast()Z
.registers 2
.line 411
const/4 v0, 0x0
return v0
.end method
.method public printStackTrace()V
.registers 8
.line 415
const/4 v0, 0x0
.line 416
.local v0, "cameraThread":Ljava/lang/Thread;
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
if-eqz v1, :cond_d
.line 417
invoke-virtual {v1}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v0
.line 419
:cond_d
if-eqz v0, :cond_2d
.line 420
invoke-virtual {v0}, Ljava/lang/Thread;->getStackTrace()[Ljava/lang/StackTraceElement;
move-result-object v1
.line 421
.local v1, "cameraStackTrace":[Ljava/lang/StackTraceElement;
array-length v2, v1
if-lez v2, :cond_2d
.line 422
const-string v2, "CameraCapturer"
const-string v3, "CameraCapturer stack trace:"
invoke-static {v2, v3}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 423
array-length v3, v1
const/4 v4, 0x0
:goto_1f
if-ge v4, v3, :cond_2d
aget-object v5, v1, v4
.line 424
.local v5, "traceElem":Ljava/lang/StackTraceElement;
invoke-virtual {v5}, Ljava/lang/StackTraceElement;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v2, v6}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 423
.end local v5 # "traceElem":Ljava/lang/StackTraceElement;
add-int/lit8 v4, v4, 0x1
goto :goto_1f
.line 428
.end local v1 # "cameraStackTrace":[Ljava/lang/StackTraceElement;
:cond_2d
return-void
.end method
.method public removeMediaRecorderFromCamera(Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 4
.param p1, "mediaRecoderEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;
.line 400
const-string v0, "CameraCapturer"
const-string v1, "removeMediaRecorderFromCamera"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 401
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/ali/CameraCapturer$9;
invoke-direct {v1, p0, p1}, Lorg/webrtc/ali/CameraCapturer$9;-><init>(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraVideoCapturer$MediaRecorderHandler;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 407
return-void
.end method
.method public startCapture(III)V
.registers 7
.param p1, "width" # I
.param p2, "height" # I
.param p3, "framerate" # I
.line 297
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "startCapture: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "x"
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;
const-string v1, "@"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, 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, "CameraCapturer"
invoke-static {v1, v0}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 298
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->applicationContext:Landroid/content/Context;
if-eqz v0, :cond_55
.line 302
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 303
:try_start_2d
iget-boolean v1, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
if-nez v1, :cond_49
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
if-eqz v1, :cond_36
goto :goto_49
.line 308
:cond_36
iput p1, p0, Lorg/webrtc/ali/CameraCapturer;->width:I
.line 309
iput p2, p0, Lorg/webrtc/ali/CameraCapturer;->height:I
.line 310
iput p3, p0, Lorg/webrtc/ali/CameraCapturer;->framerate:I
.line 312
const/4 v1, 0x1
iput-boolean v1, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
.line 313
const/4 v1, 0x3
iput v1, p0, Lorg/webrtc/ali/CameraCapturer;->openAttemptsRemaining:I
.line 314
const/4 v1, 0x0
const/4 v2, 0x0
invoke-direct {p0, v1, v2}, Lorg/webrtc/ali/CameraCapturer;->createSessionInternal(ILandroid/media/MediaRecorder;)V
.line 315
monitor-exit v0
.line 316
return-void
.line 304
:cond_49
:goto_49
const-string v1, "CameraCapturer"
const-string v2, "Session already open"
invoke-static {v1, v2}, Lorg/webrtc/ali/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 305
monitor-exit v0
return-void
.line 315
:catchall_52
move-exception v1
monitor-exit v0
:try_end_54
.catchall {:try_start_2d .. :try_end_54} :catchall_52
throw v1
.line 299
:cond_55
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "CameraCapturer must be initialized before calling startCapture."
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public stopCapture()V
.registers 6
.line 331
const-string v0, "CameraCapturer"
const-string v1, "Stop capture"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 333
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 334
:goto_a
:try_start_a
iget-boolean v1, p0, Lorg/webrtc/ali/CameraCapturer;->sessionOpening:Z
if-eqz v1, :cond_1b
.line 335
const-string v1, "CameraCapturer"
const-string v2, "Stop capture: Waiting for session to open"
invoke-static {v1, v2}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 336
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->stateLock:Ljava/lang/Object;
invoke-static {v1}, Lorg/webrtc/ali/ThreadUtils;->waitUninterruptibly(Ljava/lang/Object;)V
goto :goto_a
.line 339
:cond_1b
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
if-eqz v1, :cond_42
.line 340
const-string v1, "CameraCapturer"
const-string v2, "Stop capture: Nulling session"
invoke-static {v1, v2}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 341
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
invoke-virtual {v1}, Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;->release()V
.line 342
const/4 v1, 0x0
iput-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->cameraStatistics:Lorg/webrtc/ali/CameraVideoCapturer$CameraStatistics;
.line 343
iget-object v2, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
.line 344
.local v2, "oldSession":Lorg/webrtc/ali/CameraSession;
iget-object v3, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v4, Lorg/webrtc/ali/CameraCapturer$6;
invoke-direct {v4, p0, v2}, Lorg/webrtc/ali/CameraCapturer$6;-><init>(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraSession;)V
invoke-virtual {v3, v4}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 350
iput-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->currentSession:Lorg/webrtc/ali/CameraSession;
.line 351
iget-object v1, p0, Lorg/webrtc/ali/CameraCapturer;->capturerObserver:Lorg/webrtc/ali/VideoCapturer$CapturerObserver;
invoke-interface {v1}, Lorg/webrtc/ali/VideoCapturer$CapturerObserver;->onCapturerStopped()V
.line 352
.end local v2 # "oldSession":Lorg/webrtc/ali/CameraSession;
goto :goto_49
.line 353
:cond_42
const-string v1, "CameraCapturer"
const-string v2, "Stop capture: No session open"
invoke-static {v1, v2}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 355
:goto_49
monitor-exit v0
:try_end_4a
.catchall {:try_start_a .. :try_end_4a} :catchall_52
.line 357
const-string v0, "CameraCapturer"
const-string v1, "Stop capture done"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 358
return-void
.line 355
:catchall_52
move-exception v1
:try_start_53
monitor-exit v0
:try_end_54
.catchall {:try_start_53 .. :try_end_54} :catchall_52
goto :goto_56
:goto_55
throw v1
:goto_56
goto :goto_55
.end method
.method public switchCamera(Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 4
.param p1, "switchEventsHandler" # Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;
.line 377
const-string v0, "CameraCapturer"
const-string v1, "switchCamera"
invoke-static {v0, v1}, Lorg/webrtc/ali/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 378
iget-object v0, p0, Lorg/webrtc/ali/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/ali/CameraCapturer$7;
invoke-direct {v1, p0, p1}, Lorg/webrtc/ali/CameraCapturer$7;-><init>(Lorg/webrtc/ali/CameraCapturer;Lorg/webrtc/ali/CameraVideoCapturer$CameraSwitchHandler;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 384
return-void
.end method