From 24d1495b846703dc0601e1b18c4c14e54a6b1ab7 Mon Sep 17 00:00:00 2001 From: fryshorts Date: Tue, 28 Oct 2014 22:00:33 +0100 Subject: [PATCH] linux-v4l2: Avoid nested device open/close. This moves the calls to the property modified functions so the old handler can close the device. Otherwise this would cause the device to be opened multiple times. --- plugins/linux-v4l2/v4l2-input.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/linux-v4l2/v4l2-input.c b/plugins/linux-v4l2/v4l2-input.c index 4d4e04a3b..b1a2c74f6 100644 --- a/plugins/linux-v4l2/v4l2-input.c +++ b/plugins/linux-v4l2/v4l2-input.c @@ -454,8 +454,10 @@ static bool device_selected(obs_properties_t *props, obs_property_t *p, obs_property_t *prop = obs_properties_get(props, "input"); v4l2_input_list(dev, prop); - obs_property_modified(prop, settings); v4l2_close(dev); + + obs_property_modified(prop, settings); + return true; } @@ -473,8 +475,10 @@ static bool input_selected(obs_properties_t *props, obs_property_t *p, obs_property_t *prop = obs_properties_get(props, "pixelformat"); v4l2_format_list(dev, prop); - obs_property_modified(prop, settings); v4l2_close(dev); + + obs_property_modified(prop, settings); + return true; } @@ -493,8 +497,10 @@ static bool format_selected(obs_properties_t *props, obs_property_t *p, obs_property_t *prop = obs_properties_get(props, "resolution"); v4l2_resolution_list(dev, obs_data_get_int(settings, "pixelformat"), prop); - obs_property_modified(prop, settings); v4l2_close(dev); + + obs_property_modified(prop, settings); + return true; } @@ -516,8 +522,10 @@ static bool resolution_selected(obs_properties_t *props, obs_property_t *p, "resolution")); v4l2_framerate_list(dev, obs_data_get_int(settings, "pixelformat"), width, height, prop); - obs_property_modified(prop, settings); v4l2_close(dev); + + obs_property_modified(prop, settings); + return true; }