Stop dumping the last frame unconditionally in DEBUG mode, it's not the
expected behavior; instead add an option to explicitly enable dumping
the last frame but still leave this active only in DEBUG mode.
unsigned int upscale,
unsigned int quality,
am7xxx_image_format image_format,
unsigned int upscale,
unsigned int quality,
am7xxx_image_format image_format,
+ am7xxx_device *dev,
+ int dump_frame)
{
struct video_input_ctx input_ctx;
struct video_output_ctx output_ctx;
{
struct video_input_ctx input_ctx;
struct video_output_ctx output_ctx;
- char filename[NAME_MAX];
- FILE *file;
- if (!output_ctx.raw_output)
- snprintf(filename, NAME_MAX, "out_q%03d.jpg", quality);
- else
- snprintf(filename, NAME_MAX, "out.raw");
- file = fopen(filename, "wb");
- fwrite(out_picture, 1, out_picture_size, file);
- fclose(file);
+ if (dump_frame) {
+ char filename[NAME_MAX];
+ FILE *file;
+ if (!output_ctx.raw_output)
+ snprintf(filename, NAME_MAX, "out_q%03d.jpg", quality);
+ else
+ snprintf(filename, NAME_MAX, "out.raw");
+ file = fopen(filename, "wb");
+ fwrite(out_picture, 1, out_picture_size, file);
+ fclose(file);
+ }
+#else
+ (void) dump_frame;
#endif
ret = am7xxx_send_image_async(dev,
#endif
ret = am7xxx_send_image_async(dev,
printf("usage: %s [OPTIONS]\n\n", name);
printf("OPTIONS:\n");
printf("\t-d <index>\t\tthe device index (default is 0)\n");
printf("usage: %s [OPTIONS]\n\n", name);
printf("OPTIONS:\n");
printf("\t-d <index>\t\tthe device index (default is 0)\n");
+#ifdef DEBUG
+ printf("\t-D \t\t\tdump the last frame to a file (only active in DEBUG mode)\n");
+#endif
printf("\t-f <input format>\tthe input device format\n");
printf("\t-i <input path>\t\tthe input path\n");
printf("\t-o <options>\t\ta comma separated list of input format options\n");
printf("\t-f <input format>\tthe input device format\n");
printf("\t-i <input path>\t\tthe input path\n");
printf("\t-o <options>\t\ta comma separated list of input format options\n");
int format = AM7XXX_IMAGE_FORMAT_JPEG;
am7xxx_context *ctx;
am7xxx_device *dev;
int format = AM7XXX_IMAGE_FORMAT_JPEG;
am7xxx_context *ctx;
am7xxx_device *dev;
- while ((opt = getopt(argc, argv, "d:f:i:o:s:uF:q:l:p:z:h")) != -1) {
+ while ((opt = getopt(argc, argv, "d:Df:i:o:s:uF:q:l:p:z:h")) != -1) {
switch (opt) {
case 'd':
device_index = atoi(optarg);
switch (opt) {
case 'd':
device_index = atoi(optarg);
+ case 'D':
+ dump_frame = 1;
+#ifndef DEBUG
+ fprintf(stderr, "Warning: the -D option is only active in DEBUG mode.\n");
+#endif
+ break;
case 'f':
input_format_string = strdup(optarg);
break;
case 'f':
input_format_string = strdup(optarg);
break;
upscale,
quality,
format,
upscale,
quality,
format,
if (ret < 0) {
fprintf(stderr, "am7xxx_play failed\n");
goto cleanup;
if (ret < 0) {
fprintf(stderr, "am7xxx_play failed\n");
goto cleanup;