From: Jaechul Lee Date: Fri, 6 Nov 2020 01:52:33 +0000 (+0900) Subject: null-sink: Change block size to 50 msec when norewinds is set X-Git-Tag: v14.99.1~290 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1e7adb4fdbc7db172482dab23e4509191fe5f45f;p=platform%2Fupstream%2Fpulseaudio.git null-sink: Change block size to 50 msec when norewinds is set playing sound through null sink takes almost 2 seconds at first time playback when norewinds is set. Because block_usec is set 2 seconds at initializing time. The value will be changed 50 msec after calling update_request_latency callback. Part-of: --- diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c index bbbf834..6865663 100644 --- a/src/modules/module-null-sink.c +++ b/src/modules/module-null-sink.c @@ -57,8 +57,8 @@ PA_MODULE_USAGE( "norewinds="); #define DEFAULT_SINK_NAME "null" -#define BLOCK_USEC (PA_USEC_PER_SEC * 2) -#define NOREWINDS_MAX_LATENCY_USEC (50*PA_USEC_PER_MSEC) +#define BLOCK_USEC (2 * PA_USEC_PER_SEC) +#define BLOCK_USEC_NOREWINDS (50 * PA_USEC_PER_MSEC) struct userdata { pa_core *core; @@ -318,6 +318,7 @@ int pa__init(pa_module*m) { u->core = m->core; u->module = m; u->rtpoll = pa_rtpoll_new(); + u->block_usec = BLOCK_USEC; if (pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll) < 0) { pa_log("pa_thread_mq_init() failed."); @@ -381,13 +382,15 @@ int pa__init(pa_module*m) { pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq); pa_sink_set_rtpoll(u->sink, u->rtpoll); - u->block_usec = BLOCK_USEC; - nbytes = pa_usec_to_bytes(u->block_usec, &u->sink->sample_spec); - if(pa_modargs_get_value_boolean(ma, "norewinds", &u->norewinds) < 0){ pa_log("Invalid argument, norewinds expects a boolean value."); } + if (u->norewinds) + u->block_usec = BLOCK_USEC_NOREWINDS; + + nbytes = pa_usec_to_bytes(u->block_usec, &u->sink->sample_spec); + if(u->norewinds){ pa_sink_set_max_rewind(u->sink, 0); } else { @@ -401,11 +404,7 @@ int pa__init(pa_module*m) { goto fail; } - 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_set_latency_range(u->sink, 0, u->block_usec); pa_sink_put(u->sink);