mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
sink-input: Add a format-lost event
This event is emitted if the sink-input could not be moved to a new sink because it doesn't support the format of the sink-input. Clients can reconnect their stream with a different format if they wish or gracefully exit.
This commit is contained in:
parent
cb3dcb14f8
commit
53091cc5f0
2 changed files with 9 additions and 1 deletions
|
|
@ -912,6 +912,13 @@ typedef void (*pa_free_cb_t)(void *p);
|
|||
* information, \since 0.9.15 */
|
||||
#define PA_STREAM_EVENT_REQUEST_UNCORK "request-uncork"
|
||||
|
||||
/** A stream event notifying that the stream is going to be
|
||||
* disconnected because the underlying sink changed and no longer
|
||||
* supports the format that was originally negotiated. Clients need
|
||||
* to connect a new stream to renegotiate a format and continue
|
||||
* playback, \since 1.0 */
|
||||
#define PA_STREAM_EVENT_FORMAT_LOST "format-lost"
|
||||
|
||||
PA_C_DECL_END
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1594,7 +1594,8 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, pa_bool_t save) {
|
|||
return -PA_ERR_NOTSUPPORTED;
|
||||
|
||||
if (pa_sink_input_is_passthrough(i) && !pa_sink_check_format(dest, i->format)) {
|
||||
/* FIXME: Fire a message here so the client can renegotiate */
|
||||
pa_log_debug("New sink doesn't support stream format, sending format-changed and killing");
|
||||
pa_sink_input_send_event(i, PA_STREAM_EVENT_FORMAT_LOST, NULL);
|
||||
return -PA_ERR_NOTSUPPORTED;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue