VideoPusher.smali

.class public Lcom/alivc/component/capture/VideoPusher;
.super Ljava/lang/Object;
.source "VideoPusher.java"

# interfaces
.implements Landroid/hardware/Camera$ErrorCallback;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;,
        Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;
    }
.end annotation


# static fields
.field private static final SCREEN_LANDSCAPE_LEFT:I = 0x5a

.field private static final SCREEN_LANDSCAPE_RIGHT:I = 0x10e

.field private static final SCREEN_PORTRAIT:I = 0x0

.field private static final TAG:Ljava/lang/String; = "VideoPusher"

.field private static buffer:[B

.field private static buffer1:[B

.field private static buffer2:[B

.field private static sSupportedFormat:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field

.field private static sSupportedResolutionMap:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/Integer;",
            "Ljava/util/List<",
            "Landroid/hardware/Camera$Size;",
            ">;>;"
        }
    .end annotation
.end field

.field private static supportMaxWH:I


# instance fields
.field private final ACCEL_DELTAXYZ_DIFF:F

.field private final ACCEL_DELTA_DIFF:F

.field private final INITIATE_VALUE:F

.field private final MAG_DELTA_DIFF:F

.field private final TIME_MILLISECOND:I

.field private mAccelSensor:Landroid/hardware/Sensor;

.field private mActivityCallbacks:Landroid/app/Application$ActivityLifecycleCallbacks;

.field private mAutoFocus:Z

.field private mAutoFocusing:Z

.field private mBelowMinFpsNumberTimes:I

.field private mCamera:Landroid/hardware/Camera;

.field private mCameraDisConnected:Z

.field private mContext:Landroid/content/Context;

.field private mCurrentFps:I

.field private mCustomRotation:I

.field private mDataOrientation:I

.field private mDestHeight:I

.field private mDestWidth:I

.field private mFlashOn:Z

.field private mLastCaptureTime:J

.field private mLastFpsCountTime:J

.field private mLastFpsCounter:I

.field private mLastXAccel:F

.field private mLastXMag:F

.field private mLastYAccel:F

.field private mLastYMag:F

.field private mLastZAccel:F

.field private mLastZMag:F

.field private mMagneticSensor:Landroid/hardware/Sensor;

.field private mOnFrameAvailableListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;

.field private mOrientation:I

.field private mParam:Lcom/alivc/component/capture/VideoParam;

.field private mPause:Z

.field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;

.field private mPreviewRunning:Z

.field private mScreen:I

.field private mSensorEventListener:Landroid/hardware/SensorEventListener;

.field private mSensorFocus:Z

.field private mSensorManager:Landroid/hardware/SensorManager;

.field private mSurfaceCbMode:Z

.field private mSurfaceTexture:Landroid/graphics/SurfaceTexture;

.field private mSurfaceTextureId:I

.field private mSwitchCamera:Z

.field private mTimeDelta:J

.field private mVideoSourceListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;

.field private mVideoSourceTextureListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 44
    const/4 v0, 0x0

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    .line 45
    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    .line 46
    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    .line 47
    const/4 v0, 0x0

    sput v0, Lcom/alivc/component/capture/VideoPusher;->supportMaxWH:I

    .line 92
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->sSupportedResolutionMap:Ljava/util/Map;

    .line 93
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->sSupportedFormat:Ljava/util/List;

    return-void
.end method

.method public constructor <init>()V
    .registers 6

    .line 140
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 35
    const/16 v0, 0x3e8

    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->TIME_MILLISECOND:I

    .line 36
    const/high16 v0, -0x40800000    # -1.0f

    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->INITIATE_VALUE:F

    .line 37
    const/high16 v1, 0x40a00000    # 5.0f

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->MAG_DELTA_DIFF:F

    .line 38
    const v1, 0x3f19999a    # 0.6f

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->ACCEL_DELTA_DIFF:F

    .line 39
    const v1, 0x3fb33333    # 1.4f

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->ACCEL_DELTAXYZ_DIFF:F

    .line 56
    const/4 v1, 0x0

    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mPause:Z

    .line 57
    const/4 v2, 0x0

    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mVideoSourceListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;

    .line 58
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mVideoSourceTextureListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;

    .line 59
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSwitchCamera:Z

    .line 60
    const-wide/16 v3, 0x0

    iput-wide v3, p0, Lcom/alivc/component/capture/VideoPusher;->mLastCaptureTime:J

    .line 61
    iput-wide v3, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCountTime:J

    .line 62
    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCounter:I

    .line 63
    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mBelowMinFpsNumberTimes:I

    .line 64
    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCurrentFps:I

    .line 65
    iput-wide v3, p0, Lcom/alivc/component/capture/VideoPusher;->mTimeDelta:J

    .line 67
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    .line 68
    const/4 v3, -0x1

    iput v3, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTextureId:I

    .line 70
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mFlashOn:Z

    .line 71
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mAutoFocus:Z

    .line 72
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mAutoFocusing:Z

    .line 74
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mContext:Landroid/content/Context;

    .line 75
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    .line 77
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    .line 78
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mAccelSensor:Landroid/hardware/Sensor;

    .line 79
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mMagneticSensor:Landroid/hardware/Sensor;

    .line 81
    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastXAccel:F

    .line 82
    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastYAccel:F

    .line 83
    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastZAccel:F

    .line 85
    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastXMag:F

    .line 86
    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastYMag:F

    .line 87
    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastZMag:F

    .line 89
    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCustomRotation:I

    .line 90
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorFocus:Z

    .line 95
    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCameraDisConnected:Z

    .line 96
    new-instance v0, Lcom/alivc/component/capture/VideoPusher$1;

    invoke-direct {v0, p0}, Lcom/alivc/component/capture/VideoPusher$1;-><init>(Lcom/alivc/component/capture/VideoPusher;)V

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mActivityCallbacks:Landroid/app/Application$ActivityLifecycleCallbacks;

    .line 324
    new-instance v0, Lcom/alivc/component/capture/VideoPusher$2;

    invoke-direct {v0, p0}, Lcom/alivc/component/capture/VideoPusher$2;-><init>(Lcom/alivc/component/capture/VideoPusher;)V

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mOnFrameAvailableListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;

    .line 349
    new-instance v0, Lcom/alivc/component/capture/VideoPusher$3;

    invoke-direct {v0, p0}, Lcom/alivc/component/capture/VideoPusher$3;-><init>(Lcom/alivc/component/capture/VideoPusher;)V

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;

    .line 1153
    new-instance v0, Lcom/alivc/component/capture/VideoPusher$6;

    invoke-direct {v0, p0}, Lcom/alivc/component/capture/VideoPusher$6;-><init>(Lcom/alivc/component/capture/VideoPusher;)V

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorEventListener:Landroid/hardware/SensorEventListener;

    .line 141
    return-void
.end method

.method static synthetic access$000(Lcom/alivc/component/capture/VideoPusher;)Z
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCameraDisConnected:Z

    return v0
.end method

.method static synthetic access$002(Lcom/alivc/component/capture/VideoPusher;Z)Z
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # Z

    .line 31
    iput-boolean p1, p0, Lcom/alivc/component/capture/VideoPusher;->mCameraDisConnected:Z

    return p1
.end method

.method static synthetic access$100(Lcom/alivc/component/capture/VideoPusher;)Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mVideoSourceTextureListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;

    return-object v0
.end method

.method static synthetic access$1000(Lcom/alivc/component/capture/VideoPusher;)J
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-wide v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCountTime:J

    return-wide v0
.end method

.method static synthetic access$1002(Lcom/alivc/component/capture/VideoPusher;J)J
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # J

    .line 31
    iput-wide p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCountTime:J

    return-wide p1
.end method

.method static synthetic access$1102(Lcom/alivc/component/capture/VideoPusher;I)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # I

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mCurrentFps:I

    return p1
.end method

.method static synthetic access$1200(Lcom/alivc/component/capture/VideoPusher;)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mBelowMinFpsNumberTimes:I

    return v0
.end method

.method static synthetic access$1202(Lcom/alivc/component/capture/VideoPusher;I)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # I

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mBelowMinFpsNumberTimes:I

    return p1
.end method

.method static synthetic access$1208(Lcom/alivc/component/capture/VideoPusher;)I
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mBelowMinFpsNumberTimes:I

    add-int/lit8 v1, v0, 0x1

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mBelowMinFpsNumberTimes:I

    return v0
.end method

.method static synthetic access$1300(Lcom/alivc/component/capture/VideoPusher;)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastXMag:F

    return v0
.end method

.method static synthetic access$1302(Lcom/alivc/component/capture/VideoPusher;F)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # F

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastXMag:F

    return p1
.end method

.method static synthetic access$1400(Lcom/alivc/component/capture/VideoPusher;)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastYMag:F

    return v0
.end method

.method static synthetic access$1402(Lcom/alivc/component/capture/VideoPusher;F)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # F

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastYMag:F

    return p1
.end method

.method static synthetic access$1500(Lcom/alivc/component/capture/VideoPusher;)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastZMag:F

    return v0
.end method

.method static synthetic access$1502(Lcom/alivc/component/capture/VideoPusher;F)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # F

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastZMag:F

    return p1
.end method

.method static synthetic access$1600(Lcom/alivc/component/capture/VideoPusher;)Z
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mAutoFocusing:Z

    return v0
.end method

.method static synthetic access$1602(Lcom/alivc/component/capture/VideoPusher;Z)Z
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # Z

    .line 31
    iput-boolean p1, p0, Lcom/alivc/component/capture/VideoPusher;->mAutoFocusing:Z

    return p1
.end method

.method static synthetic access$1700(Lcom/alivc/component/capture/VideoPusher;)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastXAccel:F

    return v0
.end method

.method static synthetic access$1702(Lcom/alivc/component/capture/VideoPusher;F)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # F

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastXAccel:F

    return p1
.end method

.method static synthetic access$1800(Lcom/alivc/component/capture/VideoPusher;)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastYAccel:F

    return v0
.end method

.method static synthetic access$1802(Lcom/alivc/component/capture/VideoPusher;F)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # F

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastYAccel:F

    return p1
.end method

.method static synthetic access$1900(Lcom/alivc/component/capture/VideoPusher;)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastZAccel:F

    return v0
.end method

.method static synthetic access$1902(Lcom/alivc/component/capture/VideoPusher;F)F
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # F

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastZAccel:F

    return p1
.end method

.method static synthetic access$200(Lcom/alivc/component/capture/VideoPusher;)J
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-wide v0, p0, Lcom/alivc/component/capture/VideoPusher;->mTimeDelta:J

    return-wide v0
.end method

.method static synthetic access$2000(Lcom/alivc/component/capture/VideoPusher;)Landroid/hardware/Camera;
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    return-object v0
.end method

.method static synthetic access$202(Lcom/alivc/component/capture/VideoPusher;J)J
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # J

    .line 31
    iput-wide p1, p0, Lcom/alivc/component/capture/VideoPusher;->mTimeDelta:J

    return-wide p1
.end method

.method static synthetic access$300(Lcom/alivc/component/capture/VideoPusher;)Lcom/alivc/component/capture/VideoParam;
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    return-object v0
.end method

.method static synthetic access$400(Lcom/alivc/component/capture/VideoPusher;)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCustomRotation:I

    return v0
.end method

.method static synthetic access$500(Lcom/alivc/component/capture/VideoPusher;)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mDataOrientation:I

    return v0
.end method

.method static synthetic access$600(Lcom/alivc/component/capture/VideoPusher;)J
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-wide v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastCaptureTime:J

    return-wide v0
.end method

.method static synthetic access$602(Lcom/alivc/component/capture/VideoPusher;J)J
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # J

    .line 31
    iput-wide p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastCaptureTime:J

    return-wide p1
.end method

.method static synthetic access$700(Lcom/alivc/component/capture/VideoPusher;)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCounter:I

    return v0
.end method

.method static synthetic access$702(Lcom/alivc/component/capture/VideoPusher;I)I
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;
    .param p1, "x1"    # I

    .line 31
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCounter:I

    return p1
.end method

.method static synthetic access$708(Lcom/alivc/component/capture/VideoPusher;)I
    .registers 3
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCounter:I

    add-int/lit8 v1, v0, 0x1

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastFpsCounter:I

    return v0
.end method

.method static synthetic access$800(Lcom/alivc/component/capture/VideoPusher;)Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mVideoSourceListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;

    return-object v0
.end method

.method static synthetic access$900(Lcom/alivc/component/capture/VideoPusher;)Z
    .registers 2
    .param p0, "x0"    # Lcom/alivc/component/capture/VideoPusher;

    .line 31
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPause:Z

    return v0
.end method

.method private clamp(III)I
    .registers 4
    .param p1, "x"    # I
    .param p2, "min"    # I
    .param p3, "max"    # I

    .line 948
    if-le p1, p3, :cond_3

    .line 949
    return p3

    .line 951
    :cond_3
    if-ge p1, p2, :cond_6

    .line 952
    return p2

    .line 954
    :cond_6
    return p1
.end method

.method private convertRotationMode(I)I
    .registers 4
    .param p1, "mode"    # I

    .line 181
    const/4 v0, 0x0

    .line 182
    .local v0, "ret":I
    if-eqz p1, :cond_10

    const/4 v1, 0x1

    if-eq p1, v1, :cond_d

    const/4 v1, 0x2

    if-eq p1, v1, :cond_a

    goto :goto_12

    .line 190
    :cond_a
    const/16 v0, 0x5a

    goto :goto_12

    .line 187
    :cond_d
    const/16 v0, 0x10e

    .line 188
    goto :goto_12

    .line 184
    :cond_10
    const/4 v0, 0x0

    .line 185
    nop

    .line 194
    :goto_12
    return v0
.end method

.method public static getSupportedFormats()Ljava/util/List;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation

    .line 1109
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->sSupportedFormat:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    if-gtz v0, :cond_3c

    .line 1111
    const/4 v0, 0x0

    .line 1113
    .local v0, "camera":Landroid/hardware/Camera;
    const/4 v1, 0x0

    const/4 v2, 0x0

    :try_start_b
    invoke-static {v1}, Landroid/hardware/Camera;->open(I)Landroid/hardware/Camera;

    move-result-object v1
    :try_end_f
    .catch Ljava/lang/Exception; {:try_start_b .. :try_end_f} :catch_31

    move-object v0, v1

    .line 1122
    nop

    .line 1123
    if-nez v0, :cond_14

    .line 1124
    return-object v2

    .line 1126
    :cond_14
    const/4 v1, 0x0

    .line 1128
    .local v1, "parameters":Landroid/hardware/Camera$Parameters;
    :try_start_15
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v3
    :try_end_19
    .catch Ljava/lang/Exception; {:try_start_15 .. :try_end_19} :catch_28

    move-object v1, v3

    .line 1134
    nop

    .line 1135
    invoke-virtual {v0, v2}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 1136
    invoke-virtual {v0}, Landroid/hardware/Camera;->release()V

    .line 1137
    invoke-virtual {v1}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFormats()Ljava/util/List;

    move-result-object v2

    sput-object v2, Lcom/alivc/component/capture/VideoPusher;->sSupportedFormat:Ljava/util/List;

    goto :goto_3c

    .line 1129
    :catch_28
    move-exception v3

    .line 1130
    .local v3, "e":Ljava/lang/Exception;
    invoke-virtual {v0, v2}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 1131
    invoke-virtual {v0}, Landroid/hardware/Camera;->release()V

    .line 1132
    const/4 v0, 0x0

    .line 1133
    return-object v2

    .line 1114
    .end local v1    # "parameters":Landroid/hardware/Camera$Parameters;
    .end local v3    # "e":Ljava/lang/Exception;
    :catch_31
    move-exception v1

    .line 1115
    .local v1, "e":Ljava/lang/Exception;
    if-eqz v0, :cond_3a

    .line 1117
    invoke-virtual {v0, v2}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 1118
    invoke-virtual {v0}, Landroid/hardware/Camera;->release()V

    .line 1120
    :cond_3a
    const/4 v0, 0x0

    .line 1121
    return-object v2

    .line 1139
    .end local v0    # "camera":Landroid/hardware/Camera;
    .end local v1    # "e":Ljava/lang/Exception;
    :cond_3c
    :goto_3c
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->sSupportedFormat:Ljava/util/List;

    return-object v0
.end method

.method public static getSupportedResolutions(I)Ljava/util/List;
    .registers 6
    .param p0, "source"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(I)",
            "Ljava/util/List<",
            "Landroid/hardware/Camera$Size;",
            ">;"
        }
    .end annotation

    .line 1071
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->sSupportedResolutionMap:Ljava/util/Map;

    invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_45

    .line 1073
    const/4 v0, 0x0

    .line 1075
    .local v0, "camera":Landroid/hardware/Camera;
    const/4 v1, 0x0

    :try_start_e
    invoke-static {p0}, Landroid/hardware/Camera;->open(I)Landroid/hardware/Camera;

    move-result-object v2
    :try_end_12
    .catch Ljava/lang/Exception; {:try_start_e .. :try_end_12} :catch_43

    move-object v0, v2

    .line 1079
    nop

    .line 1080
    if-nez v0, :cond_17

    .line 1081
    return-object v1

    .line 1083
    :cond_17
    const/4 v2, 0x0

    .line 1085
    .local v2, "parameters":Landroid/hardware/Camera$Parameters;
    :try_start_18
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v3
    :try_end_1c
    .catch Ljava/lang/Exception; {:try_start_18 .. :try_end_1c} :catch_3a

    move-object v2, v3

    .line 1091
    nop

    .line 1092
    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 1093
    invoke-virtual {v0}, Landroid/hardware/Camera;->release()V

    .line 1094
    invoke-virtual {v2}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List;

    move-result-object v1

    .line 1095
    .local v1, "sizes":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/Camera$Size;>;"
    new-instance v3, Lcom/alivc/component/capture/VideoPusher$5;

    invoke-direct {v3}, Lcom/alivc/component/capture/VideoPusher$5;-><init>()V

    invoke-static {v1, v3}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V

    .line 1102
    sget-object v3, Lcom/alivc/component/capture/VideoPusher;->sSupportedResolutionMap:Ljava/util/Map;

    invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    invoke-interface {v3, v4, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_45

    .line 1086
    .end local v1    # "sizes":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/Camera$Size;>;"
    :catch_3a
    move-exception v3

    .line 1087
    .local v3, "e":Ljava/lang/Exception;
    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 1088
    invoke-virtual {v0}, Landroid/hardware/Camera;->release()V

    .line 1089
    const/4 v0, 0x0

    .line 1090
    return-object v1

    .line 1076
    .end local v2    # "parameters":Landroid/hardware/Camera$Parameters;
    .end local v3    # "e":Ljava/lang/Exception;
    :catch_43
    move-exception v2

    .line 1078
    .local v2, "e":Ljava/lang/Exception;
    return-object v1

    .line 1104
    .end local v0    # "camera":Landroid/hardware/Camera;
    .end local v2    # "e":Ljava/lang/Exception;
    :cond_45
    :goto_45
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->sSupportedResolutionMap:Ljava/util/Map;

    invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/List;

    return-object v0
.end method

.method private isHasPermission()Z
    .registers 4

    .line 495
    const/4 v0, 0x1

    :try_start_1
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v1

    const-string v2, "mHasPermission"

    invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;

    move-result-object v1

    .line 496
    .local v1, "filedPass":Ljava/lang/reflect/Field;
    invoke-virtual {v1, v0}, Ljava/lang/reflect/Field;->setAccessible(Z)V

    .line 497
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Boolean;

    invoke-virtual {v2}, Ljava/lang/Boolean;->booleanValue()Z

    move-result v0
    :try_end_1c
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1c} :catch_1d

    return v0

    .line 498
    .end local v1    # "filedPass":Ljava/lang/reflect/Field;
    :catch_1d
    move-exception v1

    .line 499
    .local v1, "e":Ljava/lang/Exception;
    return v0
.end method

.method private preparePublisher(II)V
    .registers 5
    .param p1, "pushWidth"    # I
    .param p2, "pushHeight"    # I

    .line 757
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "prepare publisher. "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v1, p0, Lcom/alivc/component/capture/VideoPusher;->mOrientation:I

    invoke-virtual {v0, v1}, 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;

    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v1, "VideoPusher"

    invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 758
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSwitchCamera:Z

    if-nez v0, :cond_34

    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPause:Z

    if-nez v0, :cond_34

    .line 760
    const-string v0, "prepare publisher over."

    invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_37

    .line 762
    :cond_34
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSwitchCamera:Z

    .line 764
    :goto_37
    return-void
.end method

.method private setPreviewAdvancedParameters(Landroid/hardware/Camera$Parameters;)V
    .registers 13
    .param p1, "parameters"    # Landroid/hardware/Camera$Parameters;

    .line 199
    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedWhiteBalance()Ljava/util/List;

    move-result-object v0

    .line 200
    .local v0, "whiteBalances":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    const-string v1, "VideoPusher"

    const-string v2, "auto"

    if-eqz v0, :cond_18

    invoke-interface {v0, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v3

    if-eqz v3, :cond_18

    .line 201
    const-string v3, "Contains Camera.Parameters.WHITE_BALANCE_AUTO"

    invoke-static {v1, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 202
    invoke-virtual {p1, v2}, Landroid/hardware/Camera$Parameters;->setWhiteBalance(Ljava/lang/String;)V

    .line 205
    :cond_18
    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedAntibanding()Ljava/util/List;

    move-result-object v3

    .line 206
    .local v3, "antiBandings":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    if-eqz v3, :cond_2c

    invoke-interface {v3, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v4

    if-eqz v4, :cond_2c

    .line 207
    const-string v4, "Contains Camera.Parameters.ANTIBANDING_AUTO"

    invoke-static {v1, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 208
    invoke-virtual {p1, v2}, Landroid/hardware/Camera$Parameters;->setAntibanding(Ljava/lang/String;)V

    .line 211
    :cond_2c
    const-string v2, "auto"

    .line 212
    .local v2, "sceneMode":Ljava/lang/String;
    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedSceneModes()Ljava/util/List;

    move-result-object v4

    .line 213
    .local v4, "sceneModes":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    if-eqz v4, :cond_48

    invoke-interface {v4, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_48

    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSceneMode()Ljava/lang/String;

    move-result-object v5

    if-eq v5, v2, :cond_48

    .line 214
    const-string v5, "Contains getSupportedSceneModes auto"

    invoke-static {v1, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 215
    invoke-virtual {p1, v2}, Landroid/hardware/Camera$Parameters;->setSceneMode(Ljava/lang/String;)V

    .line 218
    :cond_48
    sget-object v1, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;

    invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;

    move-result-object v1

    .line 219
    .local v1, "mauFacture":Ljava/lang/String;
    sget-object v5, Landroid/os/Build;->MODEL:Ljava/lang/String;

    invoke-virtual {v5}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;

    move-result-object v5

    .line 220
    .local v5, "model":Ljava/lang/String;
    const-string/jumbo v6, "xiaomi"

    invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    const-string v7, "center-weighted"

    const-string v8, "auto-exposure"

    const-string/jumbo v9, "skinToneEnhancement"

    if-eqz v6, :cond_83

    const-string v6, "mi note"

    invoke-virtual {v5, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v6

    if-eqz v6, :cond_83

    .line 221
    const-string v6, "scene-detect"

    const-string v10, "on"

    invoke-virtual {p1, v6, v10}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;Ljava/lang/String;)V

    .line 222
    const-string/jumbo v6, "xiaomi-still-beautify-values"

    const-string v10, "i:3"

    invoke-virtual {p1, v6, v10}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;Ljava/lang/String;)V

    .line 223
    const-string v6, "enable"

    invoke-virtual {p1, v9, v6}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;Ljava/lang/String;)V

    .line 224
    invoke-virtual {p1, v8, v7}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;Ljava/lang/String;)V

    .line 226
    :cond_83
    const-string v6, "oppo"

    invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-eqz v6, :cond_a1

    const-string v6, "r7c"

    invoke-virtual {v5, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v6

    if-eqz v6, :cond_a1

    .line 227
    const/4 v6, 0x1

    invoke-virtual {p1, v9, v6}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;I)V

    .line 228
    const/16 v6, 0x64

    const-string v9, "face-beautify"

    invoke-virtual {p1, v9, v6}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;I)V

    .line 229
    invoke-virtual {p1, v8, v7}, Landroid/hardware/Camera$Parameters;->set(Ljava/lang/String;Ljava/lang/String;)V

    .line 231
    :cond_a1
    return-void
.end method

.method private setPreviewFpsRange(Landroid/hardware/Camera$Parameters;)V
    .registers 12
    .param p1, "parameters"    # Landroid/hardware/Camera$Parameters;

    .line 724
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getFps()I

    move-result v0

    mul-int/lit16 v0, v0, 0x3e8

    .line 725
    .local v0, "targetFps":I
    const/4 v1, 0x0

    .line 726
    .local v1, "minRange":I
    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFpsRange()Ljava/util/List;

    move-result-object v2

    .line 727
    .local v2, "supportedFpsRanges":Ljava/util/List;, "Ljava/util/List<[I>;"
    const/4 v3, 0x2

    new-array v3, v3, [I

    .line 728
    .local v3, "targetFpsRange":[I
    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v4

    const/4 v5, 0x1

    const/4 v6, 0x0

    if-lez v4, :cond_36

    .line 729
    invoke-interface {v2, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, [I

    .line 730
    .local v4, "range":[I
    aget v7, v4, v6

    sub-int/2addr v7, v0

    invoke-static {v7}, Ljava/lang/Math;->abs(I)I

    move-result v7

    aget v8, v4, v5

    sub-int/2addr v8, v0

    invoke-static {v8}, Ljava/lang/Math;->abs(I)I

    move-result v8

    add-int v1, v7, v8

    .line 731
    aget v7, v4, v6

    aput v7, v3, v6

    .line 732
    aget v7, v4, v5

    aput v7, v3, v5

    .line 734
    .end local v4    # "range":[I
    :cond_36
    const/4 v4, 0x1

    .local v4, "i":I
    :goto_37
    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v7

    if-ge v4, v7, :cond_60

    .line 735
    invoke-interface {v2, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v7

    check-cast v7, [I

    .line 736
    .local v7, "range":[I
    aget v8, v7, v6

    sub-int/2addr v8, v0

    invoke-static {v8}, Ljava/lang/Math;->abs(I)I

    move-result v8

    aget v9, v7, v5

    sub-int/2addr v9, v0

    invoke-static {v9}, Ljava/lang/Math;->abs(I)I

    move-result v9

    add-int/2addr v8, v9

    .line 737
    .local v8, "currentRange":I
    if-ge v8, v1, :cond_5d

    .line 738
    aget v9, v7, v6

    aput v9, v3, v6

    .line 739
    aget v9, v7, v5

    aput v9, v3, v5

    .line 740
    move v1, v8

    .line 734
    .end local v7    # "range":[I
    .end local v8    # "currentRange":I
    :cond_5d
    add-int/lit8 v4, v4, 0x1

    goto :goto_37

    .line 744
    .end local v4    # "i":I
    :cond_60
    :try_start_60
    sget-object v4, Landroid/os/Build;->BRAND:Ljava/lang/String;

    const-string v7, "Coolpad"

    invoke-virtual {v4, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_98

    sget-object v4, Landroid/os/Build;->BRAND:Ljava/lang/String;

    const-string v7, "360"

    invoke-virtual {v4, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_98

    sget-object v4, Landroid/os/Build;->BRAND:Ljava/lang/String;

    const-string v7, "YOTA"

    invoke-virtual {v4, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_98

    sget-object v4, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v7, "Redmi"

    invoke-virtual {v4, v7}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v4

    if-nez v4, :cond_98

    .line 745
    aget v4, v3, v6

    aget v7, v3, v5

    invoke-virtual {p1, v4, v7}, Landroid/hardware/Camera$Parameters;->setPreviewFpsRange(II)V

    .line 746
    iget-object v4, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v4}, Lcom/alivc/component/capture/VideoParam;->getFps()I

    move-result v4

    invoke-virtual {p1, v4}, Landroid/hardware/Camera$Parameters;->setPreviewFrameRate(I)V
    :try_end_98
    .catch Ljava/lang/Exception; {:try_start_60 .. :try_end_98} :catch_99

    .line 751
    :cond_98
    goto :goto_9a

    .line 748
    :catch_99
    move-exception v4

    .line 752
    :goto_9a
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v7, "\u9884\u89c8\u5e27\u7387 fps:"

    invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    aget v6, v3, v6

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v6, " - "

    invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    aget v5, v3, v5

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    const-string v5, "VideoPusher"

    invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 753
    const/4 v3, 0x0

    .line 754
    return-void
.end method

.method private setPreviewOrientation(Landroid/hardware/Camera$Parameters;I)V
    .registers 6
    .param p1, "parameters"    # Landroid/hardware/Camera$Parameters;
    .param p2, "rotation"    # I

    .line 768
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "SetRotation : "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v1, "VideoPusher"

    invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 769
    new-instance v0, Landroid/hardware/Camera$CameraInfo;

    invoke-direct {v0}, Landroid/hardware/Camera$CameraInfo;-><init>()V

    .line 770
    .local v0, "info":Landroid/hardware/Camera$CameraInfo;
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v1

    invoke-static {v1, v0}, Landroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V

    .line 771
    const/4 v1, 0x0

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mScreen:I

    .line 772
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getRotation()I

    move-result v1

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mOrientation:I

    .line 773
    iget v1, v0, Landroid/hardware/Camera$CameraInfo;->facing:I

    const/4 v2, 0x1

    if-ne v1, v2, :cond_3e

    .line 774
    iget v1, v0, Landroid/hardware/Camera$CameraInfo;->orientation:I

    iget v2, p0, Lcom/alivc/component/capture/VideoPusher;->mOrientation:I

    add-int/2addr v1, v2

    rem-int/lit16 v1, v1, 0x168

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mDataOrientation:I

    goto :goto_49

    .line 776
    :cond_3e
    iget v1, v0, Landroid/hardware/Camera$CameraInfo;->orientation:I

    iget v2, p0, Lcom/alivc/component/capture/VideoPusher;->mOrientation:I

    sub-int/2addr v1, v2

    add-int/lit16 v1, v1, 0x168

    rem-int/lit16 v1, v1, 0x168

    iput v1, p0, Lcom/alivc/component/capture/VideoPusher;->mDataOrientation:I

    .line 779
    :goto_49
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    iget v2, p0, Lcom/alivc/component/capture/VideoPusher;->mDataOrientation:I

    invoke-virtual {v1, v2}, Landroid/hardware/Camera;->setDisplayOrientation(I)V

    .line 781
    const/4 v0, 0x0

    .line 782
    return-void
.end method

.method private setPreviewSize(Landroid/hardware/Camera$Parameters;)V
    .registers 14
    .param p1, "parameters"    # Landroid/hardware/Camera$Parameters;

    .line 643
    nop

    .line 644
    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewFormats()Ljava/util/List;

    move-result-object v0

    .line 645
    .local v0, "supportedPreviewFormats":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Integer;>;"
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :goto_9
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_2d

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Integer;

    .line 646
    .local v2, "integer":Ljava/lang/Integer;
    sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream;

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v5, "\u652f\u6301:"

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v3, v4}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V

    .line 647
    .end local v2    # "integer":Ljava/lang/Integer;
    goto :goto_9

    .line 649
    :cond_2d
    nop

    .line 650
    invoke-virtual {p1}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List;

    move-result-object v1

    .line 651
    .local v1, "supportedPreviewSizes":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/Camera$Size;>;"
    const/4 v2, 0x0

    .line 652
    .local v2, "greaterClosePreviewSize":Landroid/hardware/Camera$Size;
    const/4 v3, 0x0

    .line 653
    .local v3, "preview720P":Landroid/hardware/Camera$Size;
    const/4 v4, 0x0

    .line 654
    .local v4, "greaterCloseArea":I
    const/4 v5, 0x0

    .line 655
    .local v5, "size":Landroid/hardware/Camera$Size;
    const/4 v6, 0x0

    .line 656
    .local v6, "rotateSize":Landroid/hardware/Camera$Size;
    invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v7

    .line 657
    .local v7, "iterator":Ljava/util/Iterator;, "Ljava/util/Iterator<Landroid/hardware/Camera$Size;>;"
    :goto_3b
    invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z

    move-result v8

    const-string v9, "VideoPusher"

    if-eqz v8, :cond_11e

    .line 658
    invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v8

    check-cast v8, Landroid/hardware/Camera$Size;

    .line 659
    .local v8, "next":Landroid/hardware/Camera$Size;
    new-instance v10, Ljava/lang/StringBuilder;

    invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v11, "\u652f\u6301 "

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v11, v8, Landroid/hardware/Camera$Size;->width:I

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string/jumbo v11, "x"

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v11, v8, Landroid/hardware/Camera$Size;->height:I

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v10

    invoke-static {v9, v10}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 660
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v10

    if-ne v9, v10, :cond_80

    iget v9, v8, Landroid/hardware/Camera$Size;->height:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    if-ne v9, v10, :cond_80

    .line 661
    move-object v5, v8

    .line 663
    :cond_80
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    if-ne v9, v10, :cond_95

    iget v9, v8, Landroid/hardware/Camera$Size;->height:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v10

    if-ne v9, v10, :cond_95

    .line 664
    move-object v6, v8

    .line 670
    :cond_95
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v10

    if-lt v9, v10, :cond_a9

    iget v9, v8, Landroid/hardware/Camera$Size;->height:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    if-ge v9, v10, :cond_bd

    :cond_a9
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    if-lt v9, v10, :cond_10a

    iget v9, v8, Landroid/hardware/Camera$Size;->height:I

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v10

    if-lt v9, v10, :cond_10a

    .line 671
    :cond_bd
    if-nez v4, :cond_c8

    .line 672
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    mul-int v9, v9, v10

    .line 673
    .end local v4    # "greaterCloseArea":I
    .local v9, "greaterCloseArea":I
    move-object v2, v8

    move v4, v9

    goto :goto_10a

    .line 674
    .end local v9    # "greaterCloseArea":I
    .restart local v4    # "greaterCloseArea":I
    :cond_c8
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    mul-int v9, v9, v10

    if-ge v9, v4, :cond_d9

    .line 675
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    mul-int v9, v9, v10

    .line 676
    .end local v4    # "greaterCloseArea":I
    .restart local v9    # "greaterCloseArea":I
    move-object v2, v8

    move v4, v9

    goto :goto_10a

    .line 677
    .end local v9    # "greaterCloseArea":I
    .restart local v4    # "greaterCloseArea":I
    :cond_d9
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    mul-int v9, v9, v10

    if-ne v9, v4, :cond_10a

    .line 679
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    if-ge v9, v10, :cond_f5

    iget-object v9, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v9}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v9

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    if-lt v9, v10, :cond_109

    :cond_f5
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    if-le v9, v10, :cond_10a

    iget-object v9, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    .line 680
    invoke-virtual {v9}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v9

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    if-le v9, v10, :cond_10a

    .line 682
    :cond_109
    move-object v2, v8

    .line 686
    :cond_10a
    :goto_10a
    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    mul-int v9, v9, v10

    sget v10, Lcom/alivc/component/capture/VideoPusher;->supportMaxWH:I

    if-le v9, v10, :cond_11a

    iget v9, v8, Landroid/hardware/Camera$Size;->width:I

    iget v10, v8, Landroid/hardware/Camera$Size;->height:I

    mul-int v10, v10, v9

    :cond_11a
    sput v10, Lcom/alivc/component/capture/VideoPusher;->supportMaxWH:I

    .line 687
    .end local v8    # "next":Landroid/hardware/Camera$Size;
    goto/16 :goto_3b

    .line 688
    :cond_11e
    if-nez v5, :cond_123

    if-eqz v6, :cond_123

    .line 689
    move-object v5, v6

    .line 691
    :cond_123
    if-nez v5, :cond_128

    if-eqz v3, :cond_128

    .line 692
    move-object v5, v3

    .line 694
    :cond_128
    if-nez v5, :cond_12d

    if-eqz v2, :cond_12d

    .line 695
    move-object v5, v2

    .line 697
    :cond_12d
    if-nez v5, :cond_137

    .line 698
    const/4 v8, 0x0

    invoke-interface {v1, v8}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v8

    move-object v5, v8

    check-cast v5, Landroid/hardware/Camera$Size;

    .line 701
    :cond_137
    sget-object v8, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    if-nez v8, :cond_147

    sget v8, Lcom/alivc/component/capture/VideoPusher;->supportMaxWH:I

    if-lez v8, :cond_147

    .line 702
    mul-int/lit8 v8, v8, 0x3

    div-int/lit8 v8, v8, 0x2

    new-array v8, v8, [B

    sput-object v8, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    .line 704
    :cond_147
    sget-object v8, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    if-nez v8, :cond_157

    sget v8, Lcom/alivc/component/capture/VideoPusher;->supportMaxWH:I

    if-lez v8, :cond_157

    .line 705
    mul-int/lit8 v8, v8, 0x3

    div-int/lit8 v8, v8, 0x2

    new-array v8, v8, [B

    sput-object v8, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    .line 707
    :cond_157
    sget-object v8, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    if-nez v8, :cond_167

    sget v8, Lcom/alivc/component/capture/VideoPusher;->supportMaxWH:I

    if-lez v8, :cond_167

    .line 708
    mul-int/lit8 v8, v8, 0x3

    div-int/lit8 v8, v8, 0x2

    new-array v8, v8, [B

    sput-object v8, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    .line 712
    :cond_167
    iget-object v8, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    iget v10, v5, Landroid/hardware/Camera$Size;->width:I

    invoke-virtual {v8, v10}, Lcom/alivc/component/capture/VideoParam;->setWidth(I)V

    .line 713
    iget-object v8, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    iget v10, v5, Landroid/hardware/Camera$Size;->height:I

    invoke-virtual {v8, v10}, Lcom/alivc/component/capture/VideoParam;->setHeight(I)V

    .line 716
    :try_start_175
    iget-object v8, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v8}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v8

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    invoke-virtual {p1, v8, v10}, Landroid/hardware/Camera$Parameters;->setPreviewSize(II)V
    :try_end_184
    .catch Ljava/lang/Exception; {:try_start_175 .. :try_end_184} :catch_185

    .line 719
    goto :goto_186

    .line 717
    :catch_185
    move-exception v8

    .line 720
    :goto_186
    new-instance v8, Ljava/lang/StringBuilder;

    invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v10, "\u9884\u89c8\u5206\u8fa8\u7387 width:"

    invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v10

    invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v10, " height:"

    invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v10, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v10}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v10

    invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v8

    invoke-static {v9, v8}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 721
    return-void
.end method

.method private startPreview0()Z
    .registers 9
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 504
    const-string v0, "permission not allowed"

    iget-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewRunning:Z

    const/4 v2, 0x1

    if-eqz v1, :cond_8

    .line 505
    return v2

    .line 508
    :cond_8
    invoke-direct {p0}, Lcom/alivc/component/capture/VideoPusher;->isHasPermission()Z

    move-result v1

    const/4 v3, 0x0

    if-nez v1, :cond_10

    .line 509
    return v3

    .line 513
    :cond_10
    const/4 v1, 0x0

    :try_start_11
    iget-object v4, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v4}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v4

    invoke-static {v4}, Landroid/hardware/Camera;->open(I)Landroid/hardware/Camera;

    move-result-object v4

    iput-object v4, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;
    :try_end_1d
    .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_1d} :catch_23f

    .line 521
    nop

    .line 522
    if-eqz v4, :cond_239

    .line 526
    :try_start_20
    invoke-virtual {v4, p0}, Landroid/hardware/Camera;->setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V
    :try_end_23
    .catch Ljava/lang/Exception; {:try_start_20 .. :try_end_23} :catch_24

    .line 528
    goto :goto_25

    .line 527
    :catch_24
    move-exception v4

    .line 529
    :goto_25
    const/4 v4, 0x0

    .line 531
    .local v4, "parameters":Landroid/hardware/Camera$Parameters;
    :try_start_26
    iget-object v5, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v5}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v5
    :try_end_2c
    .catch Ljava/lang/Exception; {:try_start_26 .. :try_end_2c} :catch_226

    move-object v4, v5

    .line 537
    nop

    .line 538
    sget-object v5, Lcom/alivc/component/capture/VideoPusher;->sSupportedResolutionMap:Ljava/util/Map;

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v6

    invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v6

    invoke-interface {v5, v6}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v5

    if-nez v5, :cond_53

    .line 539
    sget-object v5, Lcom/alivc/component/capture/VideoPusher;->sSupportedResolutionMap:Ljava/util/Map;

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v6

    invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v6

    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List;

    move-result-object v7

    invoke-interface {v5, v6, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 541
    :cond_53
    sget-object v5, Lcom/alivc/component/capture/VideoPusher;->sSupportedFormat:Ljava/util/List;

    invoke-interface {v5}, Ljava/util/List;->size()I

    move-result v5

    if-gtz v5, :cond_61

    .line 542
    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getSupportedPictureFormats()Ljava/util/List;

    move-result-object v5

    sput-object v5, Lcom/alivc/component/capture/VideoPusher;->sSupportedFormat:Ljava/util/List;

    .line 544
    :cond_61
    invoke-direct {p0}, Lcom/alivc/component/capture/VideoPusher;->isHasPermission()Z

    move-result v5

    if-eqz v5, :cond_214

    .line 550
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    if-nez v0, :cond_71

    .line 551
    const/16 v0, 0x11

    invoke-virtual {v4, v0}, Landroid/hardware/Camera$Parameters;->setPreviewFormat(I)V

    goto :goto_74

    .line 553
    :cond_71
    invoke-virtual {v4, v2}, Landroid/hardware/Camera$Parameters;->setRecordingHint(Z)V

    .line 555
    :goto_74
    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->isZoomSupported()Z

    move-result v0

    if-eqz v0, :cond_a1

    .line 556
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getCurrentZoom()I

    move-result v0

    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v5

    if-lt v0, v5, :cond_8f

    .line 557
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v5

    invoke-virtual {v0, v5}, Lcom/alivc/component/capture/VideoParam;->setCurrentZoom(I)V

    .line 559
    :cond_8f
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getCurrentZoom()I

    move-result v0

    invoke-virtual {v4, v0}, Landroid/hardware/Camera$Parameters;->setZoom(I)V

    .line 560
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v5

    invoke-virtual {v0, v5}, Lcom/alivc/component/capture/VideoParam;->setMaxZoom(I)V

    .line 562
    :cond_a1
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getRotation()I

    move-result v0

    invoke-direct {p0, v4, v0}, Lcom/alivc/component/capture/VideoPusher;->setPreviewOrientation(Landroid/hardware/Camera$Parameters;I)V

    .line 563
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mDataOrientation:I

    const/16 v5, 0x5a

    if-eq v0, v5, :cond_b4

    const/16 v5, 0x10e

    if-ne v0, v5, :cond_c2

    .line 565
    :cond_b4
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    iget v5, p0, Lcom/alivc/component/capture/VideoPusher;->mDestHeight:I

    invoke-virtual {v0, v5}, Lcom/alivc/component/capture/VideoParam;->setWidth(I)V

    .line 566
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    iget v5, p0, Lcom/alivc/component/capture/VideoPusher;->mDestWidth:I

    invoke-virtual {v0, v5}, Lcom/alivc/component/capture/VideoParam;->setHeight(I)V

    .line 568
    :cond_c2
    invoke-direct {p0, v4}, Lcom/alivc/component/capture/VideoPusher;->setPreviewSize(Landroid/hardware/Camera$Parameters;)V

    .line 569
    invoke-direct {p0, v4}, Lcom/alivc/component/capture/VideoPusher;->setPreviewFpsRange(Landroid/hardware/Camera$Parameters;)V

    .line 572
    :try_start_c8
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v0, v4}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_cd
    .catch Ljava/lang/Exception; {:try_start_c8 .. :try_end_cd} :catch_ce

    .line 576
    goto :goto_cf

    .line 573
    :catch_ce
    move-exception v0

    .line 577
    :goto_cf
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v5, "start camera, parameters "

    invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;

    move-result-object v5

    iget v5, v5, Landroid/hardware/Camera$Size;->width:I

    invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v5, ", "

    invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;

    move-result-object v5

    iget v5, v5, Landroid/hardware/Camera$Size;->height:I

    invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v5, "VideoPusher"

    invoke-static {v5, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 578
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    if-nez v0, :cond_115

    .line 579
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    mul-int v0, v0, v6

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v0, v0, 0x2

    new-array v0, v0, [B

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    goto :goto_140

    .line 581
    :cond_115
    array-length v0, v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v6

    iget-object v7, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v7}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v7

    mul-int v6, v6, v7

    mul-int/lit8 v6, v6, 0x3

    div-int/lit8 v6, v6, 0x2

    if-ge v0, v6, :cond_140

    .line 583
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    mul-int v0, v0, v6

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v0, v0, 0x2

    new-array v0, v0, [B

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    .line 586
    :cond_140
    :goto_140
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    if-nez v0, :cond_15b

    .line 587
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    mul-int v0, v0, v6

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v0, v0, 0x2

    new-array v0, v0, [B

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    goto :goto_186

    .line 589
    :cond_15b
    array-length v0, v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v6

    iget-object v7, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v7}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v7

    mul-int v6, v6, v7

    mul-int/lit8 v6, v6, 0x3

    div-int/lit8 v6, v6, 0x2

    if-ge v0, v6, :cond_186

    .line 591
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    mul-int v0, v0, v6

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v0, v0, 0x2

    new-array v0, v0, [B

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    .line 594
    :cond_186
    :goto_186
    sget-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    if-nez v0, :cond_1a1

    .line 595
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    mul-int v0, v0, v6

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v0, v0, 0x2

    new-array v0, v0, [B

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    goto :goto_1cc

    .line 597
    :cond_1a1
    array-length v0, v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v6

    iget-object v7, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v7}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v7

    mul-int v6, v6, v7

    mul-int/lit8 v6, v6, 0x3

    div-int/lit8 v6, v6, 0x2

    if-ge v0, v6, :cond_1cc

    .line 599
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v0

    iget-object v6, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    mul-int v0, v0, v6

    mul-int/lit8 v0, v0, 0x3

    div-int/lit8 v0, v0, 0x2

    new-array v0, v0, [B

    sput-object v0, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    .line 602
    :cond_1cc
    :goto_1cc
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    if-eqz v0, :cond_1dc

    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTextureId:I

    if-ltz v0, :cond_1dc

    .line 603
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mOnFrameAvailableListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;

    invoke-virtual {v0, v1}, Landroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V

    goto :goto_1fd

    .line 605
    :cond_1dc
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V

    .line 606
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    sget-object v1, Lcom/alivc/component/capture/VideoPusher;->buffer:[B

    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->addCallbackBuffer([B)V

    .line 607
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    sget-object v1, Lcom/alivc/component/capture/VideoPusher;->buffer1:[B

    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->addCallbackBuffer([B)V

    .line 608
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    sget-object v1, Lcom/alivc/component/capture/VideoPusher;->buffer2:[B

    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->addCallbackBuffer([B)V

    .line 609
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;

    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V

    .line 611
    :goto_1fd
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewTexture(Landroid/graphics/SurfaceTexture;)V

    .line 612
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v0}, Landroid/hardware/Camera;->startPreview()V

    .line 613
    iput-boolean v2, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewRunning:Z

    .line 614
    iput-boolean v3, p0, Lcom/alivc/component/capture/VideoPusher;->mCameraDisConnected:Z

    .line 615
    const-string/jumbo v0, "start preivew over."

    invoke-static {v5, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 617
    return v2

    .line 545
    :cond_214
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v2, v1}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 546
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v2}, Landroid/hardware/Camera;->release()V

    .line 547
    iput-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    .line 548
    new-instance v1, Ljava/lang/Exception;

    invoke-direct {v1, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw v1

    .line 532
    :catch_226
    move-exception v2

    .line 533
    .local v2, "e":Ljava/lang/Exception;
    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v3, v1}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 534
    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v3}, Landroid/hardware/Camera;->release()V

    .line 535
    iput-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    .line 536
    new-instance v1, Ljava/lang/Exception;

    invoke-direct {v1, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw v1

    .line 523
    .end local v2    # "e":Ljava/lang/Exception;
    .end local v4    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_239
    new-instance v1, Ljava/lang/Exception;

    invoke-direct {v1, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw v1

    .line 514
    :catch_23f
    move-exception v2

    .line 515
    .restart local v2    # "e":Ljava/lang/Exception;
    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v3, :cond_24c

    .line 516
    invoke-virtual {v3, v1}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 517
    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v3}, Landroid/hardware/Camera;->release()V

    .line 519
    :cond_24c
    iput-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    .line 520
    new-instance v1, Ljava/lang/Exception;

    invoke-direct {v1, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw v1
.end method

.method private static turnLightOff(Landroid/hardware/Camera;)V
    .registers 7
    .param p0, "mCamera"    # Landroid/hardware/Camera;

    .line 263
    if-nez p0, :cond_3

    .line 264
    return-void

    .line 266
    :cond_3
    invoke-virtual {p0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 267
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    if-nez v0, :cond_a

    .line 268
    return-void

    .line 270
    :cond_a
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;

    move-result-object v1

    .line 271
    .local v1, "flashModes":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getFlashMode()Ljava/lang/String;

    move-result-object v2

    .line 273
    .local v2, "flashMode":Ljava/lang/String;
    if-nez v1, :cond_15

    .line 274
    return-void

    .line 276
    :cond_15
    const-string v3, "off"

    invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_38

    .line 278
    invoke-interface {v1, v3}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v4

    const-string v5, "VideoPusher"

    if-eqz v4, :cond_33

    .line 279
    invoke-virtual {v0, v3}, Landroid/hardware/Camera$Parameters;->setFlashMode(Ljava/lang/String;)V

    .line 281
    :try_start_28
    invoke-virtual {p0, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_2b
    .catchall {:try_start_28 .. :try_end_2b} :catchall_2c

    .line 284
    :goto_2b
    goto :goto_38

    .line 282
    :catchall_2c
    move-exception v3

    .line 283
    .local v3, "t":Ljava/lang/Throwable;
    const-string v4, "VideoPusherJNI set flash off mode failed"

    invoke-static {v5, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .end local v3    # "t":Ljava/lang/Throwable;
    goto :goto_2b

    .line 286
    :cond_33
    const-string v3, "FLASH_MODE_OFF not supported"

    invoke-static {v5, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 289
    :cond_38
    :goto_38
    return-void
.end method

.method private static turnLightOn(Landroid/hardware/Camera;)V
    .registers 7
    .param p0, "mCamera"    # Landroid/hardware/Camera;

    .line 234
    if-nez p0, :cond_3

    .line 235
    return-void

    .line 237
    :cond_3
    invoke-virtual {p0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 238
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    if-nez v0, :cond_a

    .line 239
    return-void

    .line 241
    :cond_a
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;

    move-result-object v1

    .line 243
    .local v1, "flashModes":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    if-nez v1, :cond_11

    .line 245
    return-void

    .line 247
    :cond_11
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getFlashMode()Ljava/lang/String;

    move-result-object v2

    .line 248
    .local v2, "flashMode":Ljava/lang/String;
    const-string/jumbo v3, "torch"

    invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_33

    .line 250
    invoke-interface {v1, v3}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v4

    if-eqz v4, :cond_33

    .line 251
    invoke-virtual {v0, v3}, Landroid/hardware/Camera$Parameters;->setFlashMode(Ljava/lang/String;)V

    .line 253
    :try_start_27
    invoke-virtual {p0, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_2a
    .catchall {:try_start_27 .. :try_end_2a} :catchall_2b

    .line 256
    goto :goto_33

    .line 254
    :catchall_2b
    move-exception v3

    .line 255
    .local v3, "t":Ljava/lang/Throwable;
    const-string v4, "VideoPusher"

    const-string v5, "VideoPusherJNI set flash mode on failed"

    invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 260
    .end local v3    # "t":Ljava/lang/Throwable;
    :cond_33
    :goto_33
    return-void
.end method


# virtual methods
.method public destroy()V
    .registers 3

    .line 292
    const-string v0, "VideoPusher"

    const-string v1, "destroy."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 293
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mContext:Landroid/content/Context;

    instance-of v1, v0, Landroid/app/Application;

    if-eqz v1, :cond_14

    .line 294
    check-cast v0, Landroid/app/Application;

    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mActivityCallbacks:Landroid/app/Application$ActivityLifecycleCallbacks;

    invoke-virtual {v0, v1}, Landroid/app/Application;->unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V

    .line 296
    :cond_14
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    if-eqz v0, :cond_1b

    .line 297
    invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->release()V

    .line 299
    :cond_1b
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    .line 300
    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    .line 301
    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mContext:Landroid/content/Context;

    .line 302
    return-void
.end method

.method public getCameraSource()I
    .registers 2

    .line 854
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v0

    return v0
.end method

.method public getCurrentExposure()I
    .registers 3

    .line 858
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_d

    .line 859
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 860
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getExposureCompensation()I

    move-result v1

    return v1

    .line 862
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_d
    const/4 v0, 0x0

    return v0
.end method

.method public getCurrentFps()I
    .registers 2

    .line 1050
    iget v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCurrentFps:I

    return v0
.end method

.method public getCurrentZoom()I
    .registers 3

    .line 881
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_13

    .line 882
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 883
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->isZoomSupported()Z

    move-result v1

    if-eqz v1, :cond_13

    .line 884
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getZoom()I

    move-result v1

    return v1

    .line 888
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_13
    const/4 v0, 0x1

    return v0
.end method

.method public getLastCaptureTime()J
    .registers 3

    .line 1042
    iget-wide v0, p0, Lcom/alivc/component/capture/VideoPusher;->mLastCaptureTime:J

    return-wide v0
.end method

.method public getMaxZoom()I
    .registers 3

    .line 892
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_13

    .line 893
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 894
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->isZoomSupported()Z

    move-result v1

    if-eqz v1, :cond_13

    .line 895
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v1

    return v1

    .line 899
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_13
    const/4 v0, 0x0

    return v0
.end method

.method public getTransformMatrix([F)V
    .registers 4
    .param p1, "matrix"    # [F

    .line 1062
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    if-nez v0, :cond_c

    .line 1063
    const-string v0, "VideoPusherRotation"

    const-string v1, "getTransformMatrix return null !"

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 1064
    return-void

    .line 1066
    :cond_c
    invoke-virtual {v0, p1}, Landroid/graphics/SurfaceTexture;->getTransformMatrix([F)V

    .line 1067
    return-void
.end method

.method public init(IIIIIIZZLandroid/content/Context;)V
    .registers 23
    .param p1, "source"    # I
    .param p2, "width"    # I
    .param p3, "height"    # I
    .param p4, "fps"    # I
    .param p5, "rotationMode"    # I
    .param p6, "customRotation"    # I
    .param p7, "surfaceCBMode"    # Z
    .param p8, "focusBySensor"    # Z
    .param p9, "context"    # Landroid/content/Context;

    .line 144
    move-object v0, p0

    move/from16 v1, p7

    move-object/from16 v2, p9

    if-eqz v2, :cond_c

    invoke-virtual/range {p9 .. p9}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;

    move-result-object v3

    goto :goto_d

    :cond_c
    const/4 v3, 0x0

    :goto_d
    iput-object v3, v0, Lcom/alivc/component/capture/VideoPusher;->mContext:Landroid/content/Context;

    .line 145
    const/4 v4, 0x0

    iput-boolean v4, v0, Lcom/alivc/component/capture/VideoPusher;->mCameraDisConnected:Z

    .line 146
    instance-of v4, v3, Landroid/app/Application;

    if-eqz v4, :cond_1d

    .line 147
    check-cast v3, Landroid/app/Application;

    iget-object v4, v0, Lcom/alivc/component/capture/VideoPusher;->mActivityCallbacks:Landroid/app/Application$ActivityLifecycleCallbacks;

    invoke-virtual {v3, v4}, Landroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V

    .line 149
    :cond_1d
    move/from16 v3, p5

    invoke-direct {p0, v3}, Lcom/alivc/component/capture/VideoPusher;->convertRotationMode(I)I

    move-result v10

    .line 150
    .local v10, "rotation":I
    new-instance v11, Lcom/alivc/component/capture/VideoParam;

    move-object v4, v11

    move v5, p2

    move/from16 v6, p3

    move/from16 v7, p4

    move v8, p1

    move v9, v10

    invoke-direct/range {v4 .. v9}, Lcom/alivc/component/capture/VideoParam;-><init>(IIIII)V

    iput-object v11, v0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    .line 151
    iput-boolean v1, v0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    .line 152
    move/from16 v4, p6

    iput v4, v0, Lcom/alivc/component/capture/VideoPusher;->mCustomRotation:I

    .line 153
    if-nez v1, :cond_43

    .line 154
    new-instance v5, Landroid/graphics/SurfaceTexture;

    const/16 v6, 0xa

    invoke-direct {v5, v6}, Landroid/graphics/SurfaceTexture;-><init>(I)V

    iput-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    .line 156
    :cond_43
    iget-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    if-nez v5, :cond_54

    if-eqz v2, :cond_54

    .line 157
    const-string/jumbo v5, "sensor"

    invoke-virtual {v2, v5}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Landroid/hardware/SensorManager;

    iput-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    .line 160
    :cond_54
    iget-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mAccelSensor:Landroid/hardware/Sensor;

    const/4 v6, 0x1

    if-nez v5, :cond_63

    iget-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    if-eqz v5, :cond_63

    .line 161
    invoke-virtual {v5, v6}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;

    move-result-object v5

    iput-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mAccelSensor:Landroid/hardware/Sensor;

    .line 164
    :cond_63
    iget-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mMagneticSensor:Landroid/hardware/Sensor;

    if-nez v5, :cond_72

    iget-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    if-eqz v5, :cond_72

    .line 165
    const/4 v7, 0x2

    invoke-virtual {v5, v7}, Landroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;

    move-result-object v5

    iput-object v5, v0, Lcom/alivc/component/capture/VideoPusher;->mMagneticSensor:Landroid/hardware/Sensor;

    .line 167
    :cond_72
    sget-object v5, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v7, "MI MAX"

    invoke-virtual {v5, v7}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v5

    if-nez v5, :cond_90

    sget-object v5, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v7, "MIX"

    invoke-virtual {v7, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-nez v5, :cond_90

    sget-object v5, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v7, "MIX 2"

    invoke-virtual {v7, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v5

    if-eqz v5, :cond_92

    .line 168
    :cond_90
    iput-boolean v6, v0, Lcom/alivc/component/capture/VideoPusher;->mSensorFocus:Z

    .line 170
    :cond_92
    const-string v5, "VideoPusher"

    if-eqz p8, :cond_9e

    .line 171
    iput-boolean v6, v0, Lcom/alivc/component/capture/VideoPusher;->mSensorFocus:Z

    .line 172
    const-string/jumbo v6, "set focus by Sensor"

    invoke-static {v5, v6}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 174
    :cond_9e
    iget-object v6, v0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getWidth()I

    move-result v6

    iput v6, v0, Lcom/alivc/component/capture/VideoPusher;->mDestWidth:I

    .line 175
    iget-object v6, v0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v6}, Lcom/alivc/component/capture/VideoParam;->getHeight()I

    move-result v6

    iput v6, v0, Lcom/alivc/component/capture/VideoPusher;->mDestHeight:I

    .line 176
    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V

    const-string v7, "====> Init src: "

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move v7, p1

    invoke-virtual {v6, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v8, ", width: "

    invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move v8, p2

    invoke-virtual {v6, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v9, ", height:"

    invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move/from16 v9, p3

    invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v11, ", fps:"

    invoke-virtual {v6, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move/from16 v11, p4

    invoke-virtual {v6, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v12, ", rotation:"

    invoke-virtual {v6, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v6, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v12, ", mSurfaceCbMode: "

    invoke-virtual {v6, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-boolean v12, v0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    invoke-virtual {v6, v12}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v6

    invoke-static {v5, v6}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 178
    return-void
.end method

.method public isPreviewRunning()Z
    .registers 2

    .line 1143
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewRunning:Z

    return v0
.end method

.method public isSupportAutoFocus()Z
    .registers 4

    .line 825
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_23

    .line 826
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 827
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;

    move-result-object v1

    if-eqz v1, :cond_23

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-lez v1, :cond_23

    .line 828
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;

    move-result-object v1

    const-string v2, "continuous-video"

    invoke-interface {v1, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v1

    return v1

    .line 831
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_23
    const/4 v0, 0x0

    return v0
.end method

.method public isSupportExposurePoint()Z
    .registers 3

    .line 936
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_12

    .line 938
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 939
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    if-eqz v0, :cond_12

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumMeteringAreas()I

    move-result v1

    if-lez v1, :cond_12

    .line 940
    const/4 v1, 0x1

    return v1

    .line 943
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_12
    const/4 v0, 0x0

    return v0
.end method

.method public isSupportFlash()Z
    .registers 4

    .line 835
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_24

    .line 836
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 837
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;

    move-result-object v1

    if-eqz v1, :cond_24

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-lez v1, :cond_24

    .line 838
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedFlashModes()Ljava/util/List;

    move-result-object v1

    const-string/jumbo v2, "torch"

    invoke-interface {v1, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v1

    return v1

    .line 841
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_24
    const/4 v0, 0x0

    return v0
.end method

.method public isSupportFocusPoint()Z
    .registers 3

    .line 925
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_12

    .line 927
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 928
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    if-eqz v0, :cond_12

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumFocusAreas()I

    move-result v1

    if-lez v1, :cond_12

    .line 929
    const/4 v1, 0x1

    return v1

    .line 932
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_12
    const/4 v0, 0x0

    return v0
.end method

.method public onError(ILandroid/hardware/Camera;)V
    .registers 5
    .param p1, "error"    # I
    .param p2, "camera"    # Landroid/hardware/Camera;

    .line 1148
    const/4 v0, 0x1

    const/4 v1, 0x2

    if-eq p1, v1, :cond_6

    if-ne p1, v0, :cond_8

    .line 1149
    :cond_6
    iput-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCameraDisConnected:Z

    .line 1151
    :cond_8
    return-void
.end method

.method public pause(Z)V
    .registers 4
    .param p1, "useEmptyData"    # Z

    .line 621
    const-string v0, "VideoPusher"

    const-string v1, "pause preview."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 622
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPause:Z

    .line 623
    return-void
.end method

.method public resume()V
    .registers 4

    .line 626
    const-string v0, "VideoPusher"

    const-string v1, "resume preview."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 628
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPause:Z

    if-nez v0, :cond_c

    .line 629
    return-void

    .line 631
    :cond_c
    const/4 v0, 0x0

    invoke-virtual {p0, v0}, Lcom/alivc/component/capture/VideoPusher;->stopInner(Z)V

    .line 633
    :try_start_10
    invoke-virtual {p0}, Lcom/alivc/component/capture/VideoPusher;->startInner()V
    :try_end_13
    .catch Ljava/lang/Exception; {:try_start_10 .. :try_end_13} :catch_17

    .line 638
    nop

    .line 639
    iput-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mPause:Z

    .line 640
    return-void

    .line 635
    :catch_17
    move-exception v0

    .line 636
    .local v0, "e":Ljava/lang/Exception;
    const-string v1, "VideoPusherJNI"

    const-string v2, "VideoPusherJNI resume Failed"

    invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 637
    return-void
.end method

.method public setAutoFocus(Z)V
    .registers 6
    .param p1, "autoFocus"    # Z

    .line 796
    sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v1, "OPPO A79k"

    invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_b

    .line 797
    const/4 p1, 0x0

    .line 799
    :cond_b
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_60

    .line 800
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v0

    if-nez v0, :cond_60

    .line 801
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v0}, Landroid/hardware/Camera;->cancelAutoFocus()V

    .line 802
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 803
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    const-string v1, "auto"

    if-eqz p1, :cond_3b

    .line 804
    iget-boolean v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorFocus:Z

    const/4 v3, 0x1

    if-ne v2, v3, :cond_35

    .line 805
    invoke-virtual {v0, v1}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V

    .line 806
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    const/4 v2, 0x0

    invoke-virtual {v1, v2}, Landroid/hardware/Camera;->autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V

    goto :goto_3e

    .line 808
    :cond_35
    const-string v1, "continuous-video"

    invoke-virtual {v0, v1}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V

    goto :goto_3e

    .line 811
    :cond_3b
    invoke-virtual {v0, v1}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V

    .line 814
    :goto_3e
    :try_start_3e
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_43
    .catchall {:try_start_3e .. :try_end_43} :catchall_44

    .line 817
    goto :goto_60

    .line 815
    :catchall_44
    move-exception v1

    .line 816
    .local v1, "t":Ljava/lang/Throwable;
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "VideoPusherJNI set autofocus "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v3, " mode failed"

    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

    const-string v3, "VideoPusher"

    invoke-static {v3, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 821
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    .end local v1    # "t":Ljava/lang/Throwable;
    :cond_60
    :goto_60
    iput-boolean p1, p0, Lcom/alivc/component/capture/VideoPusher;->mAutoFocus:Z

    .line 822
    return-void
.end method

.method public setExposure(I)V
    .registers 4
    .param p1, "exposure"    # I

    .line 845
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_1d

    .line 846
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 847
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMinExposureCompensation()I

    move-result v1

    if-lt p1, v1, :cond_1d

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxExposureCompensation()I

    move-result v1

    if-gt p1, v1, :cond_1d

    .line 848
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getCurrentZoom()I

    move-result v1

    invoke-virtual {v0, v1}, Landroid/hardware/Camera$Parameters;->setExposureCompensation(I)V

    .line 851
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    :cond_1d
    return-void
.end method

.method public setExposurePoint(FF)V
    .registers 16
    .param p1, "xRatio"    # F
    .param p2, "yRatio"    # F

    .line 999
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-nez v0, :cond_5

    .line 1000
    return-void

    .line 1003
    :cond_5
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 1004
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "MeteringAreas is "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumMeteringAreas()I

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    const-string v2, "VideoPusher"

    invoke-static {v2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 1005
    if-eqz v0, :cond_2c

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumMeteringAreas()I

    move-result v1

    if-nez v1, :cond_2c

    .line 1006
    return-void

    .line 1010
    :cond_2c
    const/16 v1, 0xc8

    .line 1011
    .local v1, "areaSize":I
    const/high16 v3, 0x44fa0000    # 2000.0f

    mul-float v4, p1, v3

    const/high16 v5, 0x447a0000    # 1000.0f

    sub-float/2addr v4, v5

    float-to-int v4, v4

    .line 1012
    .local v4, "x":I
    mul-float v3, v3, p2

    sub-float/2addr v3, v5

    float-to-int v3, v3

    .line 1013
    .local v3, "y":I
    div-int/lit8 v5, v1, 0x2

    sub-int v5, v4, v5

    const/16 v6, 0x3e8

    const/16 v7, -0x3e8

    invoke-direct {p0, v5, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v5

    .line 1014
    .local v5, "left":I
    div-int/lit8 v8, v1, 0x2

    sub-int v8, v3, v8

    invoke-direct {p0, v8, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v8

    .line 1015
    .local v8, "top":I
    div-int/lit8 v9, v1, 0x2

    add-int/2addr v9, v5

    invoke-direct {p0, v9, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v9

    .line 1016
    .local v9, "right":I
    div-int/lit8 v10, v1, 0x2

    add-int/2addr v10, v8

    invoke-direct {p0, v10, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v6

    .line 1019
    .local v6, "bottom":I
    new-instance v7, Landroid/hardware/Camera$Area;

    new-instance v10, Landroid/graphics/Rect;

    invoke-direct {v10, v5, v8, v9, v6}, Landroid/graphics/Rect;-><init>(IIII)V

    const/4 v11, 0x1

    invoke-direct {v7, v10, v11}, Landroid/hardware/Camera$Area;-><init>(Landroid/graphics/Rect;I)V

    .line 1020
    .local v7, "area":Landroid/hardware/Camera$Area;
    new-instance v10, Ljava/util/ArrayList;

    invoke-direct {v10}, Ljava/util/ArrayList;-><init>()V

    .line 1021
    .local v10, "areas":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/Camera$Area;>;"
    invoke-interface {v10, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 1022
    invoke-virtual {v0, v10}, Landroid/hardware/Camera$Parameters;->setMeteringAreas(Ljava/util/List;)V

    .line 1025
    :try_start_72
    iget-object v11, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v11, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_77
    .catchall {:try_start_72 .. :try_end_77} :catchall_78

    .line 1028
    goto :goto_7e

    .line 1026
    :catchall_78
    move-exception v11

    .line 1027
    .local v11, "t":Ljava/lang/Throwable;
    const-string v12, "VideoPusherJNI set Metering area failed"

    invoke-static {v2, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 1031
    .end local v11    # "t":Ljava/lang/Throwable;
    :goto_7e
    return-void
.end method

.method public setFlashOn(Z)V
    .registers 3
    .param p1, "flash"    # Z

    .line 785
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_19

    .line 786
    if-eqz p1, :cond_14

    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v0

    if-nez v0, :cond_14

    .line 787
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-static {v0}, Lcom/alivc/component/capture/VideoPusher;->turnLightOn(Landroid/hardware/Camera;)V

    goto :goto_19

    .line 789
    :cond_14
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-static {v0}, Lcom/alivc/component/capture/VideoPusher;->turnLightOff(Landroid/hardware/Camera;)V

    .line 792
    :cond_19
    :goto_19
    iput-boolean p1, p0, Lcom/alivc/component/capture/VideoPusher;->mFlashOn:Z

    .line 793
    return-void
.end method

.method public setFocus(FF)V
    .registers 16
    .param p1, "xRatio"    # F
    .param p2, "yRatio"    # F

    .line 959
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-nez v0, :cond_5

    .line 960
    return-void

    .line 963
    :cond_5
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 964
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "focusAreas is "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumFocusAreas()I

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    const-string v2, "VideoPusher"

    invoke-static {v2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 966
    if-eqz v0, :cond_2c

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxNumFocusAreas()I

    move-result v1

    if-nez v1, :cond_2c

    .line 967
    return-void

    .line 970
    :cond_2c
    const-string v1, "auto"

    invoke-virtual {v0, v1}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V

    .line 972
    const/16 v1, 0xc8

    .line 973
    .local v1, "areaSize":I
    const/high16 v3, 0x44fa0000    # 2000.0f

    mul-float v4, p1, v3

    const/high16 v5, 0x447a0000    # 1000.0f

    sub-float/2addr v4, v5

    float-to-int v4, v4

    .line 974
    .local v4, "x":I
    mul-float v3, v3, p2

    sub-float/2addr v3, v5

    float-to-int v3, v3

    .line 975
    .local v3, "y":I
    div-int/lit8 v5, v1, 0x2

    sub-int v5, v4, v5

    const/16 v6, 0x3e8

    const/16 v7, -0x3e8

    invoke-direct {p0, v5, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v5

    .line 976
    .local v5, "left":I
    div-int/lit8 v8, v1, 0x2

    sub-int v8, v3, v8

    invoke-direct {p0, v8, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v8

    .line 977
    .local v8, "top":I
    div-int/lit8 v9, v1, 0x2

    add-int/2addr v9, v5

    invoke-direct {p0, v9, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v9

    .line 978
    .local v9, "right":I
    div-int/lit8 v10, v1, 0x2

    add-int/2addr v10, v8

    invoke-direct {p0, v10, v7, v6}, Lcom/alivc/component/capture/VideoPusher;->clamp(III)I

    move-result v6

    .line 981
    .local v6, "bottom":I
    new-instance v7, Landroid/hardware/Camera$Area;

    new-instance v10, Landroid/graphics/Rect;

    invoke-direct {v10, v5, v8, v9, v6}, Landroid/graphics/Rect;-><init>(IIII)V

    const/4 v11, 0x1

    invoke-direct {v7, v10, v11}, Landroid/hardware/Camera$Area;-><init>(Landroid/graphics/Rect;I)V

    .line 982
    .local v7, "area":Landroid/hardware/Camera$Area;
    new-instance v10, Ljava/util/ArrayList;

    invoke-direct {v10}, Ljava/util/ArrayList;-><init>()V

    .line 983
    .local v10, "areas":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/Camera$Area;>;"
    invoke-interface {v10, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 984
    invoke-virtual {v0, v10}, Landroid/hardware/Camera$Parameters;->setFocusAreas(Ljava/util/List;)V

    .line 986
    :try_start_77
    iget-object v11, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v11, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_7c
    .catchall {:try_start_77 .. :try_end_7c} :catchall_7d

    .line 989
    goto :goto_83

    .line 987
    :catchall_7d
    move-exception v11

    .line 988
    .local v11, "t":Ljava/lang/Throwable;
    const-string v12, "VideoPusherJNI set focus area failed"

    invoke-static {v2, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 990
    .end local v11    # "t":Ljava/lang/Throwable;
    :goto_83
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    new-instance v11, Lcom/alivc/component/capture/VideoPusher$4;

    invoke-direct {v11, p0}, Lcom/alivc/component/capture/VideoPusher$4;-><init>(Lcom/alivc/component/capture/VideoPusher;)V

    invoke-virtual {v2, v11}, Landroid/hardware/Camera;->autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V

    .line 996
    return-void
.end method

.method public setLastCaptureTime(J)V
    .registers 3
    .param p1, "lastCaptureTime"    # J

    .line 1046
    iput-wide p1, p0, Lcom/alivc/component/capture/VideoPusher;->mLastCaptureTime:J

    .line 1047
    return-void
.end method

.method public setOrientation(I)V
    .registers 4
    .param p1, "orientation"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 316
    const-string v0, "VideoPusher"

    const-string/jumbo v1, "setOrientation."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 322
    return-void
.end method

.method public setVideoSourceListener(Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;)V
    .registers 2
    .param p1, "listener"    # Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;

    .line 1034
    iput-object p1, p0, Lcom/alivc/component/capture/VideoPusher;->mVideoSourceListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceListener;

    .line 1035
    return-void
.end method

.method public setVideoSourceTextureListener(Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;)V
    .registers 2
    .param p1, "listener"    # Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;

    .line 1038
    iput-object p1, p0, Lcom/alivc/component/capture/VideoPusher;->mVideoSourceTextureListener:Lcom/alivc/component/capture/VideoPusher$VideoSourceTextureListener;

    .line 1039
    return-void
.end method

.method public setZoom(F)V
    .registers 7
    .param p1, "scaleFactor"    # F

    .line 903
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_4d

    .line 904
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 905
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->isZoomSupported()Z

    move-result v1

    if-eqz v1, :cond_4d

    .line 906
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getCurrentZoom()I

    move-result v1

    int-to-float v1, v1

    mul-float v1, v1, p1

    float-to-int v1, v1

    .line 907
    .local v1, "zoomScaled":I
    const/4 v2, 0x1

    if-gt v1, v2, :cond_21

    .line 908
    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v3, v2}, Lcom/alivc/component/capture/VideoParam;->setCurrentZoom(I)V

    goto :goto_36

    .line 909
    :cond_21
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v2

    if-lt v1, v2, :cond_31

    .line 910
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v3

    invoke-virtual {v2, v3}, Lcom/alivc/component/capture/VideoParam;->setCurrentZoom(I)V

    goto :goto_36

    .line 912
    :cond_31
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v2, v1}, Lcom/alivc/component/capture/VideoParam;->setCurrentZoom(I)V

    .line 914
    :goto_36
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v2}, Lcom/alivc/component/capture/VideoParam;->getCurrentZoom()I

    move-result v2

    invoke-virtual {v0, v2}, Landroid/hardware/Camera$Parameters;->setZoom(I)V

    .line 916
    :try_start_3f
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v2, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_44
    .catchall {:try_start_3f .. :try_end_44} :catchall_45

    .line 919
    goto :goto_4d

    .line 917
    :catchall_45
    move-exception v2

    .line 918
    .local v2, "t":Ljava/lang/Throwable;
    const-string v3, "VideoPusher"

    const-string v4, "VideoPusherJNI set zoom failed"

    invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 922
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    .end local v1    # "zoomScaled":I
    .end local v2    # "t":Ljava/lang/Throwable;
    :cond_4d
    :goto_4d
    return-void
.end method

.method public setZoom(I)V
    .registers 6
    .param p1, "zoom"    # I

    .line 866
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v0, :cond_46

    .line 867
    invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v0

    .line 868
    .local v0, "parameters":Landroid/hardware/Camera$Parameters;
    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->isZoomSupported()Z

    move-result v1

    if-eqz v1, :cond_46

    if-ltz p1, :cond_46

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getMaxZoom()I

    move-result v1

    if-gt p1, v1, :cond_46

    .line 869
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1, p1}, Lcom/alivc/component/capture/VideoParam;->setCurrentZoom(I)V

    .line 870
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getCurrentZoom()I

    move-result v1

    invoke-virtual {v0, v1}, Landroid/hardware/Camera$Parameters;->setZoom(I)V

    .line 872
    :try_start_24
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
    :try_end_29
    .catchall {:try_start_24 .. :try_end_29} :catchall_2a

    .line 875
    goto :goto_46

    .line 873
    :catchall_2a
    move-exception v1

    .line 874
    .local v1, "t":Ljava/lang/Throwable;
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "VideoPusherJNI set zoom "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v3, " failed"

    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

    const-string v3, "VideoPusher"

    invoke-static {v3, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 878
    .end local v0    # "parameters":Landroid/hardware/Camera$Parameters;
    .end local v1    # "t":Ljava/lang/Throwable;
    :cond_46
    :goto_46
    return-void
.end method

.method public start(I)V
    .registers 4
    .param p1, "surfaceId"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 446
    const-string v0, "VideoPusher"

    const-string/jumbo v1, "start."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 447
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    if-eqz v0, :cond_24

    if-ltz p1, :cond_24

    .line 448
    iput p1, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTextureId:I

    .line 449
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    if-eqz v0, :cond_1a

    .line 450
    invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->release()V

    .line 451
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    .line 453
    :cond_1a
    new-instance v0, Landroid/graphics/SurfaceTexture;

    iget v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTextureId:I

    invoke-direct {v0, v1}, Landroid/graphics/SurfaceTexture;-><init>(I)V

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    goto :goto_3a

    .line 454
    :cond_24
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    if-eqz v0, :cond_3a

    if-gez p1, :cond_3a

    .line 455
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    .line 456
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    if-nez v0, :cond_3a

    .line 457
    new-instance v0, Landroid/graphics/SurfaceTexture;

    const/16 v1, 0xa

    invoke-direct {v0, v1}, Landroid/graphics/SurfaceTexture;-><init>(I)V

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    .line 461
    :cond_3a
    :goto_3a
    :try_start_3a
    invoke-virtual {p0}, Lcom/alivc/component/capture/VideoPusher;->startInner()V
    :try_end_3d
    .catch Ljava/lang/Exception; {:try_start_3a .. :try_end_3d} :catch_3f

    .line 465
    nop

    .line 466
    return-void

    .line 462
    :catch_3f
    move-exception v0

    .line 464
    .local v0, "e":Ljava/lang/Exception;
    throw v0
.end method

.method public startInner()V
    .registers 6
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 468
    const/4 v0, 0x0

    .line 470
    .local v0, "isStartPreviewed":Z
    :try_start_1
    invoke-direct {p0}, Lcom/alivc/component/capture/VideoPusher;->startPreview0()Z

    move-result v1
    :try_end_5
    .catchall {:try_start_1 .. :try_end_5} :catchall_7

    move v0, v1

    .line 478
    goto :goto_12

    .line 471
    :catchall_7
    move-exception v1

    .line 472
    .local v1, "t":Ljava/lang/Throwable;
    const/4 v2, 0x0

    invoke-virtual {p0, v2}, Lcom/alivc/component/capture/VideoPusher;->stopInner(Z)V

    .line 474
    :try_start_c
    invoke-direct {p0}, Lcom/alivc/component/capture/VideoPusher;->startPreview0()Z

    move-result v2
    :try_end_10
    .catch Ljava/lang/Exception; {:try_start_c .. :try_end_10} :catch_3c

    move v0, v2

    .line 477
    nop

    .line 479
    .end local v1    # "t":Ljava/lang/Throwable;
    :goto_12
    if-eqz v0, :cond_3b

    .line 480
    iget-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mFlashOn:Z

    if-eqz v1, :cond_1b

    .line 481
    invoke-virtual {p0, v1}, Lcom/alivc/component/capture/VideoPusher;->setFlashOn(Z)V

    .line 483
    :cond_1b
    iget-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mAutoFocus:Z

    if-eqz v1, :cond_22

    .line 484
    invoke-virtual {p0, v1}, Lcom/alivc/component/capture/VideoPusher;->setAutoFocus(Z)V

    .line 486
    :cond_22
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    if-eqz v1, :cond_3b

    iget-boolean v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorFocus:Z

    if-eqz v2, :cond_3b

    .line 487
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorEventListener:Landroid/hardware/SensorEventListener;

    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mAccelSensor:Landroid/hardware/Sensor;

    const/4 v4, 0x2

    invoke-virtual {v1, v2, v3, v4}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z

    .line 488
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorEventListener:Landroid/hardware/SensorEventListener;

    iget-object v3, p0, Lcom/alivc/component/capture/VideoPusher;->mMagneticSensor:Landroid/hardware/Sensor;

    invoke-virtual {v1, v2, v3, v4}, Landroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z

    .line 491
    :cond_3b
    return-void

    .line 475
    .restart local v1    # "t":Ljava/lang/Throwable;
    :catch_3c
    move-exception v2

    .line 476
    .local v2, "e":Ljava/lang/Exception;
    throw v2
.end method

.method public stop()V
    .registers 3

    .line 436
    const-string v0, "VideoPusher"

    const-string/jumbo v1, "stop."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 437
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lcom/alivc/component/capture/VideoPusher;->stopInner(Z)V

    .line 438
    iget-boolean v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceCbMode:Z

    if-eqz v0, :cond_1d

    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    if-eqz v0, :cond_1d

    .line 439
    invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->release()V

    .line 440
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    .line 441
    const/4 v0, -0x1

    iput v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTextureId:I

    .line 443
    :cond_1d
    return-void
.end method

.method public stopInner(Z)V
    .registers 6
    .param p1, "endStoped"    # Z

    .line 407
    const-string v0, "VideoPusher"

    const-string/jumbo v1, "stopInner."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 408
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorManager:Landroid/hardware/SensorManager;

    if-eqz v1, :cond_17

    iget-boolean v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorFocus:Z

    if-eqz v2, :cond_17

    .line 410
    :try_start_10
    iget-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mSensorEventListener:Landroid/hardware/SensorEventListener;

    invoke-virtual {v1, v2}, Landroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V
    :try_end_15
    .catch Ljava/lang/Exception; {:try_start_10 .. :try_end_15} :catch_16

    .line 412
    goto :goto_17

    .line 411
    :catch_16
    move-exception v1

    .line 414
    :cond_17
    :goto_17
    iget-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewRunning:Z

    if-eqz v1, :cond_7f

    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    if-eqz v1, :cond_7f

    .line 416
    const/4 v2, 0x0

    :try_start_20
    invoke-virtual {v1}, Landroid/hardware/Camera;->stopPreview()V

    .line 417
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1, v2}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V

    .line 418
    if-eqz p1, :cond_6d

    sget-object v1, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;

    const-string v3, "Google"

    invoke-virtual {v1, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_3e

    sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v3, "Pixel 2"

    invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-nez v1, :cond_66

    :cond_3e
    sget-object v1, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;

    const-string v3, "motorola"

    .line 419
    invoke-virtual {v1, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_52

    sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v3, "Nexus 6"

    invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-nez v1, :cond_66

    :cond_52
    sget-object v1, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;

    const-string v3, "LGE"

    .line 420
    invoke-virtual {v1, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_6d

    sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String;

    const-string v3, "Nexus 5"

    invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1
    :try_end_64
    .catchall {:try_start_20 .. :try_end_64} :catchall_73

    if-eqz v1, :cond_6d

    .line 422
    :cond_66
    :try_start_66
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1}, Landroid/hardware/Camera;->unlock()V
    :try_end_6b
    .catchall {:try_start_66 .. :try_end_6b} :catchall_6c

    .line 424
    goto :goto_6d

    .line 423
    :catchall_6c
    move-exception v1

    .line 426
    :cond_6d
    :goto_6d
    :try_start_6d
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    invoke-virtual {v1}, Landroid/hardware/Camera;->release()V
    :try_end_72
    .catchall {:try_start_6d .. :try_end_72} :catchall_73

    .line 428
    goto :goto_74

    .line 427
    :catchall_73
    move-exception v1

    .line 429
    :goto_74
    iput-object v2, p0, Lcom/alivc/component/capture/VideoPusher;->mCamera:Landroid/hardware/Camera;

    .line 430
    const/4 v1, 0x0

    iput-boolean v1, p0, Lcom/alivc/component/capture/VideoPusher;->mPreviewRunning:Z

    .line 431
    const-string/jumbo v1, "stopInner over."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 433
    :cond_7f
    return-void
.end method

.method public switchCamera()V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 305
    const-string v0, "VideoPusher"

    const-string/jumbo v1, "switchCamera."

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 306
    const/4 v0, 0x0

    invoke-virtual {p0, v0}, Lcom/alivc/component/capture/VideoPusher;->stopInner(Z)V

    .line 307
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1}, Lcom/alivc/component/capture/VideoParam;->getCameraId()I

    move-result v1

    if-nez v1, :cond_1b

    .line 308
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Lcom/alivc/component/capture/VideoParam;->setCameraId(I)V

    goto :goto_20

    .line 310
    :cond_1b
    iget-object v1, p0, Lcom/alivc/component/capture/VideoPusher;->mParam:Lcom/alivc/component/capture/VideoParam;

    invoke-virtual {v1, v0}, Lcom/alivc/component/capture/VideoParam;->setCameraId(I)V

    .line 312
    :goto_20
    invoke-virtual {p0}, Lcom/alivc/component/capture/VideoPusher;->startInner()V

    .line 313
    return-void
.end method

.method public updateTexImage()I
    .registers 2

    .line 1054
    iget-object v0, p0, Lcom/alivc/component/capture/VideoPusher;->mSurfaceTexture:Landroid/graphics/SurfaceTexture;

    if-nez v0, :cond_6

    .line 1055
    const/4 v0, -0x1

    return v0

    .line 1057
    :cond_6
    invoke-virtual {v0}, Landroid/graphics/SurfaceTexture;->updateTexImage()V

    .line 1058
    const/4 v0, 0x0

    return v0
.end method