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
ejurgensen
50c7d96bc4
[raop] Remove flush timer, the player now takes care of stopping
...
Player now stops 10 secs after stop command and 10 mins after pause. At
that time the outputs have probably cut the connection themselves, but
that might be ok (needs testing).
2019-03-18 23:06:08 +01:00
ejurgensen
fc20b55a9b
[raop] Log sync packet times
2019-03-18 23:06:08 +01:00
ejurgensen
143708368c
[alsa] Fix sync check
...
Sync correction still not implemented
2019-03-18 23:06:08 +01:00
ejurgensen
cfaceab9fe
[outputs] Misc fixup
2019-03-18 23:06:08 +01:00
ejurgensen
9d5555152c
[alsa] Implement new output interface + some refactoring
...
Sync still missing
2019-03-18 23:06:08 +01:00
ejurgensen
b811122566
[outputs] Rename output_buffer.frame to .data
2019-03-18 23:06:08 +01:00
ejurgensen
d008e241cf
[outputs] Make outputs_device_flush (per device flushing)
...
Works better with the callback mechanism
2019-03-18 23:06:08 +01:00
ejurgensen
87ca6363ae
[player/input] Refactor - WIP
...
* Open input sources earlier
* Gapless playback
* Remove fixed 44100/16 from player
* Complete restructure player internals
2019-03-18 23:06:08 +01:00
ejurgensen
936103f462
[outputs] Move device_add/rm to outputs and get rid of advertised flag
2019-03-18 23:06:08 +01:00
ejurgensen
a7e8476996
[outputs] Refactor outputs some more, eg change callback system
2019-03-18 23:06:08 +01:00
ejurgensen
e99f20992e
[player/outputs] Implement changed output interfaces in most backends
...
Still missing cast, alsa and pulseaudio, but these can so far just be
disabled with configure.
Otherwise still mostly untested.
2019-03-18 23:06:08 +01:00