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 | 5d25c00e4b613b9cdf2c04fa3a68dffa03834a68 (patch) | |
tree | 74a5b1eaf3a324b520e64e87404fd0b3018a7829 /gst/udp/gstudpsink.c | |
parent | 1e83b097f7b732ae49e294a5a398bdc3e88854a8 (diff) |
gst-indent
Original commit message from CVS:
gst-indent
Diffstat (limited to 'gst/udp/gstudpsink.c')
-rw-r--r-- | gst/udp/gstudpsink.c | 325 |
1 files changed, 165 insertions, 160 deletions
diff --git a/gst/udp/gstudpsink.c b/gst/udp/gstudpsink.c index 86238af2..af365613 100644 --- a/gst/udp/gstudpsink.c +++ b/gst/udp/gstudpsink.c @@ -28,32 +28,34 @@ #define UDP_DEFAULT_CONTROL 1 /* elementfactory information */ -static GstElementDetails gst_udpsink_details = GST_ELEMENT_DETAILS ( - "UDP packet sender", - "Sink/Network", - "Send data over the network via UDP", - "Wim Taymans <wim.taymans@chello.be>" -); +static GstElementDetails gst_udpsink_details = +GST_ELEMENT_DETAILS ("UDP packet sender", + "Sink/Network", + "Send data over the network via UDP", + "Wim Taymans <wim.taymans@chello.be>"); /* UDPSink signals and args */ -enum { +enum +{ FRAME_ENCODED, /* FILL ME */ LAST_SIGNAL }; -enum { +enum +{ ARG_0, ARG_HOST, ARG_PORT, ARG_CONTROL, ARG_MTU - /* FILL ME */ + /* FILL ME */ }; #define GST_TYPE_UDPSINK_CONTROL (gst_udpsink_control_get_type()) static GType -gst_udpsink_control_get_type(void) { +gst_udpsink_control_get_type (void) +{ static GType udpsink_control_type = 0; static GEnumValue udpsink_control[] = { {CONTROL_NONE, "1", "none"}, @@ -62,27 +64,29 @@ gst_udpsink_control_get_type(void) { {CONTROL_ZERO, NULL, NULL}, }; if (!udpsink_control_type) { - udpsink_control_type = g_enum_register_static("GstUDPSinkControl", udpsink_control); + udpsink_control_type = + g_enum_register_static ("GstUDPSinkControl", udpsink_control); } return udpsink_control_type; } -static void gst_udpsink_base_init (gpointer g_class); -static void gst_udpsink_class_init (GstUDPSink *klass); -static void gst_udpsink_init (GstUDPSink *udpsink); +static void gst_udpsink_base_init (gpointer g_class); +static void gst_udpsink_class_init (GstUDPSink * klass); +static void gst_udpsink_init (GstUDPSink * udpsink); -static void gst_udpsink_set_clock (GstElement *element, GstClock *clock); +static void gst_udpsink_set_clock (GstElement * element, GstClock * clock); -static void gst_udpsink_chain (GstPad *pad,GstData *_data); -static GstElementStateReturn gst_udpsink_change_state (GstElement *element); +static void gst_udpsink_chain (GstPad * pad, GstData * _data); +static GstElementStateReturn gst_udpsink_change_state (GstElement * element); -static void gst_udpsink_set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec); -static void gst_udpsink_get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec); +static void gst_udpsink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_udpsink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); static GstElementClass *parent_class = NULL; + /*static guint gst_udpsink_signals[LAST_SIGNAL] = { 0 }; */ GType @@ -92,18 +96,20 @@ gst_udpsink_get_type (void) if (!udpsink_type) { static const GTypeInfo udpsink_info = { - sizeof(GstUDPSinkClass), + sizeof (GstUDPSinkClass), gst_udpsink_base_init, NULL, - (GClassInitFunc)gst_udpsink_class_init, + (GClassInitFunc) gst_udpsink_class_init, NULL, NULL, - sizeof(GstUDPSink), + sizeof (GstUDPSink), 0, - (GInstanceInitFunc)gst_udpsink_init, + (GInstanceInitFunc) gst_udpsink_init, NULL }; - udpsink_type = g_type_register_static (GST_TYPE_ELEMENT, "GstUDPSink", &udpsink_info, 0); + udpsink_type = + g_type_register_static (GST_TYPE_ELEMENT, "GstUDPSink", &udpsink_info, + 0); } return udpsink_type; } @@ -117,29 +123,27 @@ gst_udpsink_base_init (gpointer g_class) } static void -gst_udpsink_class_init (GstUDPSink *klass) +gst_udpsink_class_init (GstUDPSink * 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); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_HOST, - g_param_spec_string ("host", "host", - "The host/IP/Multicast group to send the packets to", - UDP_DEFAULT_HOST, G_PARAM_READWRITE)); + g_param_spec_string ("host", "host", + "The host/IP/Multicast group to send the packets to", + UDP_DEFAULT_HOST, G_PARAM_READWRITE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PORT, - g_param_spec_int ("port", "port", "The port to send the packets to", - 0, 32768, UDP_DEFAULT_PORT, G_PARAM_READWRITE)); + g_param_spec_int ("port", "port", "The port to send the packets to", + 0, 32768, UDP_DEFAULT_PORT, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, ARG_CONTROL, - g_param_spec_enum ("control", "control", "The type of control", - GST_TYPE_UDPSINK_CONTROL, CONTROL_UDP, G_PARAM_READWRITE)); - g_object_class_install_property (gobject_class, ARG_MTU, - g_param_spec_int ("mtu", "mtu", "maximun transmit unit", G_MININT, G_MAXINT, - 0, G_PARAM_READWRITE)); /* CHECKME */ + g_param_spec_enum ("control", "control", "The type of control", + GST_TYPE_UDPSINK_CONTROL, CONTROL_UDP, G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, ARG_MTU, g_param_spec_int ("mtu", "mtu", "maximun transmit unit", G_MININT, G_MAXINT, 0, G_PARAM_READWRITE)); /* CHECKME */ gobject_class->set_property = gst_udpsink_set_property; gobject_class->get_property = gst_udpsink_get_property; @@ -150,7 +154,7 @@ gst_udpsink_class_init (GstUDPSink *klass) static GstPadLinkReturn -gst_udpsink_sink_link (GstPad *pad, const GstCaps *caps) +gst_udpsink_sink_link (GstPad * pad, const GstCaps * caps) { GstUDPSink *udpsink; struct sockaddr_in serv_addr; @@ -158,27 +162,28 @@ gst_udpsink_sink_link (GstPad *pad, const GstCaps *caps) int fd; FILE *f; guint bc_val; + #ifndef GST_DISABLE_LOADSAVE xmlDocPtr doc; xmlChar *buf; int buf_size; udpsink = GST_UDPSINK (gst_pad_get_parent (pad)); - - memset(&serv_addr, 0, sizeof(serv_addr)); - + + memset (&serv_addr, 0, sizeof (serv_addr)); + /* its a name rather than an ipnum */ - serverhost = gethostbyname(udpsink->host); - if (serverhost == (struct hostent *)0) { - perror("gethostbyname"); - return GST_PAD_LINK_REFUSED; + serverhost = gethostbyname (udpsink->host); + if (serverhost == (struct hostent *) 0) { + perror ("gethostbyname"); + return GST_PAD_LINK_REFUSED; } - - memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length); + + memmove (&serv_addr.sin_addr, serverhost->h_addr, serverhost->h_length); serv_addr.sin_family = AF_INET; - serv_addr.sin_port = htons(udpsink->port+1); - + serv_addr.sin_port = htons (udpsink->port + 1); + doc = xmlNewDoc ("1.0"); doc->xmlRootNode = xmlNewDocNode (doc, NULL, "NewCaps", NULL); @@ -186,66 +191,66 @@ gst_udpsink_sink_link (GstPad *pad, const GstCaps *caps) switch (udpsink->control) { case CONTROL_UDP: - if ((fd = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { - perror("socket"); - return GST_PAD_LINK_REFUSED; - } - - /* We can only do broadcast in udp */ - bc_val = 1; - setsockopt (fd,SOL_SOCKET, SO_BROADCAST, &bc_val, sizeof (bc_val)); - - xmlDocDumpMemory(doc, &buf, &buf_size); - - if (sendto (fd, buf, buf_size, 0, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1) - { - perror("sending"); - return GST_PAD_LINK_REFUSED; - } - close (fd); - break; + if ((fd = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) { + perror ("socket"); + return GST_PAD_LINK_REFUSED; + } + + /* We can only do broadcast in udp */ + bc_val = 1; + setsockopt (fd, SOL_SOCKET, SO_BROADCAST, &bc_val, sizeof (bc_val)); + + xmlDocDumpMemory (doc, &buf, &buf_size); + + if (sendto (fd, buf, buf_size, 0, (struct sockaddr *) &serv_addr, + sizeof (serv_addr)) == -1) { + perror ("sending"); + return GST_PAD_LINK_REFUSED; + } + close (fd); + break; case CONTROL_TCP: - if ((fd = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { - perror("socket"); - return GST_PAD_LINK_REFUSED; - } - - if (connect(fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) != 0) { - g_printerr ("udpsink: connect to %s port %d failed: %s\n", - udpsink->host, udpsink->port, g_strerror(errno)); - return GST_PAD_LINK_REFUSED; - } - - f = fdopen (dup (fd), "wb"); - - xmlDocDump(f, doc); - fclose (f); - close (fd); - break; + if ((fd = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { + perror ("socket"); + return GST_PAD_LINK_REFUSED; + } + + if (connect (fd, (struct sockaddr *) &serv_addr, sizeof (serv_addr)) != 0) { + g_printerr ("udpsink: connect to %s port %d failed: %s\n", + udpsink->host, udpsink->port, g_strerror (errno)); + return GST_PAD_LINK_REFUSED; + } + + f = fdopen (dup (fd), "wb"); + + xmlDocDump (f, doc); + fclose (f); + close (fd); + break; case CONTROL_NONE: - return GST_PAD_LINK_OK; - break; + return GST_PAD_LINK_OK; + break; default: - return GST_PAD_LINK_REFUSED; - break; + return GST_PAD_LINK_REFUSED; + break; } #endif - + return GST_PAD_LINK_OK; } static void -gst_udpsink_set_clock (GstElement *element, GstClock *clock) +gst_udpsink_set_clock (GstElement * element, GstClock * clock) { GstUDPSink *udpsink; - + udpsink = GST_UDPSINK (element); udpsink->clock = clock; } static void -gst_udpsink_init (GstUDPSink *udpsink) +gst_udpsink_init (GstUDPSink * udpsink) { /* create the sink and src pads */ udpsink->sinkpad = gst_pad_new ("sink", GST_PAD_SINK); @@ -257,12 +262,12 @@ gst_udpsink_init (GstUDPSink *udpsink) udpsink->port = UDP_DEFAULT_PORT; udpsink->control = CONTROL_UDP; udpsink->mtu = 1024; - + udpsink->clock = NULL; } static void -gst_udpsink_chain (GstPad *pad, GstData *_data) +gst_udpsink_chain (GstPad * pad, GstData * _data) { GstBuffer *buf = GST_BUFFER (_data); GstUDPSink *udpsink; @@ -273,63 +278,64 @@ gst_udpsink_chain (GstPad *pad, GstData *_data) g_return_if_fail (buf != NULL); udpsink = GST_UDPSINK (GST_OBJECT_PARENT (pad)); - + if (udpsink->clock && GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { gst_element_wait (GST_ELEMENT (udpsink), GST_BUFFER_TIMESTAMP (buf)); } - - tolen = sizeof(udpsink->theiraddr); - - /* - if (sendto (udpsink->sock, GST_BUFFER_DATA (buf), - GST_BUFFER_SIZE (buf), 0, (struct sockaddr *) &udpsink->theiraddr, - tolen) == -1) { - perror("sending"); - } -*/ - /* MTU */ + + tolen = sizeof (udpsink->theiraddr); + + /* + if (sendto (udpsink->sock, GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf), 0, (struct sockaddr *) &udpsink->theiraddr, + tolen) == -1) { + perror("sending"); + } + */ + /* MTU */ for (i = 0; i < GST_BUFFER_SIZE (buf); i += udpsink->mtu) { if (GST_BUFFER_SIZE (buf) - i > udpsink->mtu) { - if (sendto (udpsink->sock, GST_BUFFER_DATA (buf) + i, - udpsink->mtu, 0, (struct sockaddr *) &udpsink->theiraddr, - tolen) == -1) { - perror("sending"); - } - } - else { - if (sendto (udpsink->sock, GST_BUFFER_DATA (buf) + i, - GST_BUFFER_SIZE (buf) -i, 0, - (struct sockaddr *) &udpsink->theiraddr, tolen) == -1) { - perror("sending"); - } + if (sendto (udpsink->sock, GST_BUFFER_DATA (buf) + i, + udpsink->mtu, 0, (struct sockaddr *) &udpsink->theiraddr, + tolen) == -1) { + perror ("sending"); + } + } else { + if (sendto (udpsink->sock, GST_BUFFER_DATA (buf) + i, + GST_BUFFER_SIZE (buf) - i, 0, + (struct sockaddr *) &udpsink->theiraddr, tolen) == -1) { + perror ("sending"); + } } } - gst_buffer_unref(buf); + gst_buffer_unref (buf); } static void -gst_udpsink_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) +gst_udpsink_set_property (GObject * object, guint prop_id, const GValue * value, + GParamSpec * pspec) { GstUDPSink *udpsink; /* it's not null if we got it, but it might not be ours */ - g_return_if_fail(GST_IS_UDPSINK(object)); - udpsink = GST_UDPSINK(object); + g_return_if_fail (GST_IS_UDPSINK (object)); + udpsink = GST_UDPSINK (object); switch (prop_id) { case ARG_HOST: - if (udpsink->host != NULL) g_free(udpsink->host); + if (udpsink->host != NULL) + g_free (udpsink->host); if (g_value_get_string (value) == NULL) - udpsink->host = NULL; + udpsink->host = NULL; else - udpsink->host = g_strdup (g_value_get_string (value)); + udpsink->host = g_strdup (g_value_get_string (value)); break; case ARG_PORT: - udpsink->port = g_value_get_int (value); + udpsink->port = g_value_get_int (value); break; case ARG_CONTROL: - udpsink->control = g_value_get_enum (value); + udpsink->control = g_value_get_enum (value); break; case ARG_MTU: udpsink->mtu = g_value_get_int (value); @@ -340,13 +346,14 @@ gst_udpsink_set_property (GObject *object, guint prop_id, const GValue *value, G } static void -gst_udpsink_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) +gst_udpsink_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) { GstUDPSink *udpsink; /* it's not null if we got it, but it might not be ours */ - g_return_if_fail(GST_IS_UDPSINK(object)); - udpsink = GST_UDPSINK(object); + g_return_if_fail (GST_IS_UDPSINK (object)); + udpsink = GST_UDPSINK (object); switch (prop_id) { case ARG_HOST: @@ -370,67 +377,66 @@ gst_udpsink_get_property (GObject *object, guint prop_id, GValue *value, GParamS /* create a socket for sending to remote machine */ static gboolean -gst_udpsink_init_send (GstUDPSink *sink) +gst_udpsink_init_send (GstUDPSink * sink) { struct hostent *he; struct in_addr addr; guint bc_val; memset (&sink->theiraddr, 0, sizeof (sink->theiraddr)); - sink->theiraddr.sin_family = AF_INET; /* host byte order */ - sink->theiraddr.sin_port = htons (sink->port); /* short, network byte order */ + sink->theiraddr.sin_family = AF_INET; /* host byte order */ + sink->theiraddr.sin_port = htons (sink->port); /* short, network byte order */ /* if its an IP address */ if (inet_aton (sink->host, &addr)) { /* check if its a multicast address */ if ((ntohl (addr.s_addr) & 0xe0000000) == 0xe0000000) { - sink->multi_addr.imr_multiaddr.s_addr = addr.s_addr; - sink->multi_addr.imr_interface.s_addr = INADDR_ANY; - - sink->theiraddr.sin_addr = sink->multi_addr.imr_multiaddr; - - /* Joining the multicast group */ - setsockopt (sink->sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &sink->multi_addr, sizeof(sink->multi_addr)); + sink->multi_addr.imr_multiaddr.s_addr = addr.s_addr; + sink->multi_addr.imr_interface.s_addr = INADDR_ANY; + + sink->theiraddr.sin_addr = sink->multi_addr.imr_multiaddr; + + /* Joining the multicast group */ + setsockopt (sink->sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &sink->multi_addr, + sizeof (sink->multi_addr)); } - + else { - sink->theiraddr.sin_addr = - *((struct in_addr *) &addr); + sink->theiraddr.sin_addr = *((struct in_addr *) &addr); } } - + /* we dont need to lookup for localhost */ - else if (strcmp (sink->host, UDP_DEFAULT_HOST) == 0 && - inet_aton ("127.0.0.1", &addr)) { - sink->theiraddr.sin_addr = - *((struct in_addr *) &addr); + else if (strcmp (sink->host, UDP_DEFAULT_HOST) == 0 && + inet_aton ("127.0.0.1", &addr)) { + sink->theiraddr.sin_addr = *((struct in_addr *) &addr); } /* if its a hostname */ else if ((he = gethostbyname (sink->host))) { sink->theiraddr.sin_addr = *((struct in_addr *) he->h_addr); } - + else { - perror("hostname lookup error?"); - return FALSE; + perror ("hostname lookup error?"); + return FALSE; } if ((sink->sock = socket (AF_INET, SOCK_DGRAM, 0)) == -1) { - perror("socket"); - return FALSE; + perror ("socket"); + return FALSE; } bc_val = 1; setsockopt (sink->sock, SOL_SOCKET, SO_BROADCAST, &bc_val, sizeof (bc_val)); - + GST_FLAG_SET (sink, GST_UDPSINK_OPEN); return TRUE; } static void -gst_udpsink_close (GstUDPSink *sink) +gst_udpsink_close (GstUDPSink * sink) { close (sink->sock); @@ -438,7 +444,7 @@ gst_udpsink_close (GstUDPSink *sink) } static GstElementStateReturn -gst_udpsink_change_state (GstElement *element) +gst_udpsink_change_state (GstElement * element) { g_return_val_if_fail (GST_IS_UDPSINK (element), GST_STATE_FAILURE); @@ -448,7 +454,7 @@ gst_udpsink_change_state (GstElement *element) } else { if (!GST_FLAG_IS_SET (element, GST_UDPSINK_OPEN)) { if (!gst_udpsink_init_send (GST_UDPSINK (element))) - return GST_STATE_FAILURE; + return GST_STATE_FAILURE; } } @@ -457,4 +463,3 @@ gst_udpsink_change_state (GstElement *element) return GST_STATE_SUCCESS; } - |