mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2026-02-18 22:05:37 -05:00
core: infrastructure for alternate sampling rate
New parameter to avoid resampling. BIG power savings here... Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
This commit is contained in:
parent
31a9f195fa
commit
5bcfd2b630
9 changed files with 97 additions and 2 deletions
|
|
@ -143,6 +143,7 @@ struct pa_core {
|
|||
|
||||
pa_channel_map default_channel_map;
|
||||
pa_sample_spec default_sample_spec;
|
||||
uint32_t alternate_sample_rate;
|
||||
unsigned default_n_fragments, default_fragment_size_msec;
|
||||
unsigned deferred_volume_safety_margin_usec;
|
||||
int deferred_volume_extra_delay_usec;
|
||||
|
|
|
|||
|
|
@ -368,6 +368,19 @@ int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *rss) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int pa_modargs_get_alternate_sample_rate(pa_modargs *ma, uint32_t *alternate_rate) {
|
||||
pa_assert(ma);
|
||||
pa_assert(alternate_rate);
|
||||
|
||||
if ((pa_modargs_get_value_u32(ma, "alternate_rate", alternate_rate)) < 0 ||
|
||||
*alternate_rate <= 0 ||
|
||||
*alternate_rate > PA_RATE_MAX ||
|
||||
!((*alternate_rate % 4000 == 0) || (*alternate_rate % 11025 == 0)))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pa_modargs_get_channel_map(pa_modargs *ma, const char *name, pa_channel_map *rmap) {
|
||||
pa_channel_map map;
|
||||
const char *cm;
|
||||
|
|
|
|||
|
|
@ -58,6 +58,9 @@ structure if no channel_map is found, using pa_channel_map_init_auto() */
|
|||
|
||||
int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *ss, pa_channel_map *map, pa_channel_map_def_t def);
|
||||
|
||||
/* Return alternate sample rate from "alternate_sample_rate" parameter */
|
||||
int pa_modargs_get_alternate_sample_rate(pa_modargs *ma, uint32_t *alternate_rate);
|
||||
|
||||
int pa_modargs_get_proplist(pa_modargs *ma, const char *name, pa_proplist *p, pa_update_mode_t m);
|
||||
|
||||
/* Iterate through the module argument list. The user should allocate a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue