mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 06:16:36 +00:00
pulsesink: Make sure to filter caps in all cases during CAPS query
We were skipping the filter step while returning template caps, for example.
This commit is contained in:
parent
eeb4d2e8b1
commit
3751c87f00
1 changed files with 7 additions and 7 deletions
|
@ -2142,6 +2142,8 @@ gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
|
|||
goto unlock;
|
||||
}
|
||||
|
||||
ret = gst_caps_new_empty ();
|
||||
|
||||
if (pbuf->stream) {
|
||||
/* We're in PAUSED or higher */
|
||||
stream = pbuf->stream;
|
||||
|
@ -2175,8 +2177,6 @@ gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
|
|||
stream = pbuf->probe_stream;
|
||||
}
|
||||
|
||||
ret = gst_caps_new_empty ();
|
||||
|
||||
if (!(o = pa_context_get_sink_info_by_name (pbuf->context,
|
||||
pa_stream_get_device_name (stream), gst_pulsesink_sink_info_cb,
|
||||
&device_info)))
|
||||
|
@ -2193,6 +2193,11 @@ gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
|
|||
gst_pulse_format_info_to_caps ((pa_format_info *) i->data));
|
||||
}
|
||||
|
||||
unlock:
|
||||
pa_threaded_mainloop_unlock (mainloop);
|
||||
/* FIXME: this could be freed after device_name is got */
|
||||
GST_OBJECT_UNLOCK (pbuf);
|
||||
|
||||
if (filter) {
|
||||
GstCaps *tmp = gst_caps_intersect_full (filter, ret,
|
||||
GST_CAPS_INTERSECT_FIRST);
|
||||
|
@ -2200,11 +2205,6 @@ gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
|
|||
ret = tmp;
|
||||
}
|
||||
|
||||
unlock:
|
||||
pa_threaded_mainloop_unlock (mainloop);
|
||||
/* FIXME: this could be freed after device_name is got */
|
||||
GST_OBJECT_UNLOCK (pbuf);
|
||||
|
||||
out:
|
||||
free_device_info (&device_info);
|
||||
|
||||
|
|
Loading…
Reference in a new issue