[pulseaudio-commits] [Git][pulseaudio/pulseaudio][master] 2 commits: sink: Unlink monitor source before unlinking sink

PulseAudio Marge Bot gitlab at gitlab.freedesktop.org
Mon Feb 1 16:09:34 UTC 2021



PulseAudio Marge Bot pushed to branch master at PulseAudio / pulseaudio


Commits:
12cf6da2 by Georg Chini at 2021-02-01T16:03:46+00:00
sink: Unlink monitor source before unlinking sink

Unlinking the monitor source after unlinking the sink leads to a crash when the monitor
source is master of a virtual source. Changing the unlink order fixes the problem.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/493>

- - - - -
89bae1b3 by Georg Chini at 2021-02-01T16:03:46+00:00
null-source: Change max_rewind when the latency changes

The null-source did not change max_rewind when changing the latency. This
patch fixes the issue.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/493>

- - - - -


2 changed files:

- src/modules/module-null-source.c
- src/pulsecore/sink.c


Changes:

=====================================
src/modules/module-null-source.c
=====================================
@@ -128,6 +128,8 @@ static void source_update_requested_latency_cb(pa_source *s) {
 
     if (u->block_usec == (pa_usec_t)-1)
         u->block_usec = u->source->thread_info.max_latency;
+
+    pa_source_set_max_rewind_within_thread(s, pa_usec_to_bytes(u->block_usec, &u->source->sample_spec));
 }
 
 static void thread_func(void *userdata) {


=====================================
src/pulsecore/sink.c
=====================================
@@ -784,6 +784,10 @@ void pa_sink_unlink(pa_sink* s) {
         j = i;
     }
 
+    /* Unlink monitor source before unlinking the sink */
+    if (s->monitor_source)
+        pa_source_unlink(s->monitor_source);
+
     if (linked)
         /* It's important to keep the suspend cause unchanged when unlinking,
          * because if we remove the SESSION suspend cause here, the alsa sink
@@ -795,9 +799,6 @@ void pa_sink_unlink(pa_sink* s) {
 
     reset_callbacks(s);
 
-    if (s->monitor_source)
-        pa_source_unlink(s->monitor_source);
-
     if (linked) {
         pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK | PA_SUBSCRIPTION_EVENT_REMOVE, s->index);
         pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_UNLINK_POST], s);



View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/compare/597a1eb1ba02891c79132319f3d2beb2b5cbc108...89bae1b3b72301e2344188d195dbbf21873f3a97

-- 
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/compare/597a1eb1ba02891c79132319f3d2beb2b5cbc108...89bae1b3b72301e2344188d195dbbf21873f3a97
You're receiving this email because of your account on gitlab.freedesktop.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-commits/attachments/20210201/50511f01/attachment-0001.htm>


More information about the pulseaudio-commits mailing list