gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider,
const gchar * device_path, const gchar * device_name, GstStructure * props)
{
- GstV4l2Object *v4l2obj;
+ GstV4l2Object *v4l2obj = NULL;
GstCaps *caps;
GstV4l2Device *device = NULL;
struct stat st;
g_return_val_if_fail (props != NULL, NULL);
if (stat (device_path, &st) == -1)
- return NULL;
+ goto destroy;
if (!S_ISCHR (st.st_mode))
- return NULL;
+ goto destroy;
v4l2obj = gst_v4l2_object_new ((GstElement *) provider,
V4L2_BUF_TYPE_VIDEO_CAPTURE, device_path, NULL, NULL, NULL);
destroy:
- gst_v4l2_object_destroy (v4l2obj);
+ if (v4l2obj)
+ gst_v4l2_object_destroy (v4l2obj);
if (props)
gst_structure_free (props);