return msg;
}
+static void
+wait_for_idle_state (void)
+{
+ gboolean idle = FALSE;
+
+ /* not the ideal way, but should be enough for testing */
+ while (idle == FALSE) {
+ g_object_get (camera, "idle", &idle, NULL);
+ if (idle)
+ break;
+
+ g_usleep (GST_SECOND / 5);
+ }
+ fail_unless (idle);
+}
+
GST_START_TEST (test_single_image_capture)
{
gboolean idle;
/* check that we got a preview image */
check_preview_image (camera, image_filename, 0);
- g_object_get (camera, "idle", &idle, NULL);
- fail_unless (idle);
+ wait_for_idle_state ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
check_file_validity (image_filename, 0, NULL, 0, 0, NO_AUDIO);
}
check_preview_image (camera, image_filename, i);
}
- g_object_get (camera, "idle", &idle, NULL);
- fail_unless (idle);
+ wait_for_idle_state ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 3; i++) {
check_file_validity (image_filename, i, NULL, widths[i], heights[i],
fail_unless (msg != NULL);
gst_message_unref (msg);
- g_object_get (camera, "idle", &idle, NULL);
- fail_unless (idle);
+ wait_for_idle_state ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
check_file_validity (video_filename, 0, NULL, 0, 0, WITH_AUDIO);
check_preview_image (camera, video_filename, i);
- g_object_get (camera, "idle", &idle, NULL);
- fail_unless (idle);
+ wait_for_idle_state ();
}
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
GST_START_TEST (test_image_video_cycle)
{
- gboolean idle;
gint i;
if (!camera)
const gchar *img_filename;
const gchar *vid_filename;
- g_object_get (camera, "idle", &idle, NULL);
- fail_unless (idle);
+ wait_for_idle_state ();
/* take a picture */
img_filename = make_const_file_name (image_filename, i);
gst_message_unref (msg);
check_preview_image (camera, vid_filename, i);
-
- /* wait for capture to finish */
- g_usleep (G_USEC_PER_SEC);
}
+
+ wait_for_idle_state ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
/* validate all the files */
check_preview_image (camera, video_filename, 0);
- g_object_get (camera, "idle", &idle, NULL);
- fail_unless (idle);
+ wait_for_idle_state ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);