feat: select fourcc and handle hw decoded
Clang Build CI / build-release (push) Failing after 54s
Clang Build CI / run-video (push) Successful in 1m12s
Clang Lint CI / lint-no-video (push) Successful in 1m12s
Clang Build CI / run-no-video (push) Successful in 1m17s
Clang Lint CI / lint-video (push) Successful in 4m33s

This commit is contained in:
2026-05-17 00:40:22 +02:00
parent e667c6b869
commit e38f57af46
11 changed files with 74 additions and 31 deletions
+23 -7
View File
@@ -3,11 +3,27 @@
const int YUYV_FOURCC = 1448695129;
const mat3x3 yuyv_to_rgb = {{1,1,1},{0,-0.39465,2.03211},{1.13983,-0.5806,0}};
// https://en.wikipedia.org/wiki/Y%E2%80%B2UV
const mat3x3 yuyv_to_rgb_bt709 = {
{
1,
1,
1
},
{
0,
-0.21482,
2.12798
},
{
1.28033,
-0.38059,
0
}
};
vec4 yuyvTex(sampler2D tex, vec2 vUV, int base_width) {
float w = base_width - 1;
int x = int(vUV.x * w);
int xU = x - x % 2;
@@ -17,12 +33,12 @@ vec4 yuyvTex(sampler2D tex, vec2 vUV, int base_width) {
vec4 tV = texture(tex, vec2(xV / w, 1 - vUV.y));
vec3 yuv = vec3(
x % 2 == 0 ? tU.x : tV.x,
tU.y - 0.5,
tV.y - 0.5
);
x % 2 == 0 ? tU.x : tV.x,
tU.y - 0.5,
tV.y - 0.5
);
return vec4(yuyv_to_rgb * yuv, 1.0);
return vec4(yuyv_to_rgb_bt709 * yuv, 1.0);
}
#endif