Wim Taymans
106836f7d6
module-raop: add audio rate in SDP
2023-03-15 18:32:12 +01:00
Wim Taymans
114e678243
module-raop: fix compilation
2023-03-15 17:50:49 +01:00
Wim Taymans
8167e1b9be
module-raop: add match rules for discover
...
Useful for selecting only ip4 streams or for setting up the password.
2023-03-15 17:23:41 +01:00
Wim Taymans
9e56fae236
module-raop: use newer openssl API when we can
2023-03-15 15:57:26 +01:00
Wim Taymans
af9d8072a3
module-raop: remove unused include
2023-03-15 12:50:27 +01:00
Wim Taymans
9a4a4fe9c4
module-raop: Use new openssl methods
...
Fix Digest, we need to use the method to generate a new Digest for each
request.
Use newer openssl methods instead of deprecated ones. The RSA sign still
need to be ported.
2023-03-15 10:29:35 +01:00
Wim Taymans
98222ab2ae
module-raop: improve properties
...
Try to make a better NODE_NAME and NODE_DESCRIPTION using the
hostname and ip version.
2023-03-14 10:34:45 +01:00
Barnabás Pőcze
934ab3036e
treewide: use SPDX tags to specify copyright information
...
SPDX tags make the licensing information easy to understand and clear,
and they are machine parseable.
See https://spdx.dev for more information.
2023-02-16 10:54:48 +00:00
Wim Taymans
164e343dbf
remove pipewire/private.h includes when possible
...
In many places this is not needed.
Expose pw_impl_node_set_param() for adapter.
2023-01-20 16:08:38 +01:00
Wim Taymans
f472fd736d
fix includes
...
Only include debug we need. We usually only need the debug types.
2023-01-18 13:12:16 +01:00
Gleb Popov
781b7b187a
Add a type cast necessary to compile on FreeBSD.
2022-11-14 19:57:08 +03:00
Wim Taymans
59e49d31eb
raop: add error from reply
...
Return an error from the reply callback and log some generic message
in case there is an error value returned.
2022-10-12 17:51:35 +02:00
Tycho Haemers
e168af8804
Update src/modules/module-raop-sink.c
2022-10-12 13:41:07 +00:00
Tycho Haemers
09a62514e3
Update src/modules/module-raop-sink.c
2022-10-12 13:28:14 +00:00
Tycho Haemers
5fc69f3ec7
Update src/modules/module-raop-sink.c
2022-10-12 13:21:03 +00:00
Tycho Haemers
0c494c5469
Update src/modules/module-raop-sink.c
2022-10-12 10:23:39 +00:00
Tycho Haemers
2ef10cefa9
Replace module-raop-sink.c
2022-10-12 10:23:39 +00:00
James Le Cuirot
384ec63ae4
raop: Fix raop.encryption typo in the documented configuration example
2022-10-12 07:38:14 +00:00
James Le Cuirot
f059f14c68
raop: Allow digest authentication and auth-setup to be used together
...
The current implementation assumes these are mutually exclusive, but
Yamaha MusicCast requires an auth-setup step following the digest
authentication.
`rtsp_auth_reply` could be dropped in favour of `rtsp_options_reply`,
but you may end up in a loop if the other end keeps responding with 401.
2022-10-12 07:38:14 +00:00
James Le Cuirot
4b0945bf01
raop: Use the real URI for digest authentication rather than *
...
Yamaha MusicCast (or at least the RX-A880) seems to be stricter about
the URI here, as it rejects `*`. Examples, such as those documented by
OpenAirplay, use the real URI.
2022-10-12 07:38:14 +00:00
James Le Cuirot
f613922d0e
raop: Fix duplicate Digest string in Authorization response header
...
We were responding with this, which works, but was probably unintended.
Authorization: Digest Digest username="iTunes" ...
2022-10-12 07:38:14 +00:00
Wim Taymans
be1159eb66
module-rtp: make sender work
...
Small cleanups
2022-10-06 11:41:01 +02:00
Sebastian Koenig
fd66fb8867
raop: add support for ALAC codec
...
Some Airplay devices announce themselves as using the ALAC (Apple Lossless Audio
Codec) format, while pipewire only supports the PCM codec. A look at the
Pulseaudio RAOP reveals that ALAC is supported there, but the encoding looks
exactly like what pipewire does for PCM. This patch adds support for ALAC, but
it uses the existing PCM infrastructure to send the audio data.
2022-09-26 07:16:52 +00:00
Wim Taymans
4b16eee27a
module-raop-sink: add more docs
2022-09-13 12:10:48 +02:00
Barnabás Pőcze
2d7eb8678b
pipewire: rtsp-client: allow sending arbitrary binary data
...
Previously, the content had to be a null-terminated byte
sequence because the sending function used `strlen()` to
determine its length. However, `rtsp_do_auth_setup()` needs
to send a non-textual byte sequence, and it only worked so
far because it did not happen to have any zero bytes in it.
Add a "content_length" parameter and change the type of
"content" to facilitate sending arbitrary byte sequences.
2022-09-09 01:47:51 +02:00
Barnabás Pőcze
4bb8efd100
pipewire: module-raop-sink: simplify rtsp_do_auth_setup()
...
Rename "output" to "content" and mark it static and const,
and remove the "ret" variable.
2022-09-09 01:47:51 +02:00
Wim Taymans
ea3a81dc29
raop-sink: fix some compilation errors
2022-07-07 19:56:55 +02:00
Wim Taymans
4da583a44b
raop-sink: reuse timing packet send
...
Use send() instead of write(), use sendto() for the packets so that we
can specify a destination.
2022-07-07 14:00:38 +02:00
Christian Glombek
2c8d25b4dc
module-raop-sink: Reply on timing socket earlier
...
Some AirPlay 2 devices require responding on the UDP timing port
right after sending the SETUP request.
2022-07-07 11:20:39 +00:00
Davis Davalos-DeLosh
eb3c2f3e95
module-raop: Add support for auth_setup
...
This step is required by some devices.
Co-authored-by: Christian Glombek <lorbus@fedoraproject.org>
2022-07-07 11:20:39 +00:00
Wim Taymans
67db81729e
modules-raop: handle uninitialized vars
2022-06-27 18:51:28 +02:00
Wim Taymans
60cbc44526
modules: improve docs
2022-06-23 12:48:45 +02:00
Wim Taymans
c8b8b24a9c
modules: fix format parsing
...
Use the same logic for parsing the format.
2022-06-23 12:39:51 +02:00
Barnabás Pőcze
bc67745c07
pipewire: module-raop-sink: fix memory leak
...
As Coverity points out, previously, when the `else`
branch was taken, then `tokens` was not freed.
2022-06-16 18:57:38 +02:00
Wim Taymans
a84412ccb7
modules: improve parsing of rate and channels
2022-06-04 18:54:50 +02:00
Wim Taymans
0f839c7b61
modules: clamp input offset and size
...
So that we don't cause memory errors with invalid input.
2022-06-04 11:47:48 +02:00
Wim Taymans
368dd51d04
modules: update docs
2022-04-22 17:29:40 +02:00
Wim Taymans
d1207422e0
make NODE_WANT_DRIVER=true the default
...
So that all nodes attach to some driver to be scheduled.
For the virtual sink/sources this is a normal thing and we can remove
the custom settings.
For normal stream, this now makes it possible to link pw-play directly
to pw-record and have it transport data.
Fixes #1761
2022-04-21 10:14:53 +02:00
Wim Taymans
cc39644253
modules: add pid to unique name
...
So that modules loaded from different processes don't generate the
same node names.
2022-04-01 15:22:48 +02:00
Wim Taymans
4ae94a6ca6
modules: use NODE_WANT_DRIVER=true instead of NODE_GROUP
...
For the modules that require a driver, don't add ourselves to
the pipewire.dummy group but instead just use the NODE_WANT_DRIVER
property to be assigned to a driver.
This makes it possible for the nodes to move to another driver than the
dummy driver (which has very high priority) and it avoids resampling in
cases where the nodes are linked to an audio source or sink.
2022-03-30 14:56:28 +02:00
Wim Taymans
fdaf4613d8
module-raop: handle and debug read errors
...
Fixes #2183
2022-03-02 11:28:43 +01:00
Wim Taymans
00d4de3799
module-raop: use the right socket to read from
...
See #2183
2022-03-02 11:24:40 +01:00
Barnabás Pőcze
45bd8532eb
pipewire: use newly added function for deferred module destroy
...
Use the newly introduced `pw_impl_module_schedule_destroy()`
for deferred module destroy in all modules except
module-example-{sink,source}.
2022-02-18 12:30:53 +01:00
Barnabás Pőcze
4d4c6f20df
pipewire: remove work queue checks
...
Since now `pw_context_get_work_queue()` cannot
fail, the checks can be removed.
2022-02-18 12:30:53 +01:00
Wim Taymans
fa484f346e
raop-sink: use default latency of 2 seconds
...
See #2131
2022-02-13 18:41:01 +01:00
Gleb Popov
f434876a5c
module-raop-sink.c: Fix compilation error on FreeBSD.
2021-12-26 17:43:17 +03:00
Wim Taymans
92a5570bbd
raop: small cleanup
2021-11-22 10:53:49 +01:00
Wim Taymans
c03d10296b
raop: connect TCP socket
...
Connect to the server TCP socket in TCP mode.
Use getaddrinfo to resolve hostname.
2021-11-13 21:00:24 +01:00
Wim Taymans
e52f9f513e
raop: add user agent
2021-11-13 10:13:55 +01:00
Wim Taymans
0573944e59
raop: add authentication
2021-11-13 10:00:50 +01:00