From f68c41710af2ab01a77a697e0307f6b69e07f642 Mon Sep 17 00:00:00 2001 From: Philip Jaegenstedt Date: Mon, 19 Jun 2006 09:08:05 +0000 Subject: [PATCH] gst/videoscale/gstvideoscale.c: Make videoscale support RGBA, ARGB, BGRA and ABGR. Fixes #345131 Original commit message from CVS: Patch by: Philip Jaegenstedt * gst/videoscale/gstvideoscale.c: (gst_video_scale_prepare_size), (gst_video_scale_transform): Make videoscale support RGBA, ARGB, BGRA and ABGR. Fixes #345131 --- ChangeLog | 8 ++++++++ gst/videoscale/gstvideoscale.c | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3673fca..d048353 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-06-19 Wim Taymans + + Patch by: Philip Jaegenstedt + + * gst/videoscale/gstvideoscale.c: (gst_video_scale_prepare_size), + (gst_video_scale_transform): + Make videoscale support RGBA, ARGB, BGRA and ABGR. Fixes #345131 + 2006-06-17 Tim-Philipp Müller * configure.ac: diff --git a/gst/videoscale/gstvideoscale.c b/gst/videoscale/gstvideoscale.c index 99e966e5..3155b3b 100644 --- a/gst/videoscale/gstvideoscale.c +++ b/gst/videoscale/gstvideoscale.c @@ -93,6 +93,10 @@ static GstStaticCaps gst_video_scale_format_caps[] = { GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB), GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx), GST_STATIC_CAPS (GST_VIDEO_CAPS_xBGR), + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBA), + GST_STATIC_CAPS (GST_VIDEO_CAPS_ARGB), + GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRA), + GST_STATIC_CAPS (GST_VIDEO_CAPS_ABGR), GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB), GST_STATIC_CAPS (GST_VIDEO_CAPS_BGR), GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV")), @@ -112,6 +116,10 @@ enum GST_VIDEO_SCALE_xRGB, GST_VIDEO_SCALE_BGRx, GST_VIDEO_SCALE_xBGR, + GST_VIDEO_SCALE_RGBA, + GST_VIDEO_SCALE_ARGB, + GST_VIDEO_SCALE_BGRA, + GST_VIDEO_SCALE_ABGR, GST_VIDEO_SCALE_RGB, GST_VIDEO_SCALE_BGR, GST_VIDEO_SCALE_AYUV, @@ -390,6 +398,10 @@ gst_video_scale_prepare_size (GstVideoScale * videoscale, gint format, case GST_VIDEO_SCALE_xRGB: case GST_VIDEO_SCALE_BGRx: case GST_VIDEO_SCALE_xBGR: + case GST_VIDEO_SCALE_RGBA: + case GST_VIDEO_SCALE_ARGB: + case GST_VIDEO_SCALE_BGRA: + case GST_VIDEO_SCALE_ABGR: case GST_VIDEO_SCALE_AYUV: img->stride = img->width * 4; *size = img->stride * img->height; @@ -700,6 +712,10 @@ gst_video_scale_transform (GstBaseTransform * trans, GstBuffer * in, case GST_VIDEO_SCALE_xRGB: case GST_VIDEO_SCALE_BGRx: case GST_VIDEO_SCALE_xBGR: + case GST_VIDEO_SCALE_RGBA: + case GST_VIDEO_SCALE_ARGB: + case GST_VIDEO_SCALE_BGRA: + case GST_VIDEO_SCALE_ABGR: case GST_VIDEO_SCALE_AYUV: vs_image_scale_nearest_RGBA (dest, src, videoscale->tmp_buf); break; @@ -739,6 +755,10 @@ gst_video_scale_transform (GstBaseTransform * trans, GstBuffer * in, case GST_VIDEO_SCALE_xRGB: case GST_VIDEO_SCALE_BGRx: case GST_VIDEO_SCALE_xBGR: + case GST_VIDEO_SCALE_RGBA: + case GST_VIDEO_SCALE_ARGB: + case GST_VIDEO_SCALE_BGRA: + case GST_VIDEO_SCALE_ABGR: case GST_VIDEO_SCALE_AYUV: vs_image_scale_linear_RGBA (dest, src, videoscale->tmp_buf); break; -- 2.7.4