camerabin2: tests: Update tests to check for audio streams

Add a check that resulting recorded video files have audio streams.
This commit is contained in:
Thiago Santos 2011-01-21 12:47:57 -03:00
parent 8fe75f8067
commit bbfd1c73dd

View file

@ -439,9 +439,11 @@ taglist_is_subset (GstTagList * tags_a, GstTagList * tags_b)
/* Validate captured files by playing them with playbin /* Validate captured files by playing them with playbin
* and checking that no errors occur. */ * and checking that no errors occur. */
#define WITH_AUDIO TRUE
#define NO_AUDIO FALSE
static gboolean static gboolean
check_file_validity (const gchar * filename, gint num, GstTagList * taglist, check_file_validity (const gchar * filename, gint num, GstTagList * taglist,
gint width, gint height) gint width, gint height, gboolean has_audio)
{ {
GstBus *bus; GstBus *bus;
GstPad *pad; GstPad *pad;
@ -464,10 +466,9 @@ check_file_validity (const gchar * filename, gint num, GstTagList * taglist,
gst_bus_add_watch (bus, (GstBusFunc) validity_bus_cb, loop); gst_bus_add_watch (bus, (GstBusFunc) validity_bus_cb, loop);
gst_element_set_state (playbin, GST_STATE_PAUSED); gst_element_set_state (playbin, GST_STATE_PAUSED);
gst_element_get_state (playbin, &state, NULL, GST_SECOND * 3);
if (width != 0 && height != 0) { 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_signal_emit_by_name (playbin, "get-video-pad", 0, &pad, NULL);
g_assert (pad != NULL); g_assert (pad != NULL);
caps = gst_pad_get_negotiated_caps (pad); caps = gst_pad_get_negotiated_caps (pad);
@ -483,6 +484,11 @@ check_file_validity (const gchar * filename, gint num, GstTagList * taglist,
gst_caps_unref (caps); gst_caps_unref (caps);
gst_object_unref (pad); 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); gst_element_set_state (playbin, GST_STATE_PLAYING);
g_main_loop_run (loop); g_main_loop_run (loop);
@ -543,7 +549,7 @@ GST_START_TEST (test_single_image_capture)
check_preview_image (); check_preview_image ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); 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; GST_END_TEST;
@ -592,7 +598,8 @@ GST_START_TEST (test_multiple_image_captures)
g_usleep (G_USEC_PER_SEC * 3); g_usleep (G_USEC_PER_SEC * 3);
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 3; i++) { 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);
} }
} }
@ -630,7 +637,7 @@ GST_START_TEST (test_single_video_recording)
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); 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_END_TEST;
@ -684,7 +691,8 @@ GST_START_TEST (test_multiple_video_recordings)
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 3; i++) { 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);
} }
} }
@ -740,8 +748,8 @@ GST_START_TEST (test_image_video_cycle)
/* validate all the files */ /* validate all the files */
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
check_file_validity (IMAGE_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); check_file_validity (VIDEO_FILENAME, i, NULL, 0, 0, WITH_AUDIO);
} }
} }
@ -863,7 +871,7 @@ GST_START_TEST (test_image_capture_with_tags)
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 3; i++) { 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_tag_list_free (taglists[i]);
} }
} }
@ -936,7 +944,7 @@ GST_START_TEST (test_video_capture_with_tags)
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL);
for (i = 0; i < 2; i++) { 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]); gst_tag_list_free (taglists[i]);
} }
} }
@ -1050,7 +1058,7 @@ GST_START_TEST (test_image_custom_filter)
check_preview_image (); check_preview_image ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); 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 (vf_probe_counter > 0);
fail_unless (image_probe_counter == 1); fail_unless (image_probe_counter == 1);
@ -1122,7 +1130,7 @@ GST_START_TEST (test_video_custom_filter)
check_preview_image (); check_preview_image ();
gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); 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 (vf_probe_counter > 0);
fail_unless (video_probe_counter > 0); fail_unless (video_probe_counter > 0);