a.smali
.class public final Lcom/tencent/liteav/videobase/c/a;
.super Lcom/tencent/liteav/videobase/c/i;
.source "SourceFile"
# static fields
.field private static final c:[F
.field private static final d:[F
.field private static final e:[F
.field private static final f:[F
.field private static final g:[F
.field private static final h:[F
# instance fields
.field private i:I
.field private j:I
# direct methods
.method static constructor <clinit>()V
.registers 2
const/16 v0, 0x9
new-array v1, v0, [F
.line 44
fill-array-data v1, :array_2e
sput-object v1, Lcom/tencent/liteav/videobase/c/a;->c:[F
new-array v1, v0, [F
.line 47
fill-array-data v1, :array_44
sput-object v1, Lcom/tencent/liteav/videobase/c/a;->d:[F
new-array v1, v0, [F
.line 50
fill-array-data v1, :array_5a
sput-object v1, Lcom/tencent/liteav/videobase/c/a;->e:[F
new-array v0, v0, [F
.line 53
fill-array-data v0, :array_70
sput-object v0, Lcom/tencent/liteav/videobase/c/a;->f:[F
const/4 v0, 0x3
new-array v1, v0, [F
.line 57
fill-array-data v1, :array_86
sput-object v1, Lcom/tencent/liteav/videobase/c/a;->g:[F
new-array v0, v0, [F
.line 60
fill-array-data v0, :array_90
sput-object v0, Lcom/tencent/liteav/videobase/c/a;->h:[F
return-void
:array_2e
.array-data 4
0x3f950b0f # 1.1644f
0x3f950b0f # 1.1644f
0x3f950b0f # 1.1644f
0x0
-0x413765fe # -0.3918f
0x400119ce # 2.0172f
0x3fcc49ba # 1.596f
-0x40afdf3b # -0.813f
0x0
.end array-data
:array_44
.array-data 4
0x3f800000 # 1.0f
0x3f800000 # 1.0f
0x3f800000 # 1.0f
0x0
-0x414fd220 # -0.3441f
0x3fe2d0e5 # 1.772f
0x3fb374bc # 1.402f
-0x40c930be # -0.7141f
0x0
.end array-data
:array_5a
.array-data 4
0x3f950b0f # 1.1644f
0x3f950b0f # 1.1644f
0x3f950b0f # 1.1644f
0x0
-0x41a5aee6 # -0.2132f
0x40073190 # 2.1124f
0x3fe57732 # 1.7927f
-0x40f793de # -0.5329f
0x0
.end array-data
:array_70
.array-data 4
0x3f800000 # 1.0f
0x3f800000 # 1.0f
0x3f800000 # 1.0f
0x0
-0x41c0346e # -0.1873f
0x3fed844d # 1.8556f
0x3fc9930c # 1.5748f
-0x41105532 # -0.4681f
0x0
.end array-data
:array_86
.array-data 4
-0x427f7f7f
-0x40ff7f7f
-0x40ff7f7f
.end array-data
:array_90
.array-data 4
0x0
-0x40ff7f7f
-0x40ff7f7f
.end array-data
.end method
.method public constructor <init>(Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;)V
.registers 5
const-string v0, "attribute vec4 position;\nattribute vec4 inputTextureCoordinate;\nuniform mat4 textureTransform;\nvarying highp vec2 textureCoordinate;\nvoid main()\n{\n gl_Position = position;\n textureCoordinate = (textureTransform * inputTextureCoordinate).xy;\n}"
const-string v1, "precision highp float;\nvarying vec2 textureCoordinate;\nuniform sampler2D inputImageTexture;\nuniform sampler2D uvTexture;\nuniform mat3 convertMatrix;\nuniform vec3 offset;\n\nvoid main()\n{\n highp vec3 yuvColor;\n highp vec3 rgbColor;\n\n // Get the YUV values\n yuvColor.x = texture2D(inputImageTexture, textureCoordinate).r;\n yuvColor.y = texture2D(uvTexture, vec2(textureCoordinate.x, textureCoordinate.y * 0.5)).r;\n yuvColor.z = texture2D(uvTexture, vec2(textureCoordinate.x, textureCoordinate.y * 0.5 + 0.5)).r;\n\n // Do the color transform\n yuvColor += offset;\n rgbColor = convertMatrix * yuvColor;\n\n gl_FragColor = vec4(rgbColor, 1.0);\n}"
.line 67
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/liteav/videobase/c/i;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;)V
return-void
.end method
.method static synthetic a(Lcom/tencent/liteav/videobase/c/a;)V
.registers 7
.line 76
invoke-virtual {p0}, Lcom/tencent/liteav/videobase/c/a;->getProgramId()I
move-result v0
invoke-static {v0}, Landroid/opengl/GLES20;->glUseProgram(I)V
.line 77
iget v0, p0, Lcom/tencent/liteav/videobase/c/a;->j:I
.line 1088
sget-object v1, Lcom/tencent/liteav/videobase/c/a$1;->a:[I
iget-object v2, p0, Lcom/tencent/liteav/videobase/c/a;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
invoke-virtual {v2}, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->ordinal()I
move-result v2
aget v1, v1, v2
const/4 v2, 0x1
if-eq v1, v2, :cond_19
.line 1094
sget-object v1, Lcom/tencent/liteav/videobase/c/a;->g:[F
goto :goto_1b
.line 1090
:cond_19
sget-object v1, Lcom/tencent/liteav/videobase/c/a;->h:[F
:goto_1b
const/4 v3, 0x0
.line 77
invoke-static {v0, v2, v1, v3}, Landroid/opengl/GLES20;->glUniform3fv(II[FI)V
.line 78
iget v0, p0, Lcom/tencent/liteav/videobase/c/a;->i:I
.line 1099
iget-object v1, p0, Lcom/tencent/liteav/videobase/c/a;->a:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
.line 1100
iget-object v4, p0, Lcom/tencent/liteav/videobase/c/a;->a:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
if-eqz v4, :cond_2d
iget-object v4, p0, Lcom/tencent/liteav/videobase/c/a;->a:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
sget-object v5, Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;->a:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
if-ne v4, v5, :cond_2f
.line 1101
:cond_2d
sget-object v1, Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
.line 1104
:cond_2f
iget-object v4, p0, Lcom/tencent/liteav/videobase/c/a;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
.line 1105
iget-object v5, p0, Lcom/tencent/liteav/videobase/c/a;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
if-eqz v5, :cond_3b
iget-object p0, p0, Lcom/tencent/liteav/videobase/c/a;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
sget-object v5, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->a:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
if-ne p0, v5, :cond_3d
.line 1106
:cond_3b
sget-object v4, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
.line 1109
:cond_3d
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
if-ne v1, p0, :cond_4c
.line 1110
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
if-eq v4, p0, :cond_5e
.line 1112
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->c:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
if-ne v4, p0, :cond_5e
.line 1113
sget-object p0, Lcom/tencent/liteav/videobase/c/a;->d:[F
goto :goto_60
.line 1115
:cond_4c
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;->c:Lcom/tencent/liteav/videobase/base/GLConstants$ColorSpace;
if-ne v1, p0, :cond_5e
.line 1116
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->b:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
if-ne v4, p0, :cond_57
.line 1117
sget-object p0, Lcom/tencent/liteav/videobase/c/a;->e:[F
goto :goto_60
.line 1118
:cond_57
sget-object p0, Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;->c:Lcom/tencent/liteav/videobase/base/GLConstants$ColorRange;
if-ne v4, p0, :cond_5e
.line 1119
sget-object p0, Lcom/tencent/liteav/videobase/c/a;->f:[F
goto :goto_60
.line 1122
:cond_5e
sget-object p0, Lcom/tencent/liteav/videobase/c/a;->c:[F
.line 78
:goto_60
invoke-static {v0, v2, v3, p0, v3}, Landroid/opengl/GLES20;->glUniformMatrix3fv(IIZ[FI)V
return-void
.end method
# virtual methods
.method protected final a()I
.registers 2
const/16 v0, 0x1909
return v0
.end method
.method public final onInit(Lcom/tencent/liteav/videobase/frame/e;)V
.registers 3
.line 72
invoke-super {p0, p1}, Lcom/tencent/liteav/videobase/c/i;->onInit(Lcom/tencent/liteav/videobase/frame/e;)V
.line 73
invoke-virtual {p0}, Lcom/tencent/liteav/videobase/c/a;->getProgramId()I
move-result p1
const-string v0, "convertMatrix"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lcom/tencent/liteav/videobase/c/a;->i:I
.line 74
invoke-virtual {p0}, Lcom/tencent/liteav/videobase/c/a;->getProgramId()I
move-result p1
const-string v0, "offset"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lcom/tencent/liteav/videobase/c/a;->j:I
.line 75
invoke-static {p0}, Lcom/tencent/liteav/videobase/c/b;->a(Lcom/tencent/liteav/videobase/c/a;)Ljava/lang/Runnable;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/tencent/liteav/videobase/c/a;->runOnDraw(Ljava/lang/Runnable;)V
return-void
.end method