diff --git a/gst/camerabin2/gstcamerabin2.c b/gst/camerabin2/gstcamerabin2.c index c52e2c2296..b8c32a5370 100644 --- a/gst/camerabin2/gstcamerabin2.c +++ b/gst/camerabin2/gstcamerabin2.c @@ -682,9 +682,13 @@ static void encodebin_element_added (GstElement * encodebin, GstElement * new_element, GstCameraBin * camera) { - if (g_str_has_prefix (gst_element_get_name (new_element), "audiorate") || - g_str_has_prefix (gst_element_get_name (new_element), "videorate")) { - g_object_set (new_element, "skip-to-first", TRUE, NULL); + GstElementFactory *factory = gst_element_get_factory (new_element); + + if (factory != NULL) { + if (strcmp (GST_PLUGIN_FEATURE_NAME (factory), "audiorate") == 0 || + strcmp (GST_PLUGIN_FEATURE_NAME (factory), "videorate") == 0) { + g_object_set (new_element, "skip-to-first", TRUE, NULL); + } } }