From 601b1f640bc499060330a17c921e296823da9e3f Mon Sep 17 00:00:00 2001 From: David Schleef Date: Sat, 15 Dec 2007 19:31:23 +0000 Subject: sys/glsink/: Add support for xRGB, xBGR, and AYUV. Re-add support for power-of-2 textures. Original commit message from CVS: * sys/glsink/Makefile.am: * sys/glsink/glimagesink.c: * sys/glsink/glvideo.c: * sys/glsink/glvideo.h: * sys/glsink/gstvideo-common.c: * sys/glsink/gstvideo-common.h: Add support for xRGB, xBGR, and AYUV. Re-add support for power-of-2 textures. --- sys/glsink/glimagesink.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'sys/glsink/glimagesink.c') diff --git a/sys/glsink/glimagesink.c b/sys/glsink/glimagesink.c index ae93df86..a7fdb8eb 100644 --- a/sys/glsink/glimagesink.c +++ b/sys/glsink/glimagesink.c @@ -77,7 +77,7 @@ GST_ELEMENT_DETAILS ("OpenGL video sink", "David Schleef "); #ifdef GL_YCBCR_MESA -#define YUV_CAPS ";" GST_VIDEO_CAPS_YUV ("{ UYVY, YUY2 }") +#define YUV_CAPS ";" GST_VIDEO_CAPS_YUV ("{ AYUV, UYVY, YUY2 }") #else #define YUV_CAPS #endif @@ -85,7 +85,8 @@ static GstStaticPadTemplate gst_glimage_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx YUV_CAPS) + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx ";" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_xBGR YUV_CAPS) ); enum @@ -423,12 +424,21 @@ gst_glimage_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) case GST_VIDEO_FORMAT_UYVY: glimage_sink->type = GLVIDEO_IMAGE_TYPE_UYVY; break; + case GST_VIDEO_FORMAT_AYUV: + glimage_sink->type = GLVIDEO_IMAGE_TYPE_AYUV; + break; case GST_VIDEO_FORMAT_RGBx: glimage_sink->type = GLVIDEO_IMAGE_TYPE_RGBx; break; case GST_VIDEO_FORMAT_BGRx: glimage_sink->type = GLVIDEO_IMAGE_TYPE_BGRx; break; + case GST_VIDEO_FORMAT_xRGB: + glimage_sink->type = GLVIDEO_IMAGE_TYPE_xRGB; + break; + case GST_VIDEO_FORMAT_xBGR: + glimage_sink->type = GLVIDEO_IMAGE_TYPE_xBGR; + break; default: break; } @@ -557,11 +567,13 @@ gst_glimage_sink_update_caps (GstGLImageSink * glimage_sink) return; } - caps = gst_caps_from_string (GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx); + caps = + gst_caps_from_string (GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx ";" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_xBGR); #ifdef GL_YCBCR_MESA if (glimage_sink->display->have_ycbcr_texture) { GstCaps *ycaps = - gst_caps_from_string (GST_VIDEO_CAPS_YUV ("{ UYVY, YUY2 }")); + gst_caps_from_string (GST_VIDEO_CAPS_YUV ("{ AYUV, UYVY, YUY2 }")); gst_caps_append (ycaps, caps); caps = ycaps; } -- cgit v1.2.1