Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
If the module doesn't exist, the error is ignored.
|
|
|
|
|
|
A control param contains a set of timed events that are applied
in the next cycle.
|
|
Use card id and device in the object path.
|
|
Make a property to allow mlock and use it.
mlock in stream and filter when asked to mmap mem.
|
|
Make sure we execute the admin of the target links in the data
thread.
|
|
Make channel layout definitions a little more useful. We can now
assign them to a layout_info struct or in the raw_info.
Make some default channel layouts for use in pw-cat
|
|
Needed for nodes with optional configurable control ports.
|
|
|
|
We can produce data whenever the io area status != HAVE_DATA. We
don't need to look for NEED_DATA.
Also recycling buffer happens whenever the status != HAVE_DATA.
|
|
|
|
Example executable that runs an output audioadapter using audiotestsrc as slave
with an input audioadapter using alsa-pcm-sink as slave for easy testing.
|
|
The example-control executable does not play audio. This is because
alsa-pcm-sink needs a data system to run. This patch fixes the example by
loading a data system from libspa-support before creating the nodes.
|
|
If the target node is set to 0, remove the autoconnect flag. This makes
the session manager disable stream autoconnect and some other program
needs to connect the stream to a sink or node.
Use the channelmap from the file, if available.
Add option to specify/override the channel map for playback.
|
|
Methods that return a pa_operation should not return NULL.
pa_context_success_cb_t should return 1 on success and 0 on failure
with the error set in the context.
When a global is not found, let the info operation return eol = -1
with the error set in the context.
|
|
|
|
|
|
Split the profiler info into multiple properties.
Give feedback about time and logged samples while profiling.
|
|
|
|
|
|
Add estimated period
Add reported driver delay
|
|
|
|
Small cleanups.
Print some useful status info.
Fail when there is no Profiler API found.
Only log data from the first driver we find.
|
|
When min or max is set in the config file, make sure we clamp the
default to it as well.
|
|
Add Profiler object and fields.
Add profiler extension API. It notifies Profiler objects with
real-time performance data.
Add module that implements the profiler extension.
Add pw-profiler tool that binds to the profiler API and dumps the
data into a log file, gnuplot files, a html page and a script to
generate svg graphs. This is almost the same as what JACK2
JackEngineProfiling does.
|
|
This gives better info about the elapsed cycle.
|
|
So that we can check for negative value.
Also don't signal incomplete graph when we signaled more than
expected, this can happen when we add new nodes in the current
cycle and then triggered the driver.
|
|
Take a sample from the monotonic clock to generate the AWAKE
timestamp.
|
|
|
|
|
|
Make new private events to monitor the state of driver nodes. This
can be used to implement profiling.
|
|
Collect all sync_timeout values from the clients and use the
smallest one as the timeout.
|
|
So that we can run old and new plugins side by side.
|
|
The card name (id) can be configured with udev rules to remain
constant based on where the device is plugged in even when there
mulitple of the same devices.
|
|
Make links for the pulse and jack libraries to our versions
|
|
|
|
Some plugins (calfjackhost) only call jack_port_get_buffer()
once and cache the pointer. This behaviour has been deprecated
in JACK2 but still works.
Add a workaround for this by getting a buffer ourselves and memcpy
into it from the scratch buffer.
|
|
It needs to update the node activation, not the driver activation.
|
|
|
|
|
|
|
|
Don't free the proxy twice in some cases.
|
|
Include stdarg.h to avoid a build failure on uclibc due to va_list
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
|
It is possible that the global map contains holes and then the
pw_map item has NULL data.
|
|
The dump method can dump objects in a manner that is easy
for humans to parse and understand.
For instance a simple command (on a vanilla NUC2):
pipewire-0>>dump -sd Device
23: c="Audio/Device" n="alsa_card.pci-0000:00:03.0" d="Built-in Audio" a="alsa:pcm" p="hw:0" id="HDMI"
nodes:
24: s="suspended" i=2/128 n="api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 0" p="alsa:pcm:hw:0,3:playback"
ports:
31: d="input" n="playback_FL" f="32 bit float mono audio"
32: d="input" n="playback_FR" f="32 bit float mono audio"
25: s="suspended" i=2/128 n="api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 1" p="alsa:pcm:hw:0,7:playback"
ports:
33: d="input" n="playback_FL" f="32 bit float mono audio"
34: d="input" n="playback_FR" f="32 bit float mono audio"
26: s="suspended" i=2/128 n="api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 2" p="alsa:pcm:hw:0,8:playback"
ports:
35: d="input" n="playback_FL" f="32 bit float mono audio"
36: d="input" n="playback_FR" f="32 bit float mono audio"
27: s="suspended" i=2/128 n="api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 3" p="alsa:pcm:hw:0,9:playback"
ports:
37: d="input" n="playback_FL" f="32 bit float mono audio"
38: d="input" n="playback_FR" f="32 bit float mono audio"
43: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 0/Multimedia" p="alsa:pcm:hw:0,3:playback:Multimedia"
ports:
44: d="input" n="in_FL" f="32 bit float mono audio"
45: d="output" n="out_FL" f="32 bit float mono audio"
106: d="output" n="out_FR" f="32 bit float mono audio"
107: d="input" n="in_FR" f="32 bit float mono audio"
46: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 0/Navigation" p="alsa:pcm:hw:0,3:playback:Navigation"
ports:
47: d="input" n="in_FL" f="32 bit float mono audio"
48: d="output" n="out_FL" f="32 bit float mono audio"
108: d="output" n="out_FR" f="32 bit float mono audio"
109: d="input" n="in_FR" f="32 bit float mono audio"
49: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 0/Communication" p="alsa:pcm:hw:0,3:playback:Communication"
ports:
50: d="input" n="in_FL" f="32 bit float mono audio"
51: d="output" n="out_FL" f="32 bit float mono audio"
110: d="output" n="out_FR" f="32 bit float mono audio"
111: d="input" n="in_FR" f="32 bit float mono audio"
52: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 0/Emergency" p="alsa:pcm:hw:0,3:playback:Emergency"
ports:
53: d="input" n="in_FL" f="32 bit float mono audio"
54: d="output" n="out_FL" f="32 bit float mono audio"
112: d="output" n="out_FR" f="32 bit float mono audio"
113: d="input" n="in_FR" f="32 bit float mono audio"
55: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 1/Multimedia" p="alsa:pcm:hw:0,7:playback:Multimedia"
ports:
56: d="input" n="in_FL" f="32 bit float mono audio"
57: d="output" n="out_FL" f="32 bit float mono audio"
114: d="output" n="out_FR" f="32 bit float mono audio"
115: d="input" n="in_FR" f="32 bit float mono audio"
58: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 1/Navigation" p="alsa:pcm:hw:0,7:playback:Navigation"
ports:
59: d="input" n="in_FL" f="32 bit float mono audio"
60: d="output" n="out_FL" f="32 bit float mono audio"
116: d="output" n="out_FR" f="32 bit float mono audio"
117: d="input" n="in_FR" f="32 bit float mono audio"
61: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 1/Communication" p="alsa:pcm:hw:0,7:playback:Communication"
ports:
62: d="input" n="in_FL" f="32 bit float mono audio"
63: d="output" n="out_FL" f="32 bit float mono audio"
118: d="output" n="out_FR" f="32 bit float mono audio"
119: d="input" n="in_FR" f="32 bit float mono audio"
64: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 1/Emergency" p="alsa:pcm:hw:0,7:playback:Emergency"
ports:
65: d="input" n="in_FL" f="32 bit float mono audio"
66: d="output" n="out_FL" f="32 bit float mono audio"
120: d="output" n="out_FR" f="32 bit float mono audio"
121: d="input" n="in_FR" f="32 bit float mono audio"
67: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 2/Multimedia" p="alsa:pcm:hw:0,8:playback:Multimedia"
ports:
68: d="input" n="in_FL" f="32 bit float mono audio"
69: d="output" n="out_FL" f="32 bit float mono audio"
122: d="output" n="out_FR" f="32 bit float mono audio"
123: d="input" n="in_FR" f="32 bit float mono audio"
70: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 2/Navigation" p="alsa:pcm:hw:0,8:playback:Navigation"
ports:
71: d="input" n="in_FL" f="32 bit float mono audio"
72: d="output" n="out_FL" f="32 bit float mono audio"
124: d="output" n="out_FR" f="32 bit float mono audio"
125: d="input" n="in_FR" f="32 bit float mono audio"
73: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 2/Communication" p="alsa:pcm:hw:0,8:playback:Communication"
ports:
74: d="input" n="in_FL" f="32 bit float mono audio"
75: d="output" n="out_FL" f="32 bit float mono audio"
126: d="output" n="out_FR" f="32 bit float mono audio"
127: d="input" n="in_FR" f="32 bit float mono audio"
76: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 2/Emergency" p="alsa:pcm:hw:0,8:playback:Emergency"
ports:
77: d="input" n="in_FL" f="32 bit float mono audio"
78: d="output" n="out_FL" f="32 bit float mono audio"
128: d="output" n="out_FR" f="32 bit float mono audio"
129: d="input" n="in_FR" f="32 bit float mono audio"
79: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 3/Multimedia" p="alsa:pcm:hw:0,9:playback:Multimedia"
ports:
80: d="input" n="in_FL" f="32 bit float mono audio"
81: d="output" n="out_FL" f="32 bit float mono audio"
130: d="output" n="out_FR" f="32 bit float mono audio"
131: d="input" n="in_FR" f="32 bit float mono audio"
82: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 3/Navigation" p="alsa:pcm:hw:0,9:playback:Navigation"
ports:
83: d="input" n="in_FL" f="32 bit float mono audio"
84: d="output" n="out_FL" f="32 bit float mono audio"
132: d="output" n="out_FR" f="32 bit float mono audio"
133: d="input" n="in_FR" f="32 bit float mono audio"
85: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 3/Communication" p="alsa:pcm:hw:0,9:playback:Communication"
ports:
86: d="input" n="in_FL" f="32 bit float mono audio"
87: d="output" n="out_FL" f="32 bit float mono audio"
134: d="output" n="out_FR" f="32 bit float mono audio"
135: d="input" n="in_FR" f="32 bit float mono audio"
88: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:03.0/HDMI 3/Emergency" p="alsa:pcm:hw:0,9:playback:Emergency"
ports:
89: d="input" n="in_FL" f="32 bit float mono audio"
90: d="output" n="out_FL" f="32 bit float mono audio"
136: d="output" n="out_FR" f="32 bit float mono audio"
137: d="input" n="in_FR" f="32 bit float mono audio"
28: c="Audio/Device" n="alsa_card.pci-0000:00:1b.0" d="Built-in Audio" a="alsa:pcm" p="hw:1" id="PCH"
nodes:
29: s="running" i=2/128 n="api.alsa.pcm.sink/alsa_card.pci-0000:00:1b.0/ALC283 Analog" p="alsa:pcm:hw:1,0:playback"
ports:
39: d="input" n="playback_FL" f="32 bit float mono audio"
40: d="input" n="playback_FR" f="32 bit float mono audio"
30: s="suspended" o=2/128 n="api.alsa.pcm.source/alsa_card.pci-0000:00:1b.0/ALC283 Analog" p="alsa:pcm:hw:1,0:capture"
ports:
41: d="output" n="capture_FL" f="32 bit float mono audio"
42: d="output" n="capture_FR" f="32 bit float mono audio"
91: s="running" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:1b.0/ALC283 Analog/Multimedia" p="alsa:pcm:hw:1,0:playback:Multimedia"
ports:
92: d="input" n="in_FL" f="32 bit float mono audio"
93: d="output" n="out_FL" f="32 bit float mono audio"
138: d="output" n="out_FR" f="32 bit float mono audio"
139: d="input" n="in_FR" f="32 bit float mono audio"
94: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:1b.0/ALC283 Analog/Navigation" p="alsa:pcm:hw:1,0:playback:Navigation"
ports:
95: d="input" n="in_FL" f="32 bit float mono audio"
96: d="output" n="out_FL" f="32 bit float mono audio"
140: d="output" n="out_FR" f="32 bit float mono audio"
141: d="input" n="in_FR" f="32 bit float mono audio"
97: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:1b.0/ALC283 Analog/Communication" p="alsa:pcm:hw:1,0:playback:Communication"
ports:
98: d="input" n="in_FL" f="32 bit float mono audio"
99: d="output" n="out_FL" f="32 bit float mono audio"
142: d="output" n="out_FR" f="32 bit float mono audio"
143: d="input" n="in_FR" f="32 bit float mono audio"
100: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.sink/alsa_card.pci-0000:00:1b.0/ALC283 Analog/Emergency" p="alsa:pcm:hw:1,0:playback:Emergency"
ports:
101: d="input" n="in_FL" f="32 bit float mono audio"
102: d="output" n="out_FL" f="32 bit float mono audio"
144: d="output" n="out_FR" f="32 bit float mono audio"
145: d="input" n="in_FR" f="32 bit float mono audio"
103: s="suspended" i=2/128 o=2/128 n="audio.convert/api.alsa.pcm.source/alsa_card.pci-0000:00:1b.0/ALC283 Analog/Capture" p="alsa:pcm:hw:1,0:capture:Capture"
ports:
104: d="input" n="in_FL" f="32 bit float mono audio"
105: d="output" n="out_FL" f="32 bit float mono audio"
146: d="input" n="in_FR" f="32 bit float mono audio"
147: d="output" n="out_FR" f="32 bit float mono audio"
Will dump the devices, while following to dump nodes and ports
of the nodes.
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
|
|
Immediately bind the global object upon creation. This
allows to iterate over them without having to wait for
the bind to be completed asynchronously.
Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
|
|
The soundfile function calls are not safe to call from the real-time
thread so don't do that.
|