Commit graph

283 commits

Author SHA1 Message Date
Julian Bouzas
27ff8d5ef2 modules: port config-static-nodes to use WpPlugin 2020-05-13 11:21:45 -04:00
Julian Bouzas
faa9719f53 modules: port config-policy to use WpPlugin 2020-05-13 11:21:45 -04:00
Julian Bouzas
21f6309621 config-endpoint: destroy the endpoint when its associated node is destroyed 2020-05-12 13:39:58 -04:00
George Kiagiadakis
e9c51653af modules: port config-endpoint to use WpPlugin 2020-05-12 18:18:24 +03:00
Julian Bouzas
6044b23aed modules: refactor config-policy to use the new session item API 2020-05-12 10:03:29 -04:00
Julian Bouzas
4b7bc92e4b modules: remove pipewire module and move algorithms to module-si-adapter 2020-05-12 09:47:35 -04:00
Julian Bouzas
7e8e6da857 si-standard-link: get the core from the stream node when its endpoint link proxy is not valid 2020-05-12 09:47:27 -04:00
Julian Bouzas
a99fa5272e si-convert: fix direction and link configuration 2020-05-11 12:47:13 -04:00
Julian Bouzas
104e90c98c modules: si-adapter: fix segfault when setting priority property 2020-05-11 12:03:43 +03:00
Julian Bouzas
17ee195902 spa-pod: rename wp_spa_pod_iterator_new to wp_spa_pod_iterate 2020-05-11 12:03:43 +03:00
Julian Bouzas
288f1f091b modules: refactor config-endpoint to use the new session item API 2020-05-11 12:03:43 +03:00
George Kiagiadakis
6537332984 si-adapter: add a config option to specify the preferred number of channels
This is mostly useful when using the adapter with audiotestsrc,
which supports an infinite number of channels. By specifying
a preference, we can limit it to the number of channels that we want.
2020-05-11 11:40:55 +03:00
George Kiagiadakis
e8e6c1d8bc algorithms: allow specifying a preferred number of channels in the format choosing algorithm 2020-05-11 11:40:55 +03:00
George Kiagiadakis
9e2aa612d8 si-adapter: return the correct stream parent when the adapter is nested 2020-05-11 11:40:55 +03:00
George Kiagiadakis
29c35ce8aa si-convert: fix internal link handling
* there is just one link, no need for a list
* warn if something goes wrong and don't assert
2020-05-07 17:01:27 +03:00
George Kiagiadakis
3cfd0d3dc8 si-convert: use the "reverse" port context on self for the internal links 2020-05-07 16:54:12 +03:00
George Kiagiadakis
c02bff50cd si-standard-link: add options to use different port contexts 2020-05-07 16:48:06 +03:00
George Kiagiadakis
cc72b3757c si-standard-link: manage lifetime internally 2020-05-07 16:38:14 +03:00
George Kiagiadakis
7966a8d456 si-standard-link: fix endpoint linking bugs and add some debug statements 2020-05-05 18:04:05 +03:00
George Kiagiadakis
b74dfdee71 si-convert: cleanup config verification 2020-05-04 18:04:33 +03:00
George Kiagiadakis
015d61ccb4 si-softdsp-endpoint: fix issues with the activation transition 2020-05-04 14:20:44 +03:00
George Kiagiadakis
ba81c1e6fe si-softdsp-endpoint: do not create si-convert streams internally
streams should be provided externally,
the user may choose to create any kind of stream
2020-05-04 14:19:39 +03:00
George Kiagiadakis
874d39d99c si-softdsp-endpoint: use the adapter's stream if it's the only one 2020-05-04 14:14:24 +03:00
George Kiagiadakis
90c6962a2a si-convert: construct the node internally and cleanup steps + configuration options 2020-05-04 13:20:06 +03:00
George Kiagiadakis
9df3bb715c modules/si-*: cleanup included headers 2020-05-04 11:24:14 +03:00
George Kiagiadakis
3cecc18807 adapter: remove spa_pod_fixate fallback
This won't work with WpSpaPod, obviously...
2020-05-04 10:36:24 +03:00
George Kiagiadakis
e265d8e5a0 adapter: implement WpSiPortInfo and use node FEATURE_PORTS instead of ports_om 2020-05-04 10:12:35 +03:00
George Kiagiadakis
1ac66d4f62 adapter: fix indentation 2020-05-04 09:45:22 +03:00
George Kiagiadakis
9612d35ca4 si-interfaces: drop the multi-endpoint interface
It's not well-defined; we'll come back to that later
2020-05-04 09:35:22 +03:00
George Kiagiadakis
c95ee22702 Revert "modules: si-adapter: set/unser WP_SI_FLAG_CONFIGURED when adapter is configured/reset"
This reverts commit 4e8ae293f5.
2020-05-03 20:10:31 +03:00
Julian Bouzas
791e9170aa si-interfaces: transfer full when returning from _get_stream_parent_endpoint 2020-05-03 19:54:31 +03:00
Julian Bouzas
4e8ae293f5 modules: si-adapter: set/unser WP_SI_FLAG_CONFIGURED when adapter is configured/reset 2020-05-03 19:54:31 +03:00
Julian Bouzas
19c91596c8 algorithms: make sure channels is always less or equal to SPA_AUDIO_MAX_CHANNELS
Needed when using audiotestsrc with an adapter
2020-05-03 19:54:31 +03:00
Julian Bouzas
63482108df modules: add si-softdsp-audio-endpoint module 2020-05-03 19:54:31 +03:00
Julian Bouzas
2d186ed681 modules: add si-convert module 2020-05-03 19:54:31 +03:00
George Kiagiadakis
bccb160bc2 port some more deprecated object-manager calls 2020-05-03 19:49:21 +03:00
George Kiagiadakis
1c74a83a5c tests: si-simple-node-endpoint: add export test 2020-04-23 17:25:57 +03:00
George Kiagiadakis
d61b7904f9 modules: fix small issues in the session items 2020-04-23 15:22:32 +03:00
George Kiagiadakis
74df1c425e modules: implement si-simple-node-endpoint
This is a simpler endpoint implementation that does not require
any node setup. It should be good to use with test nodes (fakesrc/fakesink),
V4L2 nodes, and maybe others in the future.
2020-04-22 13:53:14 +03:00
Julian Bouzas
cfbcb5eca3 proxy: use WpSpaPod instead of struct spa_pod in public API 2020-04-21 16:11:05 -04:00
George Kiagiadakis
1dccdcf415 object-manager: replace GPtrArray API with WpIterator
+ add the useful _find_proxy() method
2020-04-21 13:21:03 +03:00
George Kiagiadakis
49b63b6045 session-item: refactor export to use a process similar to activate
+ expose the export transition in the session item class
+ make the export-related flags immutable
+ add an export error flag
+ update and improve documentation
2020-04-16 17:38:31 +03:00
George Kiagiadakis
441a778b2e session-item: introduce a rollback() virtual method
+ replace calling execute_step(..., STEP_ERROR) with rollback
+ implement deactivate internally using rollback

This unifies deactivation steps, which are common between deactivate()
and calling execute_step() with WP_TRANSITION_STEP_ERROR at the
end of a failed activation transition.
2020-04-16 13:18:21 +03:00
George Kiagiadakis
6b51e5842c tests: add session-item unit test 2020-04-16 11:55:23 +03:00
George Kiagiadakis
0e855d854a modules: implement si-standard-link, the default WpSiLink implementation 2020-04-11 11:05:09 +03:00
George Kiagiadakis
f713cbee11 session-item: decouple reset from deactivate and export from activate
* It should be possible to activate/deactivate while an item
  is exported (if the item supports it, but that's a subclass matter)
* It should be possible to deactivate without resetting configuration
2020-04-09 19:24:42 +03:00
George Kiagiadakis
1f1c690b42 properties: remove _copy_keys and add update/add methods similar to the ones in pw_properties 2020-03-31 16:11:08 +03:00
George Kiagiadakis
306f75d321 session-item: implement and use _get_associated_proxy() API 2020-03-31 16:11:08 +03:00
George Kiagiadakis
79a39e98c9 transition: call execute_step() with _STEP_ERROR in error conditions
This allows the implementation to rollback changes, cancel jobs, etc
2020-03-31 16:11:08 +03:00
George Kiagiadakis
405e8ba0d5 session-item / endpoint: implement exporting a WpSiEndpoint
* introduces API to export session items
* introduces small changes in the WpSiEndpoint & WpSiStream
  interfaces to make it nicer to work with
* ports WpImplEndpoint to use PW_TYPE_INTERFACE_Endpoint
  to export. Depends on:
  https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/246
  (was merged after 0.3.2)
2020-03-29 15:18:20 +03:00