Граф коммитов

98 Коммитов

Автор SHA1 Сообщение Дата
Mathieu Duponchelle b1c614a1df address nightly clippy warnings 2022-05-26 18:22:53 +02:00
Mathieu Duponchelle ad6e24c78b Dockerfile: update to use monorepo 2022-05-26 18:03:01 +02:00
Mathieu Duponchelle 5fabc606ec server: replace our StreamProducer implementation with the upstream one
We still keep a wrapper around it as we need our implementation to
keep track of consumer ids.
2022-05-26 18:03:01 +02:00
Mathieu Duponchelle 3678c05342 Refresh all outdated dependencies 2022-05-26 17:05:37 +02:00
Mathieu Duponchelle 4e91f5f8c1 scripts: update web_overlay example 2022-03-09 23:31:16 +01:00
Mathieu Duponchelle 205bd41de3 Refresh all outdated dependencies 2022-02-27 04:02:32 +01:00
Mathieu Duponchelle 4247ca2c33 scripts: update crossfade example 2022-02-27 04:02:32 +01:00
Mathieu Duponchelle 92e07782a6 Implement support for basic stream type selection
As `fallbacksrc` doesn't allow for in-depth stream selection, this
only adds support for connecting audio and video streams independently,
and enabling and disabling video or audio for each node type.
2022-02-21 23:54:05 +01:00
Mathieu Duponchelle 102f8bef98 PipelineManager: dump to dot on state change 2022-02-21 23:54:05 +01:00
Mathieu Duponchelle 3b40b04f83 API: remove Graph / Node sublevels [API break] 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 371bdc9828 MixerInfo: extend to include current settings [API break] 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle e05e9ad597 mixer: implement RemoveControlPoint 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle c0e766bb3c scripts: port to new API 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 31e6f55d75 property_controller: add support for enum properties 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 7cba130938 API: Implement support for node control points [API break]
+ Switch Mixer to accept optional settings through a standardized
  API

+ Make Mixer sample rate non-controllable, changing the sample
  rate on the fly has limited interest, and the implementation
  wasn't really useful either.
2021-08-19 02:58:46 +02:00
Mathieu Duponchelle baebf8fb0d mixer: remove SetSlotVolume command [API break]
This can be done with the connect configuration and the
control-point API
2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 36c4d95e55 scripts/crossfade: make use of new API
+ use local playback

+ use connect configuration
2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 0ddb20a69d controller: parse arguments before trying to connect 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 327b2d1788 node: implement initial configuration for consumer slots [API break] 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle a0f9b72821 API: add new LocalPlayback destination family 2021-08-19 02:58:46 +02:00
Mathieu Duponchelle 90dc481bc3 chore: update server application blurb 2021-08-07 18:44:29 +02:00
Mathieu Duponchelle ff1b5ef41c chore: split up utils into multiple source files 2021-08-04 06:10:21 +02:00
Mathieu Duponchelle 7a1b084ebc chore: move example scripts to subdirectory 2021-08-04 06:10:21 +02:00
Mathieu Duponchelle 6e80f8b69e example: demonstrate web overlay 2021-08-01 18:37:38 +02:00
Mathieu Duponchelle 55c6422a25 mixer: output pixel format with alpha
This lets compositor select an alpha-capable format to perform
mixing in, enabling usage of mixers to implement overlays.
2021-08-01 18:37:38 +02:00
Mathieu Duponchelle 1a35ba4538
Merge pull request #3 from MathieuDuponchelle/control-points
Expose API to control properties over time
2021-07-31 00:42:11 +02:00
Mathieu Duponchelle dd1bebcd64 Expose API to control properties over time
This initial version only supports controlling properties of mixer
slots, the API is generic however and should be easy to implement
for other nodes (eg Filter nodes when implemented).

Any property exposed by the mixer pads can be controlled through
that API, provided it is writable, readable if interpolating,
numerically-typed, or boolean / string if mode is "Set".

+ Update MixerInfo to include control points [API break]

+ Add sample script to demonstrate usage, `crossfade.py`
2021-07-31 00:29:43 +02:00
Mathieu Duponchelle 2612b9054e PipelineManager: set base and start time at creation
Otherwise the pipeline might go to PLAYING before the manager
is actually started
2021-07-17 01:23:22 +02:00
Mathieu Duponchelle 32b3781810 source: set PLAYING state synchronously
The state change will be immediate anyway, and it eliminates
a potential race that occured during CI where by the time set_state
PLAYING was called the source had been rescheduled, and we tried
to connect pads to appsinks that had been moved to another pipeline.
2021-07-13 01:46:14 +02:00
Mathieu Duponchelle 2a47d7d6d9 tests: harden get_now() implementation
This is really quite unfortunate, but Instant::now()
is actually *not* monotonic on certain systems.
2021-07-13 01:42:50 +02:00
Mathieu Duponchelle 5be7906ee0 destination: implement basic test 2021-07-13 01:41:58 +02:00
Mathieu Duponchelle f81c48ed0d source: enable now opt-in immmediate-fallback 2021-07-03 00:42:14 +02:00
Mathieu Duponchelle a190aac456 README: link documentation 2021-07-02 20:48:28 +02:00
Mathieu Duponchelle 747a7d0cdd chore: build docs 2021-07-02 20:06:35 +02:00
Mathieu Duponchelle 2572567aec check in Dockerfile 2021-07-02 19:19:30 +02:00
Mathieu Duponchelle 09adb93c1d chore: set up CI 2021-07-02 19:19:30 +02:00
Mathieu Duponchelle 7eec04faa9 chore: fix clippy warnings 2021-07-02 19:00:44 +02:00
Erik St. Martin 096b7e5f75 Update README 2021-07-01 10:26:50 -04:00
Erik St. Martin ba3004972b Update SUPPORT.md 2021-06-30 12:51:10 -04:00
Mathieu Duponchelle 06f8e52134 README: fallbacksrc improvements have been merged 2021-06-30 15:51:15 +02:00
Mathieu Duponchelle 50ac48da54 chore: rename to Auteur 2021-06-25 03:18:13 +02:00
Mathieu Duponchelle ece1c45e46 tests: add test asset 2021-06-25 03:02:45 +02:00
Mathieu Duponchelle 030d166d14 extend node status message 2021-06-20 02:44:58 +02:00
Mathieu Duponchelle c5bcace793 controller: tidy up CommandResult [API break] 2021-06-20 01:50:19 +02:00
Mathieu Duponchelle 83d82ea393 rename Status command to GetInfo [API break] 2021-06-20 00:22:56 +02:00
Mathieu Duponchelle 62c1649a79 tests: support unit tests with synthetic times
+ make use of tokio::time::pause()

+ implement a test-specific method to retrieve "now" so that
  time-aware unit tests can complete immediately yet deterministically
2021-06-14 22:04:24 +02:00
Mathieu Duponchelle a52c1e5773 chore: add unit tests [new API] 2021-06-14 03:12:03 +02:00
Mathieu Duponchelle 362908edab refactor: factor out state machine as Schedulable trait 2021-06-13 18:45:05 +02:00
Mathieu Duponchelle cde53eab47 refactor: rename node::NodeStatus -> node::State [API break] 2021-06-12 16:36:21 +02:00
Mathieu Duponchelle ecff80137a refactor: unify stopped message [API break] 2021-06-12 05:15:49 +02:00