#include <gst/gst.h> int main (int argc, char *argv[]) { GstBin *bin; GstElement *src, *sink; GstPad *srcpad, *sinkpad; // _gst_plugin_spew = TRUE; gst_init (&argc, &argv); bin = GST_BIN (gst_pipeline_new ("pipeline")); g_return_val_if_fail (bin != NULL, -1); g_print ("--- creating src and sink elements\n"); src = gst_elementfactory_make ("fakesrc", "src"); g_return_val_if_fail (src != NULL, -1); sink = gst_elementfactory_make ("fakesink", "sink"); g_return_val_if_fail (sink != NULL, -1); g_print ("--- about to add the elements to the bin\n"); gst_bin_add (bin, GST_ELEMENT (src)); gst_bin_add (bin, GST_ELEMENT (sink)); g_print ("--- getting pads\n"); srcpad = gst_element_get_pad (src, "src"); g_return_val_if_fail (srcpad != NULL, -1); sinkpad = gst_element_get_pad (sink, "sink"); g_return_val_if_fail (srcpad != NULL, -1); g_print ("--- connecting\n"); gst_pad_connect (srcpad, sinkpad); g_print ("--- setting up\n"); gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING); g_print ("--- iterating\n"); gst_bin_iterate (bin); gst_bin_iterate (bin); g_print ("--- seek to 100\n"); gst_pad_send_event (srcpad, gst_event_new_seek (GST_SEEK_ANY, 100, FALSE)); g_print ("--- seek done, iterating\n"); gst_bin_iterate (bin); gst_bin_iterate (bin); g_print ("--- seek to 200 with flush\n"); gst_pad_send_event (srcpad, gst_event_new_seek (GST_SEEK_ANY, 200, TRUE)); g_print ("--- seek done, iterating\n"); gst_bin_iterate (bin); gst_bin_iterate (bin); gst_bin_iterate (bin); g_print ("--- flush\n"); gst_pad_send_event (srcpad, gst_event_new_flush ()); g_print ("--- flush done, iterating\n"); gst_bin_iterate (bin); gst_bin_iterate (bin); g_print ("--- cleaning up\n"); gst_element_set_state (GST_ELEMENT (bin), GST_STATE_NULL); return 0; }