mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
since the sink is unlinked before the sink input we need to make sure we don't call any function for unlinked sinks from any sink input callback
This commit is contained in:
parent
947d8b4c09
commit
d9f8b6a503
2 changed files with 10 additions and 10 deletions
|
|
@ -260,7 +260,7 @@ static void sink_input_update_max_rewind_cb(pa_sink_input *i, size_t nbytes) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_memblockq_set_maxrewind(u->memblockq, nbytes);
|
pa_memblockq_set_maxrewind(u->memblockq, nbytes);
|
||||||
|
|
@ -274,7 +274,7 @@ static void sink_input_update_max_request_cb(pa_sink_input *i, size_t nbytes) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_set_max_request(u->sink, nbytes);
|
pa_sink_set_max_request(u->sink, nbytes);
|
||||||
|
|
@ -287,7 +287,7 @@ static void sink_input_update_sink_latency_range_cb(pa_sink_input *i) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_update_latency_range(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency);
|
pa_sink_update_latency_range(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency);
|
||||||
|
|
@ -300,7 +300,7 @@ static void sink_input_detach_cb(pa_sink_input *i) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_detach_within_thread(u->sink);
|
pa_sink_detach_within_thread(u->sink);
|
||||||
|
|
@ -315,7 +315,7 @@ static void sink_input_attach_cb(pa_sink_input *i) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_set_asyncmsgq(u->sink, i->sink->asyncmsgq);
|
pa_sink_set_asyncmsgq(u->sink, i->sink->asyncmsgq);
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,7 @@ static void sink_input_update_max_rewind_cb(pa_sink_input *i, size_t nbytes) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_set_max_rewind(u->sink, nbytes);
|
pa_sink_set_max_rewind(u->sink, nbytes);
|
||||||
|
|
@ -192,7 +192,7 @@ static void sink_input_update_max_request_cb(pa_sink_input *i, size_t nbytes) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_set_max_request(u->sink, nbytes);
|
pa_sink_set_max_request(u->sink, nbytes);
|
||||||
|
|
@ -205,7 +205,7 @@ static void sink_input_update_sink_latency_range_cb(pa_sink_input *i) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_update_latency_range(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency);
|
pa_sink_update_latency_range(u->sink, i->sink->thread_info.min_latency, i->sink->thread_info.max_latency);
|
||||||
|
|
@ -218,7 +218,7 @@ static void sink_input_detach_cb(pa_sink_input *i) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_detach_within_thread(u->sink);
|
pa_sink_detach_within_thread(u->sink);
|
||||||
|
|
@ -233,7 +233,7 @@ static void sink_input_attach_cb(pa_sink_input *i) {
|
||||||
pa_sink_input_assert_ref(i);
|
pa_sink_input_assert_ref(i);
|
||||||
pa_assert_se(u = i->userdata);
|
pa_assert_se(u = i->userdata);
|
||||||
|
|
||||||
if (!u->sink)
|
if (!u->sink || !PA_SINK_IS_LINKED(u->sink->thread_info.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pa_sink_set_asyncmsgq(u->sink, i->sink->asyncmsgq);
|
pa_sink_set_asyncmsgq(u->sink, i->sink->asyncmsgq);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue