CameraCapturer.smali
.class abstract Lorg/webrtc/CameraCapturer;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lorg/webrtc/CameraVideoCapturer;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/CameraCapturer$SwitchState;
}
.end annotation
# static fields
.field private static final MAX_OPEN_CAMERA_ATTEMPTS:I = 0x3
.field private static final OPEN_CAMERA_DELAY_MS:I = 0x1f4
.field private static final OPEN_CAMERA_TIMEOUT:I = 0x2710
.field private static final TAG:Ljava/lang/String; = "CameraCapturer"
# instance fields
.field private applicationContext:Landroid/content/Context;
.field private final cameraEnumerator:Lorg/webrtc/CameraEnumerator;
.field private cameraName:Ljava/lang/String;
.field private final cameraSessionEventsHandler:Lorg/webrtc/CameraSession$Events;
.field private cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.field private cameraThreadHandler:Landroid/os/Handler;
.field private capturerObserver:Lorg/webrtc/CapturerObserver;
.field private final createSessionCallback:Lorg/webrtc/CameraSession$CreateSessionCallback;
.field private currentSession:Lorg/webrtc/CameraSession;
.field private final eventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
.field private firstFrameObserved:Z
.field private framerate:I
.field private height:I
.field private openAttemptsRemaining:I
.field private final openCameraTimeoutRunnable:Ljava/lang/Runnable;
.field private pendingCameraName:Ljava/lang/String;
.field private sessionOpening:Z
.field private final stateLock:Ljava/lang/Object;
.field private surfaceHelper:Lorg/webrtc/SurfaceTextureHelper;
.field private switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
.field private switchState:Lorg/webrtc/CameraCapturer$SwitchState;
.field private final uiThreadHandler:Landroid/os/Handler;
.field private width:I
# direct methods
.method public constructor <init>(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;Lorg/webrtc/CameraEnumerator;)V
.registers 5
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Lorg/webrtc/CameraCapturer$1;
invoke-direct {v0, p0}, Lorg/webrtc/CameraCapturer$1;-><init>(Lorg/webrtc/CameraCapturer;)V
iput-object v0, p0, Lorg/webrtc/CameraCapturer;->createSessionCallback:Lorg/webrtc/CameraSession$CreateSessionCallback;
.line 3
new-instance v0, Lorg/webrtc/CameraCapturer$2;
invoke-direct {v0, p0}, Lorg/webrtc/CameraCapturer$2;-><init>(Lorg/webrtc/CameraCapturer;)V
iput-object v0, p0, Lorg/webrtc/CameraCapturer;->cameraSessionEventsHandler:Lorg/webrtc/CameraSession$Events;
.line 4
new-instance v0, Lorg/webrtc/CameraCapturer$3;
invoke-direct {v0, p0}, Lorg/webrtc/CameraCapturer$3;-><init>(Lorg/webrtc/CameraCapturer;)V
iput-object v0, p0, Lorg/webrtc/CameraCapturer;->openCameraTimeoutRunnable:Ljava/lang/Runnable;
.line 5
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
.line 6
sget-object v0, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
iput-object v0, p0, Lorg/webrtc/CameraCapturer;->switchState:Lorg/webrtc/CameraCapturer$SwitchState;
if-nez p2, :cond_2a
.line 7
new-instance p2, Lorg/webrtc/CameraCapturer$4;
invoke-direct {p2, p0}, Lorg/webrtc/CameraCapturer$4;-><init>(Lorg/webrtc/CameraCapturer;)V
.line 8
:cond_2a
iput-object p2, p0, Lorg/webrtc/CameraCapturer;->eventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
.line 9
iput-object p3, p0, Lorg/webrtc/CameraCapturer;->cameraEnumerator:Lorg/webrtc/CameraEnumerator;
.line 10
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->cameraName:Ljava/lang/String;
.line 11
invoke-interface {p3}, Lorg/webrtc/CameraEnumerator;->getDeviceNames()[Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
.line 12
new-instance p2, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object p3
invoke-direct {p2, p3}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p2, p0, Lorg/webrtc/CameraCapturer;->uiThreadHandler:Landroid/os/Handler;
.line 13
invoke-interface {p1}, Ljava/util/List;->isEmpty()Z
move-result p2
if-nez p2, :cond_66
.line 14
iget-object p2, p0, Lorg/webrtc/CameraCapturer;->cameraName:Ljava/lang/String;
invoke-interface {p1, p2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_52
return-void
.line 15
:cond_52
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "Camera name "
.line 16
invoke-static {p2}, Landroid/support/v4/media/c;->c(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p2
.line 17
iget-object p3, p0, Lorg/webrtc/CameraCapturer;->cameraName:Ljava/lang/String;
const-string v0, " does not match any known camera device."
.line 18
invoke-static {p2, p3, v0}, Landroid/support/v4/media/session/b;->d(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 19
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 20
:cond_66
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "No cameras attached."
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public static synthetic access$000(Lorg/webrtc/CameraCapturer;)V
.registers 1
invoke-direct {p0}, Lorg/webrtc/CameraCapturer;->checkIsOnCameraThread()V
return-void
.end method
.method public static synthetic access$100(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraCapturer$SwitchState;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->switchState:Lorg/webrtc/CameraCapturer$SwitchState;
return-object p0
.end method
.method public static synthetic access$1000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->eventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;
return-object p0
.end method
.method public static synthetic access$102(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraCapturer$SwitchState;)Lorg/webrtc/CameraCapturer$SwitchState;
.registers 2
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->switchState:Lorg/webrtc/CameraCapturer$SwitchState;
return-object p1
.end method
.method public static synthetic access$1100(Lorg/webrtc/CameraCapturer;)Z
.registers 1
iget-boolean p0, p0, Lorg/webrtc/CameraCapturer;->firstFrameObserved:Z
return p0
.end method
.method public static synthetic access$1102(Lorg/webrtc/CameraCapturer;Z)Z
.registers 2
iput-boolean p1, p0, Lorg/webrtc/CameraCapturer;->firstFrameObserved:Z
return p1
.end method
.method public static synthetic access$1200(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
return-object p0
.end method
.method public static synthetic access$1202(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
.registers 2
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
return-object p1
.end method
.method public static synthetic access$1300(Lorg/webrtc/CameraCapturer;)Ljava/lang/String;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->cameraName:Ljava/lang/String;
return-object p0
.end method
.method public static synthetic access$1400(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraEnumerator;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->cameraEnumerator:Lorg/webrtc/CameraEnumerator;
return-object p0
.end method
.method public static synthetic access$1500(Lorg/webrtc/CameraCapturer;)Ljava/lang/String;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->pendingCameraName:Ljava/lang/String;
return-object p0
.end method
.method public static synthetic access$1502(Lorg/webrtc/CameraCapturer;Ljava/lang/String;)Ljava/lang/String;
.registers 2
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->pendingCameraName:Ljava/lang/String;
return-object p1
.end method
.method public static synthetic access$1600(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;Ljava/lang/String;)V
.registers 3
invoke-direct {p0, p1, p2}, Lorg/webrtc/CameraCapturer;->switchCameraInternal(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;Ljava/lang/String;)V
return-void
.end method
.method public static synthetic access$1700(Lorg/webrtc/CameraCapturer;)I
.registers 1
iget p0, p0, Lorg/webrtc/CameraCapturer;->openAttemptsRemaining:I
return p0
.end method
.method public static synthetic access$1710(Lorg/webrtc/CameraCapturer;)I
.registers 3
iget v0, p0, Lorg/webrtc/CameraCapturer;->openAttemptsRemaining:I
add-int/lit8 v1, v0, -0x1
iput v1, p0, Lorg/webrtc/CameraCapturer;->openAttemptsRemaining:I
return v0
.end method
.method public static synthetic access$1800(Lorg/webrtc/CameraCapturer;I)V
.registers 2
invoke-direct {p0, p1}, Lorg/webrtc/CameraCapturer;->createSessionInternal(I)V
return-void
.end method
.method public static synthetic access$1900(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession$CreateSessionCallback;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->createSessionCallback:Lorg/webrtc/CameraSession$CreateSessionCallback;
return-object p0
.end method
.method public static synthetic access$200(Lorg/webrtc/CameraCapturer;)Ljava/lang/Runnable;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->openCameraTimeoutRunnable:Ljava/lang/Runnable;
return-object p0
.end method
.method public static synthetic access$2000(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession$Events;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->cameraSessionEventsHandler:Lorg/webrtc/CameraSession$Events;
return-object p0
.end method
.method public static synthetic access$2100(Lorg/webrtc/CameraCapturer;)Landroid/content/Context;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->applicationContext:Landroid/content/Context;
return-object p0
.end method
.method public static synthetic access$2200(Lorg/webrtc/CameraCapturer;)I
.registers 1
iget p0, p0, Lorg/webrtc/CameraCapturer;->width:I
return p0
.end method
.method public static synthetic access$2300(Lorg/webrtc/CameraCapturer;)I
.registers 1
iget p0, p0, Lorg/webrtc/CameraCapturer;->height:I
return p0
.end method
.method public static synthetic access$2400(Lorg/webrtc/CameraCapturer;)I
.registers 1
iget p0, p0, Lorg/webrtc/CameraCapturer;->framerate:I
return p0
.end method
.method public static synthetic access$2500(Lorg/webrtc/CameraCapturer;Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 3
invoke-direct {p0, p1, p2}, Lorg/webrtc/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
return-void
.end method
.method public static synthetic access$300(Lorg/webrtc/CameraCapturer;)Landroid/os/Handler;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->uiThreadHandler:Landroid/os/Handler;
return-object p0
.end method
.method public static synthetic access$400(Lorg/webrtc/CameraCapturer;)Ljava/lang/Object;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
return-object p0
.end method
.method public static synthetic access$500(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CapturerObserver;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->capturerObserver:Lorg/webrtc/CapturerObserver;
return-object p0
.end method
.method public static synthetic access$602(Lorg/webrtc/CameraCapturer;Z)Z
.registers 2
iput-boolean p1, p0, Lorg/webrtc/CameraCapturer;->sessionOpening:Z
return p1
.end method
.method public static synthetic access$700(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraSession;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
return-object p0
.end method
.method public static synthetic access$702(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraSession;)Lorg/webrtc/CameraSession;
.registers 2
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
return-object p1
.end method
.method public static synthetic access$800(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
return-object p0
.end method
.method public static synthetic access$802(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraStatistics;)Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.registers 2
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
return-object p1
.end method
.method public static synthetic access$900(Lorg/webrtc/CameraCapturer;)Lorg/webrtc/SurfaceTextureHelper;
.registers 1
iget-object p0, p0, Lorg/webrtc/CameraCapturer;->surfaceHelper:Lorg/webrtc/SurfaceTextureHelper;
return-object p0
.end method
.method private checkIsOnCameraThread()V
.registers 3
.line 1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
iget-object v1, p0, Lorg/webrtc/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
return-void
:cond_11
const-string v0, "CameraCapturer"
const-string v1, "Check is on camera thread failed."
.line 2
invoke-static {v0, v1}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 3
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(I)V
.registers 6
.line 1
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->uiThreadHandler:Landroid/os/Handler;
iget-object v1, p0, Lorg/webrtc/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 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/CameraCapturer$5;
invoke-direct {v1, p0}, Lorg/webrtc/CameraCapturer$5;-><init>(Lorg/webrtc/CameraCapturer;)V
int-to-long v2, p1
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method private reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 4
const-string v0, "CameraCapturer"
.line 1
invoke-static {v0, p1}, Lorg/webrtc/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
if-eqz p2, :cond_a
.line 2
invoke-interface {p2, p1}, Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;->onCameraSwitchError(Ljava/lang/String;)V
:cond_a
return-void
.end method
.method private switchCameraInternal(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;Ljava/lang/String;)V
.registers 7
const-string v0, "CameraCapturer"
const-string v1, "switchCamera internal"
.line 1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->cameraEnumerator:Lorg/webrtc/CameraEnumerator;
invoke-interface {v0}, Lorg/webrtc/CameraEnumerator;->getDeviceNames()[Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
.line 3
invoke-interface {v0, p2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_21
const-string v0, "Attempted to switch to unknown camera device "
.line 4
invoke-static {v0, p2}, Landroidx/appcompat/e;->g(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 5
invoke-direct {p0, p2, p1}, Lorg/webrtc/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
return-void
.line 6
:cond_21
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 7
:try_start_24
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->switchState:Lorg/webrtc/CameraCapturer$SwitchState;
sget-object v2, Lorg/webrtc/CameraCapturer$SwitchState;->IDLE:Lorg/webrtc/CameraCapturer$SwitchState;
if-eq v1, v2, :cond_31
const-string p2, "Camera switch already in progress."
.line 8
invoke-direct {p0, p2, p1}, Lorg/webrtc/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.line 9
monitor-exit v0
return-void
.line 10
:cond_31
iget-boolean v1, p0, Lorg/webrtc/CameraCapturer;->sessionOpening:Z
if-nez v1, :cond_40
iget-object v2, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
if-nez v2, :cond_40
const-string p2, "switchCamera: camera is not running."
.line 11
invoke-direct {p0, p2, p1}, Lorg/webrtc/CameraCapturer;->reportCameraSwitchError(Ljava/lang/String;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.line 12
monitor-exit v0
return-void
.line 13
:cond_40
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->switchEventsHandler:Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;
if-eqz v1, :cond_4c
.line 14
sget-object p1, Lorg/webrtc/CameraCapturer$SwitchState;->PENDING:Lorg/webrtc/CameraCapturer$SwitchState;
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->switchState:Lorg/webrtc/CameraCapturer$SwitchState;
.line 15
iput-object p2, p0, Lorg/webrtc/CameraCapturer;->pendingCameraName:Ljava/lang/String;
.line 16
monitor-exit v0
return-void
.line 17
:cond_4c
sget-object p1, Lorg/webrtc/CameraCapturer$SwitchState;->IN_PROGRESS:Lorg/webrtc/CameraCapturer$SwitchState;
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->switchState:Lorg/webrtc/CameraCapturer$SwitchState;
const-string p1, "CameraCapturer"
const-string v1, "switchCamera: Stopping session"
.line 18
invoke-static {p1, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 19
iget-object p1, p0, Lorg/webrtc/CameraCapturer;->cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-virtual {p1}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->release()V
const/4 p1, 0x0
.line 20
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.line 21
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
.line 22
iget-object v2, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v3, Lorg/webrtc/CameraCapturer$9;
invoke-direct {v3, p0, v1}, Lorg/webrtc/CameraCapturer$9;-><init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraSession;)V
invoke-virtual {v2, v3}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 23
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
.line 24
iput-object p2, p0, Lorg/webrtc/CameraCapturer;->cameraName:Ljava/lang/String;
const/4 p1, 0x1
.line 25
iput-boolean p1, p0, Lorg/webrtc/CameraCapturer;->sessionOpening:Z
.line 26
iput p1, p0, Lorg/webrtc/CameraCapturer;->openAttemptsRemaining:I
const/4 p1, 0x0
.line 27
invoke-direct {p0, p1}, Lorg/webrtc/CameraCapturer;->createSessionInternal(I)V
.line 28
monitor-exit v0
:try_end_79
.catchall {:try_start_24 .. :try_end_79} :catchall_81
const-string p1, "CameraCapturer"
const-string p2, "switchCamera done"
.line 29
invoke-static {p1, p2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:catchall_81
move-exception p1
.line 30
:try_start_82
monitor-exit v0
:try_end_83
.catchall {:try_start_82 .. :try_end_83} :catchall_81
throw p1
.end method
# virtual methods
.method public final synthetic addMediaRecorderToCamera(Landroid/media/MediaRecorder;Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 3
invoke-static {p0, p1, p2}, Lorg/webrtc/f;->a(Lorg/webrtc/CameraVideoCapturer;Landroid/media/MediaRecorder;Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;)V
return-void
.end method
.method public changeCaptureFormat(III)V
.registers 8
const-string v0, "CameraCapturer"
const-string v1, "changeCaptureFormat: "
const-string v2, "x"
const-string v3, "@"
.line 1
invoke-static {v1, p1, v2, p2, v3}, Landroidx/appcompat/g;->f(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 2
invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 3
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 4
:try_start_19
invoke-virtual {p0}, Lorg/webrtc/CameraCapturer;->stopCapture()V
.line 5
invoke-virtual {p0, p1, p2, p3}, Lorg/webrtc/CameraCapturer;->startCapture(III)V
.line 6
monitor-exit v0
return-void
:catchall_21
move-exception p1
monitor-exit v0
:try_end_23
.catchall {:try_start_19 .. :try_end_23} :catchall_21
throw p1
.end method
.method public abstract createCameraSession(Lorg/webrtc/CameraSession$CreateSessionCallback;Lorg/webrtc/CameraSession$Events;Landroid/content/Context;Lorg/webrtc/SurfaceTextureHelper;Ljava/lang/String;III)V
.end method
.method public dispose()V
.registers 3
const-string v0, "CameraCapturer"
const-string v1, "dispose"
.line 1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 2
invoke-virtual {p0}, Lorg/webrtc/CameraCapturer;->stopCapture()V
return-void
.end method
.method public getCameraName()Ljava/lang/String;
.registers 3
.line 1
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 2
:try_start_3
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->cameraName:Ljava/lang/String;
monitor-exit v0
return-object v1
:catchall_7
move-exception v1
.line 3
monitor-exit v0
:try_end_9
.catchall {:try_start_3 .. :try_end_9} :catchall_7
throw v1
.end method
.method public initialize(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/Context;Lorg/webrtc/CapturerObserver;)V
.registers 4
.line 1
iput-object p2, p0, Lorg/webrtc/CameraCapturer;->applicationContext:Landroid/content/Context;
.line 2
iput-object p3, p0, Lorg/webrtc/CameraCapturer;->capturerObserver:Lorg/webrtc/CapturerObserver;
.line 3
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->surfaceHelper:Lorg/webrtc/SurfaceTextureHelper;
.line 4
invoke-virtual {p1}, Lorg/webrtc/SurfaceTextureHelper;->getHandler()Landroid/os/Handler;
move-result-object p1
iput-object p1, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
return-void
.end method
.method public isScreencast()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
.method public printStackTrace()V
.registers 6
.line 1
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
if-eqz v0, :cond_d
.line 2
invoke-virtual {v0}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v0
goto :goto_e
:cond_d
const/4 v0, 0x0
:goto_e
if-eqz v0, :cond_2e
.line 3
invoke-virtual {v0}, Ljava/lang/Thread;->getStackTrace()[Ljava/lang/StackTraceElement;
move-result-object v0
.line 4
array-length v1, v0
if-lez v1, :cond_2e
const-string v1, "CameraCapturer"
const-string v2, "CameraCapturer stack trace:"
.line 5
invoke-static {v1, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 6
array-length v2, v0
const/4 v3, 0x0
:goto_20
if-ge v3, v2, :cond_2e
aget-object v4, v0, v3
.line 7
invoke-virtual {v4}, Ljava/lang/StackTraceElement;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v1, v4}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
add-int/lit8 v3, v3, 0x1
goto :goto_20
:cond_2e
return-void
.end method
.method public final synthetic removeMediaRecorderFromCamera(Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;)V
.registers 2
invoke-static {p0, p1}, Lorg/webrtc/f;->b(Lorg/webrtc/CameraVideoCapturer;Lorg/webrtc/CameraVideoCapturer$MediaRecorderHandler;)V
return-void
.end method
.method public startCapture(III)V
.registers 8
const-string v0, "CameraCapturer"
const-string v1, "startCapture: "
const-string v2, "x"
const-string v3, "@"
.line 1
invoke-static {v1, p1, v2, p2, v3}, Landroidx/appcompat/g;->f(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 2
invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 3
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->applicationContext:Landroid/content/Context;
if-eqz v0, :cond_44
.line 4
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 5
:try_start_1d
iget-boolean v1, p0, Lorg/webrtc/CameraCapturer;->sessionOpening:Z
if-nez v1, :cond_38
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
if-eqz v1, :cond_26
goto :goto_38
.line 6
:cond_26
iput p1, p0, Lorg/webrtc/CameraCapturer;->width:I
.line 7
iput p2, p0, Lorg/webrtc/CameraCapturer;->height:I
.line 8
iput p3, p0, Lorg/webrtc/CameraCapturer;->framerate:I
const/4 p1, 0x1
.line 9
iput-boolean p1, p0, Lorg/webrtc/CameraCapturer;->sessionOpening:Z
const/4 p1, 0x3
.line 10
iput p1, p0, Lorg/webrtc/CameraCapturer;->openAttemptsRemaining:I
const/4 p1, 0x0
.line 11
invoke-direct {p0, p1}, Lorg/webrtc/CameraCapturer;->createSessionInternal(I)V
.line 12
monitor-exit v0
return-void
:cond_38
:goto_38
const-string p1, "CameraCapturer"
const-string p2, "Session already open"
.line 13
invoke-static {p1, p2}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 14
monitor-exit v0
return-void
:catchall_41
move-exception p1
.line 15
monitor-exit v0
:try_end_43
.catchall {:try_start_1d .. :try_end_43} :catchall_41
throw p1
.line 16
:cond_44
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "CameraCapturer must be initialized before calling startCapture."
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public stopCapture()V
.registers 6
const-string v0, "CameraCapturer"
const-string v1, "Stop capture"
.line 1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
monitor-enter v0
.line 3
:goto_a
:try_start_a
iget-boolean v1, p0, Lorg/webrtc/CameraCapturer;->sessionOpening:Z
if-eqz v1, :cond_2b
const-string v1, "CameraCapturer"
const-string v2, "Stop capture: Waiting for session to open"
.line 4
invoke-static {v1, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
:try_end_15
.catchall {:try_start_a .. :try_end_15} :catchall_62
.line 5
:try_start_15
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->stateLock:Ljava/lang/Object;
invoke-virtual {v1}, Ljava/lang/Object;->wait()V
:try_end_1a
.catch Ljava/lang/InterruptedException; {:try_start_15 .. :try_end_1a} :catch_1b
.catchall {:try_start_15 .. :try_end_1a} :catchall_62
goto :goto_a
:catch_1b
:try_start_1b
const-string v1, "CameraCapturer"
const-string v2, "Stop capture interrupted while waiting for the session to open."
.line 6
invoke-static {v1, v2}, Lorg/webrtc/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 7
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Thread;->interrupt()V
.line 8
monitor-exit v0
return-void
.line 9
:cond_2b
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
if-eqz v1, :cond_52
const-string v1, "CameraCapturer"
const-string v2, "Stop capture: Nulling session"
.line 10
invoke-static {v1, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 11
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
invoke-virtual {v1}, Lorg/webrtc/CameraVideoCapturer$CameraStatistics;->release()V
const/4 v1, 0x0
.line 12
iput-object v1, p0, Lorg/webrtc/CameraCapturer;->cameraStatistics:Lorg/webrtc/CameraVideoCapturer$CameraStatistics;
.line 13
iget-object v2, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
.line 14
iget-object v3, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v4, Lorg/webrtc/CameraCapturer$6;
invoke-direct {v4, p0, v2}, Lorg/webrtc/CameraCapturer$6;-><init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraSession;)V
invoke-virtual {v3, v4}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 15
iput-object v1, p0, Lorg/webrtc/CameraCapturer;->currentSession:Lorg/webrtc/CameraSession;
.line 16
iget-object v1, p0, Lorg/webrtc/CameraCapturer;->capturerObserver:Lorg/webrtc/CapturerObserver;
invoke-interface {v1}, Lorg/webrtc/CapturerObserver;->onCapturerStopped()V
goto :goto_59
:cond_52
const-string v1, "CameraCapturer"
const-string v2, "Stop capture: No session open"
.line 17
invoke-static {v1, v2}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 18
:goto_59
monitor-exit v0
:try_end_5a
.catchall {:try_start_1b .. :try_end_5a} :catchall_62
const-string v0, "CameraCapturer"
const-string v1, "Stop capture done"
.line 19
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
:catchall_62
move-exception v1
.line 20
:try_start_63
monitor-exit v0
:try_end_64
.catchall {:try_start_63 .. :try_end_64} :catchall_62
throw v1
.end method
.method public switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
.registers 4
const-string v0, "CameraCapturer"
const-string v1, "switchCamera"
.line 1
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 2
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/CameraCapturer$7;
invoke-direct {v1, p0, p1}, Lorg/webrtc/CameraCapturer$7;-><init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public switchCamera(Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;Ljava/lang/String;)V
.registers 5
const-string v0, "CameraCapturer"
const-string v1, "switchCamera"
.line 3
invoke-static {v0, v1}, Lorg/webrtc/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 4
iget-object v0, p0, Lorg/webrtc/CameraCapturer;->cameraThreadHandler:Landroid/os/Handler;
new-instance v1, Lorg/webrtc/CameraCapturer$8;
invoke-direct {v1, p0, p1, p2}, Lorg/webrtc/CameraCapturer$8;-><init>(Lorg/webrtc/CameraCapturer;Lorg/webrtc/CameraVideoCapturer$CameraSwitchHandler;Ljava/lang/String;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method