opengl: Add opaque 10bit RGB support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>
This commit is contained in:
parent
c5657fde44
commit
6078cee500
@ -9859,7 +9859,7 @@ user-defined purposes.</doc>
|
||||
</parameter>
|
||||
</parameters>
|
||||
</function-macro>
|
||||
<constant name="GL_COLOR_CONVERT_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE" c:type="GST_GL_COLOR_CONVERT_EXT_FORMATS" introspectable="0">
|
||||
<constant name="GL_COLOR_CONVERT_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, BGR10x2_LE, RGB10x2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE" c:type="GST_GL_COLOR_CONVERT_EXT_FORMATS" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcolorconvert.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
@ -10106,7 +10106,7 @@ e.g. for `CONFIG_ID`: `GST_GL_CONFIG_ATTRIB_NAME (CONFIG_ID)`</doc>
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemorypbo.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
<constant name="GL_MEMORY_VIDEO_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_10LE, Y444_16LE" c:type="GST_GL_MEMORY_VIDEO_EXT_FORMATS" introspectable="0">
|
||||
<constant name="GL_MEMORY_VIDEO_EXT_FORMATS" value=", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, BGR10x2_LE, RGB10x2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_10LE, Y444_16LE" c:type="GST_GL_MEMORY_VIDEO_EXT_FORMATS" introspectable="0">
|
||||
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglmemory.h"/>
|
||||
<type name="utf8" c:type="gchar*"/>
|
||||
</constant>
|
||||
|
@ -562,10 +562,12 @@ _drm_rgba_fourcc_from_format (GstVideoFormat format, int plane,
|
||||
return DRM_FORMAT_R8;
|
||||
|
||||
case GST_VIDEO_FORMAT_BGR10A2_LE:
|
||||
case GST_VIDEO_FORMAT_BGR10x2_LE:
|
||||
*out_format = GST_GL_RGB10_A2;
|
||||
return DRM_FORMAT_BGRA1010102;
|
||||
|
||||
case GST_VIDEO_FORMAT_RGB10A2_LE:
|
||||
case GST_VIDEO_FORMAT_RGB10x2_LE:
|
||||
*out_format = GST_GL_RGB10_A2;
|
||||
return DRM_FORMAT_RGBA1010102;
|
||||
|
||||
|
@ -1679,7 +1679,7 @@ _init_supported_formats (GstGLContext * context, gboolean output,
|
||||
if (!context || gst_gl_format_is_supported (context, GST_GL_RGB10_A2)) {
|
||||
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
_append_value_string_list (supported_formats, "BGR10A2_LE", "RGB10A2_LE",
|
||||
"Y410", "v210", NULL);
|
||||
"BGR10x2_LE", "RGB10x2_LE", "Y410", "v210", NULL);
|
||||
#else
|
||||
_append_value_string_list (supported_formats, "Y410", NULL);
|
||||
#endif
|
||||
@ -1758,8 +1758,8 @@ gst_gl_color_convert_caps_transform_format_info (GstGLContext * context,
|
||||
|
||||
_init_value_string_list (&rgb_formats, "RGBA", "ARGB", "BGRA", "ABGR", "RGBx",
|
||||
"xRGB", "BGRx", "xBGR", "RGB", "BGR", "ARGB64", "BGR10A2_LE",
|
||||
"RGB10A2_LE", "RGBA64_LE", "RGBA64_BE", "RBGA", "GBRA", "GBR",
|
||||
"RGBP", "BGRP", "RGB16", "BGR16", NULL);
|
||||
"RGB10A2_LE", "BGR10x2_LE", "RGB10x2_LE", "RGBA64_LE", "RGBA64_BE",
|
||||
"RBGA", "GBRA", "GBR", "RGBP", "BGRP", "RGB16", "BGR16", NULL);
|
||||
_init_value_string_list (&planar_yuv_formats, "Y444", "Y444_10LE",
|
||||
"Y444_16LE", "Y444_10BE", "Y444_16BE", "I420", "Y42B", "Y41B", "A420",
|
||||
"A444", "A422", "A420_10LE", "A422_10LE", "A444_10LE", "A444_12LE",
|
||||
|
@ -88,7 +88,7 @@ struct _GstGLColorConvertClass
|
||||
*/
|
||||
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
#define GST_GL_COLOR_CONVERT_EXT_FORMATS \
|
||||
", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE" \
|
||||
", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, BGR10x2_LE, RGB10x2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE" \
|
||||
", A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE" \
|
||||
", A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE"
|
||||
#else
|
||||
|
@ -215,6 +215,8 @@ gst_gl_format_from_video_info (GstGLContext * context,
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_BGR10A2_LE:
|
||||
case GST_VIDEO_FORMAT_RGB10A2_LE:
|
||||
case GST_VIDEO_FORMAT_BGR10x2_LE:
|
||||
case GST_VIDEO_FORMAT_RGB10x2_LE:
|
||||
case GST_VIDEO_FORMAT_Y410:
|
||||
case GST_VIDEO_FORMAT_v210:
|
||||
return GST_GL_RGB10_A2;
|
||||
@ -503,14 +505,16 @@ get_single_planar_format_gl_swizzle_order (GstVideoFormat format,
|
||||
g_return_if_fail (finfo->flags & GST_VIDEO_FORMAT_FLAG_RGB
|
||||
|| format == GST_VIDEO_FORMAT_AYUV || format == GST_VIDEO_FORMAT_VUYA);
|
||||
|
||||
if (format == GST_VIDEO_FORMAT_BGR10A2_LE) {
|
||||
if (format == GST_VIDEO_FORMAT_BGR10A2_LE
|
||||
|| format == GST_VIDEO_FORMAT_BGR10x2_LE) {
|
||||
swizzle[0] = 2;
|
||||
swizzle[1] = 1;
|
||||
swizzle[2] = 0;
|
||||
swizzle[3] = 3;
|
||||
return;
|
||||
}
|
||||
if (format == GST_VIDEO_FORMAT_RGB10A2_LE) {
|
||||
if (format == GST_VIDEO_FORMAT_RGB10A2_LE
|
||||
|| format == GST_VIDEO_FORMAT_RGB10x2_LE) {
|
||||
swizzle[0] = 0;
|
||||
swizzle[1] = 1;
|
||||
swizzle[2] = 2;
|
||||
|
@ -50,7 +50,7 @@ GType gst_gl_memory_allocator_get_type(void);
|
||||
*/
|
||||
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
#define GST_GL_MEMORY_VIDEO_EXT_FORMATS \
|
||||
", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE" \
|
||||
", RGBA64_LE, BGR10A2_LE, RGB10A2_LE, BGR10x2_LE, RGB10x2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE" \
|
||||
", A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE" \
|
||||
", A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_10LE, Y444_16LE"
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user