X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=app%2Fmain.cpp;h=d84ca264806d2fcda146fc4433a80b21ba155c37;hb=d6adb1a32912c65752b6163f2914faa0d42a3e74;hp=fff9c4c8d5aadf7e8b11a541b179464f00bc8e31;hpb=88fde6fd98c0c4330cd91af267efa2f5492da180;p=apps%2Fcamera-gstreamer.git diff --git a/app/main.cpp b/app/main.cpp index fff9c4c..d84ca26 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -23,8 +23,6 @@ #include #include -#define DEFAULT_VIDEO_DEVICE "/dev/video0" - // these only applies if the window is a dialog/pop-up one // by default the compositor make the window maximized #define WINDOW_WIDTH_SIZE 640 @@ -160,7 +158,7 @@ get_next_buffer(struct window *window) * the 'old' one and force creation of the buffer with the newer * dimensions */ if (window->wait_for_configure && window->maximized) { - if (!window->buffers[0].busy) { + if (!window->buffers[0].busy && window->buffers[0].buffer) { wl_buffer_destroy(window->buffers[0].buffer); window->buffers[0].buffer = NULL; window->wait_for_configure = false; @@ -669,7 +667,7 @@ int main(int argc, char *argv[]) memset(pipeline_str, 0, sizeof(pipeline_str)); snprintf(pipeline_str, sizeof(pipeline_str), "v4l2src device=%s ! video/x-raw,width=%d,height=%d ! waylandsink", - DEFAULT_VIDEO_DEVICE, WINDOW_WIDTH_SIZE, WINDOW_HEIGHT_SIZE); + get_camera_device(), WINDOW_WIDTH_SIZE, WINDOW_HEIGHT_SIZE); gst_init(&gargc, &gargv); setbuf(stdout, NULL); @@ -679,7 +677,7 @@ int main(int argc, char *argv[]) GstElement *pipeline = gst_parse_launch(pipeline_str, &error); if (error || !pipeline) { fprintf(stderr, "gstreamer pipeline construction failed!\n"); - free(argv); + free(gargv); return EXIT_FAILURE; } @@ -702,7 +700,7 @@ int main(int argc, char *argv[]) window = create_window(display, WINDOW_WIDTH_SIZE, WINDOW_HEIGHT_SIZE, app_id); if (!window) { - free(argv); + free(gargv); return EXIT_FAILURE; } @@ -733,7 +731,7 @@ int main(int argc, char *argv[]) destroy_window(window); destroy_display(display); - free(argv); + free(gargv); gst_element_set_state(pipeline, GST_STATE_NULL); gst_object_unref(pipeline);