mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
gst-source: handle NULL filters
This commit is contained in:
parent
b85fd0ed25
commit
ba15f1f977
1 changed files with 19 additions and 7 deletions
|
|
@ -174,9 +174,13 @@ get_formats (PinosSource *source,
|
||||||
GstCaps *caps, *cfilter;
|
GstCaps *caps, *cfilter;
|
||||||
gchar *str;
|
gchar *str;
|
||||||
|
|
||||||
cfilter = gst_caps_from_string (g_bytes_get_data (filter, NULL));
|
if (filter) {
|
||||||
if (cfilter == NULL)
|
cfilter = gst_caps_from_string (g_bytes_get_data (filter, NULL));
|
||||||
return NULL;
|
if (cfilter == NULL)
|
||||||
|
return NULL;
|
||||||
|
} else {
|
||||||
|
cfilter = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
caps = collect_caps (source, cfilter);
|
caps = collect_caps (source, cfilter);
|
||||||
if (caps == NULL)
|
if (caps == NULL)
|
||||||
|
|
@ -259,10 +263,14 @@ create_source_output (PinosSource *source,
|
||||||
GstCaps *caps, *filtered;
|
GstCaps *caps, *filtered;
|
||||||
gchar *str;
|
gchar *str;
|
||||||
|
|
||||||
str = (gchar *) g_bytes_get_data (format_filter, NULL);
|
if (format_filter) {
|
||||||
caps = gst_caps_from_string (str);
|
str = (gchar *) g_bytes_get_data (format_filter, NULL);
|
||||||
if (caps == NULL)
|
caps = gst_caps_from_string (str);
|
||||||
goto invalid_caps;
|
if (caps == NULL)
|
||||||
|
goto invalid_caps;
|
||||||
|
} else {
|
||||||
|
caps = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
filtered = collect_caps (source, caps);
|
filtered = collect_caps (source, caps);
|
||||||
if (filtered == NULL || gst_caps_is_empty (filtered))
|
if (filtered == NULL || gst_caps_is_empty (filtered))
|
||||||
|
|
@ -277,6 +285,8 @@ create_source_output (PinosSource *source,
|
||||||
format_filter,
|
format_filter,
|
||||||
prefix,
|
prefix,
|
||||||
error);
|
error);
|
||||||
|
g_bytes_unref (format_filter);
|
||||||
|
|
||||||
if (error == NULL)
|
if (error == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
@ -295,6 +305,8 @@ invalid_caps:
|
||||||
}
|
}
|
||||||
no_format:
|
no_format:
|
||||||
{
|
{
|
||||||
|
if (filtered)
|
||||||
|
gst_caps_unref (filtered);
|
||||||
if (error)
|
if (error)
|
||||||
*error = g_error_new (G_IO_ERROR,
|
*error = g_error_new (G_IO_ERROR,
|
||||||
G_IO_ERROR_NOT_FOUND,
|
G_IO_ERROR_NOT_FOUND,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue