diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index acc3d889b1..db5476e98f 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -1875,7 +1875,8 @@ _parse_discovery (GVariant * variant, GstDiscovererInfo * info) g_variant_get_child_value (specific, 0)); break; default: - break; + GST_WARNING ("Unexpected discoverer info type %d", type); + goto out; } _parse_common_stream_info (sinfo, g_variant_get_child_value (common, 0)); @@ -1895,13 +1896,17 @@ _parse_discovery (GVariant * variant, GstDiscovererInfo * info) while ((child = g_variant_iter_next_value (&iter))) { GstDiscovererStreamInfo *child_info; child_info = _parse_discovery (g_variant_get_variant (child), info); - cinfo->streams = - g_list_append (cinfo->streams, - gst_discoverer_stream_info_ref (child_info)); + if (child_info != NULL) { + cinfo->streams = + g_list_append (cinfo->streams, + gst_discoverer_stream_info_ref (child_info)); + } g_variant_unref (child); } } +out: + g_variant_unref (common); g_variant_unref (specific); g_variant_unref (variant);