{
PROP_0,
PROP_MAX_DISPLAY_DELAY,
+ PROP_CUDA_DEVICE_ID,
};
#ifdef HAVE_NVCODEC_GST_GL
GParamSpec * pspec)
{
GstNvDec *nvdec = GST_NVDEC (object);
+ GstNvDecClass *klass = GST_NVDEC_GET_CLASS (nvdec);
switch (prop_id) {
case PROP_MAX_DISPLAY_DELAY:
g_value_set_int (value, nvdec->max_display_delay);
break;
+ case PROP_CUDA_DEVICE_ID:
+ g_value_set_uint (value, klass->cuda_device_id);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
"(auto = -1)",
-1, G_MAXINT, DEFAULT_MAX_DISPLAY_DELAY,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ /**
+ * GstNvDec:cuda-device-id:
+ *
+ * Assigned CUDA device id
+ *
+ * Since: 1.22
+ */
+ g_object_class_install_property (gobject_class, PROP_CUDA_DEVICE_ID,
+ g_param_spec_uint ("cuda-device-id", "CUDA device id",
+ "Assigned CUDA device id", 0, G_MAXINT, 0,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
}
static void
gchar *type_name;
GstNvDecClassData *cdata;
gboolean is_default = TRUE;
+ gint index = 0;
cdata = g_new0 (GstNvDecClassData, 1);
cdata->sink_caps = gst_caps_ref (sink_caps);
type_info.class_data = cdata;
type_name = g_strdup_printf ("nv%sdec", codec);
-
- if (g_type_from_name (type_name) != 0) {
+ while (g_type_from_name (type_name)) {
+ index++;
g_free (type_name);
- type_name = g_strdup_printf ("nv%sdevice%ddec", codec, device_id);
+ type_name = g_strdup_printf ("nv%sdevice%ddec", codec, index);
is_default = FALSE;
}