Add PIPEWIRE_QUANTUM env variable

That tries to both set the buffersize and the samplerate of the graph.
Document them in README.md
Also add the same env variables to pw-stream and pw-filter.
This commit is contained in:
Wim Taymans 2022-01-23 11:21:18 +01:00
parent f4021c7f44
commit 0bc3d1444a
5 changed files with 43 additions and 5 deletions

View file

@ -3217,6 +3217,17 @@ jack_client_t * jack_client_open (const char *client_name,
pw_properties_set(client->props, PW_KEY_NODE_LATENCY, str);
if ((str = getenv("PIPEWIRE_RATE")) != NULL)
pw_properties_set(client->props, PW_KEY_NODE_RATE, str);
if ((str = getenv("PIPEWIRE_QUANTUM")) != NULL) {
struct spa_fraction q;
if (sscanf(str, "%u/%u", &q.num, &q.denom) == 2 && q.denom != 0) {
pw_properties_setf(client->props, PW_KEY_NODE_RATE,
"1/%u", q.denom);
pw_properties_setf(client->props, PW_KEY_NODE_LATENCY,
"%u/%u", q.num, q.denom);
} else {
pw_log_warn("invalid PIPEWIRE_QUANTUM: %s", str);
}
}
if ((str = pw_properties_get(client->props, PW_KEY_NODE_LATENCY)) != NULL) {
uint32_t num, denom;
if (sscanf(str, "%u/%u", &num, &denom) == 2 && denom != 0) {

View file

@ -66,13 +66,11 @@ shift $(( OPTIND - 1 ))
if [ -n "$PERIOD" ]; then
if [ -n "$SAMPLERATE" ]; then
PIPEWIRE_RATE="1/$SAMPLERATE"
export PIPEWIRE_RATE
PIPEWIRE_QUANTUM="$PERIOD/$SAMPLERATE"
else
SAMPLERATE=$DEFAULT_SAMPLERATE
PIPEWIRE_QUANTUM="$PERIOD/$DEFAULT_SAMPLERATE"
fi
PIPEWIRE_LATENCY="$PERIOD/$SAMPLERATE"
export PIPEWIRE_LATENCY
export PIPEWIRE_QUANTUM
fi
LD_LIBRARY_PATH='@LIBJACK_PATH@'"${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}"
export LD_LIBRARY_PATH