mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 14:56: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;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = gst_caps_new_empty ();
|
||||||
|
|
||||||
if (pbuf->stream) {
|
if (pbuf->stream) {
|
||||||
/* We're in PAUSED or higher */
|
/* We're in PAUSED or higher */
|
||||||
stream = pbuf->stream;
|
stream = pbuf->stream;
|
||||||
|
@ -2175,8 +2177,6 @@ gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
|
||||||
stream = pbuf->probe_stream;
|
stream = pbuf->probe_stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = gst_caps_new_empty ();
|
|
||||||
|
|
||||||
if (!(o = pa_context_get_sink_info_by_name (pbuf->context,
|
if (!(o = pa_context_get_sink_info_by_name (pbuf->context,
|
||||||
pa_stream_get_device_name (stream), gst_pulsesink_sink_info_cb,
|
pa_stream_get_device_name (stream), gst_pulsesink_sink_info_cb,
|
||||||
&device_info)))
|
&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));
|
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) {
|
if (filter) {
|
||||||
GstCaps *tmp = gst_caps_intersect_full (filter, ret,
|
GstCaps *tmp = gst_caps_intersect_full (filter, ret,
|
||||||
GST_CAPS_INTERSECT_FIRST);
|
GST_CAPS_INTERSECT_FIRST);
|
||||||
|
@ -2200,11 +2205,6 @@ gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
|
||||||
ret = tmp;
|
ret = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
unlock:
|
|
||||||
pa_threaded_mainloop_unlock (mainloop);
|
|
||||||
/* FIXME: this could be freed after device_name is got */
|
|
||||||
GST_OBJECT_UNLOCK (pbuf);
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
free_device_info (&device_info);
|
free_device_info (&device_info);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue