sink-input: Kill passthrough streams if moving to an unsupported sink

This will eventually be replaced by a hook to let clients know that the
stream has moved so that they can gracefully reconnect and renegotiate a
supported format.
This commit is contained in:
Arun Raghavan 2011-03-02 11:38:01 +05:30
parent 8b3e68a202
commit 658a9153f0
3 changed files with 33 additions and 0 deletions

View file

@ -3291,6 +3291,33 @@ pa_idxset* pa_sink_get_formats(pa_sink *s) {
return ret;
}
/* Called from the main thread */
/* Checks if the sink can accept this format */
pa_bool_t pa_sink_check_format(pa_sink *s, pa_format_info *f)
{
pa_idxset *sink_formats = NULL;
pa_format_info *f_sink;
uint32_t i;
pa_bool_t ret = FALSE;
pa_assert(s);
pa_assert(f);
sink_formats = pa_sink_get_formats(s);
PA_IDXSET_FOREACH(f_sink, sink_formats, i) {
if (pa_format_info_is_compatible(f_sink, f)) {
ret = TRUE;
break;
}
}
if (sink_formats)
pa_idxset_free(sink_formats, (pa_free2_cb_t) pa_format_info_free2, NULL);
return ret;
}
/* Called from the main thread */
/* Calculates the intersection between formats supported by the sink and
* in_formats, and returns these, in the order of the sink's formats. */