mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-04 13:32:29 +00:00
camerabin: add target-times option to specify test times
Have some reasonable default times. Add a commandline option to override defaults. Interpret target-time=0 as skip-test.
This commit is contained in:
parent
c3abf1b267
commit
fa78a0f125
1 changed files with 35 additions and 11 deletions
|
@ -39,6 +39,7 @@
|
||||||
* ./gst-camera-perf --src-colorspace=UYVY --image-width=640 --image-height=480 --view-framerate-num=2999 --view-framerate-den=100 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux
|
* ./gst-camera-perf --src-colorspace=UYVY --image-width=640 --image-height=480 --view-framerate-num=2999 --view-framerate-den=100 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux
|
||||||
* ./gst-camera-perf --src-colorspace=UYVY --image-width=2592 --image-height=1968 --view-framerate-num=399 --view-framerate-den=100 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux
|
* ./gst-camera-perf --src-colorspace=UYVY --image-width=2592 --image-height=1968 --view-framerate-num=399 --view-framerate-den=100 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux
|
||||||
* ./gst-camera-perf --src-colorspace=UYVY --image-width=2592 --image-height=1968 --view-framerate-num=325 --view-framerate-den=25 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux --image-enc=dspjpegenc
|
* ./gst-camera-perf --src-colorspace=UYVY --image-width=2592 --image-height=1968 --view-framerate-num=325 --view-framerate-den=25 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux --image-enc=dspjpegenc
|
||||||
|
* ./gst-camera-perf --src-colorspace=UYVY --image-width=640 --image-height=480 --view-framerate-num=1491 --view-framerate-den=100 --video-src=v4l2camsrc --audio-enc=nokiaaacenc --video-enc=omx_mpeg4enc --video-mux=hantromp4mux --target-times=1000,0,1500,0,0,0,0,1000,0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -113,16 +114,17 @@ static GstClockTime t_final[CONT_SHOTS] = { G_GUINT64_CONSTANT (0), };
|
||||||
static GstClockTimeDiff diff;
|
static GstClockTimeDiff diff;
|
||||||
static ResultType result;
|
static ResultType result;
|
||||||
|
|
||||||
static const GstClockTime target[TEST_CASES] = {
|
/* these can be overridden with commandline args --target-times */
|
||||||
|
static GstClockTime target[TEST_CASES] = {
|
||||||
1000 * GST_MSECOND,
|
1000 * GST_MSECOND,
|
||||||
0, /* 1500 * GST_MSECOND, not tested */
|
1500 * GST_MSECOND,
|
||||||
1500 * GST_MSECOND,
|
1500 * GST_MSECOND,
|
||||||
2000 * GST_MSECOND, /* this should be shorter, as we can take next picture before preview is ready */
|
2000 * GST_MSECOND, /* this should be shorter, as we can take next picture before preview is ready */
|
||||||
500 * GST_MSECOND,
|
500 * GST_MSECOND,
|
||||||
0, /* 2000 * GST_MSECOND, not tested */
|
2000 * GST_MSECOND,
|
||||||
3500 * GST_MSECOND,
|
3500 * GST_MSECOND,
|
||||||
1000 * GST_MSECOND,
|
1000 * GST_MSECOND,
|
||||||
0 /* 1000 * GST_MSECOND, not tested */
|
1000 * GST_MSECOND
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gchar *test_names[TEST_CASES] = {
|
static const gchar *test_names[TEST_CASES] = {
|
||||||
|
@ -604,7 +606,8 @@ static test_case test_cases[TEST_CASES] = {
|
||||||
test_05,
|
test_05,
|
||||||
NULL,
|
NULL,
|
||||||
test_07,
|
test_07,
|
||||||
test_08
|
test_08,
|
||||||
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -627,14 +630,19 @@ run_test (gpointer user_data)
|
||||||
|
|
||||||
printf ("| %02d ", test_ix + 1);
|
printf ("| %02d ", test_ix + 1);
|
||||||
if (test_cases[test_ix]) {
|
if (test_cases[test_ix]) {
|
||||||
memset (&result, 0, sizeof (ResultType));
|
if (target[test_ix]) {
|
||||||
ret = test_cases[test_ix] ();
|
memset (&result, 0, sizeof (ResultType));
|
||||||
|
ret = test_cases[test_ix] ();
|
||||||
|
|
||||||
//while (g_main_context_pending (NULL)) g_main_context_iteration (NULL,FALSE);
|
//while (g_main_context_pending (NULL)) g_main_context_iteration (NULL,FALSE);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
print_result ();
|
print_result ();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf ("| test skipped ");
|
||||||
|
printf ("| %-19s |\n", test_names[test_ix]);
|
||||||
|
test_ix++;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printf ("| test not implemented ");
|
printf ("| test not implemented ");
|
||||||
printf ("| %-19s |\n", test_names[test_ix]);
|
printf ("| %-19s |\n", test_names[test_ix]);
|
||||||
|
@ -654,6 +662,7 @@ run_test (gpointer user_data)
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
gchar *target_times = NULL;
|
||||||
GOptionEntry options[] = {
|
GOptionEntry options[] = {
|
||||||
{"audio-src", '\0', 0, G_OPTION_ARG_STRING, &audiosrc_name,
|
{"audio-src", '\0', 0, G_OPTION_ARG_STRING, &audiosrc_name,
|
||||||
"audio source used in video recording", NULL},
|
"audio source used in video recording", NULL},
|
||||||
|
@ -677,6 +686,9 @@ main (int argc, char *argv[])
|
||||||
"framerate denominator for viewfinder", NULL},
|
"framerate denominator for viewfinder", NULL},
|
||||||
{"src-colorspace", '\0', 0, G_OPTION_ARG_STRING, &src_csp,
|
{"src-colorspace", '\0', 0, G_OPTION_ARG_STRING, &src_csp,
|
||||||
"colorspace format for videosource (e.g. YUY2, UYVY)", NULL},
|
"colorspace format for videosource (e.g. YUY2, UYVY)", NULL},
|
||||||
|
{"target-times", '\0', 0, G_OPTION_ARG_STRING, &target_times,
|
||||||
|
"target test times in ms as comma separated values (0 to skip test)",
|
||||||
|
NULL},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
GOptionContext *ctx;
|
GOptionContext *ctx;
|
||||||
|
@ -698,6 +710,17 @@ main (int argc, char *argv[])
|
||||||
filename = g_string_new_len ("", 16);
|
filename = g_string_new_len ("", 16);
|
||||||
loop = g_main_loop_new (NULL, FALSE);
|
loop = g_main_loop_new (NULL, FALSE);
|
||||||
|
|
||||||
|
if (target_times) {
|
||||||
|
gchar **numbers;
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
numbers = g_strsplit (target_times, ",", TEST_CASES);
|
||||||
|
for (i = 0; (numbers[i] && i < TEST_CASES); i++) {
|
||||||
|
target[i] = GST_MSECOND * atoi (numbers[i]);
|
||||||
|
}
|
||||||
|
g_strfreev (numbers);
|
||||||
|
}
|
||||||
|
|
||||||
/* run */
|
/* run */
|
||||||
puts ("");
|
puts ("");
|
||||||
puts ("+---------------------------------------------------------------------------------------+");
|
puts ("+---------------------------------------------------------------------------------------+");
|
||||||
|
@ -721,6 +744,7 @@ main (int argc, char *argv[])
|
||||||
g_free (imageenc_name);
|
g_free (imageenc_name);
|
||||||
g_free (videomux_name);
|
g_free (videomux_name);
|
||||||
g_free (src_csp);
|
g_free (src_csp);
|
||||||
|
g_free (target_times);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue