added mtu option
Original commit message from CVS: added mtu option
This commit is contained in:
parent
1a7bf2daca
commit
1e2eb46c0b
@ -46,7 +46,8 @@ enum {
|
|||||||
ARG_0,
|
ARG_0,
|
||||||
ARG_HOST,
|
ARG_HOST,
|
||||||
ARG_PORT,
|
ARG_PORT,
|
||||||
ARG_CONTROL
|
ARG_CONTROL,
|
||||||
|
ARG_MTU
|
||||||
/* FILL ME */
|
/* FILL ME */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -127,6 +128,9 @@ gst_udpsink_class_init (GstUDPSink *klass)
|
|||||||
g_object_class_install_property (gobject_class, ARG_CONTROL,
|
g_object_class_install_property (gobject_class, ARG_CONTROL,
|
||||||
g_param_spec_enum ("control", "control", "The type of control",
|
g_param_spec_enum ("control", "control", "The type of control",
|
||||||
GST_TYPE_UDPSINK_CONTROL, CONTROL_UDP, G_PARAM_READWRITE));
|
GST_TYPE_UDPSINK_CONTROL, CONTROL_UDP, G_PARAM_READWRITE));
|
||||||
|
g_object_class_install_property (gobject_class, ARG_MTU,
|
||||||
|
g_param_spec_int ("mtu", "mtu", "mtu", G_MININT, G_MAXINT,
|
||||||
|
0, G_PARAM_READWRITE)); /* CHECKME */
|
||||||
|
|
||||||
gobject_class->set_property = gst_udpsink_set_property;
|
gobject_class->set_property = gst_udpsink_set_property;
|
||||||
gobject_class->get_property = gst_udpsink_get_property;
|
gobject_class->get_property = gst_udpsink_get_property;
|
||||||
@ -245,6 +249,7 @@ gst_udpsink_init (GstUDPSink *udpsink)
|
|||||||
udpsink->host = g_strdup (UDP_DEFAULT_HOST);
|
udpsink->host = g_strdup (UDP_DEFAULT_HOST);
|
||||||
udpsink->port = UDP_DEFAULT_PORT;
|
udpsink->port = UDP_DEFAULT_PORT;
|
||||||
udpsink->control = CONTROL_UDP;
|
udpsink->control = CONTROL_UDP;
|
||||||
|
udpsink->mtu = 1024;
|
||||||
|
|
||||||
udpsink->clock = NULL;
|
udpsink->clock = NULL;
|
||||||
}
|
}
|
||||||
@ -253,7 +258,7 @@ static void
|
|||||||
gst_udpsink_chain (GstPad *pad, GstBuffer *buf)
|
gst_udpsink_chain (GstPad *pad, GstBuffer *buf)
|
||||||
{
|
{
|
||||||
GstUDPSink *udpsink;
|
GstUDPSink *udpsink;
|
||||||
int tolen;
|
guint tolen, i;
|
||||||
GstClockTimeDiff *jitter = NULL;
|
GstClockTimeDiff *jitter = NULL;
|
||||||
|
|
||||||
g_return_if_fail (pad != NULL);
|
g_return_if_fail (pad != NULL);
|
||||||
@ -269,11 +274,22 @@ gst_udpsink_chain (GstPad *pad, GstBuffer *buf)
|
|||||||
|
|
||||||
tolen = sizeof(udpsink->theiraddr);
|
tolen = sizeof(udpsink->theiraddr);
|
||||||
|
|
||||||
if (sendto (udpsink->sock, GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), 0,
|
for (i = 0; i < GST_BUFFER_SIZE (buf); i += udpsink->mtu) {
|
||||||
(struct sockaddr *) &udpsink->theiraddr, tolen) == -1)
|
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");
|
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);
|
||||||
}
|
}
|
||||||
@ -301,6 +317,9 @@ gst_udpsink_set_property (GObject *object, guint prop_id, const GValue *value, G
|
|||||||
case ARG_CONTROL:
|
case ARG_CONTROL:
|
||||||
udpsink->control = g_value_get_enum (value);
|
udpsink->control = g_value_get_enum (value);
|
||||||
break;
|
break;
|
||||||
|
case ARG_MTU:
|
||||||
|
udpsink->mtu = g_value_get_int (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -325,6 +344,9 @@ gst_udpsink_get_property (GObject *object, guint prop_id, GValue *value, GParamS
|
|||||||
case ARG_CONTROL:
|
case ARG_CONTROL:
|
||||||
g_value_set_enum (value, udpsink->control);
|
g_value_set_enum (value, udpsink->control);
|
||||||
break;
|
break;
|
||||||
|
case ARG_MTU:
|
||||||
|
g_value_set_int (value, udpsink->mtu);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -76,6 +76,8 @@ struct _GstUDPSink {
|
|||||||
Gst_UDP_Control control;
|
Gst_UDP_Control control;
|
||||||
gchar *host;
|
gchar *host;
|
||||||
|
|
||||||
|
guint mtu;
|
||||||
|
|
||||||
GstClock *clock;
|
GstClock *clock;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user