rpicamsrc: Improve timeout error

Propagate timeout errors so they're not reported
generically
This commit is contained in:
Jan Schmidt 2018-07-16 19:30:26 +10:00 committed by Tim-Philipp Müller
parent 41f41f1fdd
commit c907deb15f
3 changed files with 10 additions and 1 deletions

View file

@ -942,7 +942,7 @@ raspi_capture_fill_buffer(RASPIVID_STATE *state, GstBuffer **bufp,
buffer = mmal_queue_timedwait(state->encoded_buffer_q, 500);
if (G_UNLIKELY(buffer == NULL)) {
return GST_FLOW_ERROR;
return GST_FLOW_ERROR_TIMEOUT;
}
if (G_LIKELY (config->useSTC && clock)) {

View file

@ -66,6 +66,8 @@ GST_DEBUG_CATEGORY_EXTERN (gst_rpi_cam_src_debug);
#undef vcos_log_warn
#define vcos_log_warn GST_WARNING
#define GST_FLOW_ERROR_TIMEOUT GST_FLOW_CUSTOM_ERROR
G_BEGIN_DECLS
typedef enum

View file

@ -1439,6 +1439,13 @@ gst_rpi_cam_src_create (GstPushSrc * parent, GstBuffer ** buf)
GST_BUFFER_DURATION (*buf) = src->duration;
}
if (ret == GST_FLOW_ERROR_TIMEOUT) {
GST_ELEMENT_ERROR (src, STREAM, FAILED,
("Camera capture timed out."),
("Waiting for a buffer from the camera took too long."));
ret = GST_FLOW_ERROR;
}
if (clock)
gst_object_unref (clock);
return ret;