summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-02-05channelmix: add control portcontrol-portsWim Taymans1-41/+221
2020-02-05command: add -ifexists option to load-moduleWim Taymans2-5/+31
If the module doesn't exist, the error is ignored.
2020-02-05context: set defaults as properties on the contextWim Taymans1-2/+6
2020-02-05jack: only append node id when name already takenWim Taymans1-6/+24
2020-02-05param: add Control paramWim Taymans2-0/+4
A control param contains a set of timed events that are applied in the next cycle.
2020-02-04alsa-pcm: add device to object pathWim Taymans1-1/+1
Use card id and device in the object path.
2020-02-04context: add some more defaultsWim Taymans8-25/+61
Make a property to allow mlock and use it. mlock in stream and filter when asked to mmap mem.
2020-02-04remote-node: safely activate and deactivate a linkWim Taymans1-9/+33
Make sure we execute the admin of the target links in the data thread.
2020-02-04pw-cat: Use default channel layout when nothing givenWim Taymans2-146/+195
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
2020-02-04spa: add SPA_PARAM_PORT_CONFIG_control paramJulian Bouzas2-0/+2
Needed for nodes with optional configurable control ports.
2020-02-04examples: fix some typos and indentation errorsWim Taymans1-10/+10
2020-02-04node: we are supposed to produce data when != HAVE_DATAWim Taymans6-7/+6
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.
2020-02-04audiotestsrc: set stride correctlyWim Taymans1-1/+1
2020-02-04spa: add adapter-control example to test audioadapter nodesJulian Bouzas2-0/+584
Example executable that runs an output audioadapter using audiotestsrc as slave with an input audioadapter using alsa-pcm-sink as slave for easy testing.
2020-02-04spa: add support system so that example-control can play audioJulian Bouzas1-115/+122
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.
2020-02-04pw-cat: add channel-map option and option to delay connectWim Taymans2-11/+171
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.
2020-02-03pulse: improve pa_operation compatibilityWim Taymans3-161/+254
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.
2020-02-03profiler: fix method prototypeWim Taymans1-2/+2
2020-02-03profiler: avoid negative timesWim Taymans1-2/+2
2020-02-03profiler: Improve profiler infoWim Taymans4-25/+71
Split the profiler info into multiple properties. Give feedback about time and logged samples while profiling.
2020-02-03global: fix comment and use constant for core idWim Taymans1-2/+2
2020-01-31meson: install profiler extensionWim Taymans1-0/+1
2020-01-31pw-profiler: add some more driver measurementsWim Taymans1-20/+33
Add estimated period Add reported driver delay
2020-01-31pw-profiler: avoid copying invalid valuesWim Taymans1-2/+2
2020-01-31pw-profiler: various improvementsWim Taymans1-35/+82
Small cleanups. Print some useful status info. Fail when there is no Profiler API found. Only log data from the first driver we find.
2020-01-31context: clamp default qantum to min and maxWim Taymans1-0/+2
When min or max is set in the config file, make sure we clamp the default to it as well.
2020-01-31pw-profiler: add profiler toolWim Taymans13-1/+1182
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.
2020-01-31node: emit driver start on completion of the graph.Wim Taymans1-1/+2
This gives better info about the elapsed cycle.
2020-01-31graph: make pending/required fields signedWim Taymans3-12/+12
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.
2020-01-31jack: don't take clock time as awake timestampWim Taymans1-3/+5
Take a sample from the monotonic clock to generate the AWAKE timestamp.
2020-01-30alsa: actually place the delay in clock.delayWim Taymans1-1/+1
2020-01-30ffmpeg: fix install dirWim Taymans1-1/+1
2020-01-30context: emit events for driverWim Taymans3-9/+35
Make new private events to monitor the state of driver nodes. This can be used to implement profiling.
2020-01-30node: collect sync_timeout and use smallestWim Taymans1-1/+7
Collect all sync_timeout values from the clients and use the smallest one as the timeout.
2020-01-29spa: install in versioned directoryWim Taymans16-19/+19
So that we can run old and new plugins side by side.
2020-01-29alsa: use the card name in the object.pathWim Taymans1-5/+12
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.
2020-01-29autogen: make symbolic linksWim Taymans1-0/+8
Make links for the pulse and jack libraries to our versions
2020-01-29Improve mlock failure warning messageWim Taymans2-5/+12
2020-01-29jack: handle plugins that cache jack_port_get_buffer()Wim Taymans1-10/+31
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.
2020-01-28jack: fix set_sync_timeoutWim Taymans1-1/+1
It needs to update the node activation, not the driver activation.
2020-01-28man: fix command names and issues refWim Taymans5-13/+14
2020-01-280.2.93Wim Taymans1-1/+1
2020-01-28policy-node: only set PortConfig when we find a formatWim Taymans1-16/+22
2020-01-28media-session: fix cleanup of objectsWim Taymans1-1/+5
Don't free the proxy twice in some cases.
2020-01-28properties.h: include stdarg.hFabrice Fontaine1-0/+2
Include stdarg.h to avoid a build failure on uclibc due to va_list Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-01-28pw-cli: improve helpWim Taymans1-3/+4
2020-01-28pw-cli: handle NULL when iterating globalsWim Taymans1-2/+5
It is possible that the global map contains holes and then the pw_map item has NULL data.
2020-01-28pipewire-cli: Introduce an improved object dump methodPantelis Antoniou1-0/+1098
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>
2020-01-28pipewire-cli: Immediately bind the object on creationPantelis Antoniou1-0/+12
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>
2020-01-28pw-cat: Don't set RT_PROCESS flagWim Taymans1-2/+1
The soundfile function calls are not safe to call from the real-time thread so don't do that.