Commit Graph
3286 Commits
Author SHA1 Message Date
Mike Brady caf06c5aba Add the idea of a preflight message to tell the backend that frames will be coming... 2019-01-07 17:34:50 +00:00
Mike Brady 4613ee6bcb Make buffer size threashold 100 ms instead of 50 ms. Remove some surplus snd_pcm_prepare calls. 2019-01-07 16:00:58 +00:00
Mike Brady 67a19bf3c9 Make the wait time less than the packet interval time to enable SPS to catch up if it gets behind. 2019-01-07 15:59:58 +00:00
Mike Brady 0e37f7e78d Only look for snd_pcm_status_get_driver_htstamp is alsa version 1.1 or later... 2019-01-04 21:52:36 +00:00
Mike Brady 6b42abab72 Use driver htstamp rather than regular one. Use untimed_delay so that a regualr delay sets the standoff timer for silence. 2019-01-04 20:57:18 +00:00
Mike Brady 48043a81cc Move stall threshold calculation to init from start, duh. 2019-01-04 18:17:30 +00:00
Mike Brady 43a2813b8c Extensive changes to alsa delay() and play() -- recover from XRUN _after_ sending frames; doesn't work otherwise. Update soxr buffer threshold code. Improve missing libsoxr message. Fix syntax of progress metadata. Stop dropping YouTube metadata -- the indication it was invalid is unsafe. 2019-01-04 17:30:56 +00:00
Mike Brady 80f15e1f57 clang format 2019-01-04 17:26:55 +00:00
Mike Brady 9552b278b7 remove some debugging code from delay(). 2019-01-04 17:26:00 +00:00
Mike Brady 7496364aaa continue to change delay() and play() to reflect use of snd_pcm_recover _after_ a XRUN has occurred -- fix rate calculations etc. 2019-01-04 17:20:15 +00:00
Mike Brady 3434761517 Add code for calculating and recognising the interpolation threshold. 2019-01-04 17:10:57 +00:00
Mike Brady 7b97ea4019 Add code for calculating and recognising the interpolation threshold. 2019-01-04 17:10:26 +00:00
Mike Brady 01dbf625fe Add the interpolation threshold setting. 2019-01-04 17:09:37 +00:00
Mike Brady db0e718c12 Add code for getting and setting the interpolation threshold. 2019-01-04 17:07:21 +00:00
Mike Brady 5e38fcd50f Add default values for the interpolation threshold 2019-01-04 17:06:21 +00:00
Mike Brady 459dd51a31 Use snd_pcm_recover only _after_ an XRUN or suspend has happened. Don't use it to remove one -- it doesn't work. 2019-01-04 13:50:14 +00:00
Mike Brady 4610d0870d Raise the soxr minimum buffer size to something sensible and multiply it by the output ratio 2019-01-04 13:48:56 +00:00
Mike Brady 4f9730e3b2 Give a nice message if the soxr library isn't installed. 2019-01-04 13:47:44 +00:00
Mike Brady 8e5733e6ae Check before using snd_pcm_prepare in delay() 2019-01-04 11:29:18 +00:00
Mike Brady c35fb69e33 Fix parsing error with progress 'prgr' metadata 2019-01-03 10:48:54 +00:00
Mike Brady f5707d4f18 Stop dropping metadata with a zero id -- it's not infallible way of determining if the metadata is invalid. 2019-01-03 10:48:09 +00:00
Mike Brady 41c8c8b9a1 Strengthen the ability to recover from an XRUN by putting in a call to snd_pcm_prepare first. 2019-01-03 10:19:44 +00:00
Mike Brady b973619d66 Using new delay() and play() functions. 2019-01-02 22:42:48 +00:00
Mike Brady 15729ebcd4 Fix trivial error in a debug message. 2019-01-02 22:40:48 +00:00
Mike Brady 8d8b8c05f6 new play(), delay(), delay_prep_and_status() routines in place and working, but with the old stuff taken out. 2019-01-02 19:54:12 +00:00
Mike Brady 59d26918f6 new play(), delay(), delay_prep_and_status() routines in place and working, but with the old stuff still around. 2019-01-02 19:49:15 +00:00
Mike Brady 6f8b35d121 Try out a new alsa delay routine. Could be very buggy! 2019-01-02 14:43:25 +00:00
Mike Brady b4505593b2 If output is stalled, don't write any more frames to the output device. 2018-12-31 17:46:31 +00:00
Mike Brady fe857037de If output is stalled, don't write any more frames to the output device. 2018-12-31 17:46:05 +00:00
Mike Brady fc08572631 Modify my_snd_pcm_delay but don't test it yet! 2018-12-29 09:34:10 +00:00
Mike Brady 919c5fe8b8 Add some diagnostics around the state of the DAC during delays. 2018-12-28 10:35:13 +00:00
Mike Brady 59b3abd965 quieten some dacp debug messages 2018-12-27 14:36:29 +00:00
Mike Brady fbb381133e Fix some memory leaks, improve silence filling backoff time calculation, alwasy add a NUL to an RTSP message. 2018-12-27 14:05:48 +00:00
Mike Brady ad6c721d5a Format 2018-12-27 14:04:31 +00:00
Mike Brady 668f78062e Fix a few memory leaks by deleting responses even when the reply is somehow illegal. 2018-12-27 14:02:19 +00:00
Mike Brady 1828545602 Account for duration of samples to be played and use the untimed_play when calculating silence-filling backoff period. 2018-12-27 14:01:32 +00:00
Mike Brady 6e5f84d2a0 Always leave space for, and put a NULL at the end of an RTSP packet. 2018-12-27 13:59:20 +00:00
Mike Brady 10985a0bec Bug fix: close a socket even if it doesn't successfully connect. Enhance some debug messages. 2018-12-26 10:42:52 +00:00
Mike Brady 284cb9d3fb Return genuine error codes where available in actual_open_alsa_device. 2018-12-26 10:41:20 +00:00
Mike Brady 70cd4fe81f Further adjustments to the silence thread -- make the sleep time 30 ms, thus if the queue goes below 60 ms of samples, silence will be inserted unless an audio write occurred within the last 30 ms. 2018-12-17 17:11:46 +00:00
Mike Brady 2830cdf712 adjust minimum interval between last audio write and writing silence. 2018-12-17 16:50:36 +00:00
Mike Brady a96d28c4e5 Need to use an untimed play for the silence buffer filler. 2018-12-17 16:44:19 +00:00
Mike Brady cb17fb263a Don't send silence into the alsa device within the scanner's sleep time of the last legitimate write to it. This is to stop the scanner inserting silent frames while the player is flushing fames. 2018-12-17 16:31:03 +00:00
Mike Brady 57e9619e5b Don't add dither if volume control is set to max. 2018-12-17 13:14:40 +00:00
Mike Brady 4db9c117a2 use dither if using software mixer (i.e. no hardware mixer and not ignoring the volume control) -- fix a mistake in accounting for the ignore_volume_control setting. 2018-12-17 11:31:28 +00:00
Mike Brady 14e867a66b use dither if using software mixer (i.e. no hardware mixer and not ignoring the volume control) -- fix a mistake in accounting for the ignore_volume_control setting. 2018-12-17 11:30:23 +00:00
Mike BradyandGitHub aa2e2c3d24 Update RELEASENOTES.md 2018-12-15 17:50:01 +00:00
Mike Brady 4ba0947ddb Move the keep_dac_busy in to a configuration setting. Always start the keep_dac_busy thread and check if the keep_dac_busy is set. Don't dither is ignore volume control is set. 2018-12-15 15:36:44 +00:00
Mike BradyandGitHub efa592db41 Update RELEASENOTES.md 2018-12-14 16:10:09 +00:00
Mike BradyandGitHub c20fc79a6e Update RELEASENOTES.md 2018-12-14 16:07:50 +00:00