qa: Make it possible to set a scenario from the command line in test apps

This commit is contained in:
Thibault Saunier 2013-07-24 19:09:14 -04:00 committed by Thiago Santos
parent 382fcc9a01
commit 1e1e0b922e
2 changed files with 18 additions and 25 deletions

View file

@ -245,6 +245,8 @@ main (int argc, gchar ** argv)
GOptionContext *ctx; GOptionContext *ctx;
GError *err = NULL; GError *err = NULL;
const gchar *scenario = NULL;
GOptionEntry options[] = { GOptionEntry options[] = {
{"output-format", 'o', 0, G_OPTION_ARG_CALLBACK, &_parse_encoding_profile, {"output-format", 'o', 0, G_OPTION_ARG_CALLBACK, &_parse_encoding_profile,
"Set the properties to use for the encoding profile " "Set the properties to use for the encoding profile "
@ -254,8 +256,10 @@ main (int argc, gchar ** argv)
"video/webm:video/x-vp8+mypreset:audio/x-vorbis\n" "video/webm:video/x-vp8+mypreset:audio/x-vorbis\n"
"The presence property of the profile can be specified with |<presence>, eg:\n" "The presence property of the profile can be specified with |<presence>, eg:\n"
"video/webm:video/x-vp8|<presence>:audio/x-vorbis\n", "video/webm:video/x-vp8|<presence>:audio/x-vorbis\n",
"properties-values"} "properties-values"},
, {"set-scenario", '\0', 0, G_OPTION_ARG_STRING, &scenario,
"Let you set a scanrio, it will override the GST_QA_SCENARIO "
"environment variable", NULL},
{NULL} {NULL}
}; };
@ -270,6 +274,9 @@ main (int argc, gchar ** argv)
g_option_context_free (ctx); g_option_context_free (ctx);
if (scenario)
g_setenv ("GST_QA_SCENARIO", scenario, TRUE);
gst_init (&argc, &argv); gst_init (&argc, &argv);
if (argc != 3) { if (argc != 3) {

View file

@ -12,9 +12,6 @@
#include <gst/gst.h> #include <gst/gst.h>
#include <gst/qa/qa.h> #include <gst/qa/qa.h>
static gboolean seek_tests = FALSE;
static gboolean seek_done = FALSE;
static GMainLoop *mainloop; static GMainLoop *mainloop;
static GstElement *pipeline; static GstElement *pipeline;
@ -37,24 +34,6 @@ bus_callback (GstBus * bus, GstMessage * message, gpointer data)
case GST_MESSAGE_EOS: case GST_MESSAGE_EOS:
g_main_loop_quit (loop); g_main_loop_quit (loop);
break; break;
case GST_MESSAGE_STATE_CHANGED:
{
GstState new_state;
if (GST_MESSAGE_SRC (message) == (GstObject *) pipeline) {
gst_message_parse_state_changed (message, NULL, &new_state, NULL);
if (new_state == GST_STATE_PLAYING) {
/* pipeline has started, issue seeking */
/* TODO define where to seek to with arguments? */
if (seek_tests && !seek_done) {
g_print ("Performing seek\n");
seek_done = TRUE;
gst_element_seek_simple (pipeline, GST_FORMAT_TIME,
GST_SEEK_FLAG_FLUSH, 5 * GST_SECOND);
}
}
}
}
break;
default: default:
break; break;
} }
@ -66,9 +45,12 @@ int
main (int argc, gchar ** argv) main (int argc, gchar ** argv)
{ {
GError *err = NULL; GError *err = NULL;
const gchar *scenario = NULL;
GOptionEntry options[] = { GOptionEntry options[] = {
{"seek-test", '\0', 0, G_OPTION_ARG_NONE, &seek_tests, {"set-scenario", '\0', 0, G_OPTION_ARG_STRING, &scenario,
"Perform the seeking use case", NULL}, "Let you set a scanrio, it will override the GST_QA_SCENARIO "
"environment variable", NULL},
{NULL} {NULL}
}; };
GOptionContext *ctx; GOptionContext *ctx;
@ -90,6 +72,10 @@ main (int argc, gchar ** argv)
exit (1); exit (1);
} }
if (scenario) {
g_setenv ("GST_QA_SCENARIO", scenario, TRUE);
}
g_option_context_free (ctx); g_option_context_free (ctx);
gst_init (&argc, &argv); gst_init (&argc, &argv);