mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-06-18 14:32:58 -04:00
impl-port: pass the zeroramp.duration to the mixer
Pass the zeroramp.duration property from the node to the port and then to the mixer so that it can be configured. Add the zeroramp.duration to the docs.
This commit is contained in:
parent
214b9f6daa
commit
c2083336a4
7 changed files with 21 additions and 6 deletions
|
|
@ -87,6 +87,7 @@ stream.properties = {
|
||||||
#dither.noise = 0
|
#dither.noise = 0
|
||||||
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
|
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
|
||||||
#debug.wav-path = ""
|
#debug.wav-path = ""
|
||||||
|
#zeroramp.duration = 0.005
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -842,6 +842,9 @@ Dithering is only useful for conversion to a format with less than 24 bits and w
|
||||||
disabled otherwise.
|
disabled otherwise.
|
||||||
\endparblock
|
\endparblock
|
||||||
|
|
||||||
|
@PAR@ node-prop zeroramp.duration = 0.005
|
||||||
|
The duration of fade-in and fade-out of the signal in seconds on silence gaps.
|
||||||
|
|
||||||
## Debug Parameters @IDX@ props
|
## Debug Parameters @IDX@ props
|
||||||
|
|
||||||
@PAR@ node-prop debug.wav-path = ""
|
@PAR@ node-prop debug.wav-path = ""
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ stream.properties = {
|
||||||
#dither.noise = 0
|
#dither.noise = 0
|
||||||
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
|
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
|
||||||
#debug.wav-path = ""
|
#debug.wav-path = ""
|
||||||
|
#zeroramp.duration = 0.005
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,7 @@ stream.properties = {
|
||||||
#channelmix.stereo-widen = 0.0
|
#channelmix.stereo-widen = 0.0
|
||||||
#channelmix.hilbert-taps = 0
|
#channelmix.hilbert-taps = 0
|
||||||
#dither.noise = 0
|
#dither.noise = 0
|
||||||
|
#zeroramp.duration = 0.005
|
||||||
}
|
}
|
||||||
|
|
||||||
stream.rules = [
|
stream.rules = [
|
||||||
|
|
|
||||||
|
|
@ -361,6 +361,7 @@ context.objects = [
|
||||||
#channelmix.hilbert-taps = 0
|
#channelmix.hilbert-taps = 0
|
||||||
#channelmix.disable = false
|
#channelmix.disable = false
|
||||||
#dither.noise = 0
|
#dither.noise = 0
|
||||||
|
#zeroramp.duration = 0.005
|
||||||
#node.param.Props = {
|
#node.param.Props = {
|
||||||
# params = [
|
# params = [
|
||||||
# audio.channels 6
|
# audio.channels 6
|
||||||
|
|
@ -427,6 +428,7 @@ context.objects = [
|
||||||
#channelmix.hilbert-taps = 0
|
#channelmix.hilbert-taps = 0
|
||||||
#channelmix.disable = false
|
#channelmix.disable = false
|
||||||
#dither.noise = 0
|
#dither.noise = 0
|
||||||
|
#zeroramp.duration = 0.005
|
||||||
#node.param.Props = {
|
#node.param.Props = {
|
||||||
# params = [
|
# params = [
|
||||||
# audio.format S16
|
# audio.format S16
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ stream.properties = {
|
||||||
#channelmix.lfe-level = 0.5
|
#channelmix.lfe-level = 0.5
|
||||||
#channelmix.hilbert-taps = 0
|
#channelmix.hilbert-taps = 0
|
||||||
#dither.noise = 0
|
#dither.noise = 0
|
||||||
|
#zeroramp.duration = 0.005
|
||||||
}
|
}
|
||||||
|
|
||||||
pulse.properties = {
|
pulse.properties = {
|
||||||
|
|
|
||||||
|
|
@ -543,6 +543,10 @@ static int check_properties(struct pw_impl_port *port)
|
||||||
} else {
|
} else {
|
||||||
port->passive_mode = passive_mode_from_string(str);
|
port->passive_mode = passive_mode_from_string(str);
|
||||||
}
|
}
|
||||||
|
if ((str = pw_properties_get(port->properties, "zeroramp.duration")) == NULL) {
|
||||||
|
if ((str = pw_properties_get(node->properties, "zeroramp.duration")) != NULL)
|
||||||
|
pw_properties_set(port->properties, "zeroramp.duration", str);
|
||||||
|
}
|
||||||
|
|
||||||
if (media_class != NULL &&
|
if (media_class != NULL &&
|
||||||
(strstr(media_class, "Sink") != NULL ||
|
(strstr(media_class, "Sink") != NULL ||
|
||||||
|
|
@ -1093,7 +1097,7 @@ static int setup_mixer(struct pw_impl_port *port, const struct spa_pod *param)
|
||||||
int res;
|
int res;
|
||||||
const char *fallback_lib, *factory_name, *str;
|
const char *fallback_lib, *factory_name, *str;
|
||||||
struct spa_handle *handle;
|
struct spa_handle *handle;
|
||||||
struct spa_dict_item items[4];
|
struct spa_dict_item items[5];
|
||||||
char quantum_limit[16];
|
char quantum_limit[16];
|
||||||
void *iface;
|
void *iface;
|
||||||
struct pw_context *context = port->node->context;
|
struct pw_context *context = port->node->context;
|
||||||
|
|
@ -1153,6 +1157,8 @@ static int setup_mixer(struct pw_impl_port *port, const struct spa_pod *param)
|
||||||
items[n_items++] = SPA_DICT_ITEM_INIT(PW_KEY_NODE_LOOP_NAME, port->node->data_loop->name);
|
items[n_items++] = SPA_DICT_ITEM_INIT(PW_KEY_NODE_LOOP_NAME, port->node->data_loop->name);
|
||||||
if ((str = pw_properties_get(port->properties, "control.ump")) != NULL)
|
if ((str = pw_properties_get(port->properties, "control.ump")) != NULL)
|
||||||
items[n_items++] = SPA_DICT_ITEM_INIT("control.ump", str);
|
items[n_items++] = SPA_DICT_ITEM_INIT("control.ump", str);
|
||||||
|
if ((str = pw_properties_get(port->properties, "zeroramp.duration")) != NULL)
|
||||||
|
items[n_items++] = SPA_DICT_ITEM_INIT("zeroramp.duration", str);
|
||||||
|
|
||||||
handle = pw_context_load_spa_handle(context, factory_name,
|
handle = pw_context_load_spa_handle(context, factory_name,
|
||||||
&SPA_DICT_INIT(items, n_items));
|
&SPA_DICT_INIT(items, n_items));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue