summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu.duponchelle@epitech.eu>2013-04-28 00:22:42 +0200
committerThibault Saunier <thibault.saunier@collabora.com>2013-07-12 18:17:00 -0400
commit669ce62ea292b0f1341cbcf4034640d978c0fd4e (patch)
tree69af627d0dc7d2267d13270d4e5b34734af7d8ef
parent78e19edad9551966508740567aeff679ebe78e19 (diff)
test-utils: Add test file generation code.
-rw-r--r--tests/check/ges/test-utils.c41
-rw-r--r--tests/check/ges/test-utils.h5
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/check/ges/test-utils.c b/tests/check/ges/test-utils.c
index a3d6fa0..b188235 100644
--- a/tests/check/ges/test-utils.c
+++ b/tests/check/ges/test-utils.c
@@ -104,7 +104,48 @@ ges_test_create_pipeline (GESTimeline * timeline)
gst_element_factory_make ("fakesink", "test-videofakesink"), NULL);
return pipeline;
+}
+
+void
+ges_generate_test_file_audio_video (const gchar * filedest,
+ const gchar * audio_enc,
+ const gchar * video_enc,
+ const gchar * mux, const gchar * video_pattern, const gchar * audio_wave)
+{
+ GError *error = NULL;
+ GstElement *pipeline;
+ GstBus *bus;
+ GstMessage *message;
+ gchar *pipeline_str;
+ gboolean done = FALSE;
+
+ if (g_file_test (filedest, G_FILE_TEST_EXISTS)) {
+ GST_INFO ("The file %s already existed.", filedest);
+ return;
+ }
+
+ pipeline_str = g_strdup_printf ("audiotestsrc num-buffers=430 wave=%s "
+ "! %s ! %s name=m ! filesink location= %s/%s "
+ "videotestsrc pattern=%s num-buffers=300 ! %s ! m.",
+ audio_wave, audio_enc, mux, g_get_current_dir (),
+ filedest, video_pattern, video_enc);
+ pipeline = gst_parse_launch (pipeline_str, &error);
+
+ bus = gst_element_get_bus (GST_ELEMENT (pipeline));
+ gst_bus_add_signal_watch (bus);
+
+ gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+ while (!done) {
+ message = gst_bus_poll (bus, GST_MESSAGE_ANY, GST_CLOCK_TIME_NONE);
+ if (GST_MESSAGE_TYPE (message) & GST_MESSAGE_EOS)
+ done = TRUE;
+ else if (GST_MESSAGE_TYPE (message) & GST_MESSAGE_ERROR) {
+ done = TRUE;
+ g_print ("Error");
+ }
+ }
}
static void
diff --git a/tests/check/ges/test-utils.h b/tests/check/ges/test-utils.h
index e3f3431..dbc0f4b 100644
--- a/tests/check/ges/test-utils.h
+++ b/tests/check/ges/test-utils.h
@@ -37,6 +37,11 @@ gchar * ges_test_get_audio_video_uri (void);
gchar * ges_test_get_image_uri (void);
gchar * ges_test_file_uri (const gchar *filename);
void check_destroyed (GObject *object_to_unref, GObject *first_object, ...) G_GNUC_NULL_TERMINATED;
+void
+ges_generate_test_file_audio_video (const gchar * filedest,
+ const gchar * audio_enc,
+ const gchar * video_enc,
+ const gchar * mux, const gchar * video_pattern, const gchar * audio_wave);
#define gnl_object_check(gnlobj, start, duration, mstart, mduration, priority, active) { \
guint64 pstart, pdur, inpoint, pprio, pact; \