gstreamer/tests/examples/netclock/netclock-client.c

59 lines
1.2 KiB
C

#include <stdlib.h>
#include <gst/gst.h>
#include <gst/net/gstnetclientclock.h>
static gboolean
handle_bus_message (GstBus * bus, GstMessage * message, GstClock * client_clock)
{
if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT) {
const GstStructure *s = gst_message_get_structure (message);
gchar *str;
if (s == NULL)
return TRUE;
str = gst_structure_to_string (s);
g_print ("%s\n", str);
g_free (str);
}
return TRUE;
}
gint
main (gint argc, gchar * argv[])
{
GMainLoop *loop;
gchar *host;
guint16 port;
GstClock *client_clock;
GstBus *bus;
gst_init (&argc, &argv);
if (argc < 3) {
g_print ("Usage: netclock-client <host> <port>\n");
return 1;
}
host = argv[1];
port = atoi (argv[2]);
client_clock = gst_net_client_clock_new (NULL, host, port, 0);
if (client_clock == NULL) {
g_printerr ("Failed to create network clock client\n");
return 1;
}
bus = gst_bus_new ();
gst_bus_add_watch (bus, (GstBusFunc) handle_bus_message, client_clock);
g_object_set (G_OBJECT (client_clock), "bus", bus, NULL);
loop = g_main_loop_new (NULL, FALSE);
g_main_loop_run (loop);
/* cleanup */
g_main_loop_unref (loop);
g_object_unref (client_clock);
return 0;
}