diff --git a/subprojects/gst-plugins-base/gst-libs/gst/gl/egl/gsteglimage.c b/subprojects/gst-plugins-base/gst-libs/gst/gl/egl/gsteglimage.c index 58f44d85b1..ca75cbb22e 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/gl/egl/gsteglimage.c +++ b/subprojects/gst-plugins-base/gst-libs/gst/gl/egl/gsteglimage.c @@ -91,6 +91,14 @@ #define DRM_FORMAT_RG1616 fourcc_code('R', 'G', '3', '2') #endif +#ifndef DRM_FORMAT_ABGR2101010 +#define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0') +#endif + +#ifndef DRM_FORMAT_RGBA1010102 +#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') +#endif + #ifndef EGL_LINUX_DMA_BUF_EXT #define EGL_LINUX_DMA_BUF_EXT 0x3270 #endif @@ -465,11 +473,13 @@ _drm_rgba_fourcc_from_info (const GstVideoInfo * info, int plane, const gint rgb_fourcc = DRM_FORMAT_BGR888; const gint rg_fourcc = DRM_FORMAT_GR88; const gint rg16_fourcc = DRM_FORMAT_GR1616; + const gint rgb10a2_fourcc = DRM_FORMAT_ABGR2101010; #else const gint rgba_fourcc = DRM_FORMAT_RGBA8888; const gint rgb_fourcc = DRM_FORMAT_RGB888; const gint rg_fourcc = DRM_FORMAT_RG88; const gint rg16_fourcc = DRM_FORMAT_RG1616; + const gint rgb10a2_fourcc = DRM_FORMAT_RGBA1010102; #endif GST_DEBUG ("Getting DRM fourcc for %s plane %i", @@ -563,6 +573,10 @@ _drm_rgba_fourcc_from_info (const GstVideoInfo * info, int plane, *out_format = GST_GL_RG16; return DRM_FORMAT_RG1616; + case GST_VIDEO_FORMAT_Y410: + *out_format = GST_GL_RGB10_A2; + return rgb10a2_fourcc; + default: GST_ERROR ("Unsupported format for DMABuf."); return -1;