diff options
author | Thomas Vander Stichele <thomas@apestaart.org> | 2004-03-14 22:34:33 +0000 |
---|---|---|
committer | Thomas Vander Stichele <thomas@apestaart.org> | 2004-03-14 22:34:33 +0000 |
commit | 7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2 (patch) | |
tree | f863b467dea9559a6ec9c48affbfae11f8104164 /gst/overlay | |
parent | a19db4bbdc4a15ea0d8f4d28e9a1302c9c3d1657 (diff) | |
download | gst-plugins-bad-7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2.tar.gz gst-plugins-bad-7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2.tar.bz2 gst-plugins-bad-7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2.zip |
gst-indent
Original commit message from CVS:
gst-indent
Diffstat (limited to 'gst/overlay')
-rw-r--r-- | gst/overlay/gstoverlay.c | 268 | ||||
-rw-r--r-- | gst/overlay/gstoverlay.h | 36 |
2 files changed, 155 insertions, 149 deletions
diff --git a/gst/overlay/gstoverlay.c b/gst/overlay/gstoverlay.c index fccd88b9..cf787e87 100644 --- a/gst/overlay/gstoverlay.c +++ b/gst/overlay/gstoverlay.c @@ -33,60 +33,59 @@ static GstElementDetails overlay_details = { }; static GstStaticPadTemplate overlay_src_factory = -GST_STATIC_PAD_TEMPLATE ( - "src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV("I420")) -); +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); static GstStaticPadTemplate overlay_sink1_factory = -GST_STATIC_PAD_TEMPLATE ( - "sink1", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV("I420")) -); +GST_STATIC_PAD_TEMPLATE ("sink1", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); static GstStaticPadTemplate overlay_sink2_factory = -GST_STATIC_PAD_TEMPLATE ( - "sink2", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV("I420")) -); +GST_STATIC_PAD_TEMPLATE ("sink2", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); static GstStaticPadTemplate overlay_sink3_factory = -GST_STATIC_PAD_TEMPLATE ( - "sink3", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV("I420")) -); +GST_STATIC_PAD_TEMPLATE ("sink3", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); /* OVERLAY signals and args */ -enum { +enum +{ /* FILL ME */ LAST_SIGNAL }; -enum { +enum +{ ARG_0, }; -static void gst_overlay_class_init (GstOverlayClass *klass); -static void gst_overlay_base_init (GstOverlayClass *klass); -static void gst_overlay_init (GstOverlay *overlay); +static void gst_overlay_class_init (GstOverlayClass * klass); +static void gst_overlay_base_init (GstOverlayClass * klass); +static void gst_overlay_init (GstOverlay * overlay); -static void gst_overlay_loop (GstElement *element); +static void gst_overlay_loop (GstElement * element); -static void gst_overlay_set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec); -static void gst_overlay_get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec); +static void gst_overlay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_overlay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); static GstElementClass *parent_class = NULL; + /*static guint gst_overlay_signals[LAST_SIGNAL] = { 0 }; */ static GType @@ -96,47 +95,49 @@ gst_overlay_get_type (void) if (!overlay_type) { static const GTypeInfo overlay_info = { - sizeof(GstOverlayClass), - (GBaseInitFunc)gst_overlay_base_init, + sizeof (GstOverlayClass), + (GBaseInitFunc) gst_overlay_base_init, NULL, - (GClassInitFunc)gst_overlay_class_init, + (GClassInitFunc) gst_overlay_class_init, NULL, NULL, - sizeof(GstOverlay), + sizeof (GstOverlay), 0, - (GInstanceInitFunc)gst_overlay_init, + (GInstanceInitFunc) gst_overlay_init, }; - overlay_type = g_type_register_static(GST_TYPE_ELEMENT, "GstOverlay", &overlay_info, 0); + overlay_type = + g_type_register_static (GST_TYPE_ELEMENT, "GstOverlay", &overlay_info, + 0); } return overlay_type; } static void -gst_overlay_base_init (GstOverlayClass *klass) +gst_overlay_base_init (GstOverlayClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&overlay_sink1_factory)); + gst_static_pad_template_get (&overlay_sink1_factory)); gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&overlay_sink2_factory)); + gst_static_pad_template_get (&overlay_sink2_factory)); gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&overlay_sink3_factory)); + gst_static_pad_template_get (&overlay_sink3_factory)); gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&overlay_src_factory)); + gst_static_pad_template_get (&overlay_src_factory)); gst_element_class_set_details (element_class, &overlay_details); } static void -gst_overlay_class_init (GstOverlayClass *klass) +gst_overlay_class_init (GstOverlayClass * klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; - gobject_class = (GObjectClass*)klass; - gstelement_class = (GstElementClass*)klass; + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; - parent_class = g_type_class_ref(GST_TYPE_ELEMENT); + parent_class = g_type_class_ref (GST_TYPE_ELEMENT); gobject_class->set_property = gst_overlay_set_property; gobject_class->get_property = gst_overlay_get_property; @@ -144,29 +145,28 @@ gst_overlay_class_init (GstOverlayClass *klass) } #if 0 -static GstCaps *gst_overlay_getcaps(GstPad *pad) +static GstCaps * +gst_overlay_getcaps (GstPad * pad) { GstCaps *caps; GstOverlay *overlay; overlay = GST_OVERLAY (gst_pad_get_parent (pad)); - if(overlay->width && overlay->height){ - caps = GST_STATIC_CAPS ( - "overlay_sink2", - "video/raw", - "format", GST_TYPE_FOURCC (GST_MAKE_FOURCC ('I','4','2','0')), - "width", G_TYPE_INT (overlay->width), - "height", G_TYPE_INT (overlay->height) - ); - }else{ - caps = GST_STATIC_CAPS ( - "overlay_sink2", - "video/raw", - "format", GST_TYPE_FOURCC (GST_MAKE_FOURCC ('I','4','2','0')), - "width", G_TYPE_INT_RANGE (0, 4096), - "height", G_TYPE_INT_RANGE (0, 4096) - ); + if (overlay->width && overlay->height) { + caps = GST_STATIC_CAPS ("overlay_sink2", + "video/raw", + "format", GST_TYPE_FOURCC (GST_MAKE_FOURCC ('I', '4', '2', '0')), + "width", G_TYPE_INT (overlay->width), + "height", G_TYPE_INT (overlay->height) + ); + } else { + caps = GST_STATIC_CAPS ("overlay_sink2", + "video/raw", + "format", GST_TYPE_FOURCC (GST_MAKE_FOURCC ('I', '4', '2', '0')), + "width", G_TYPE_INT_RANGE (0, 4096), + "height", G_TYPE_INT_RANGE (0, 4096) + ); } return caps; @@ -174,7 +174,7 @@ static GstCaps *gst_overlay_getcaps(GstPad *pad) #endif static gboolean -gst_overlay_sinkconnect (GstPad *pad, const GstCaps *caps) +gst_overlay_sinkconnect (GstPad * pad, const GstCaps * caps) { GstOverlay *overlay; GstStructure *structure; @@ -183,80 +183,91 @@ gst_overlay_sinkconnect (GstPad *pad, const GstCaps *caps) structure = gst_caps_get_structure (caps, 0); - gst_structure_get_int (structure, "width", &overlay->width); - gst_structure_get_int (structure, "height", &overlay->height); - gst_structure_get_double (structure, "framerate", &overlay->framerate); + gst_structure_get_int (structure, "width", &overlay->width); + gst_structure_get_int (structure, "height", &overlay->height); + gst_structure_get_double (structure, "framerate", &overlay->framerate); /* forward to the next plugin */ - return gst_pad_try_set_caps(overlay->srcpad, caps); + return gst_pad_try_set_caps (overlay->srcpad, caps); } -static void -gst_overlay_init (GstOverlay *overlay) +static void +gst_overlay_init (GstOverlay * overlay) { - overlay->sinkpad1 = gst_pad_new_from_template ( - gst_static_pad_template_get (&overlay_sink1_factory), "sink1"); + overlay->sinkpad1 = + gst_pad_new_from_template (gst_static_pad_template_get + (&overlay_sink1_factory), "sink1"); gst_pad_set_link_function (overlay->sinkpad1, gst_overlay_sinkconnect); gst_element_add_pad (GST_ELEMENT (overlay), overlay->sinkpad1); - overlay->sinkpad2 = gst_pad_new_from_template ( - gst_static_pad_template_get (&overlay_sink2_factory), "sink2"); + overlay->sinkpad2 = + gst_pad_new_from_template (gst_static_pad_template_get + (&overlay_sink2_factory), "sink2"); gst_pad_set_link_function (overlay->sinkpad2, gst_overlay_sinkconnect); gst_element_add_pad (GST_ELEMENT (overlay), overlay->sinkpad2); - overlay->sinkpad3 = gst_pad_new_from_template ( - gst_static_pad_template_get (&overlay_sink3_factory), "sink3"); + overlay->sinkpad3 = + gst_pad_new_from_template (gst_static_pad_template_get + (&overlay_sink3_factory), "sink3"); gst_pad_set_link_function (overlay->sinkpad3, gst_overlay_sinkconnect); gst_element_add_pad (GST_ELEMENT (overlay), overlay->sinkpad3); - overlay->srcpad = gst_pad_new_from_template ( - gst_static_pad_template_get (&overlay_src_factory), "src"); + overlay->srcpad = + gst_pad_new_from_template (gst_static_pad_template_get + (&overlay_src_factory), "src"); gst_element_add_pad (GST_ELEMENT (overlay), overlay->srcpad); gst_element_set_loop_function (GST_ELEMENT (overlay), gst_overlay_loop); } static void -gst_overlay_blend_i420 (guint8 *out, guint8 *in1, guint8 *in2, guint8 *in3, - gint width, gint height) +gst_overlay_blend_i420 (guint8 * out, guint8 * in1, guint8 * in2, guint8 * in3, + gint width, gint height) { int mask; int i, j; - guint8 *in1u, *in1v, *in2u, *in2v, *outu, *outv; + guint8 *in1u, *in1v, *in2u, *in2v, *outu, *outv; int lumsize; int chromsize; - int width2 = width/2; - int height2 = height/2; + int width2 = width / 2; + int height2 = height / 2; lumsize = width * height; chromsize = width2 * height2; - in1u = in1 + lumsize; in1v = in1u + chromsize; - in2u = in2 + lumsize; in2v = in2u + chromsize; - outu = out + lumsize; outv = outu + chromsize; - + in1u = in1 + lumsize; + in1v = in1u + chromsize; + in2u = in2 + lumsize; + in2v = in2u + chromsize; + outu = out + lumsize; + outv = outu + chromsize; + for (i = 0; i < height; i++) { for (j = 0; j < width; j++) { - mask = in3[i*width + j]; - out[i*width+j] = ((in1[i*width+j] * mask) + - (in2[i*width+j] * (255 - mask))) >> 8; + mask = in3[i * width + j]; + out[i * width + j] = ((in1[i * width + j] * mask) + + (in2[i * width + j] * (255 - mask))) >> 8; } } - for (i = 0; i < height/2; i++) { - for (j = 0; j < width/2; j++) { - mask = (in3[(i*2)*width + (j*2)] + in3[(i*2 + 1)*width + (j*2)] + - in3[(i*2)*width + (j*2 + 1)] + in3[(i*2 + 1)*width + (j*2 + 1)]) / 4; - outu[i*width2 + j] = ((in1u[i*width2+j] * mask) + - (in2u[i*width2 + j] * (255 - mask))) >> 8; - outv[i*width2 + j] = ((in1v[i*width2+j] * mask) + - (in2v[i*width2 + j] * (255 - mask))) >> 8; + for (i = 0; i < height / 2; i++) { + for (j = 0; j < width / 2; j++) { + mask = + (in3[(i * 2) * width + (j * 2)] + in3[(i * 2 + 1) * width + (j * 2)] + + in3[(i * 2) * width + (j * 2 + 1)] + in3[(i * 2 + 1) * width + + (j * 2 + 1)]) / 4; + outu[i * width2 + j] = + ((in1u[i * width2 + j] * mask) + (in2u[i * width2 + j] * (255 - + mask))) >> 8; + outv[i * width2 + j] = + ((in1v[i * width2 + j] * mask) + (in2v[i * width2 + j] * (255 - + mask))) >> 8; } } } static void -gst_overlay_loop (GstElement *element) +gst_overlay_loop (GstElement * element) { GstOverlay *overlay; GstBuffer *out; @@ -284,22 +295,21 @@ gst_overlay_loop (GstElement *element) return; } - g_return_if_fail(in1 != NULL); - g_return_if_fail(in2 != NULL); - g_return_if_fail(in3 != NULL); + g_return_if_fail (in1 != NULL); + g_return_if_fail (in2 != NULL); + g_return_if_fail (in3 != NULL); - size = (overlay->width * overlay->height * 3)/2; - g_return_if_fail(GST_BUFFER_SIZE(in1) != size); - g_return_if_fail(GST_BUFFER_SIZE(in2) != size); - g_return_if_fail(GST_BUFFER_SIZE(in3) != size); + size = (overlay->width * overlay->height * 3) / 2; + g_return_if_fail (GST_BUFFER_SIZE (in1) != size); + g_return_if_fail (GST_BUFFER_SIZE (in2) != size); + g_return_if_fail (GST_BUFFER_SIZE (in3) != size); out = gst_buffer_new_and_alloc (size); gst_overlay_blend_i420 (GST_BUFFER_DATA (out), - GST_BUFFER_DATA (in1), - GST_BUFFER_DATA (in2), - GST_BUFFER_DATA (in3), - overlay->width, overlay->height); + GST_BUFFER_DATA (in1), + GST_BUFFER_DATA (in2), + GST_BUFFER_DATA (in3), overlay->width, overlay->height); GST_BUFFER_TIMESTAMP (out) = GST_BUFFER_TIMESTAMP (in1); GST_BUFFER_DURATION (out) = GST_BUFFER_DURATION (in1); @@ -312,12 +322,12 @@ gst_overlay_loop (GstElement *element) } static void -gst_overlay_set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +gst_overlay_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) { GstOverlay *overlay; - overlay = GST_OVERLAY(object); + overlay = GST_OVERLAY (object); switch (prop_id) { default: @@ -327,12 +337,12 @@ gst_overlay_set_property (GObject *object, guint prop_id, } static void -gst_overlay_get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +gst_overlay_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) { GstOverlay *overlay; - overlay = GST_OVERLAY(object); + overlay = GST_OVERLAY (object); switch (prop_id) { default: @@ -343,20 +353,14 @@ gst_overlay_get_property (GObject *object, guint prop_id, static gboolean -plugin_init (GstPlugin *plugin) +plugin_init (GstPlugin * plugin) { return gst_element_register (plugin, "overlay", - GST_RANK_NONE, GST_TYPE_OVERLAY); + GST_RANK_NONE, GST_TYPE_OVERLAY); } -GST_PLUGIN_DEFINE ( - GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "overlay", - "Overlay multiple video streams", - plugin_init, - VERSION, - "LGPL", - GST_PACKAGE, - GST_ORIGIN -) +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "overlay", + "Overlay multiple video streams", + plugin_init, VERSION, "LGPL", GST_PACKAGE, GST_ORIGIN) diff --git a/gst/overlay/gstoverlay.h b/gst/overlay/gstoverlay.h index 523656e0..377a2590 100644 --- a/gst/overlay/gstoverlay.h +++ b/gst/overlay/gstoverlay.h @@ -37,30 +37,32 @@ typedef struct _GstOverlay GstOverlay; typedef struct _GstOverlayClass GstOverlayClass; -struct _GstOverlay { - GstElement element; +struct _GstOverlay +{ + GstElement element; - GstPad *srcpad; - GstPad *sinkpad1; - GstPad *sinkpad2; - GstPad *sinkpad3; + GstPad *srcpad; + GstPad *sinkpad1; + GstPad *sinkpad2; + GstPad *sinkpad3; - gint format; - gint width; - gint height; + gint format; + gint width; + gint height; - gint duration; - gint position; + gint duration; + gint position; - gint type; - gint fps; - gint border; - gint depth; + gint type; + gint fps; + gint border; + gint depth; - gdouble framerate; + gdouble framerate; }; -struct _GstOverlayClass { +struct _GstOverlayClass +{ GstElementClass parent_class; }; |