diff --git a/sys/v4l2codecs/gstv4l2codecdevice.c b/sys/v4l2codecs/gstv4l2codecdevice.c index 95bf71713a..eff61fa7dc 100644 --- a/sys/v4l2codecs/gstv4l2codecdevice.c +++ b/sys/v4l2codecs/gstv4l2codecdevice.c @@ -26,6 +26,7 @@ #include #include #include +#include #define GST_CAT_DEFAULT gstv4l2codecs_debug GST_DEBUG_CATEGORY_EXTERN (gstv4l2codecs_debug); @@ -312,6 +313,7 @@ gst_v4l2_codec_find_devices (void) gint fd; struct media_v2_topology topology; GList *codec_entities, *c; + gboolean ret; fd = open (path, 0); if (fd < 0) @@ -319,7 +321,10 @@ gst_v4l2_codec_find_devices (void) GST_DEBUG ("Analysing media device '%s'", path); - if (!get_topology (fd, &topology)) { + ret = get_topology (fd, &topology); + close (fd); + + if (!ret) { clear_topology (&topology); continue; }