c.smali

.class public final Lcom/polly/mobile/videosdk/a/c;
.super Lcom/polly/mobile/videosdk/a/a;
.source "SourceFile"


# instance fields
.field protected s:I

.field protected t:I

.field protected u:I

.field public v:F


# direct methods
.method public constructor <init>()V
    .registers 2

    .line 103
    invoke-direct {p0}, Lcom/polly/mobile/videosdk/a/a;-><init>()V

    const/high16 v0, 0x3f800000    # 1.0f

    .line 100
    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->v:F

    const/16 v0, 0x64

    .line 104
    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->m:I

    return-void
.end method

.method public constructor <init>(Z)V
    .registers 2

    .line 108
    invoke-direct {p0, p1}, Lcom/polly/mobile/videosdk/a/a;-><init>(Z)V

    const/high16 p1, 0x3f800000    # 1.0f

    .line 100
    iput p1, p0, Lcom/polly/mobile/videosdk/a/c;->v:F

    const/16 p1, 0x64

    .line 109
    iput p1, p0, Lcom/polly/mobile/videosdk/a/c;->m:I

    return-void
.end method


# virtual methods
.method public final a([I[F[F)V
    .registers 5

    const p2, 0x84c0

    .line 154
    invoke-static {p2}, Landroid/opengl/GLES20;->glActiveTexture(I)V

    const/4 p2, 0x0

    .line 155
    aget p3, p1, p2

    const/16 v0, 0xde1

    invoke-static {v0, p3}, Landroid/opengl/GLES20;->glBindTexture(II)V

    .line 156
    iget p3, p0, Lcom/polly/mobile/videosdk/a/c;->s:I

    invoke-static {p3, p2}, Landroid/opengl/GLES20;->glUniform1i(II)V

    const p3, 0x84c1

    .line 158
    invoke-static {p3}, Landroid/opengl/GLES20;->glActiveTexture(I)V

    const/4 p3, 0x1

    .line 159
    aget p1, p1, p3

    invoke-static {v0, p1}, Landroid/opengl/GLES20;->glBindTexture(II)V

    .line 160
    iget p1, p0, Lcom/polly/mobile/videosdk/a/c;->t:I

    invoke-static {p1, p3}, Landroid/opengl/GLES20;->glUniform1i(II)V

    .line 162
    iget p1, p0, Lcom/polly/mobile/videosdk/a/c;->u:I

    iget p3, p0, Lcom/polly/mobile/videosdk/a/c;->v:F

    invoke-static {p1, p3}, Landroid/opengl/GLES20;->glUniform1f(IF)V

    const/4 p1, 0x5

    const/4 p3, 0x4

    .line 164
    invoke-static {p1, p2, p3}, Landroid/opengl/GLES20;->glDrawArrays(III)V

    .line 166
    invoke-static {}, Landroid/opengl/GLES20;->glFlush()V

    .line 167
    invoke-static {v0, p2}, Landroid/opengl/GLES20;->glBindTexture(II)V

    return-void
.end method

.method protected final b()V
    .registers 3

    const-string v0, "attribute vec3 attPosition;attribute vec2 attTexCoord;varying vec2 texCoord;void main() {  gl_Position = vec4(attPosition, 1.0);  texCoord =  attTexCoord;}"

    const-string v1, "precision highp float;varying vec2 texCoord;uniform sampler2D inputImageTexture;uniform sampler2D inputImageLut;uniform float intensity;void main(){    highp vec4 textureColor = texture2D(inputImageTexture, texCoord);    highp float blueColor = textureColor.b * 63.0;                                                      highp vec2 quad1;    quad1.y = floor(floor(blueColor) / 8.0);    quad1.x = floor(blueColor) - (quad1.y * 8.0);    highp vec2 quad2;    quad2.y = floor(ceil(blueColor) / 8.0);    quad2.x = ceil(blueColor) - (quad2.y * 8.0);    highp vec2 texPos1;    texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);    texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);    highp vec2 texPos2;    texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);    texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);    lowp vec4 newColor1 = texture2D(inputImageLut, texPos1);    lowp vec4 newColor2 = texture2D(inputImageLut, texPos2);    lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor));    gl_FragColor = mix(textureColor, newColor, intensity);}"

    .line 118
    invoke-static {v0, v1}, Lcom/polly/mobile/videosdk/a/c;->a(Ljava/lang/String;Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    .line 120
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    if-gtz v0, :cond_16

    const-string v0, "vpsdkfilter"

    const-string v1, "Cannot build directDraw filter"

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

    return-void

    .line 126
    :cond_16
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    const-string v1, "attPosition"

    invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->o:I

    .line 127
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    const-string v1, "attTexCoord"

    invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->p:I

    .line 128
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    const-string v1, "inputImageTexture"

    invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->s:I

    .line 129
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    const-string v1, "inputImageLut"

    invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->t:I

    .line 130
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    const-string v1, "intensity"

    invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/polly/mobile/videosdk/a/c;->u:I

    .line 132
    invoke-virtual {p0}, Lcom/polly/mobile/videosdk/a/c;->e()V

    return-void
.end method

.method protected final c()V
    .registers 4

    .line 137
    invoke-super {p0}, Lcom/polly/mobile/videosdk/a/a;->c()V

    .line 139
    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->n:I

    if-lez v0, :cond_1b

    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->o:I

    if-ltz v0, :cond_1b

    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->p:I

    if-ltz v0, :cond_1b

    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->s:I

    if-ltz v0, :cond_1b

    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->t:I

    if-ltz v0, :cond_1b

    iget v0, p0, Lcom/polly/mobile/videosdk/a/c;->u:I

    if-gez v0, :cond_57

    .line 146
    :cond_1b
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "YuvRenderFilter: "

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

    iget v1, p0, Lcom/polly/mobile/videosdk/a/c;->n: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 v2, p0, Lcom/polly/mobile/videosdk/a/c;->o:I

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

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

    iget v1, p0, Lcom/polly/mobile/videosdk/a/c;->p: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 v2, p0, Lcom/polly/mobile/videosdk/a/c;->s:I

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

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

    iget v1, p0, Lcom/polly/mobile/videosdk/a/c;->t:I

    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, "vpsdkfilter"

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

    const/4 v0, 0x0

    .line 147
    iput-boolean v0, p0, Lcom/polly/mobile/videosdk/a/c;->l:Z

    :cond_57
    return-void
.end method