void take_photo (GtkButton *button, gpointer data) { GstElement *pipeline, *jpegenc, *fakesink, *filesink; pipeline = g_object_get_data (G_OBJECT (button), "pipeline"); jpegenc = gst_bin_get_by_name (GST_BIN (pipeline), "encoder"); fakesink = gst_bin_get_by_name (GST_BIN (pipeline), "fakesink"); filesink = gst_bin_get_by_name (GST_BIN (pipeline), "filesink"); g_object_set(filesink,"location","photos/prueba.jpg",NULL); gst_element_unlink (jpegenc, fakesink); gst_element_link (jpegenc, filesink); gst_element_set_state (filesink, GST_STATE_PLAYING); sleep (3); gst_element_unlink (jpegenc, filesink); gst_element_link (jpegenc, fakesink); gst_element_set_state (filesink, GST_STATE_NULL); }