summaryrefslogtreecommitdiff
path: root/test/public-api.cpp
diff options
context:
space:
mode:
authorUmang Jain <umang.jain@ideasonboard.com>2022-03-08 14:45:19 +0530
committerUmang Jain <umang.jain@ideasonboard.com>2022-03-23 21:53:38 +0530
commitdb269cc4b36d1da80a2116f6406e96b3de8d6e95 (patch)
tree419f8e6793998eed6471cdc6b3b1cfed867de3c0 /test/public-api.cpp
parented859f554f205cd289ecfaa391ce553690663daf (diff)
ipa: rkisp1: Drop private exposure and gain limits
The private members of exposure and gain limits can be dropped from IPARkISP1 since they are not used class-wide and can be easily replaced by local counter-parts. In case they are required to be widely available, these should then sit in IPASessionConfiguration. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Tested-by: Paul Elder <paul.elder@ideasonboard.com>
Diffstat (limited to 'test/public-api.cpp')
0 files changed, 0 insertions, 0 deletions
00, 0.500); /* * The sampler won't interpolate the texture correctly along the X axis, * as each RGBA pixel effectively stores two pixels. We thus need to * interpolate manually. * * In integer texture coordinates, the Y values are layed out in the * texture memory as follows: * * ...| Y U Y V | Y U Y V | Y U Y V |... * ...| R G B A | R G B A | R G B A |... * ^ ^ ^ ^ ^ ^ * | | | | | | * n-1 n-0.5 n n+0.5 n+1 n+1.5 * * For a texture location x in the interval [n, n+1[, sample the left * and right pixels at n and n+1, and interpolate them with * * left.r * (1 - a) + left.b * a if fract(x) < 0.5 * left.b * (1 - a) + right.r * a if fract(x) >= 0.5 * * with a = fract(x * 2) which can also be written * * a = fract(x) * 2 if fract(x) < 0.5 * a = fract(x) * 2 - 1 if fract(x) >= 0.5 */ vec2 pos = textureOut; float f_x = fract(pos.x / tex_stepx); vec4 left = texture2D(tex_y, vec2(pos.x - f_x * tex_stepx, pos.y)); vec4 right = texture2D(tex_y, vec2(pos.x + (1.0 - f_x) * tex_stepx , pos.y)); #if defined(YUV_PATTERN_UYVY) float y_left = mix(left.g, left.a, f_x * 2.0); float y_right = mix(left.a, right.g, f_x * 2.0 - 1.0); vec2 uv = mix(left.rb, right.rb, f_x); #elif defined(YUV_PATTERN_VYUY) float y_left = mix(left.g, left.a, f_x * 2.0); float y_right = mix(left.a, right.g, f_x * 2.0 - 1.0); vec2 uv = mix(left.br, right.br, f_x); #elif defined(YUV_PATTERN_YUYV) float y_left = mix(left.r, left.b, f_x * 2.0); float y_right = mix(left.b, right.r, f_x * 2.0 - 1.0); vec2 uv = mix(left.ga, right.ga, f_x); #elif defined(YUV_PATTERN_YVYU) float y_left = mix(left.r, left.b, f_x * 2.0); float y_right = mix(left.b, right.r, f_x * 2.0 - 1.0); vec2 uv = mix(left.ag, right.ag, f_x); #else #error Invalid pattern #endif float y = mix(y_left, y_right, step(0.5, f_x)); vec3 rgb = yuv2rgb_bt601_mat * (vec3(y, uv) - yuv2rgb_bt601_offset); gl_FragColor = vec4(rgb, 1.0); }