diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c index 9c84735aef..1a504c5c73 100644 --- a/sys/v4l2/gstv4l2.c +++ b/sys/v4l2/gstv4l2.c @@ -119,7 +119,6 @@ gst_v4l2_probe_and_register (GstPlugin * plugin) GstV4l2Iterator *it; gint video_fd = -1; struct v4l2_capability vcap; - gboolean ret = TRUE; guint32 device_caps; it = gst_v4l2_iterator_new (); @@ -183,23 +182,21 @@ gst_v4l2_probe_and_register (GstPlugin * plugin) basename = g_path_get_basename (it->device_path); - if (gst_v4l2_is_video_dec (sink_caps, src_caps)) - ret = gst_v4l2_video_dec_register (plugin, basename, it->device_path, + if (gst_v4l2_is_video_dec (sink_caps, src_caps)) { + gst_v4l2_video_dec_register (plugin, basename, it->device_path, sink_caps, src_caps); - else if (gst_v4l2_is_h264_enc (sink_caps, src_caps)) - ret = gst_v4l2_h264_enc_register (plugin, basename, it->device_path, + } else if (gst_v4l2_is_h264_enc (sink_caps, src_caps)) { + gst_v4l2_h264_enc_register (plugin, basename, it->device_path, sink_caps, src_caps); - else if (gst_v4l2_is_transform (sink_caps, src_caps)) - ret = gst_v4l2_transform_register (plugin, basename, it->device_path, + } else if (gst_v4l2_is_transform (sink_caps, src_caps)) { + gst_v4l2_transform_register (plugin, basename, it->device_path, sink_caps, src_caps); + } /* else if ( ... etc. */ gst_caps_unref (sink_caps); gst_caps_unref (src_caps); g_free (basename); - - if (!ret) - break; } if (video_fd >= 0) @@ -207,7 +204,7 @@ gst_v4l2_probe_and_register (GstPlugin * plugin) gst_v4l2_iterator_free (it); - return ret; + return TRUE; } #endif diff --git a/sys/v4l2/gstv4l2h264enc.c b/sys/v4l2/gstv4l2h264enc.c index 3d5b16b287..dc318e3c3a 100644 --- a/sys/v4l2/gstv4l2h264enc.c +++ b/sys/v4l2/gstv4l2h264enc.c @@ -531,11 +531,11 @@ gst_v4l2_is_h264_enc (GstCaps * sink_caps, GstCaps * src_caps) return ret; } -gboolean +void gst_v4l2_h264_enc_register (GstPlugin * plugin, const gchar * basename, const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps) { - return gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_H264_ENC, + gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_H264_ENC, "h264", basename, device_path, sink_caps, gst_static_caps_get (&src_template_caps), src_caps); } diff --git a/sys/v4l2/gstv4l2h264enc.h b/sys/v4l2/gstv4l2h264enc.h index 85a1e1c4d7..b083682d16 100644 --- a/sys/v4l2/gstv4l2h264enc.h +++ b/sys/v4l2/gstv4l2h264enc.h @@ -55,7 +55,7 @@ GType gst_v4l2_h264_enc_get_type (void); gboolean gst_v4l2_is_h264_enc (GstCaps * sink_caps, GstCaps * src_caps); -gboolean gst_v4l2_h264_enc_register (GstPlugin * plugin, const gchar * basename, +void gst_v4l2_h264_enc_register (GstPlugin * plugin, const gchar * basename, const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps); G_END_DECLS diff --git a/sys/v4l2/gstv4l2transform.c b/sys/v4l2/gstv4l2transform.c index e74d79ec25..feed7bf577 100644 --- a/sys/v4l2/gstv4l2transform.c +++ b/sys/v4l2/gstv4l2transform.c @@ -1166,7 +1166,7 @@ gst_v4l2_is_transform (GstCaps * sink_caps, GstCaps * src_caps) return ret; } -gboolean +void gst_v4l2_transform_register (GstPlugin * plugin, const gchar * basename, const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps) { @@ -1193,9 +1193,8 @@ gst_v4l2_transform_register (GstPlugin * plugin, const gchar * basename, type_name = g_strdup_printf ("v4l2%sconvert", basename); subtype = g_type_register_static (type, type_name, &type_info, 0); - gst_element_register (plugin, type_name, GST_RANK_NONE, subtype); + if (!gst_element_register (plugin, type_name, GST_RANK_NONE, subtype)) + GST_WARNING ("Failed to register plugin '%s'", type_name); g_free (type_name); - - return TRUE; } diff --git a/sys/v4l2/gstv4l2transform.h b/sys/v4l2/gstv4l2transform.h index 13d56c3d7c..81e74547ae 100644 --- a/sys/v4l2/gstv4l2transform.h +++ b/sys/v4l2/gstv4l2transform.h @@ -74,7 +74,7 @@ struct _GstV4l2TransformClass GType gst_v4l2_transform_get_type (void); gboolean gst_v4l2_is_transform (GstCaps * sink_caps, GstCaps * src_caps); -gboolean gst_v4l2_transform_register (GstPlugin * plugin, +void gst_v4l2_transform_register (GstPlugin * plugin, const gchar *basename, const gchar *device_path, GstCaps * sink_caps, GstCaps * src_caps); diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c index 4a65002006..29fbfb9416 100644 --- a/sys/v4l2/gstv4l2videodec.c +++ b/sys/v4l2/gstv4l2videodec.c @@ -1059,7 +1059,7 @@ G_STMT_START { \ #undef SET_META } -gboolean +void gst_v4l2_video_dec_register (GstPlugin * plugin, const gchar * basename, const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps) { @@ -1098,10 +1098,10 @@ gst_v4l2_video_dec_register (GstPlugin * plugin, const gchar * basename, type_info.instance_init = gst_v4l2_video_dec_subinstance_init; subtype = g_type_register_static (type, type_name, &type_info, 0); - gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, subtype); + if (!gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, + subtype)) + GST_WARNING ("Failed to register plugin '%s'", type_name); g_free (type_name); } - - return TRUE; } diff --git a/sys/v4l2/gstv4l2videodec.h b/sys/v4l2/gstv4l2videodec.h index dc7c170f26..aeed3b2c2f 100644 --- a/sys/v4l2/gstv4l2videodec.h +++ b/sys/v4l2/gstv4l2videodec.h @@ -76,7 +76,7 @@ struct _GstV4l2VideoDecClass GType gst_v4l2_video_dec_get_type (void); gboolean gst_v4l2_is_video_dec (GstCaps * sink_caps, GstCaps * src_caps); -gboolean gst_v4l2_video_dec_register (GstPlugin * plugin, +void gst_v4l2_video_dec_register (GstPlugin * plugin, const gchar *basename, const gchar *device_path, GstCaps * sink_caps, GstCaps * src_caps); diff --git a/sys/v4l2/gstv4l2videoenc.c b/sys/v4l2/gstv4l2videoenc.c index 79949ba42c..6f0d38496d 100644 --- a/sys/v4l2/gstv4l2videoenc.c +++ b/sys/v4l2/gstv4l2videoenc.c @@ -903,7 +903,7 @@ gst_v4l2_video_enc_subclass_init (gpointer g_class, gpointer data) } /* Probing functions */ -gboolean +void gst_v4l2_video_enc_register (GstPlugin * plugin, GType type, const char *codec, const gchar * basename, const gchar * device_path, GstCaps * sink_caps, GstCaps * codec_caps, GstCaps * src_caps) @@ -942,9 +942,9 @@ gst_v4l2_video_enc_register (GstPlugin * plugin, GType type, } subtype = g_type_register_static (type, type_name, &type_info, 0); - gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, subtype); + + if (!gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, subtype)) + GST_WARNING ("Failed to register plugin '%s'", type_name); g_free (type_name); - - return TRUE; } diff --git a/sys/v4l2/gstv4l2videoenc.h b/sys/v4l2/gstv4l2videoenc.h index 7b248bdac5..153b890c58 100644 --- a/sys/v4l2/gstv4l2videoenc.h +++ b/sys/v4l2/gstv4l2videoenc.h @@ -79,7 +79,7 @@ struct _GstV4l2VideoEncClass GType gst_v4l2_video_enc_get_type (void); -gboolean gst_v4l2_video_enc_register (GstPlugin * plugin, GType type, +void gst_v4l2_video_enc_register (GstPlugin * plugin, GType type, const char *codec, const gchar * basename, const gchar * device_path, GstCaps * sink_caps, GstCaps *codec_caps, GstCaps * src_caps);