+ send_buffers (queue1_sinkpad, queue2_sinkpad);
+
+ /* Set PLAYING */
+ g_idle_add ((GSourceFunc) set_playing, bin);
+
+ /* Collect buffers and messages */
+ g_main_loop_run (main_loop);
+
+ /* Here we get once we got EOS, for errors we failed */
+
+ check_buffers (received_buffers);
+
+ g_list_free_full (received_buffers, (GDestroyNotify) gst_buffer_unref);
+
+ gst_element_release_request_pad (audiomixer, sinkpad1);
+ gst_object_unref (sinkpad1);
+ gst_object_unref (queue1_sinkpad);
+ gst_element_release_request_pad (audiomixer, sinkpad2);
+ gst_object_unref (sinkpad2);
+ gst_object_unref (queue2_sinkpad);
+ gst_element_set_state (bin, GST_STATE_NULL);
+ gst_bus_remove_signal_watch (bus);
+ gst_object_unref (bus);
+ gst_object_unref (bin);
+ g_main_loop_unref (main_loop);
+}
+
+static void
+send_buffers_sync (GstPad * pad1, GstPad * pad2)
+{
+ GstBuffer *buffer;
+ GstMapInfo map;
+ GstFlowReturn ret;
+