mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 09:10:36 +00:00
ed1022fa81
To allow the refcounting tracer to work better. In childproxy/iterator these might be plain GObjects but gst_object_unref() also works on them. In other places where it is never GstObject, g_object_unref() is kept.
59 lines
1.2 KiB
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);
|
|
gst_object_unref (client_clock);
|
|
|
|
return 0;
|
|
}
|