GlOffScreenSurface.smali

.class public Lcom/polly/mobile/video/proc/GlOffScreenSurface;
.super Lcom/polly/mobile/video/proc/c;
.source "SourceFile"


# static fields
.field static final f:[F

.field public static final g:[F


# instance fields
.field public d:[I

.field final e:Z

.field private final h:Ljava/nio/FloatBuffer;

.field private final i:Ljava/nio/FloatBuffer;

.field private j:I

.field private k:I

.field private l:I

.field private m:I

.field private n:Lcom/polly/mobile/video/proc/e;

.field private o:Z

.field private p:Z

.field private q:Z

.field private r:J


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

    const/16 v0, 0x8

    new-array v1, v0, [F

    .line 24
    fill-array-data v1, :array_12

    sput-object v1, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->f:[F

    new-array v0, v0, [F

    .line 25
    fill-array-data v0, :array_26

    sput-object v0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->g:[F

    return-void

    nop

    :array_12
    .array-data 4
        -0x40800000    # -1.0f
        -0x40800000    # -1.0f
        0x3f800000    # 1.0f
        -0x40800000    # -1.0f
        -0x40800000    # -1.0f
        0x3f800000    # 1.0f
        0x3f800000    # 1.0f
        0x3f800000    # 1.0f
    .end array-data

    :array_26
    .array-data 4
        0x0
        0x3f800000    # 1.0f
        0x3f800000    # 1.0f
        0x3f800000    # 1.0f
        0x0
        0x0
        0x3f800000    # 1.0f
        0x0
    .end array-data
.end method

.method public constructor <init>(Lcom/polly/mobile/video/proc/h;II)V
    .registers 12

    .line 41
    invoke-direct {p0, p1}, Lcom/polly/mobile/video/proc/c;-><init>(Lcom/polly/mobile/video/proc/h;)V

    const/4 p1, 0x1

    .line 23
    iput-boolean p1, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->e:Z

    const/4 v0, 0x0

    .line 35
    iput-boolean v0, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->q:Z

    const-wide/16 v1, 0x0

    .line 150
    iput-wide v1, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->r:J

    .line 42
    invoke-virtual {p0, p2, p3}, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->a(II)V

    const/4 v1, 0x3

    new-array v2, v1, [I

    .line 45
    iput-object v2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->d:[I

    const/4 v3, -0x1

    aput v3, v2, v0

    aput v3, v2, p1

    const/4 v4, 0x2

    aput v3, v2, v4

    .line 50
    sget-object v2, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->f:[F

    array-length v2, v2

    const/4 v3, 0x4

    mul-int/lit8 v2, v2, 0x4

    invoke-static {v2}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v2

    .line 51
    invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;

    move-result-object v5

    invoke-virtual {v2, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;

    move-result-object v2

    invoke-virtual {v2}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;

    move-result-object v2

    iput-object v2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->h:Ljava/nio/FloatBuffer;

    .line 52
    sget-object v5, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->f:[F

    invoke-virtual {v2, v5}, Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    .line 53
    sget-object v2, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->g:[F

    array-length v2, v2

    mul-int/lit8 v2, v2, 0x4

    .line 54
    invoke-static {v2}, Ljava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;

    move-result-object v2

    .line 55
    invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;

    move-result-object v5

    invoke-virtual {v2, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;

    move-result-object v2

    invoke-virtual {v2}, Ljava/nio/ByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;

    move-result-object v2

    iput-object v2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->i:Ljava/nio/FloatBuffer;

    .line 56
    iput p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->j:I

    .line 57
    iput p3, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->k:I

    .line 58
    iput p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->l:I

    .line 59
    iput p3, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->m:I

    .line 60
    sget-object p2, Lcom/polly/mobile/video/proc/e;->NORMAL:Lcom/polly/mobile/video/proc/e;

    .line 1066
    iput-boolean v0, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->o:Z

    .line 1067
    iput-boolean v0, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->p:Z

    .line 1071
    iput-object p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->n:Lcom/polly/mobile/video/proc/e;

    .line 1078
    iget p3, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->j:I

    int-to-float p3, p3

    .line 1079
    iget v2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->k:I

    int-to-float v2, v2

    .line 1080
    sget-object v5, Lcom/polly/mobile/video/proc/e;->ROTATION_270:Lcom/polly/mobile/video/proc/e;

    if-eq p2, v5, :cond_75

    iget-object p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->n:Lcom/polly/mobile/video/proc/e;

    sget-object v5, Lcom/polly/mobile/video/proc/e;->ROTATION_90:Lcom/polly/mobile/video/proc/e;

    if-ne p2, v5, :cond_7b

    .line 1082
    :cond_75
    iget p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->k:I

    int-to-float p3, p2

    .line 1083
    iget p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->j:I

    int-to-float v2, p2

    .line 1086
    :cond_7b
    iget p2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->l:I

    int-to-float p2, p2

    div-float p2, p3, p2

    .line 1087
    iget v5, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->m:I

    int-to-float v5, v5

    div-float v5, v2, v5

    .line 1088
    invoke-static {p2, v5}, Ljava/lang/Math;->max(FF)F

    move-result p2

    .line 1089
    iget v5, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->l:I

    int-to-float v5, v5

    mul-float v5, v5, p2

    invoke-static {v5}, Ljava/lang/Math;->round(F)I

    move-result v5

    .line 1090
    iget v6, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->m:I

    int-to-float v6, v6

    mul-float v6, v6, p2

    invoke-static {v6}, Ljava/lang/Math;->round(F)I

    move-result p2

    int-to-float v5, v5

    div-float/2addr v5, p3

    int-to-float p2, p2

    div-float/2addr p2, v2

    .line 1096
    iget-object p3, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->n:Lcom/polly/mobile/video/proc/e;

    iget-boolean v2, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->o:Z

    iget-boolean v6, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->p:Z

    invoke-static {p3, v2, v6}, Lcom/polly/mobile/video/proc/f;->a(Lcom/polly/mobile/video/proc/e;ZZ)[F

    move-result-object p3

    const/16 v2, 0x8

    new-array v2, v2, [F

    .line 1098
    sget-object v6, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->f:[F

    aget v7, v6, v0

    div-float/2addr v7, p2

    aput v7, v2, v0

    aget v7, v6, p1

    div-float/2addr v7, v5

    aput v7, v2, p1

    aget p1, v6, v4

    div-float/2addr p1, p2

    aput p1, v2, v4

    aget p1, v6, v1

    div-float/2addr p1, v5

    aput p1, v2, v1

    aget p1, v6, v3

    div-float/2addr p1, p2

    aput p1, v2, v3

    const/4 p1, 0x5

    aget v1, v6, p1

    div-float/2addr v1, v5

    aput v1, v2, p1

    const/4 p1, 0x6

    aget v1, v6, p1

    div-float/2addr v1, p2

    aput v1, v2, p1

    const/4 p1, 0x7

    aget p2, v6, p1

    div-float/2addr p2, v5

    aput p2, v2, p1

    .line 1103
    iget-object p1, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->h:Ljava/nio/FloatBuffer;

    invoke-virtual {p1}, Ljava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;

    .line 1104
    iget-object p1, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->h:Ljava/nio/FloatBuffer;

    invoke-virtual {p1, v2}, Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;

    move-result-object p1

    invoke-virtual {p1, v0}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    .line 1105
    iget-object p1, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->i:Ljava/nio/FloatBuffer;

    invoke-virtual {p1}, Ljava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;

    .line 1106
    iget-object p1, p0, Lcom/polly/mobile/video/proc/GlOffScreenSurface;->i:Ljava/nio/FloatBuffer;

    invoke-virtual {p1, p3}, Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;

    move-result-object p1

    invoke-virtual {p1, v0}, Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;

    return-void
.end method

.method public static a(Z)Lcom/polly/mobile/video/proc/h;
    .registers 3

    .line 206
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x14

    if-gt v0, v1, :cond_c

    .line 207
    new-instance p0, Lcom/polly/mobile/video/proc/b;

    invoke-direct {p0}, Lcom/polly/mobile/video/proc/b;-><init>()V

    goto :goto_16

    :cond_c
    const/4 v0, 0x1

    if-eqz p0, :cond_10

    const/4 v0, 0x3

    .line 213
    :cond_10
    new-instance p0, Lcom/polly/mobile/video/proc/a;

    const/4 v1, 0x0

    invoke-direct {p0, v1, v0}, Lcom/polly/mobile/video/proc/a;-><init>(Landroid/opengl/EGLContext;I)V

    :goto_16
    return-object p0
.end method

.method public static native unpacketYUV([I[BII)I
.end method