[pulseaudio-commits] [Git][pulseaudio/pulseaudio][master] 5 commits: null-sink: add an option that allows rewinds to be disabled

Georg Chini gitlab at gitlab.freedesktop.org
Fri May 17 07:01:10 UTC 2019



Georg Chini pushed to branch master at PulseAudio / pulseaudio


Commits:
851e8845 by Wellington Wallace at 2019-05-04T16:21:21Z
null-sink: add an option that allows rewinds to be disabled

- - - - -
16a7f1e0 by Wellington Wallace at 2019-05-04T16:39:16Z
null-sink: add an option that allows rewinds to be disabled

- - - - -
2102f098 by Wellington Wallace at 2019-05-07T14:06:59Z
Merge branch 'allow-to-disable-null-sink-rewinds' of https://gitlab.freedesktop.org/wwmm/pulseaudio into allow-to-disable-null-sink-rewinds

- - - - -
e74a154f by Wellington Wallace at 2019-05-07T14:58:45Z
null-sink: add an option that allows rewinds to be disabled

- - - - -
eadd987a by Wellington Wallace at 2019-05-08T15:05:49Z
null-sink: setting maximum latency to 50 ms when rewinds are disabled

- - - - -


1 changed file:

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


Changes:

=====================================
src/modules/module-null-sink.c
=====================================
@@ -53,10 +53,12 @@ PA_MODULE_USAGE(
         "rate=<sample rate> "
         "channels=<number of channels> "
         "channel_map=<channel map>"
-        "formats=<semi-colon separated sink formats>");
+        "formats=<semi-colon separated sink formats>"
+        "norewinds=<disable rewinds>");
 
 #define DEFAULT_SINK_NAME "null"
 #define BLOCK_USEC (PA_USEC_PER_SEC * 2)
+#define NOREWINDS_MAX_LATENCY_USEC (50*PA_USEC_PER_MSEC)
 
 struct userdata {
     pa_core *core;
@@ -71,6 +73,8 @@ struct userdata {
     pa_usec_t timestamp;
 
     pa_idxset *formats;
+
+    bool norewinds;
 };
 
 static const char* const valid_modargs[] = {
@@ -81,6 +85,7 @@ static const char* const valid_modargs[] = {
     "channels",
     "channel_map",
     "formats",
+    "norewinds",
     NULL
 };
 
@@ -135,7 +140,13 @@ static void sink_update_requested_latency_cb(pa_sink *s) {
         u->block_usec = s->thread_info.max_latency;
 
     nbytes = pa_usec_to_bytes(u->block_usec, &s->sample_spec);
-    pa_sink_set_max_rewind_within_thread(s, nbytes);
+
+    if(u->norewinds){
+        pa_sink_set_max_rewind_within_thread(s, 0);
+    } else {
+        pa_sink_set_max_rewind_within_thread(s, nbytes);
+    }
+
     pa_sink_set_max_request_within_thread(s, nbytes);
 }
 
@@ -370,7 +381,17 @@ int pa__init(pa_module*m) {
 
     u->block_usec = BLOCK_USEC;
     nbytes = pa_usec_to_bytes(u->block_usec, &u->sink->sample_spec);
-    pa_sink_set_max_rewind(u->sink, nbytes);
+
+    if(pa_modargs_get_value_boolean(ma, "norewinds", &u->norewinds) < 0){
+        pa_log("Invalid argument, norewinds expects a boolean value.");
+    }
+
+    if(u->norewinds){
+        pa_sink_set_max_rewind(u->sink, 0);
+    } else {
+        pa_sink_set_max_rewind(u->sink, nbytes);
+    }
+
     pa_sink_set_max_request(u->sink, nbytes);
 
     if (!(u->thread = pa_thread_new("null-sink", thread_func, u))) {
@@ -378,7 +399,11 @@ int pa__init(pa_module*m) {
         goto fail;
     }
 
-    pa_sink_set_latency_range(u->sink, 0, BLOCK_USEC);
+    if(u->norewinds){
+        pa_sink_set_latency_range(u->sink, 0, NOREWINDS_MAX_LATENCY_USEC);
+    } else {
+        pa_sink_set_latency_range(u->sink, 0, BLOCK_USEC);
+    }
 
     pa_sink_put(u->sink);
 



View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/compare/b89d33bb182c42db5ad3987b0e91b7bf62f421e8...eadd987a66887ed80955c5bbb40f071e98cbd04e

-- 
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/compare/b89d33bb182c42db5ad3987b0e91b7bf62f421e8...eadd987a66887ed80955c5bbb40f071e98cbd04e
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/20190517/1879c9aa/attachment-0001.html>


More information about the pulseaudio-commits mailing list