summaryrefslogtreecommitdiffstats
path: root/src/qtmultimediaquicktools/shaders
diff options
context:
space:
mode:
Diffstat (limited to 'src/qtmultimediaquicktools/shaders')
-rw-r--r--src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.frag16
-rw-r--r--src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.vert14
-rw-r--r--src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle_core.frag16
-rw-r--r--src/qtmultimediaquicktools/shaders/monoplanarvideo_core.vert10
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo_core.frag10
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo_padded_core.vert11
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo_swizzle_core.frag12
-rw-r--r--src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.frag19
-rw-r--r--src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.vert17
-rw-r--r--src/qtmultimediaquicktools/shaders/uyvyvideo_core.frag13
-rw-r--r--src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag13
11 files changed, 151 insertions, 0 deletions
diff --git a/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.frag b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.frag
new file mode 100644
index 000000000..1261782f8
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.frag
@@ -0,0 +1,16 @@
+#version 150 core
+uniform sampler2D plane1Texture;
+uniform sampler2D plane2Texture;
+uniform mat4 colorMatrix;
+uniform float opacity;
+in vec2 plane1TexCoord;
+in vec2 plane2TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ float Y = texture(plane1Texture, plane1TexCoord).r;
+ vec2 UV = texture(plane2Texture, plane2TexCoord).ra;
+ vec4 color = vec4(Y, UV.x, UV.y, 1.);
+ fragColor = colorMatrix * color * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.vert b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.vert
new file mode 100644
index 000000000..1c162785e
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_core.vert
@@ -0,0 +1,14 @@
+#version 150 core
+uniform mat4 qt_Matrix;
+uniform float plane1Width;
+uniform float plane2Width;
+in vec4 qt_VertexPosition;
+in vec2 qt_VertexTexCoord;
+out vec2 plane1TexCoord;
+out vec2 plane2TexCoord;
+
+void main() {
+ plane1TexCoord = qt_VertexTexCoord * vec2(plane1Width, 1);
+ plane2TexCoord = qt_VertexTexCoord * vec2(plane2Width, 1);
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle_core.frag b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle_core.frag
new file mode 100644
index 000000000..48ef3fa2c
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle_core.frag
@@ -0,0 +1,16 @@
+#version 150 core
+uniform sampler2D plane1Texture;
+uniform sampler2D plane2Texture;
+uniform mat4 colorMatrix;
+uniform float opacity;
+in vec2 plane1TexCoord;
+in vec2 plane2TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ float Y = texture(plane1Texture, plane1TexCoord).r;
+ vec2 UV = texture(plane2Texture, plane2TexCoord).ar;
+ vec4 color = vec4(Y, UV.x, UV.y, 1.);
+ fragColor = colorMatrix * color * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/monoplanarvideo_core.vert b/src/qtmultimediaquicktools/shaders/monoplanarvideo_core.vert
new file mode 100644
index 000000000..23b9bfae2
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/monoplanarvideo_core.vert
@@ -0,0 +1,10 @@
+#version 150 core
+uniform mat4 qt_Matrix;
+in vec4 qt_VertexPosition;
+in vec2 qt_VertexTexCoord;
+out vec2 qt_TexCoord;
+
+void main() {
+ qt_TexCoord = qt_VertexTexCoord;
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo_core.frag b/src/qtmultimediaquicktools/shaders/rgbvideo_core.frag
new file mode 100644
index 000000000..ac41c108d
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo_core.frag
@@ -0,0 +1,10 @@
+#version 150 core
+uniform sampler2D rgbTexture;
+uniform float opacity;
+in vec2 qt_TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ fragColor = texture(rgbTexture, qt_TexCoord) * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo_padded_core.vert b/src/qtmultimediaquicktools/shaders/rgbvideo_padded_core.vert
new file mode 100644
index 000000000..d4fa8ad76
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo_padded_core.vert
@@ -0,0 +1,11 @@
+#version 150 core
+uniform mat4 qt_Matrix;
+uniform float width;
+in vec4 qt_VertexPosition;
+in vec2 qt_VertexTexCoord;
+out vec2 qt_TexCoord;
+
+void main() {
+ qt_TexCoord = qt_VertexTexCoord * vec2(width, 1);
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle_core.frag b/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle_core.frag
new file mode 100644
index 000000000..e952124d1
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle_core.frag
@@ -0,0 +1,12 @@
+#version 150 core
+uniform sampler2D rgbTexture;
+uniform float opacity;
+uniform bool hasAlpha;
+in vec2 qt_TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ vec4 v = texture(rgbTexture, qt_TexCoord);
+ fragColor = vec4(v.bgr, hasAlpha ? v.a : 1.0) * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.frag b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.frag
new file mode 100644
index 000000000..ad81083f5
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.frag
@@ -0,0 +1,19 @@
+#version 150 core
+uniform sampler2D plane1Texture;
+uniform sampler2D plane2Texture;
+uniform sampler2D plane3Texture;
+uniform mat4 colorMatrix;
+uniform float opacity;
+in vec2 plane1TexCoord;
+in vec2 plane2TexCoord;
+in vec2 plane3TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ float Y = texture(plane1Texture, plane1TexCoord).r;
+ float U = texture(plane2Texture, plane2TexCoord).r;
+ float V = texture(plane3Texture, plane3TexCoord).r;
+ vec4 color = vec4(Y, U, V, 1.);
+ fragColor = colorMatrix * color * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.vert b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.vert
new file mode 100644
index 000000000..ebf3604e1
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo_core.vert
@@ -0,0 +1,17 @@
+#version 150 core
+uniform mat4 qt_Matrix;
+uniform float plane1Width;
+uniform float plane2Width;
+uniform float plane3Width;
+in vec4 qt_VertexPosition;
+in vec2 qt_VertexTexCoord;
+out vec2 plane1TexCoord;
+out vec2 plane2TexCoord;
+out vec2 plane3TexCoord;
+
+void main() {
+ plane1TexCoord = qt_VertexTexCoord * vec2(plane1Width, 1);
+ plane2TexCoord = qt_VertexTexCoord * vec2(plane2Width, 1);
+ plane3TexCoord = qt_VertexTexCoord * vec2(plane3Width, 1);
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/uyvyvideo_core.frag b/src/qtmultimediaquicktools/shaders/uyvyvideo_core.frag
new file mode 100644
index 000000000..75c7de5a6
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/uyvyvideo_core.frag
@@ -0,0 +1,13 @@
+#version 150 core
+uniform sampler2D yTexture; // Y component passed as GL_LUMINANCE_ALPHA, in uyvy Y = a
+uniform sampler2D uvTexture; // UV component passed as RGBA macropixel, in uyvy U = r, V = b
+uniform mat4 colorMatrix;
+uniform float opacity;
+in vec2 qt_TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ vec3 YUV = vec3(texture(yTexture, qt_TexCoord).a, texture2D(uvTexture, qt_TexCoord).rb);
+ fragColor = colorMatrix * vec4(YUV, 1.0) * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag b/src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag
new file mode 100644
index 000000000..010c4a5f2
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag
@@ -0,0 +1,13 @@
+#version 150 core
+uniform sampler2D yTexture; // Y component passed as GL_LUMINANCE_ALPHA, in yuyv Y = r
+uniform sampler2D uvTexture; // UV component passed as RGBA macropixel, in uyvy U = g, V = a
+uniform mat4 colorMatrix;
+uniform float opacity;
+in vec2 qt_TexCoord;
+out vec4 fragColor;
+
+void main()
+{
+ vec3 YUV = vec3(texture(yTexture, qt_TexCoord).r, texture2D(uvTexture, qt_TexCoord).ga);
+ fragColor = colorMatrix * vec4(YUV, 1.0) * opacity;
+}