VideoCaptureFactory.smali
.class Lio/agora/rtc2/video/VideoCaptureFactory;
.super Ljava/lang/Object;
.source "VideoCaptureFactory.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/agora/rtc2/video/VideoCaptureFactory$CAMERA_MODULE_SELECTED;,
Lio/agora/rtc2/video/VideoCaptureFactory$ChromiumCameraInfo;
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "VideoCaptureFactory"
.field private static final TEXTURE_EXCEPTION_MODELS:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 4
const-string v0, "LG-H848"
const-string v1, "Pixel 4a"
const-string v2, "SM-A7000"
const-string v3, "MI MAX"
.line 39
filled-new-array {v0, v1, v2, v3}, [Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
sput-object v0, Lio/agora/rtc2/video/VideoCaptureFactory;->TEXTURE_EXCEPTION_MODELS:Ljava/util/List;
return-void
.end method
.method constructor <init>()V
.registers 1
.line 33
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$000()Z
.registers 1
.line 33
invoke-static {}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLReleaseOrLater()Z
move-result v0
return v0
.end method
.method static createCameraCapture(IJZZILio/agora/base/internal/video/EglBase$Context;II)Lio/agora/rtc2/video/IVideoCapture;
.registers 22
move v8, p0
move/from16 v0, p8
.line 125
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "createVideoCapture() "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ", captureToTexture: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move/from16 v2, p3
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v3, ", camera_selected_level: "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", pqFirst: "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move/from16 v9, p4
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v3, ", skipControl: "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move/from16 v10, p5
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v3, "VideoCaptureFactory"
invoke-static {v3, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 129
sget-object v1, Lio/agora/rtc2/video/VideoCaptureFactory;->TEXTURE_EXCEPTION_MODELS:Ljava/util/List;
sget-object v4, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-interface {v1, v4}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_62
.line 130
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Not support for "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v3, v1}, Lio/agora/base/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
const/4 v1, 0x0
move v11, v1
goto :goto_63
:cond_62
move v11, v2
.line 133
:goto_63
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLegacyOrDeprecatedDevice(I)Z
move-result v1
if-nez v1, :cond_86
if-eqz p7, :cond_86
.line 135
invoke-static {p0, v0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLessSelectedLevel(II)Z
move-result v0
if-eqz v0, :cond_72
goto :goto_86
.line 139
:cond_72
new-instance v12, Lio/agora/rtc2/video/VideoCaptureCamera2;
move-object v0, v12
move v1, p0
move-wide v2, p1
move v4, v11
move/from16 v5, p4
move/from16 v6, p5
move-object/from16 v7, p6
invoke-direct/range {v0 .. v7}, Lio/agora/rtc2/video/VideoCaptureCamera2;-><init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
.line 141
invoke-static/range {v0 .. v7}, Lio/agora/rtc2/video/VideoCaptureFactory;->createFallbackWrapper(Lio/agora/rtc2/video/IVideoCaptureCamera;IJZZILio/agora/base/internal/video/EglBase$Context;)Lio/agora/rtc2/video/IVideoCaptureCamera;
move-result-object v0
return-object v0
.line 136
:cond_86
:goto_86
new-instance v12, Lio/agora/rtc2/video/VideoCaptureCamera1;
move-object v0, v12
move v1, p0
move-wide v2, p1
move v4, v11
move/from16 v5, p4
move/from16 v6, p5
move-object/from16 v7, p6
invoke-direct/range {v0 .. v7}, Lio/agora/rtc2/video/VideoCaptureCamera1;-><init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
return-object v12
.end method
.method static createFallbackWrapper(Lio/agora/rtc2/video/IVideoCaptureCamera;IJZZILio/agora/base/internal/video/EglBase$Context;)Lio/agora/rtc2/video/IVideoCaptureCamera;
.registers 18
.line 148
new-instance v0, Lio/agora/rtc2/video/VideoCaptureCameraFallbackWrapper;
new-instance v9, Lio/agora/rtc2/video/VideoCaptureFactory$1;
move-object v1, v9
move v2, p1
move-wide v3, p2
move v5, p4
move v6, p5
move/from16 v7, p6
move-object/from16 v8, p7
invoke-direct/range {v1 .. v8}, Lio/agora/rtc2/video/VideoCaptureFactory$1;-><init>(IJZZILio/agora/base/internal/video/EglBase$Context;)V
move-object v1, p0
invoke-direct {v0, p0, v9}, Lio/agora/rtc2/video/VideoCaptureCameraFallbackWrapper;-><init>(Lio/agora/rtc2/video/IVideoCaptureCamera;Lio/agora/rtc2/video/VideoCaptureCameraFallbackWrapper$OnCameraFallbackListener;)V
return-object v0
.end method
.method static createScreenCapture(JLio/agora/base/internal/video/EglBase$Context;Landroid/content/Intent;)Lio/agora/rtc2/video/VideoCapture;
.registers 5
.line 161
new-instance v0, Lio/agora/rtc2/video/VideoCaptureScreen;
invoke-direct {v0, p0, p1, p2, p3}, Lio/agora/rtc2/video/VideoCaptureScreen;-><init>(JLio/agora/base/internal/video/EglBase$Context;Landroid/content/Intent;)V
return-object v0
.end method
.method static getCaptureApiType(I)I
.registers 2
.line 172
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLegacyOrDeprecatedDevice(I)Z
move-result v0
if-eqz v0, :cond_b
.line 173
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getCaptureApiType(I)I
move-result p0
return p0
.line 175
:cond_b
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCaptureApiType(I)I
move-result p0
return p0
.end method
.method static getDeviceId(I)Ljava/lang/String;
.registers 2
.line 189
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLegacyOrDeprecatedDevice(I)Z
move-result v0
if-eqz v0, :cond_b
.line 190
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getDeviceId(I)Ljava/lang/String;
move-result-object p0
return-object p0
.line 192
:cond_b
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getDeviceId(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static getDeviceName(I)Ljava/lang/String;
.registers 2
.line 198
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLegacyOrDeprecatedDevice(I)Z
move-result v0
if-eqz v0, :cond_b
.line 199
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getName(I)Ljava/lang/String;
move-result-object p0
return-object p0
.line 201
:cond_b
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getName(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static getDeviceSupportedFormats(I)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"Lio/agora/rtc2/video/VideoCaptureFormat;",
">;"
}
.end annotation
.line 207
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLegacyOrDeprecatedDevice(I)Z
move-result v0
if-eqz v0, :cond_b
.line 208
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getDeviceSupportedFormats(I)Ljava/util/List;
move-result-object p0
return-object p0
.line 210
:cond_b
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getDeviceSupportedFormats(I)Ljava/util/List;
move-result-object p0
return-object p0
.end method
.method static getFacingMode(I)I
.registers 2
.line 180
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLegacyOrDeprecatedDevice(I)Z
move-result v0
if-eqz v0, :cond_b
.line 181
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera1;->getFacingMode(I)I
move-result p0
return p0
.line 183
:cond_b
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getFacingMode(I)I
move-result p0
return p0
.end method
.method static getNumberOfCameras()I
.registers 1
.line 167
# invokes: Lio/agora/rtc2/video/VideoCaptureFactory$ChromiumCameraInfo;->getNumberOfCameras()I
invoke-static {}, Lio/agora/rtc2/video/VideoCaptureFactory$ChromiumCameraInfo;->access$100()I
move-result v0
return v0
.end method
.method static isInCamera2BlackList()Z
.registers 3
.line 215
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
const-string v1, "ocean"
invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
const/4 v1, 0x1
if-eqz v0, :cond_16
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "oe106"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_16
return v1
.line 220
:cond_16
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
const-string v2, "trident"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2b
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "de106"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_2b
return v1
.line 225
:cond_2b
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
const-string v2, "shark"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_40
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "skr-a0"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_40
return v1
.line 230
:cond_40
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
const-string v2, "hnnem-h"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_4b
return v1
.line 236
:cond_4b
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
const-string v2, "on7xelte"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_60
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G610F"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_60
return v1
.line 240
:cond_60
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
const-string v2, "m2c"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_120
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "M578CA"
.line 241
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_76
goto/16 :goto_120
.line 246
:cond_76
sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
const-string v2, "samsung"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_fd
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
if-eqz v0, :cond_fd
.line 247
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G930"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G935"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G950"
.line 248
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G955"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SC-02H"
.line 249
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SCV33"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SC-02J"
.line 250
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SCV36"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G892A"
.line 251
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SM-G892U"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SC-03J"
.line 252
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_fc
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "SCV35"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_fd
:cond_fc
return v1
.line 257
:cond_fd
sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
const-string v2, "oneplus"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_108
return v1
.line 262
:cond_108
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "PCAM00"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_113
return v1
.line 266
:cond_113
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
const-string v2, "h8296"
invoke-virtual {v2, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_11e
return v1
:cond_11e
const/4 v0, 0x0
return v0
:cond_120
:goto_120
return v1
.end method
.method private static isLReleaseOrLater()Z
.registers 2
.line 85
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
return v0
.end method
.method static isLegacyOrDeprecatedDevice(I)Z
.registers 2
.line 90
invoke-static {}, Lio/agora/rtc2/video/VideoCaptureFactory;->isLReleaseOrLater()Z
move-result v0
if-eqz v0, :cond_15
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->isLegacyDevice(I)Z
move-result p0
if-nez p0, :cond_15
.line 91
invoke-static {}, Lio/agora/rtc2/video/VideoCaptureFactory;->isInCamera2BlackList()Z
move-result p0
if-eqz p0, :cond_13
goto :goto_15
:cond_13
const/4 p0, 0x0
goto :goto_16
:cond_15
:goto_15
const/4 p0, 0x1
:goto_16
return p0
.end method
.method static isLessSelectedLevel(II)Z
.registers 4
.line 101
invoke-static {p0}, Lio/agora/rtc2/video/VideoCaptureCamera2;->getCamera2SupportedLevel(I)I
move-result p0
const/4 v0, 0x1
const/high16 v1, -0x80000000
if-eq p0, v1, :cond_19
.line 103
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->ANDROID_CAMERA_HARDWARE_LEVEL_MAP:Landroid/util/SparseIntArray;
invoke-virtual {v1, p0}, Landroid/util/SparseIntArray;->get(I)I
move-result p0
sget-object v1, Lio/agora/rtc2/video/VideoCaptureCamera2;->ANDROID_CAMERA_HARDWARE_LEVEL_MAP:Landroid/util/SparseIntArray;
.line 104
invoke-virtual {v1, p1, v0}, Landroid/util/SparseIntArray;->get(II)I
move-result p1
if-gt p0, p1, :cond_18
goto :goto_19
:cond_18
const/4 v0, 0x0
:cond_19
:goto_19
return v0
.end method