diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c index 08ff3f582a..8333eab41e 100644 --- a/sys/v4l2/gstv4l2.c +++ b/sys/v4l2/gstv4l2.c @@ -25,6 +25,10 @@ #include "config.h" #endif +#ifndef _GNU_SOURCE +# define _GNU_SOURCE /* O_CLOEXEC */ +#endif + #include "gst/gst-i18n-plugin.h" #include @@ -124,7 +128,8 @@ gst_v4l2_probe_and_register (GstPlugin * plugin) if (video_fd >= 0) close (video_fd); - video_fd = open (it->device_path, O_RDWR); + video_fd = open (it->device_path, O_RDWR | O_CLOEXEC); + if (video_fd == -1) { GST_DEBUG ("Failed to open %s: %s", it->device_path, g_strerror (errno)); continue;