ejurgensen
07972c28f7
[raop] Only send exact types of metadata requested by device
...
Airport Express announces md=2, meaning only progress metadata, so we shouldn't
send artwork and text metadata to it.
2020-04-24 18:46:17 +02:00
ejurgensen
e2205e2399
[raop] Fix calculation of metadata progress values
2020-04-24 18:49:03 +02:00
ejurgensen
8070c2f68c
[outputs] Change rtp timespec arg to take value instead of pointer
2020-04-24 18:46:17 +02:00
ejurgensen
349b05bd4f
[raop] Use progress metadata to keep ATV4/Homepod connection alive (issue #734 )
...
Instead of using OPTIONS we use SET_PARAMETER with progress metadata to avoid
disconnects from Apple TVs, Homepods and possibly also Airport Expresses.
2020-04-24 18:46:17 +02:00
ejurgensen
01033c0662
[cast] Fix incorrect log level
2020-04-22 00:00:09 +02:00
ejurgensen
886557f946
[cast] Better logging of app not launching
2020-04-20 21:40:39 +02:00
ejurgensen
aa9a08aedb
[alsa] Improvements to commit 0a08b93
2020-04-18 21:35:47 +02:00
whatdoineed2do/Ray
0a08b93c24
[alsa] list alsa devices/mixers suitable for playback
2020-04-18 11:36:41 +01:00
Justin Wong
938a19ff15
Update volume on device reconnect
2020-04-14 23:49:34 +08:00
Nigel Hannam
5f3103fae7
[raop] Move config into new airplay_shared block
2020-04-11 22:30:27 +01:00
Nigel Hannam
19d1d4f67b
[raop] Allow configuration of raop control and timing ports
2020-04-08 21:16:00 +01:00
ejurgensen
b565df1d87
[raop] Add ATV 4k mdns announcement
2020-01-19 13:50:16 -08:00
whatdoineed2do/Ray
609cba5f04
[alsa] multi alsa cfg section SEGV with no nickname - use 'card' when not specified
2020-01-06 15:38:32 +00:00
whatdoineed2do/Ray
7ea8eeae05
[alsa] cfg section typo using 'mixer_device_name'
2020-01-03 19:37:07 +00:00
ejurgensen
4e1e5efedc
[alsa] Changes to commit 0cb4e0b: multiple devices
2020-01-03 19:02:39 +01:00
whatdoineed2do/Ray
0cb4e0b862
[outputs/conf] New multiple 'alsa' sections split from 'audio'
2020-01-02 23:51:59 +01:00
ejurgensen
251080344e
[alsa] Fix missing unsubscription when closing session (ref. #866 )
2019-12-27 11:29:36 +01:00
ejurgensen
85ab7c3057
[alsa] Fix playback of 24 bit audio (issue #830 )
...
The player will write 24 bit samples using 3 bytes, not 4, so the appropriate
sample format is SND_PCM_FORMAT_S24_3LE, not SND_PCM_FORMAT_S24_LE.
For extra protection we also use snd_pcm_bytes_to_frames() instead of BTOS(),
because that way we can be more certain that the buffer is not too short for
snd_pcm_writei().
2019-10-22 19:51:51 +02:00
whatdoineed2do/Ray
554799ebc3
[streaming/xcode] configurable MP3 streaming bitrate
2019-09-22 22:58:32 +02:00
ejurgensen
e654276262
[alsa] Fix incorrect use of abs() for float, use fabs() instead
2019-09-18 21:28:15 +02:00
ejurgensen
78373af201
[cast] Add a simple delay to stream to a have little bit of sync
...
Since it is unknown how to do real sync on Chromecast, this commit instead adds
a primitive delay to the stream, so that it is at least somewhat closer to
Airplay/local audio.
Also some cleanup of unused stuff.
2019-08-23 19:45:17 +02:00
ejurgensen
f9bfec180f
[raop] Fix possible infinite loop + wrong packet resend (fixes issue #775 )
...
Fixes bugs which were due to incorrect handling of unsigned integer wrap-around:
1. Calling packet_resend() with seqnum + len greater than UINT16_MAX => infinite loop
2. Calling rtp_packet_get() with session->seqnum - seqnum greater than pktbuf_next => wrong packet
2019-08-10 22:41:04 +02:00
ejurgensen
6578f28621
[raop] Logging change to find cause of issue #775
2019-08-09 23:58:45 +02:00
ejurgensen
cf173df805
[outputs] Fix issue where RTP packet is not available for retransmit
...
Check for sequence number did not account for wrap around, so e.g. a
request for seqnum 65335 when first was 65100 and last was 100 would
not work.
2019-07-20 20:37:22 +02:00
ejurgensen
bc8e6794ad
[cast] Fix some compiler warnings
2019-07-02 20:42:31 +02:00
ejurgensen
51d85d0975
[alsa] Fix for ALSA issues when source quality changes (issue #722 , issue #744 and issue #754 )
...
* Fix "clicks" during playback, especially on low buffer size devices
Bug had two causes: Trying to write to the prebuf ringbuffer when it was full
and writing new audio to the device without first having drained the prebuf,
thus writing out of order.
* Use snd_pcm_drain() so alsa doesn't report underrun on playback session end
Removes SNDRV_PCM_IOCTL_SYNC_PTR errors
* Fix missing error check of the return value from snd_pcm_avail (now use snd_pcm_avail_delay)
2019-06-22 21:53:09 +02:00
Scott Shambarger
20f5118f75
[alsa] asoundlib.h should be alsa/asoundlib.h
2019-06-11 20:10:04 -07:00
ejurgensen
c8650a0450
[cast] Put back Chromecast exclude option
...
Was removed by mistake in commit f8b0147
2019-05-16 23:04:33 +02:00
ejurgensen
cd7bf45749
[alsa] Return ALSA the error code from buffer_write, not -1
2019-05-15 11:53:13 +02:00
ejurgensen
c36df4fb8e
[raop] Bring back forgotten keep-alive for Apple TV's
...
The keep-alive was accidently disabled by the player refactor (after v26.5).
2019-05-12 00:11:07 +02:00
ejurgensen
c7b8b94163
[alsa] Set quality in device_open() (possible fix for issue #720 )
2019-04-12 22:24:48 +02:00
ejurgensen
ce2be1a724
[-] A bit of cleaning up
2019-04-10 22:38:48 +02:00
ejurgensen
dc65cb5b76
[alsa] Make sync and sync evaluation period configurable
2019-04-09 21:45:16 +02:00
ejurgensen
40934e7162
[cast] Remove/disable some unused code
...
Leaving some of the MEDIA commands in, even though they are not used any more.
Might come in handy later.
2019-04-09 21:03:14 +02:00
ejurgensen
02cd65a992
[alsa] New resample-based sync correction
2019-04-08 00:50:20 +02:00
ejurgensen
781a3c16ed
[cast] Remove use of PAUSE, doesn't work with the mirroring app
2019-04-05 23:06:05 +02:00
ejurgensen
2c778a4da0
[cast] Remove check for appid, the session id check should suffice
2019-04-04 21:20:39 +02:00
ejurgensen
53780a7ef3
[xcode] Make sample rate + channels variable
...
This change is preparation to use ffmpeg's resampling capabilities to keep local
audio in sync (by up/downsampling slightly). This requires that sample rates are
not fixed for a transcode profile.
Added benefit of this is that we don't need quite as many xcode profiles.
2019-04-02 22:47:11 +02:00
ejurgensen
413ce25ec6
[cast] Fixup print mask
2019-03-28 23:22:49 +01:00
ejurgensen
9773d9b840
[cast] Fallback if new mirroring app not present + metadata (not working)
2019-03-26 23:13:09 +01:00
ejurgensen
6930fdb28d
[alsa] Fix memleak: Missing free
2019-03-26 22:08:15 +01:00
ejurgensen
7d0ae01e84
[raop] Fixup forgotten free of pktbuffer
2019-03-22 23:25:34 +01:00
ejurgensen
95deef9c06
A bit of scan-build fixup
2019-03-22 22:15:13 +01:00
ejurgensen
4fb45e84f2
[player/outputs] New metadata handling (wip)
2019-03-18 23:06:08 +01:00
ejurgensen
b8e0280567
[outputs] Add a 10 sec stop timer + drop playback_stop()
...
In the output implementations playback_stop() was somewhat redundant,
since device_stop() does the same.
The timer should make sure that we always close outputs (previously
they were in some cases kept open).
The commit also includes some renaming.
2019-03-18 23:06:08 +01:00
ejurgensen
01797662de
[cast] Fix segfault from cast_master_session not being reset
2019-03-18 23:06:08 +01:00
ejurgensen
f8b0147b12
[cast] First draft of Chromecast based on RTP (instead of mp3)
...
Includes adaptions to modified outputs interface
2019-03-18 23:06:08 +01:00
ejurgensen
9b6a892984
[rtp] Extra commenting about the RTP header
2019-03-18 23:06:08 +01:00
ejurgensen
d762bd0a56
[raop] master_session_free should allow null as argument
2019-03-18 23:06:08 +01:00
ejurgensen
63a2e750c7
[pulse] Convert Pulseaudio to new interface, incl support for native quality
...
First draft, probably has a few bugs
2019-03-18 23:06:08 +01:00