mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
gst/net/gstnetclientclock.c (gst_net_client_clock_class_init): Port goes all the way to MAXUINT16.
Original commit message from CVS: 2005-11-18 Andy Wingo <wingo@pobox.com> * gst/net/gstnetclientclock.c (gst_net_client_clock_class_init): Port goes all the way to MAXUINT16. * gst/net/gstnettimeprovider.c: Make the port range the same as for the kernel: 0 assigns, otherwise ports are less than MAXUINT16. * check/net/gstnettimeprovider.c: Adapt for 0 == kernel assigns port change. * check/net/gstnetclientclock.c (test_functioning): Add the start of another test.
This commit is contained in:
parent
02253f5807
commit
d8b2273583
9 changed files with 93 additions and 109 deletions
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,18 @@
|
||||||
|
2005-11-18 Andy Wingo <wingo@pobox.com>
|
||||||
|
|
||||||
|
* gst/net/gstnetclientclock.c (gst_net_client_clock_class_init):
|
||||||
|
Port goes all the way to MAXUINT16.
|
||||||
|
|
||||||
|
* gst/net/gstnettimeprovider.c: Make the port range the same as
|
||||||
|
for the kernel: 0 assigns, otherwise ports are less than
|
||||||
|
MAXUINT16.
|
||||||
|
|
||||||
|
* check/net/gstnettimeprovider.c: Adapt for 0 == kernel assigns
|
||||||
|
port change.
|
||||||
|
|
||||||
|
* check/net/gstnetclientclock.c (test_functioning): Add the start
|
||||||
|
of another test.
|
||||||
|
|
||||||
2005-11-18 Wim Taymans <wim@fluendo.com>
|
2005-11-18 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
|
* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
|
||||||
|
@ -9,7 +24,6 @@
|
||||||
Make sure we reselect a clock when we received a clock lost message.
|
Make sure we reselect a clock when we received a clock lost message.
|
||||||
Keep a reference to the element that provided the clock.
|
Keep a reference to the element that provided the clock.
|
||||||
|
|
||||||
|
|
||||||
2005-11-18 Andy Wingo <wingo@pobox.com>
|
2005-11-18 Andy Wingo <wingo@pobox.com>
|
||||||
|
|
||||||
* gst/net/gstnetclientclock.c (gst_net_client_clock_new): Adjust
|
* gst/net/gstnetclientclock.c (gst_net_client_clock_new): Adjust
|
||||||
|
|
|
@ -39,72 +39,56 @@ GST_START_TEST (test_instantiation)
|
||||||
|
|
||||||
gst_object_unref (client);
|
gst_object_unref (client);
|
||||||
|
|
||||||
ASSERT_OBJECT_REFCOUNT (local, "net time provider", 2);
|
ASSERT_OBJECT_REFCOUNT (local, "system clock", 2);
|
||||||
|
|
||||||
gst_object_unref (local);
|
gst_object_unref (local);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
#if 0
|
|
||||||
GST_START_TEST (test_functioning)
|
GST_START_TEST (test_functioning)
|
||||||
{
|
{
|
||||||
GstNetTimeProvider *ntp;
|
GstNetTimeProvider *ntp;
|
||||||
GstNetTimePacket *packet;
|
GstClock *client, *server;
|
||||||
GstClock *clock;
|
GstClockTimeDiff offset;
|
||||||
GstClockTime local;
|
GstClockTime servint; //, servtime, localtime;
|
||||||
struct sockaddr_in servaddr;
|
gint port;
|
||||||
gint port = -1, sockfd, ret;
|
gdouble rate;
|
||||||
socklen_t len;
|
|
||||||
|
|
||||||
clock = gst_system_clock_obtain ();
|
server = gst_system_clock_obtain ();
|
||||||
fail_unless (clock != NULL, "failed to get system clock");
|
fail_unless (server != NULL, "failed to get system clock");
|
||||||
ntp = gst_net_time_provider_new (clock, "127.0.0.1", -1);
|
|
||||||
fail_unless (ntp != NULL, "failed to create net time provider");
|
/* move the clock ahead 1 minute */
|
||||||
|
gst_clock_get_rate_offset (server, &rate, &offset);
|
||||||
|
offset += 60 * GST_SECOND;
|
||||||
|
gst_clock_set_rate_offset (server, rate, offset);
|
||||||
|
servint = gst_clock_get_internal_time (GST_CLOCK (server));
|
||||||
|
|
||||||
|
ntp = gst_net_time_provider_new (server, "127.0.0.1", 0);
|
||||||
|
fail_unless (ntp != NULL, "failed to create network time provider");
|
||||||
|
|
||||||
g_object_get (ntp, "port", &port, NULL);
|
g_object_get (ntp, "port", &port, NULL);
|
||||||
fail_unless (port > 0);
|
/* g_print ("server port: %d\n", port); */
|
||||||
|
|
||||||
sockfd = socket (AF_INET, SOCK_DGRAM, 0);
|
client = gst_net_client_clock_new (NULL, "127.0.0.1", port, GST_SECOND);
|
||||||
fail_if (sockfd < 0, "socket failed");
|
fail_unless (client != NULL, "failed to get network client clock");
|
||||||
|
|
||||||
memset (&servaddr, 0, sizeof (servaddr));
|
g_object_get (client, "port", &port, NULL);
|
||||||
servaddr.sin_family = AF_INET;
|
/* g_print ("client connecting to server port %d\n", port); */
|
||||||
servaddr.sin_port = htons (port);
|
|
||||||
inet_aton ("127.0.0.1", &servaddr.sin_addr);
|
|
||||||
|
|
||||||
packet = gst_net_time_packet_new (NULL);
|
/* one for gstreamer, one for ntp, one for us */
|
||||||
fail_unless (packet != NULL, "failed to create packet");
|
ASSERT_OBJECT_REFCOUNT (server, "system clock", 3);
|
||||||
|
ASSERT_OBJECT_REFCOUNT (client, "network client clock", 1);
|
||||||
packet->local_time = local = gst_clock_get_time (clock);
|
|
||||||
|
|
||||||
len = sizeof (servaddr);
|
|
||||||
ret = gst_net_time_packet_send (packet, sockfd,
|
|
||||||
(struct sockaddr *) &servaddr, len);
|
|
||||||
|
|
||||||
fail_unless (ret == GST_NET_TIME_PACKET_SIZE, "failed to send packet");
|
|
||||||
|
|
||||||
g_free (packet);
|
|
||||||
|
|
||||||
packet = gst_net_time_packet_receive (sockfd, (struct sockaddr *) &servaddr,
|
|
||||||
&len);
|
|
||||||
|
|
||||||
fail_unless (packet != NULL, "failed to receive packet");
|
|
||||||
fail_unless (packet->local_time == local, "local time is not the same");
|
|
||||||
fail_unless (packet->remote_time > local, "remote time not after local time");
|
|
||||||
fail_unless (packet->remote_time < gst_clock_get_time (clock),
|
|
||||||
"remote time in the future");
|
|
||||||
|
|
||||||
g_free (packet);
|
|
||||||
|
|
||||||
close (sockfd);
|
|
||||||
|
|
||||||
gst_object_unref (ntp);
|
gst_object_unref (ntp);
|
||||||
gst_object_unref (clock);
|
|
||||||
|
ASSERT_OBJECT_REFCOUNT (server, "system clock", 2);
|
||||||
|
|
||||||
|
gst_object_unref (client);
|
||||||
|
gst_object_unref (server);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
#endif
|
|
||||||
|
|
||||||
Suite *
|
Suite *
|
||||||
gst_net_client_clock_suite (void)
|
gst_net_client_clock_suite (void)
|
||||||
|
@ -114,7 +98,7 @@ gst_net_client_clock_suite (void)
|
||||||
|
|
||||||
suite_add_tcase (s, tc_chain);
|
suite_add_tcase (s, tc_chain);
|
||||||
tcase_add_test (tc_chain, test_instantiation);
|
tcase_add_test (tc_chain, test_instantiation);
|
||||||
/* tcase_add_test (tc_chain, test_functioning); */
|
tcase_add_test (tc_chain, test_functioning);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ GST_START_TEST (test_refcounts)
|
||||||
/* one for gstreamer, one for us */
|
/* one for gstreamer, one for us */
|
||||||
ASSERT_OBJECT_REFCOUNT (clock, "system clock", 2);
|
ASSERT_OBJECT_REFCOUNT (clock, "system clock", 2);
|
||||||
|
|
||||||
ntp = gst_net_time_provider_new (clock, NULL, -1);
|
ntp = gst_net_time_provider_new (clock, NULL, 0);
|
||||||
fail_unless (ntp != NULL, "failed to create net time provider");
|
fail_unless (ntp != NULL, "failed to create net time provider");
|
||||||
|
|
||||||
/* one for ntp, one for gstreamer, one for us */
|
/* one for ntp, one for gstreamer, one for us */
|
||||||
|
@ -63,7 +63,7 @@ GST_START_TEST (test_functioning)
|
||||||
|
|
||||||
clock = gst_system_clock_obtain ();
|
clock = gst_system_clock_obtain ();
|
||||||
fail_unless (clock != NULL, "failed to get system clock");
|
fail_unless (clock != NULL, "failed to get system clock");
|
||||||
ntp = gst_net_time_provider_new (clock, "127.0.0.1", -1);
|
ntp = gst_net_time_provider_new (clock, "127.0.0.1", 0);
|
||||||
fail_unless (ntp != NULL, "failed to create net time provider");
|
fail_unless (ntp != NULL, "failed to create net time provider");
|
||||||
|
|
||||||
g_object_get (ntp, "port", &port, NULL);
|
g_object_get (ntp, "port", &port, NULL);
|
||||||
|
|
|
@ -104,7 +104,7 @@ gst_net_client_clock_class_init (GstNetClientClockClass * klass)
|
||||||
"as a dotted quad (x.x.x.x)", DEFAULT_ADDRESS, G_PARAM_READWRITE));
|
"as a dotted quad (x.x.x.x)", DEFAULT_ADDRESS, G_PARAM_READWRITE));
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
||||||
g_param_spec_int ("port", "port",
|
g_param_spec_int ("port", "port",
|
||||||
"The port on which the remote server is listening", 0, 32768,
|
"The port on which the remote server is listening", 0, G_MAXUINT16,
|
||||||
DEFAULT_PORT, G_PARAM_READWRITE));
|
DEFAULT_PORT, G_PARAM_READWRITE));
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_WINDOW_SIZE,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_WINDOW_SIZE,
|
||||||
g_param_spec_int ("window-size", "Window size",
|
g_param_spec_int ("window-size", "Window size",
|
||||||
|
@ -568,7 +568,7 @@ gst_net_client_clock_new (gchar * name, const gchar * remote_address,
|
||||||
|
|
||||||
g_return_val_if_fail (remote_address != NULL, NULL);
|
g_return_val_if_fail (remote_address != NULL, NULL);
|
||||||
g_return_val_if_fail (remote_port > 0, NULL);
|
g_return_val_if_fail (remote_port > 0, NULL);
|
||||||
g_return_val_if_fail (remote_port < 32768, NULL);
|
g_return_val_if_fail (remote_port <= G_MAXUINT16, NULL);
|
||||||
g_return_val_if_fail (base_time != GST_CLOCK_TIME_NONE, NULL);
|
g_return_val_if_fail (base_time != GST_CLOCK_TIME_NONE, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_NET_CLIENT_CLOCK, "address", remote_address,
|
ret = g_object_new (GST_TYPE_NET_CLIENT_CLOCK, "address", remote_address,
|
||||||
|
|
|
@ -102,7 +102,7 @@ gst_net_time_provider_class_init (GstNetTimeProviderClass * klass)
|
||||||
|
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
||||||
g_param_spec_int ("port", "port",
|
g_param_spec_int ("port", "port",
|
||||||
"The port to receive the packets from, -1=allocate", -1, 32768,
|
"The port to receive the packets from, 0=allocate", 0, G_MAXUINT16,
|
||||||
DEFAULT_PORT, G_PARAM_READWRITE));
|
DEFAULT_PORT, G_PARAM_READWRITE));
|
||||||
g_object_class_install_property (gobject_class, PROP_ADDRESS,
|
g_object_class_install_property (gobject_class, PROP_ADDRESS,
|
||||||
g_param_spec_string ("address", "address",
|
g_param_spec_string ("address", "address",
|
||||||
|
@ -330,7 +330,7 @@ gst_net_time_provider_start (GstNetTimeProvider * self)
|
||||||
|
|
||||||
memset (&my_addr, 0, sizeof (my_addr));
|
memset (&my_addr, 0, sizeof (my_addr));
|
||||||
my_addr.sin_family = AF_INET; /* host byte order */
|
my_addr.sin_family = AF_INET; /* host byte order */
|
||||||
my_addr.sin_port = htons (self->port); /* short, network byte order */
|
my_addr.sin_port = htons ((gint16) self->port); /* short, network byte order */
|
||||||
my_addr.sin_addr.s_addr = INADDR_ANY;
|
my_addr.sin_addr.s_addr = INADDR_ANY;
|
||||||
if (self->address)
|
if (self->address)
|
||||||
inet_aton (self->address, &my_addr.sin_addr);
|
inet_aton (self->address, &my_addr.sin_addr);
|
||||||
|
@ -347,6 +347,7 @@ gst_net_time_provider_start (GstNetTimeProvider * self)
|
||||||
|
|
||||||
port = ntohs (my_addr.sin_port);
|
port = ntohs (my_addr.sin_port);
|
||||||
GST_DEBUG_OBJECT (self, "bound, on port %d", port);
|
GST_DEBUG_OBJECT (self, "bound, on port %d", port);
|
||||||
|
|
||||||
if (port != self->port) {
|
if (port != self->port) {
|
||||||
self->port = port;
|
self->port = port;
|
||||||
GST_DEBUG_OBJECT (self, "notifying %d", port);
|
GST_DEBUG_OBJECT (self, "notifying %d", port);
|
||||||
|
@ -432,7 +433,7 @@ gst_net_time_provider_new (GstClock * clock, const gchar * address, gint port)
|
||||||
gint iret;
|
gint iret;
|
||||||
|
|
||||||
g_return_val_if_fail (clock && GST_IS_CLOCK (clock), NULL);
|
g_return_val_if_fail (clock && GST_IS_CLOCK (clock), NULL);
|
||||||
g_return_val_if_fail (port == -1 || port >= 0, NULL);
|
g_return_val_if_fail (port >= 0 && port <= G_MAXUINT16, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_NET_TIME_PROVIDER, "clock", clock, "address",
|
ret = g_object_new (GST_TYPE_NET_TIME_PROVIDER, "clock", clock, "address",
|
||||||
address, "port", port, NULL);
|
address, "port", port, NULL);
|
||||||
|
|
|
@ -104,7 +104,7 @@ gst_net_client_clock_class_init (GstNetClientClockClass * klass)
|
||||||
"as a dotted quad (x.x.x.x)", DEFAULT_ADDRESS, G_PARAM_READWRITE));
|
"as a dotted quad (x.x.x.x)", DEFAULT_ADDRESS, G_PARAM_READWRITE));
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
||||||
g_param_spec_int ("port", "port",
|
g_param_spec_int ("port", "port",
|
||||||
"The port on which the remote server is listening", 0, 32768,
|
"The port on which the remote server is listening", 0, G_MAXUINT16,
|
||||||
DEFAULT_PORT, G_PARAM_READWRITE));
|
DEFAULT_PORT, G_PARAM_READWRITE));
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_WINDOW_SIZE,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_WINDOW_SIZE,
|
||||||
g_param_spec_int ("window-size", "Window size",
|
g_param_spec_int ("window-size", "Window size",
|
||||||
|
@ -568,7 +568,7 @@ gst_net_client_clock_new (gchar * name, const gchar * remote_address,
|
||||||
|
|
||||||
g_return_val_if_fail (remote_address != NULL, NULL);
|
g_return_val_if_fail (remote_address != NULL, NULL);
|
||||||
g_return_val_if_fail (remote_port > 0, NULL);
|
g_return_val_if_fail (remote_port > 0, NULL);
|
||||||
g_return_val_if_fail (remote_port < 32768, NULL);
|
g_return_val_if_fail (remote_port <= G_MAXUINT16, NULL);
|
||||||
g_return_val_if_fail (base_time != GST_CLOCK_TIME_NONE, NULL);
|
g_return_val_if_fail (base_time != GST_CLOCK_TIME_NONE, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_NET_CLIENT_CLOCK, "address", remote_address,
|
ret = g_object_new (GST_TYPE_NET_CLIENT_CLOCK, "address", remote_address,
|
||||||
|
|
|
@ -102,7 +102,7 @@ gst_net_time_provider_class_init (GstNetTimeProviderClass * klass)
|
||||||
|
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PORT,
|
||||||
g_param_spec_int ("port", "port",
|
g_param_spec_int ("port", "port",
|
||||||
"The port to receive the packets from, -1=allocate", -1, 32768,
|
"The port to receive the packets from, 0=allocate", 0, G_MAXUINT16,
|
||||||
DEFAULT_PORT, G_PARAM_READWRITE));
|
DEFAULT_PORT, G_PARAM_READWRITE));
|
||||||
g_object_class_install_property (gobject_class, PROP_ADDRESS,
|
g_object_class_install_property (gobject_class, PROP_ADDRESS,
|
||||||
g_param_spec_string ("address", "address",
|
g_param_spec_string ("address", "address",
|
||||||
|
@ -330,7 +330,7 @@ gst_net_time_provider_start (GstNetTimeProvider * self)
|
||||||
|
|
||||||
memset (&my_addr, 0, sizeof (my_addr));
|
memset (&my_addr, 0, sizeof (my_addr));
|
||||||
my_addr.sin_family = AF_INET; /* host byte order */
|
my_addr.sin_family = AF_INET; /* host byte order */
|
||||||
my_addr.sin_port = htons (self->port); /* short, network byte order */
|
my_addr.sin_port = htons ((gint16) self->port); /* short, network byte order */
|
||||||
my_addr.sin_addr.s_addr = INADDR_ANY;
|
my_addr.sin_addr.s_addr = INADDR_ANY;
|
||||||
if (self->address)
|
if (self->address)
|
||||||
inet_aton (self->address, &my_addr.sin_addr);
|
inet_aton (self->address, &my_addr.sin_addr);
|
||||||
|
@ -347,6 +347,7 @@ gst_net_time_provider_start (GstNetTimeProvider * self)
|
||||||
|
|
||||||
port = ntohs (my_addr.sin_port);
|
port = ntohs (my_addr.sin_port);
|
||||||
GST_DEBUG_OBJECT (self, "bound, on port %d", port);
|
GST_DEBUG_OBJECT (self, "bound, on port %d", port);
|
||||||
|
|
||||||
if (port != self->port) {
|
if (port != self->port) {
|
||||||
self->port = port;
|
self->port = port;
|
||||||
GST_DEBUG_OBJECT (self, "notifying %d", port);
|
GST_DEBUG_OBJECT (self, "notifying %d", port);
|
||||||
|
@ -432,7 +433,7 @@ gst_net_time_provider_new (GstClock * clock, const gchar * address, gint port)
|
||||||
gint iret;
|
gint iret;
|
||||||
|
|
||||||
g_return_val_if_fail (clock && GST_IS_CLOCK (clock), NULL);
|
g_return_val_if_fail (clock && GST_IS_CLOCK (clock), NULL);
|
||||||
g_return_val_if_fail (port == -1 || port >= 0, NULL);
|
g_return_val_if_fail (port >= 0 && port <= G_MAXUINT16, NULL);
|
||||||
|
|
||||||
ret = g_object_new (GST_TYPE_NET_TIME_PROVIDER, "clock", clock, "address",
|
ret = g_object_new (GST_TYPE_NET_TIME_PROVIDER, "clock", clock, "address",
|
||||||
address, "port", port, NULL);
|
address, "port", port, NULL);
|
||||||
|
|
|
@ -39,72 +39,56 @@ GST_START_TEST (test_instantiation)
|
||||||
|
|
||||||
gst_object_unref (client);
|
gst_object_unref (client);
|
||||||
|
|
||||||
ASSERT_OBJECT_REFCOUNT (local, "net time provider", 2);
|
ASSERT_OBJECT_REFCOUNT (local, "system clock", 2);
|
||||||
|
|
||||||
gst_object_unref (local);
|
gst_object_unref (local);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
#if 0
|
|
||||||
GST_START_TEST (test_functioning)
|
GST_START_TEST (test_functioning)
|
||||||
{
|
{
|
||||||
GstNetTimeProvider *ntp;
|
GstNetTimeProvider *ntp;
|
||||||
GstNetTimePacket *packet;
|
GstClock *client, *server;
|
||||||
GstClock *clock;
|
GstClockTimeDiff offset;
|
||||||
GstClockTime local;
|
GstClockTime servint; //, servtime, localtime;
|
||||||
struct sockaddr_in servaddr;
|
gint port;
|
||||||
gint port = -1, sockfd, ret;
|
gdouble rate;
|
||||||
socklen_t len;
|
|
||||||
|
|
||||||
clock = gst_system_clock_obtain ();
|
server = gst_system_clock_obtain ();
|
||||||
fail_unless (clock != NULL, "failed to get system clock");
|
fail_unless (server != NULL, "failed to get system clock");
|
||||||
ntp = gst_net_time_provider_new (clock, "127.0.0.1", -1);
|
|
||||||
fail_unless (ntp != NULL, "failed to create net time provider");
|
/* move the clock ahead 1 minute */
|
||||||
|
gst_clock_get_rate_offset (server, &rate, &offset);
|
||||||
|
offset += 60 * GST_SECOND;
|
||||||
|
gst_clock_set_rate_offset (server, rate, offset);
|
||||||
|
servint = gst_clock_get_internal_time (GST_CLOCK (server));
|
||||||
|
|
||||||
|
ntp = gst_net_time_provider_new (server, "127.0.0.1", 0);
|
||||||
|
fail_unless (ntp != NULL, "failed to create network time provider");
|
||||||
|
|
||||||
g_object_get (ntp, "port", &port, NULL);
|
g_object_get (ntp, "port", &port, NULL);
|
||||||
fail_unless (port > 0);
|
/* g_print ("server port: %d\n", port); */
|
||||||
|
|
||||||
sockfd = socket (AF_INET, SOCK_DGRAM, 0);
|
client = gst_net_client_clock_new (NULL, "127.0.0.1", port, GST_SECOND);
|
||||||
fail_if (sockfd < 0, "socket failed");
|
fail_unless (client != NULL, "failed to get network client clock");
|
||||||
|
|
||||||
memset (&servaddr, 0, sizeof (servaddr));
|
g_object_get (client, "port", &port, NULL);
|
||||||
servaddr.sin_family = AF_INET;
|
/* g_print ("client connecting to server port %d\n", port); */
|
||||||
servaddr.sin_port = htons (port);
|
|
||||||
inet_aton ("127.0.0.1", &servaddr.sin_addr);
|
|
||||||
|
|
||||||
packet = gst_net_time_packet_new (NULL);
|
/* one for gstreamer, one for ntp, one for us */
|
||||||
fail_unless (packet != NULL, "failed to create packet");
|
ASSERT_OBJECT_REFCOUNT (server, "system clock", 3);
|
||||||
|
ASSERT_OBJECT_REFCOUNT (client, "network client clock", 1);
|
||||||
packet->local_time = local = gst_clock_get_time (clock);
|
|
||||||
|
|
||||||
len = sizeof (servaddr);
|
|
||||||
ret = gst_net_time_packet_send (packet, sockfd,
|
|
||||||
(struct sockaddr *) &servaddr, len);
|
|
||||||
|
|
||||||
fail_unless (ret == GST_NET_TIME_PACKET_SIZE, "failed to send packet");
|
|
||||||
|
|
||||||
g_free (packet);
|
|
||||||
|
|
||||||
packet = gst_net_time_packet_receive (sockfd, (struct sockaddr *) &servaddr,
|
|
||||||
&len);
|
|
||||||
|
|
||||||
fail_unless (packet != NULL, "failed to receive packet");
|
|
||||||
fail_unless (packet->local_time == local, "local time is not the same");
|
|
||||||
fail_unless (packet->remote_time > local, "remote time not after local time");
|
|
||||||
fail_unless (packet->remote_time < gst_clock_get_time (clock),
|
|
||||||
"remote time in the future");
|
|
||||||
|
|
||||||
g_free (packet);
|
|
||||||
|
|
||||||
close (sockfd);
|
|
||||||
|
|
||||||
gst_object_unref (ntp);
|
gst_object_unref (ntp);
|
||||||
gst_object_unref (clock);
|
|
||||||
|
ASSERT_OBJECT_REFCOUNT (server, "system clock", 2);
|
||||||
|
|
||||||
|
gst_object_unref (client);
|
||||||
|
gst_object_unref (server);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
#endif
|
|
||||||
|
|
||||||
Suite *
|
Suite *
|
||||||
gst_net_client_clock_suite (void)
|
gst_net_client_clock_suite (void)
|
||||||
|
@ -114,7 +98,7 @@ gst_net_client_clock_suite (void)
|
||||||
|
|
||||||
suite_add_tcase (s, tc_chain);
|
suite_add_tcase (s, tc_chain);
|
||||||
tcase_add_test (tc_chain, test_instantiation);
|
tcase_add_test (tc_chain, test_instantiation);
|
||||||
/* tcase_add_test (tc_chain, test_functioning); */
|
tcase_add_test (tc_chain, test_functioning);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ GST_START_TEST (test_refcounts)
|
||||||
/* one for gstreamer, one for us */
|
/* one for gstreamer, one for us */
|
||||||
ASSERT_OBJECT_REFCOUNT (clock, "system clock", 2);
|
ASSERT_OBJECT_REFCOUNT (clock, "system clock", 2);
|
||||||
|
|
||||||
ntp = gst_net_time_provider_new (clock, NULL, -1);
|
ntp = gst_net_time_provider_new (clock, NULL, 0);
|
||||||
fail_unless (ntp != NULL, "failed to create net time provider");
|
fail_unless (ntp != NULL, "failed to create net time provider");
|
||||||
|
|
||||||
/* one for ntp, one for gstreamer, one for us */
|
/* one for ntp, one for gstreamer, one for us */
|
||||||
|
@ -63,7 +63,7 @@ GST_START_TEST (test_functioning)
|
||||||
|
|
||||||
clock = gst_system_clock_obtain ();
|
clock = gst_system_clock_obtain ();
|
||||||
fail_unless (clock != NULL, "failed to get system clock");
|
fail_unless (clock != NULL, "failed to get system clock");
|
||||||
ntp = gst_net_time_provider_new (clock, "127.0.0.1", -1);
|
ntp = gst_net_time_provider_new (clock, "127.0.0.1", 0);
|
||||||
fail_unless (ntp != NULL, "failed to create net time provider");
|
fail_unless (ntp != NULL, "failed to create net time provider");
|
||||||
|
|
||||||
g_object_get (ntp, "port", &port, NULL);
|
g_object_get (ntp, "port", &port, NULL);
|
||||||
|
|
Loading…
Reference in a new issue