mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
null-source: Add max_latency_msec argument
It takes much time when starting to capture because max latency is set to 2 seconds as a initial value. null-source latency need to be set a lower value than initial value to improve latency.
This commit is contained in:
parent
c1ac76014e
commit
bd8ef73b91
1 changed files with 10 additions and 1 deletions
|
|
@ -52,6 +52,7 @@ PA_MODULE_USAGE(
|
||||||
"rate=<sample rate> "
|
"rate=<sample rate> "
|
||||||
"source_name=<name of source> "
|
"source_name=<name of source> "
|
||||||
"channel_map=<channel map> "
|
"channel_map=<channel map> "
|
||||||
|
"max_latency_msec=<maximum latency in ms> "
|
||||||
"description=<description for the source> ");
|
"description=<description for the source> ");
|
||||||
|
|
||||||
#define DEFAULT_SOURCE_NAME "source.null"
|
#define DEFAULT_SOURCE_NAME "source.null"
|
||||||
|
|
@ -79,6 +80,7 @@ static const char* const valid_modargs[] = {
|
||||||
"channels",
|
"channels",
|
||||||
"source_name",
|
"source_name",
|
||||||
"channel_map",
|
"channel_map",
|
||||||
|
"max_latency_msec",
|
||||||
"description",
|
"description",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
@ -123,6 +125,7 @@ static void source_update_requested_latency_cb(pa_source *s) {
|
||||||
pa_assert(u);
|
pa_assert(u);
|
||||||
|
|
||||||
u->block_usec = pa_source_get_requested_latency_within_thread(s);
|
u->block_usec = pa_source_get_requested_latency_within_thread(s);
|
||||||
|
|
||||||
if (u->block_usec == (pa_usec_t)-1)
|
if (u->block_usec == (pa_usec_t)-1)
|
||||||
u->block_usec = u->source->thread_info.max_latency;
|
u->block_usec = u->source->thread_info.max_latency;
|
||||||
}
|
}
|
||||||
|
|
@ -197,6 +200,8 @@ int pa__init(pa_module*m) {
|
||||||
pa_channel_map map;
|
pa_channel_map map;
|
||||||
pa_modargs *ma = NULL;
|
pa_modargs *ma = NULL;
|
||||||
pa_source_new_data data;
|
pa_source_new_data data;
|
||||||
|
pa_usec_t max_latency = MAX_LATENCY_USEC;
|
||||||
|
uint32_t max_latency_msec;
|
||||||
|
|
||||||
pa_assert(m);
|
pa_assert(m);
|
||||||
|
|
||||||
|
|
@ -247,7 +252,11 @@ int pa__init(pa_module*m) {
|
||||||
pa_source_set_asyncmsgq(u->source, u->thread_mq.inq);
|
pa_source_set_asyncmsgq(u->source, u->thread_mq.inq);
|
||||||
pa_source_set_rtpoll(u->source, u->rtpoll);
|
pa_source_set_rtpoll(u->source, u->rtpoll);
|
||||||
|
|
||||||
pa_source_set_latency_range(u->source, MIN_LATENCY_USEC, MAX_LATENCY_USEC);
|
if (pa_modargs_get_value_u32(ma, "max_latency_msec", &max_latency_msec))
|
||||||
|
max_latency = max_latency_msec * PA_USEC_PER_MSEC;
|
||||||
|
|
||||||
|
pa_source_set_latency_range(u->source, MIN_LATENCY_USEC, max_latency);
|
||||||
|
|
||||||
u->block_usec = u->source->thread_info.max_latency;
|
u->block_usec = u->source->thread_info.max_latency;
|
||||||
|
|
||||||
u->source->thread_info.max_rewind =
|
u->source->thread_info.max_rewind =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue