From fe9c38244ffa49b91366f31034c68258466e68e4 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Thu, 8 Aug 2019 11:43:03 +0900 Subject: [PATCH] gl: Add support for P016 format All implementation for P010_10LE/BE can be reused. --- gst-libs/gst/gl/egl/gsteglimage.c | 2 ++ gst-libs/gst/gl/gstglcolorconvert.c | 8 ++++++-- gst-libs/gst/gl/gstglcolorconvert.h | 4 ++-- gst-libs/gst/gl/gstglformat.c | 2 ++ gst-libs/gst/gl/gstglmemory.h | 4 ++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gst-libs/gst/gl/egl/gsteglimage.c b/gst-libs/gst/gl/egl/gsteglimage.c index 12f0eaa..65165cc 100644 --- a/gst-libs/gst/gl/egl/gsteglimage.c +++ b/gst-libs/gst/gl/egl/gsteglimage.c @@ -530,10 +530,12 @@ _drm_rgba_fourcc_from_info (GstVideoInfo * info, int plane, return DRM_FORMAT_RGBA1010102; case GST_VIDEO_FORMAT_P010_10LE: + case GST_VIDEO_FORMAT_P016_LE: *out_format = plane == 0 ? GST_GL_R16 : GST_GL_RG16; return plane == 0 ? DRM_FORMAT_R16 : DRM_FORMAT_GR1616; case GST_VIDEO_FORMAT_P010_10BE: + case GST_VIDEO_FORMAT_P016_BE: *out_format = plane == 0 ? GST_GL_R16 : GST_GL_RG16; return plane == 0 ? DRM_FORMAT_R16 : DRM_FORMAT_RG1616; diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c index 13c7fdc..8655651 100644 --- a/gst-libs/gst/gl/gstglcolorconvert.c +++ b/gst-libs/gst/gl/gstglcolorconvert.c @@ -960,9 +960,9 @@ _init_supported_formats (GstGLContext * context, gboolean output, if (!context || (gst_gl_format_is_supported (context, GST_GL_R16) && gst_gl_format_is_supported (context, GST_GL_RG16))) #if G_BYTE_ORDER == G_LITTLE_ENDIAN - _append_value_string_list (supported_formats, "P010_10LE", NULL); + _append_value_string_list (supported_formats, "P010_10LE", "P016_LE", NULL); #else - _append_value_string_list (supported_formats, "P010_10BE", NULL); + _append_value_string_list (supported_formats, "P010_10BE", "P016_BE", NULL); #endif } @@ -1557,6 +1557,8 @@ _get_n_textures (GstVideoFormat v_format) case GST_VIDEO_FORMAT_NV21: case GST_VIDEO_FORMAT_P010_10LE: case GST_VIDEO_FORMAT_P010_10BE: + case GST_VIDEO_FORMAT_P016_LE: + case GST_VIDEO_FORMAT_P016_BE: return 2; case GST_VIDEO_FORMAT_I420: case GST_VIDEO_FORMAT_Y444: @@ -1717,6 +1719,8 @@ _YUV_to_RGB (GstGLColorConvert * convert) } case GST_VIDEO_FORMAT_P010_10LE: case GST_VIDEO_FORMAT_P010_10BE: + case GST_VIDEO_FORMAT_P016_LE: + case GST_VIDEO_FORMAT_P016_BE: { info->templ = &templ_SEMI_PLANAR_to_RGB; info->frag_body = diff --git a/gst-libs/gst/gl/gstglcolorconvert.h b/gst-libs/gst/gl/gstglcolorconvert.h index 608bc9c..3dd46e9 100644 --- a/gst-libs/gst/gl/gstglcolorconvert.h +++ b/gst-libs/gst/gl/gstglcolorconvert.h @@ -88,9 +88,9 @@ struct _GstGLColorConvertClass * The currently supported formats that can be converted */ #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define COLOR_CONVERT_EXT_FORMATS ", BGR10A2_LE, RGB10A2_LE, P010_10LE" +#define COLOR_CONVERT_EXT_FORMATS ", BGR10A2_LE, RGB10A2_LE, P010_10LE, P016_LE" #else -#define COLOR_CONVERT_EXT_FORMATS ", P010_10BE" +#define COLOR_CONVERT_EXT_FORMATS ", P010_10BE, P016_BE" #endif #define GST_GL_COLOR_CONVERT_FORMATS "{ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, " \ diff --git a/gst-libs/gst/gl/gstglformat.c b/gst-libs/gst/gl/gstglformat.c index 91286fb..4e93d45 100644 --- a/gst-libs/gst/gl/gstglformat.c +++ b/gst-libs/gst/gl/gstglformat.c @@ -205,6 +205,8 @@ gst_gl_format_from_video_info (GstGLContext * context, GstVideoInfo * vinfo, return GST_GL_RGB10_A2; case GST_VIDEO_FORMAT_P010_10LE: case GST_VIDEO_FORMAT_P010_10BE: + case GST_VIDEO_FORMAT_P016_LE: + case GST_VIDEO_FORMAT_P016_BE: return plane == 0 ? GST_GL_R16 : GST_GL_RG16; default: n_plane_components = 4; diff --git a/gst-libs/gst/gl/gstglmemory.h b/gst-libs/gst/gl/gstglmemory.h index 3c5610b..c1814b8 100644 --- a/gst-libs/gst/gl/gstglmemory.h +++ b/gst-libs/gst/gl/gstglmemory.h @@ -51,9 +51,9 @@ GType gst_gl_memory_allocator_get_type(void); * List of video formats that are supported by #GstGLMemory */ #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define MEMORY_VIDEO_EXT_FORMATS ", BGR10A2_LE, RGB10A2_LE, P010_10LE" +#define MEMORY_VIDEO_EXT_FORMATS ", BGR10A2_LE, RGB10A2_LE, P010_10LE, P016_LE" #else -#define MEMORY_VIDEO_EXT_FORMATS ", P010_10BE" +#define MEMORY_VIDEO_EXT_FORMATS ", P010_10BE, P016_BE" #endif #define GST_GL_MEMORY_VIDEO_FORMATS_STR \ -- 2.7.4