pixcisrc: add timeout property
This commit is contained in:
parent
e7e0ff2b85
commit
a66d8ae243
@ -67,7 +67,8 @@ enum
|
|||||||
PROP_DRIVER_PARAMS,
|
PROP_DRIVER_PARAMS,
|
||||||
PROP_NUM_CAPTURE_BUFFERS,
|
PROP_NUM_CAPTURE_BUFFERS,
|
||||||
PROP_BOARD,
|
PROP_BOARD,
|
||||||
PROP_CHANNEL
|
PROP_CHANNEL,
|
||||||
|
PROP_TIMEOUT
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_PROP_FORMAT_NAME ""
|
#define DEFAULT_PROP_FORMAT_NAME ""
|
||||||
@ -76,6 +77,7 @@ enum
|
|||||||
#define DEFAULT_PROP_NUM_CAPTURE_BUFFERS 2
|
#define DEFAULT_PROP_NUM_CAPTURE_BUFFERS 2
|
||||||
#define DEFAULT_PROP_BOARD 0
|
#define DEFAULT_PROP_BOARD 0
|
||||||
#define DEFAULT_PROP_CHANNEL 0
|
#define DEFAULT_PROP_CHANNEL 0
|
||||||
|
#define DEFAULT_PROP_TIMEOUT 0
|
||||||
|
|
||||||
/* pad templates */
|
/* pad templates */
|
||||||
|
|
||||||
@ -152,6 +154,10 @@ gst_pixcisrc_class_init (GstPixciSrcClass * klass)
|
|||||||
g_param_spec_uint ("channel", "Channel", "Channel number (0 for auto)", 0,
|
g_param_spec_uint ("channel", "Channel", "Channel number (0 for auto)", 0,
|
||||||
2, DEFAULT_PROP_CHANNEL,
|
2, DEFAULT_PROP_CHANNEL,
|
||||||
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
|
g_object_class_install_property (gobject_class, PROP_TIMEOUT,
|
||||||
|
g_param_spec_uint ("timeout", "Timeout", "Timeout in milliseconds (0 for default)", 0,
|
||||||
|
G_MAXUINT, DEFAULT_PROP_TIMEOUT,
|
||||||
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -232,6 +238,9 @@ gst_pixcisrc_set_property (GObject * object, guint property_id,
|
|||||||
case PROP_CHANNEL:
|
case PROP_CHANNEL:
|
||||||
src->channel = g_value_get_uint (value);
|
src->channel = g_value_get_uint (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_TIMEOUT:
|
||||||
|
src->timeout = g_value_get_uint (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -266,6 +275,9 @@ gst_pixcisrc_get_property (GObject * object, guint property_id,
|
|||||||
case PROP_CHANNEL:
|
case PROP_CHANNEL:
|
||||||
g_value_set_uint (value, src->channel);
|
g_value_set_uint (value, src->channel);
|
||||||
break;
|
break;
|
||||||
|
case PROP_TIMEOUT:
|
||||||
|
g_value_set_uint (value, src->timeout);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -601,7 +613,7 @@ gst_pixcisrc_create (GstPushSrc * psrc, GstBuffer ** buf)
|
|||||||
// src->frame_start_count - src->buffer_ready_count;
|
// src->frame_start_count - src->buffer_ready_count;
|
||||||
|
|
||||||
//g_mutex_unlock (&src->mutex);
|
//g_mutex_unlock (&src->mutex);
|
||||||
pxerr = pxd_doSnap (src->unitmap, buffer, 0);
|
pxerr = pxd_doSnap (src->unitmap, buffer, src->timeout);
|
||||||
if (pxerr) {
|
if (pxerr) {
|
||||||
GST_ELEMENT_ERROR (src, RESOURCE, FAILED,
|
GST_ELEMENT_ERROR (src, RESOURCE, FAILED,
|
||||||
(("Failed to get buffer.")), (NULL));
|
(("Failed to get buffer.")), (NULL));
|
||||||
|
|||||||
@ -64,6 +64,7 @@ struct _GstPixciSrc
|
|||||||
guint num_capture_buffers;
|
guint num_capture_buffers;
|
||||||
guint board;
|
guint board;
|
||||||
guint channel;
|
guint channel;
|
||||||
|
guint timeout;
|
||||||
|
|
||||||
gboolean pixci_open;
|
gboolean pixci_open;
|
||||||
int unitmap;
|
int unitmap;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user