Commit Graph

283 Commits

Author SHA1 Message Date
ejurgensen
62b42ce354 [misc/player] Introduce output ability to announce supported formats
Also introduce default output format and selected device format, should the
user want another format.

As part of this, change enum player_format in player.h to enum media_format in
misc.h so that it is akin to struct media_quality.

Modify json API to support this.
2024-06-17 22:25:20 +02:00
ejurgensen
4a08644806 [xcode] Change the signature of transcode_setup/transcode_en/decode_setup()
Should make it easier to add/remove parameters without changing all calls to the
functions throughout the code.

Also adds an interface through which to call make_mp4_header().
2024-06-17 22:05:07 +02:00
ejurgensen
9dbec4b99e [misc] Move endianess utils from rtp_common.h to misc.h
So that transcode.c can also use them.
2024-06-17 22:05:07 +02:00
ejurgensen
677aceccb6 [cast] Add missing include 2024-04-10 22:40:52 +02:00
ejurgensen
b4e4583e61 [raop] Remove unused function 2024-01-18 18:18:33 +01:00
ejurgensen
61bae6367d [spotify/rtp] Remove some unused functions
Closes #1705
2024-01-01 16:37:15 +01:00
ejurgensen
c28d108b96 [raop] Fix crash when keys of incorrect length are used for legacy pairing
Happens if the user has paied with Airplay 2, and afterwards activates Airplay 1
for the same device, since the keys in device->auth_keys will then be incorrect
length.

Closes #1703
2023-12-28 13:54:52 +01:00
ejurgensen
3ee9204ff8 [xcode/daap/rsp] Default transcode to 320 kbps mp3 instead of wav
- Calculate size for both formats (+ move the return to transcode_encode_query)
- Let transcode_needed() decide what format to output
- Determine content-type from transcoding type
- Add transcode-dependent ability to override file metadata in rsp/daap
- Send file size matching format
2023-12-04 17:26:03 +01:00
ejurgensen
d266c8a56f [raop] Make compressed ALAC default, but with a config option
Closes #1656
2023-10-06 21:39:26 +02:00
ejurgensen
447e042953 [raop] Add ALAC end tag to each frame
The missing end tag makes the ffmpeg alac decoder upset and we can't have that

Credit Mike Brady
2023-08-30 21:00:33 +02:00
ejurgensen
f998b1f3dd [streaming] Change how metadata is delivered to http streaming
This gets rid of player locks + the special header file outputs/streaming.h
2023-05-12 22:35:10 +02:00
ejurgensen
6364515fb7 [streaming] Use player_streaming_register() for thread safety
Also means we might be able to drop the special header file for
outputs/streaming.c making it a bit more like a regular output module.
2023-05-11 22:30:36 +02:00
ejurgensen
537012440b [streaming] Fix mp3 streaming not working with ffmpeg 6
ffmpeg 6 requires fixed size frames for the encoder, so this commit refactors
the mp3 streaming to do support that. Also uses outputs_quality_subscribe which
potentially has better performance (e.g. a 48000 sample rate source will only
be resampled once if both airplay and mp3 streaming want 44100), and makes it
easier to create fixed size frames.

Resolves #1601
2023-05-11 22:30:36 +02:00
ejurgensen
9e93e130db [raop] Make txt record comparison case insensitive
Should fix issue with TuneAero for Windows

Closes #1596
2023-03-28 23:09:08 +02:00
ejurgensen
81922e147e [streaming] Fix BSD name collision (pipe) 2023-03-07 21:01:10 +01:00
ejurgensen
e77cb3f94e [streaming] ICY handling using output metadata events/callbacks 2023-03-07 21:01:10 +01:00
ejurgensen
bd6f38282c [httpd] Main commit that adds multithreading to httpd
Also refactor streaming implementation to make it more like an output and to
let the design support multithreading.
2023-03-07 21:01:10 +01:00
ejurgensen
7c0474b743 [player] Don't stop/clear queue on speaker 'prevent-playback' or 'busy'
When 'prevent-playback' or 'busy' is sent by a single playing speaker, we just
want to pause playback and not clear the queue

Closes #1553
2022-11-20 22:38:33 +01:00
ejurgensen
e437e41870 [airplay] Add WWW authentication for Airplay 2
Some speakers (e.g. Homepod) that are configured to require password want that
this is used both for pairing authentication and classic WWW Authentication.

This commit adds the WWW Authentication that is also used for Airplay 1.

Closes #1545.
2022-10-15 00:30:31 +02:00
ejurgensen
3cbb95976a [airplay] Add support for password based authentication
Closes #1527
2022-08-15 20:09:54 +02:00
whatdoineed2do
670ac7745d
[rcp] bug fix - speaker unselection upon restart / obey volume (#1459) 2022-05-08 14:09:59 +02:00
whatdoineed2do/Ray
7d525e4dec [rcp] bug fix on deinit() - the rcp_session_cleanup() adv the head of list so no need to do again in deinit loop 2022-04-24 15:04:23 +01:00
ejurgensen
6a5a27d3db [rcp] Fixup print masks, disable some logging 2022-02-11 22:09:14 +01:00
ejurgensen
26d7cf453c
Merge pull request #1397 from whatdoineed2do/outputs-soundbridge
[outputs] new output: Roku/Soundbridge RCP
2022-02-06 17:17:05 +01:00
whatdoineed2do/Ray
8f722faaf2 [outputs] new output: RCP/Roku/SoundBridge devices
Roku SoundBridge devices can be treated as dumb speakers; they offer a
texted based protocol, RCP, that allows the server to request the Roku
device to connect to the server's stream.mp3 and provides ability to
control volume

Roku devices appear as speakers automatically via mDNS announcements on
the server _roku-rcp._tcp
2022-02-05 21:59:00 +00:00
ejurgensen
dd5ab6eb1d [cast] Remove djb_hash() error check 2022-02-05 22:06:25 +01:00
ejurgensen
2d84b0bab9 [alsa] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
0fdca0587c [airplay] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen
5e6f19a6da [airplay] Fix reading features txt from Kodi (fixes #1381)
Adds support for "features" values that are not comma separated.
2022-01-12 20:33:07 +01:00
ejurgensen
6a0c7db50a [airplay] Disable unused ntp_to_timestamp() 2022-01-11 20:10:54 +01:00
ejurgensen
088e26c1f0 [airplay] Fix rare pairing bug due to incorrect SRP padding (ref #1280)
Update pair_ap to version 0.11, which it fixes an issue where some randomized
values of SRP "a" are short enough that they require padding.
2021-12-04 23:05:33 +01:00
ejurgensen
5e93080aa2 [airplay] Fix warning about int type seqnum 2021-10-01 16:52:47 +02:00
ejurgensen
aff8ac6a6b [raop] Fix warning about int type seqnum 2021-10-01 16:52:02 +02:00
ejurgensen
7572560bf2 [chromecast] Fix format and type errors 2021-10-01 16:44:30 +02:00
ejurgensen
f4983b8a11 [airplay] Add missing include of errno.h in the new events handling
Closes #1294
2021-08-14 21:13:50 +02:00
ejurgensen
b6835fac29
[airplay] Support for airplay events (eg Homepod controls)
Ref. issue #1181
2021-07-31 01:16:23 +02:00
ejurgensen
c96dc1fcff [dacp] Fix support for device-volume (speaker volume buttons)
Closes #613
2021-05-26 23:20:40 +02:00
ejurgensen
5de0533232 [airplay] Add mdns txt for Sonos Symfonisk 2021-05-21 18:50:28 +02:00
ejurgensen
5f1686695a [-] Name update forked-daapd -> owntone throughout the code 2021-04-24 23:54:20 +02:00
luusl
8a1f85a14e Fixed potential crash on pulseaudio sink info callback, when an error
occurs.
2021-04-12 13:11:47 +02:00
ejurgensen
c7faefe1f8 [docs] Change git links: owntone/forked-daapd -> owntone/owntone-server 2021-04-01 22:09:26 +02:00
ejurgensen
64d6b0d4c3 [raop] Fix scan-build make warning after removing switch in commit 98dad07 2021-04-01 01:21:11 +02:00
ejurgensen
ed6176062a [airplay] Logging adjustments 2021-03-31 23:55:25 +02:00
ejurgensen
e5fcfc6574 [cast] Use net_connect() instead of own cast_connect() 2021-03-31 23:55:25 +02:00
ejurgensen
98dad07b7f [airplay] Convert services to dual stack, plus use net_connect() and net_bind() 2021-03-31 23:55:25 +02:00
ejurgensen
f3febb63d9 [raop] Convert services to dual stack, plus use net_bind() and net_connect() 2021-03-31 23:55:25 +02:00
ejurgensen
dd0f0ece78 [mdns] Remove ipv4/ipv6 argument to mdns_browse
Make sure mdns_browse() always works the same, and follows user config.
2021-03-31 23:55:25 +02:00
ejurgensen
daa0652e7b [docs] Rename repo: ejurgensen -> owntone 2021-03-30 23:39:07 +02:00
ejurgensen
bbe7526414 [airplay] Update pairing modules (pair_ap 0.2) 2021-03-07 23:02:14 +01:00
ejurgensen
036100eecd [cast] Length check of protobuf messages just to be safe 2021-02-17 22:45:45 +01:00