diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2021-09-24 16:13:07 -0300 |
---|---|---|
committer | Thibault Saunier <tsaunier@igalia.com> | 2021-09-24 16:13:07 -0300 |
commit | 6c364d96262f4e39951618c17de85cdd2dc769f3 (patch) | |
tree | fb9b22114419dbcb8885fe97e5c6d4a267df7560 /tests/examples/streams/stream-status.c | |
parent | b4ca58df7624b005a33e182a511904d7cceea890 (diff) |
Move files from gstreamer into the "subprojects/gstreamer/" subdir
Diffstat (limited to 'tests/examples/streams/stream-status.c')
-rw-r--r-- | tests/examples/streams/stream-status.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/tests/examples/streams/stream-status.c b/tests/examples/streams/stream-status.c deleted file mode 100644 index c94823e911..0000000000 --- a/tests/examples/streams/stream-status.c +++ /dev/null @@ -1,145 +0,0 @@ -#include <stdlib.h> -#include <gst/gst.h> - -static void -event_loop (GstBus * bus, GstElement * pipe) -{ - GstMessage *message = NULL; - - while (TRUE) { - message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1); - - g_assert (message != NULL); - - switch (message->type) { - case GST_MESSAGE_EOS: - g_message ("received EOS"); - gst_message_unref (message); - return; - case GST_MESSAGE_WARNING:{ - GError *gerror; - gchar *debug; - - gst_message_parse_warning (message, &gerror, &debug); - gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); - gst_message_unref (message); - g_error_free (gerror); - g_free (debug); - break; - } - case GST_MESSAGE_ERROR:{ - GError *gerror; - gchar *debug; - - gst_message_parse_error (message, &gerror, &debug); - gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); - gst_message_unref (message); - g_error_free (gerror); - g_free (debug); - return; - } - default: - gst_message_unref (message); - break; - } - } -} - -static GstBusSyncReply -sync_bus_handler (GstBus * bus, GstMessage * message, GstElement * bin) -{ - switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_STREAM_STATUS: - { - GstStreamStatusType type; - GstElement *owner; - const GValue *val; - gchar *path; - GstTask *task = NULL; - - g_message ("received STREAM_STATUS"); - gst_message_parse_stream_status (message, &type, &owner); - - val = gst_message_get_stream_status_object (message); - - g_message ("type: %d", type); - path = gst_object_get_path_string (GST_MESSAGE_SRC (message)); - g_message ("source: %s", path); - g_free (path); - path = gst_object_get_path_string (GST_OBJECT (owner)); - g_message ("owner: %s", path); - g_free (path); - g_message ("object: type %s, value %p", G_VALUE_TYPE_NAME (val), - g_value_get_object (val)); - - /* see if we know how to deal with this object */ - if (G_VALUE_TYPE (val) == GST_TYPE_TASK) { - task = g_value_get_object (val); - } - - switch (type) { - case GST_STREAM_STATUS_TYPE_CREATE: - g_message ("created task %p", task); - break; - case GST_STREAM_STATUS_TYPE_ENTER: - /* g_message ("raising task priority"); */ - /* setpriority (PRIO_PROCESS, 0, -10); */ - break; - case GST_STREAM_STATUS_TYPE_LEAVE: - break; - default: - break; - } - break; - } - default: - break; - } - /* pass all messages on the async queue */ - return GST_BUS_PASS; -} - -int -main (int argc, char *argv[]) -{ - GstElement *bin, *fakesrc, *fakesink; - GstBus *bus; - - gst_init (&argc, &argv); - - /* create a new bin to hold the elements */ - bin = gst_pipeline_new ("pipeline"); - g_assert (bin); - - /* create a source */ - fakesrc = gst_element_factory_make ("fakesrc", "fakesrc"); - g_assert (fakesrc); - g_object_set (fakesrc, "num-buffers", 50, NULL); - - /* and a sink */ - fakesink = gst_element_factory_make ("fakesink", "fakesink"); - g_assert (fakesink); - - /* add objects to the main pipeline */ - gst_bin_add_many (GST_BIN (bin), fakesrc, fakesink, NULL); - - /* link the elements */ - gst_element_link (fakesrc, fakesink); - - /* get the bus, we need to install a sync handler */ - bus = gst_pipeline_get_bus (GST_PIPELINE (bin)); - gst_bus_set_sync_handler (bus, (GstBusSyncHandler) sync_bus_handler, bin, - NULL); - - /* start playing */ - gst_element_set_state (bin, GST_STATE_PLAYING); - - /* Run event loop listening for bus messages until EOS or ERROR */ - event_loop (bus, bin); - - /* stop the bin */ - gst_element_set_state (bin, GST_STATE_NULL); - gst_object_unref (bus); - - exit (0); -} |