From 314fbd80e83bd6d88f094d7eaee7b0d73f6e037f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 21 Apr 2010 17:07:10 +0200 Subject: [PATCH] videofilter: Order color formats by their contained amount of information --- gst/videofilter/gstgamma.c | 34 +++++++++++++++++++++++-------- gst/videofilter/gstvideobalance.c | 43 +++++++++++++++++++++++++++------------ gst/videofilter/gstvideoflip.c | 18 ++++++++++------ 3 files changed, 68 insertions(+), 27 deletions(-) diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c index 1a550ed..86663b6 100644 --- a/gst/videofilter/gstgamma.c +++ b/gst/videofilter/gstgamma.c @@ -74,28 +74,46 @@ static GstStaticPadTemplate gst_gamma_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV - ("{ IYUV, I420, YV12, Y41B, Y42B, Y444, NV12, NV21, " - " YUY2, UYVY, AYUV, YVYU}") ";" + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV") ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA ";" + GST_VIDEO_CAPS_YUV ("Y444") ";" GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" - GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR) + GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_YUV ("Y42B") ";" + GST_VIDEO_CAPS_YUV ("NV12") ";" + GST_VIDEO_CAPS_YUV ("NV21") ";" + GST_VIDEO_CAPS_YUV ("YUY2") ";" + GST_VIDEO_CAPS_YUV ("UYVY") ";" + GST_VIDEO_CAPS_YUV ("YVYU") ";" + GST_VIDEO_CAPS_YUV ("I420") ";" + GST_VIDEO_CAPS_YUV ("YV12") ";" + GST_VIDEO_CAPS_YUV ("IYUV") ";" GST_VIDEO_CAPS_YUV ("Y41B") + ) ); static GstStaticPadTemplate gst_gamma_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV - ("{ IYUV, I420, YV12, Y41B, Y42B, Y444, NV12, NV21, " - " YUY2, UYVY, AYUV, YVYU}") ";" + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV") ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA ";" + GST_VIDEO_CAPS_YUV ("Y444") ";" GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" - GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR) + GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_YUV ("Y42B") ";" + GST_VIDEO_CAPS_YUV ("NV12") ";" + GST_VIDEO_CAPS_YUV ("NV21") ";" + GST_VIDEO_CAPS_YUV ("YUY2") ";" + GST_VIDEO_CAPS_YUV ("UYVY") ";" + GST_VIDEO_CAPS_YUV ("YVYU") ";" + GST_VIDEO_CAPS_YUV ("I420") ";" + GST_VIDEO_CAPS_YUV ("YV12") ";" + GST_VIDEO_CAPS_YUV ("IYUV") ";" GST_VIDEO_CAPS_YUV ("Y41B") + ) ); static void gst_gamma_set_property (GObject * object, guint prop_id, diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c index ed354e8..8a91450 100644 --- a/gst/videofilter/gstvideobalance.c +++ b/gst/videofilter/gstvideobalance.c @@ -81,27 +81,44 @@ static GstStaticPadTemplate gst_video_balance_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV - ("{ IYUV, I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU}") - ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR - ";" GST_VIDEO_CAPS_RGBA ";" GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx - ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" GST_VIDEO_CAPS_RGB - ";" GST_VIDEO_CAPS_BGR) + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV") ";" + GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" + GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA ";" + GST_VIDEO_CAPS_YUV ("Y444") ";" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx ";" + GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" + GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_YUV ("Y42B") ";" + GST_VIDEO_CAPS_YUV ("YUY2") ";" + GST_VIDEO_CAPS_YUV ("UYVY") ";" + GST_VIDEO_CAPS_YUV ("YVYU") ";" + GST_VIDEO_CAPS_YUV ("I420") ";" + GST_VIDEO_CAPS_YUV ("YV12") ";" + GST_VIDEO_CAPS_YUV ("IYUV") ";" GST_VIDEO_CAPS_YUV ("Y41B") + ) ); static GstStaticPadTemplate gst_video_balance_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV - ("{ IYUV, I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU}") - ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR - ";" GST_VIDEO_CAPS_RGBA ";" GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx - ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" GST_VIDEO_CAPS_RGB - ";" GST_VIDEO_CAPS_BGR) + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV") ";" + GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" + GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA ";" + GST_VIDEO_CAPS_YUV ("Y444") ";" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx ";" + GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" + GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_YUV ("Y42B") ";" + GST_VIDEO_CAPS_YUV ("YUY2") ";" + GST_VIDEO_CAPS_YUV ("UYVY") ";" + GST_VIDEO_CAPS_YUV ("YVYU") ";" + GST_VIDEO_CAPS_YUV ("I420") ";" + GST_VIDEO_CAPS_YUV ("YV12") ";" + GST_VIDEO_CAPS_YUV ("IYUV") ";" GST_VIDEO_CAPS_YUV ("Y41B") + ) ); - static void gst_video_balance_colorbalance_init (GstColorBalanceClass * iface); static void gst_video_balance_interface_init (GstImplementsInterfaceClass * klass); diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c index 837bae1..410d62f 100644 --- a/gst/videofilter/gstvideoflip.c +++ b/gst/videofilter/gstvideoflip.c @@ -67,26 +67,32 @@ static GstStaticPadTemplate gst_video_flip_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV - ("{ IYUV, I420, YV12, Y444, AYUV }") ";" + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV") ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA ";" + GST_VIDEO_CAPS_YUV ("Y444") ";" GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" - GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR) + GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_YUV ("I420") ";" + GST_VIDEO_CAPS_YUV ("YV12") ";" GST_VIDEO_CAPS_YUV ("IYUV") + ) ); static GstStaticPadTemplate gst_video_flip_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV - ("{ IYUV, I420, YV12, Y444, AYUV }") ";" + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV") ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA ";" + GST_VIDEO_CAPS_YUV ("Y444") ";" GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_BGRx ";" - GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR) + GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_YUV ("I420") ";" + GST_VIDEO_CAPS_YUV ("YV12") ";" GST_VIDEO_CAPS_YUV ("IYUV") + ) ); #define GST_TYPE_VIDEO_FLIP_METHOD (gst_video_flip_method_get_type()) -- 2.7.4