#include #include #include #include #include int main (int argc, char *argv[]) { GstStateChangeReturn sret; GstElement *pipeline; GstElement *source, *sink, *queue; gst_init (&argc, &argv); if (unlink("test")) { perror("unlink:"); } if (mkfifo("test", O_CREAT|S_IRWXU)) { perror("mkfifo:"); } if (!fopen("test", "w+")) { perror("fopen:"); } pipeline = gst_pipeline_new ("my-pipeline"); source = gst_element_factory_make ("fakesrc", "source"); g_object_set (G_OBJECT (source), "num-buffers", 5, NULL); g_object_set (G_OBJECT (source), "sizetype", 2, NULL); g_object_set (G_OBJECT (source), "filltype", 4, NULL); g_object_set (G_OBJECT (source), "sizemax", 70000, NULL); queue = gst_element_factory_make ("queue", "queue"); gst_bin_add_many (GST_BIN (pipeline), source, queue, NULL); if (!gst_element_link_many (source, queue, NULL)) { g_warning ("Failed to link elements!"); } sret = gst_element_set_state (pipeline, GST_STATE_PLAYING); sink = gst_element_factory_make ("filesink", "sink"); g_object_set (G_OBJECT (sink), "location", "test", NULL); gst_bin_add (GST_BIN (pipeline), sink); gst_element_set_state (sink, GST_STATE_PLAYING); gst_element_link (queue, sink); sleep (1); gst_element_set_state (sink, GST_STATE_NULL); return 0; }