GstDeviceMonitor: Don't remove unmatched class filters
If no providers for a particular class could be found, then removing unmatched
filters would cause all devices to be returned instead which is not at all what
the user intended. We still return 0 for unmatched filters.
diff --git a/gst/gstdevicemonitor.c b/gst/gstdevicemonitor.c
index a9eda0a..4e6ecb3 100644
--- a/gst/gstdevicemonitor.c
+++ b/gst/gstdevicemonitor.c
@@ -695,12 +695,9 @@
/* Ensure there is no leak here */
g_assert (factories == NULL);
- if (matched) {
+ if (matched)
id = filter->id;
- g_ptr_array_add (monitor->priv->filters, filter);
- } else {
- device_filter_free (filter);
- }
+ g_ptr_array_add (monitor->priv->filters, filter);
GST_OBJECT_UNLOCK (monitor);