output/pulse: reset callbacks before closing stream/context
Fixes assertion failure when a stream callback is invoked too late after a format change.
This commit is contained in:
parent
e76c752987
commit
60f7ff3de5
@ -233,6 +233,13 @@ pulse_output_delete_stream(struct pulse_output *po)
|
||||
assert(po != NULL);
|
||||
assert(po->stream != NULL);
|
||||
|
||||
#if PA_CHECK_VERSION(0,9,8)
|
||||
pa_stream_set_suspended_callback(po->stream, NULL, NULL);
|
||||
#endif
|
||||
|
||||
pa_stream_set_state_callback(po->stream, NULL, NULL);
|
||||
pa_stream_set_write_callback(po->stream, NULL, NULL);
|
||||
|
||||
pa_stream_disconnect(po->stream);
|
||||
pa_stream_unref(po->stream);
|
||||
po->stream = NULL;
|
||||
@ -247,6 +254,9 @@ pulse_output_delete_context(struct pulse_output *po)
|
||||
assert(po != NULL);
|
||||
assert(po->context != NULL);
|
||||
|
||||
pa_context_set_state_callback(po->context, NULL, NULL);
|
||||
pa_context_set_subscribe_callback(po->context, NULL, NULL);
|
||||
|
||||
pa_context_disconnect(po->context);
|
||||
pa_context_unref(po->context);
|
||||
po->context = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user