niimaqdxsrc: try and reset camera if open fails

This commit is contained in:
Joshua M. Doe 2016-11-02 08:16:55 -04:00
parent 0b3cd2af14
commit 8a75099778

View File

@ -968,10 +968,19 @@ gst_niimaqdxsrc_start (GstBaseSrc * bsrc)
IMAQdxCameraControlModeController, &src->session); IMAQdxCameraControlModeController, &src->session);
if (rval != IMAQdxErrorSuccess) { if (rval != IMAQdxErrorSuccess) {
gst_niimaqdxsrc_report_imaq_error (rval); gst_niimaqdxsrc_report_imaq_error (rval);
GST_ELEMENT_ERROR (src, RESOURCE, FAILED, GST_WARNING_OBJECT (src, "Failed to open camera '%s', will try resetting.",
("Failed to open IMAQdx interface"), src->device_name);
("Failed to open camera interface %s", src->device_name));
goto error; rval = IMAQdxResetCamera (src->device_name, FALSE);
rval = IMAQdxOpenCamera (src->device_name,
IMAQdxCameraControlModeController, &src->session);
if (rval != IMAQdxErrorSuccess) {
gst_niimaqdxsrc_report_imaq_error (rval);
GST_ELEMENT_ERROR (src, RESOURCE, FAILED,
("Failed to open IMAQdx interface"),
("Failed to open camera interface %s", src->device_name));
goto error;
}
} }
gst_niimaqdxsrc_list_attributes (src); gst_niimaqdxsrc_list_attributes (src);