/* Validate captured files by playing them with playbin
* and checking that no errors occur. */
+#define WITH_AUDIO TRUE
+#define NO_AUDIO FALSE
static gboolean
check_file_validity (const gchar * filename, gint num, GstTagList * taglist,
- gint width, gint height)
+ gint width, gint height, gboolean has_audio)
{
GstBus *bus;
GstPad *pad;
gst_bus_add_watch (bus, (GstBusFunc) validity_bus_cb, loop);
gst_element_set_state (playbin, GST_STATE_PAUSED);
+ gst_element_get_state (playbin, &state, NULL, GST_SECOND * 3);
if (width != 0 && height != 0) {
- gst_element_get_state (playbin, &state, NULL, GST_SECOND * 3);
-
g_signal_emit_by_name (playbin, "get-video-pad", 0, &pad, NULL);
g_assert (pad != NULL);
caps = gst_pad_get_negotiated_caps (pad);
gst_caps_unref (caps);
gst_object_unref (pad);
}
+ if (has_audio) {
+ g_signal_emit_by_name (playbin, "get-audio-pad", 0, &pad, NULL);
+ g_assert (pad != NULL);
+ gst_object_unref (pad);
+ }
gst_element_set_state (playbin, GST_STATE_PLAYING);
g_main_loop_run (loop);
check_preview_image ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
- check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0);
+ check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0, NO_AUDIO);
}
GST_END_TEST;
g_usleep (G_USEC_PER_SEC * 3);
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]);
+ check_file_validity (IMAGE_FILENAME, i, NULL, widths[i], heights[i],
+ NO_AUDIO);
}
}
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
- check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0);
+ check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0, WITH_AUDIO);
}
GST_END_TEST;
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 3; i++) {
- check_file_validity (VIDEO_FILENAME, i, NULL, widths[i], heights[i]);
+ check_file_validity (VIDEO_FILENAME, i, NULL, widths[i], heights[i],
+ WITH_AUDIO);
}
}
/* validate all the files */
for (i = 0; i < 2; i++) {
- check_file_validity (IMAGE_FILENAME, i, NULL, 0, 0);
- check_file_validity (VIDEO_FILENAME, i, NULL, 0, 0);
+ check_file_validity (IMAGE_FILENAME, i, NULL, 0, 0, NO_AUDIO);
+ check_file_validity (VIDEO_FILENAME, i, NULL, 0, 0, WITH_AUDIO);
}
}
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 3; i++) {
- check_file_validity (IMAGE_FILENAME, i, taglists[i], 0, 0);
+ check_file_validity (IMAGE_FILENAME, i, taglists[i], 0, 0, NO_AUDIO);
gst_tag_list_free (taglists[i]);
}
}
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 2; i++) {
- check_file_validity (VIDEO_FILENAME, i, taglists[i], 0, 0);
+ check_file_validity (VIDEO_FILENAME, i, taglists[i], 0, 0, NO_AUDIO);
gst_tag_list_free (taglists[i]);
}
}
check_preview_image ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
- check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0);
+ check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0, NO_AUDIO);
fail_unless (vf_probe_counter > 0);
fail_unless (image_probe_counter == 1);
check_preview_image ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
- check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0);
+ check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0, WITH_AUDIO);
fail_unless (vf_probe_counter > 0);
fail_unless (video_probe_counter > 0);