Commit Graph
459 Commits
Author SHA1 Message Date
Mike Brady 1fc1247bb0 Quieten an incorrect compiler warning 2019-02-05 12:18:16 +00:00
Mike Brady 3d1ee2e03f Tidy code and slightly reorder settings listing. 2019-02-05 11:38:11 +00:00
Mike Brady 552218ab6e Clean up audio help texts, add in the volume_range_hw_priority setting. 2019-02-05 11:26:54 +00:00
Mike Brady cf03983694 Fix warnings about deprecated mbedtls API calls 2019-02-02 13:05:49 +00:00
Mike Brady 601ac4d760 add a volume control mutex to serialise multiple attempts to change the volume, stop setting the fixed volume to max if using hybrid volume setup 2019-02-01 21:08:41 +00:00
Mike Brady 60487c86b1 Make mute work only if not diconnected. Clewan up some debug messages. 2019-01-31 13:35:11 +00:00
Mike Brady 555bb97a39 Rebuild the hardware mute code -- clear up the logic. Needs to check if disconnected though. 2019-01-31 09:01:35 +00:00
Mike Brady fd08511f1f Make it work with deferred initialisation of the alsa device -- deferred to first use. Investigate hardware mute again. 2019-01-30 17:43:15 +00:00
Mike Brady c5ff0dfed0 Rebuild the volume control calculations. Implement software mute. Try to delay alsa initialisation as long as possible. 2019-01-30 09:24:10 +00:00
Mike Brady 7a4949b32f quieten a returned error-code message. 2019-01-24 09:15:09 +00:00
Mike Brady 2e4428538d Add an "active" mode that can time out after a period -- 10 seconds by default -- after play ends. 2019-01-21 21:43:55 +00:00
Mike Brady 2e181f937f add initial script-execution functionality to active mode. Make is possible to wait for start and stop scripts. 2019-01-21 18:20:39 +00:00
Mike Brady a8639f6c40 Add an activity monitor -- can set an activity idle timeout. 2019-01-20 22:15:02 +00:00
Mike Brady 4483037719 Block on command_execute for unfixable errors. 2019-01-15 08:30:00 +00:00
Mike Brady 2ca6e42b62 Do not add dither if at full volume or ignoring volume control 2019-01-10 17:00:10 +00:00
Mike Brady 34d6d89707 Don't use full flush to purge frames after an overrun -- flush will reset the buffers as well. Fix a potential bug if a flush actually occurs. 2019-01-09 10:09:29 +00:00
Mike Brady e9623faa44 Go for a 0.250 second buffer length. 2019-01-08 17:28:38 +00:00
Mike Brady 2e3be271fd Preflight all audio material playing (not lead-in silences though...) 2019-01-08 13:01:22 +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 80f15e1f57 clang format 2019-01-04 17:26:55 +00:00
Mike Brady 7b97ea4019 Add code for calculating and recognising the interpolation threshold. 2019-01-04 17:10:26 +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 6f8b35d121 Try out a new alsa delay routine. Could be very buggy! 2019-01-02 14:43:25 +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 4046c0e73d Fix dither, add dither to silences during lead-in, interpolatied frames and keeping out of standby, only if the output device doesn't use a mixer. Check configuration at initialisation. 2018-12-14 15:07:00 +00:00
Mike Brady e454572dc7 Further debug tidy-ups and update the configuration file. 2018-12-11 11:26:39 +00:00
Mike Brady 45ce909214 Tidy up some debug messages and warnings, remove old diagnostic codes and settings. 2018-12-11 10:56:36 +00:00
Mike Brady 9d5ff22f2d Connect up the stall response to the external command calling -- add a single argument to the unfixable error call. 2018-12-10 22:28:52 +00:00
Mike Brady 46a13dce40 Add stall detection to the alsa subsystem. 2018-12-10 10:50:08 +00:00
Mike Brady 72079adaf4 Initial shot at tidying up the avahi monitoring for DACP Id port information to make it survive abnormal temrination of play sessions. 2018-12-08 21:55:49 +00:00
Mike Brady 2737222b0b Fix a non-initialisation of parameters if no h/w mixer used. Add a few diagnostics, tidy up initial diagnostic message, add verbosity level and whether mixer used. 2018-12-01 16:52:23 +00:00
Mike Brady a5c65ceced Move UDP port cloure to the RTSP thread, don't allow calls to mdns_* to be cancelled. Remove usage of (p)select in rtsp thread handling. 2018-11-30 14:55:04 +00:00
Mike Brady 0eac2b9cb3 Move closing of ports to the player thread cleanup. They can be bound without the UDP threads ever having been called, so they must be closed when the player thread exits. 2018-11-29 22:03:49 +00:00
Mike Brady c318796e55 Add an uncancellable usleep timer. Make the player and UDP thread cleanups uncancellable. 2018-11-29 11:37:56 +00:00
Mike Brady 22f3e3e318 Move watchdog to cover connection from start, not just from start of play. Start investigating UDP port allocation. Tidy up handling or RTSP write errors -- remove the pselect code from before a write. 2018-11-28 17:18:03 +00:00
Mike Brady eaa98ea7d9 Quieten a few debug messages. 2018-11-27 17:40:07 +00:00
Mike Brady 76ee6d5e43 Add new watchdog thread for the player -- should be more reliable than the existing code. 2018-11-26 19:33:22 +00:00
Mike Brady 998e7cea2c clang-format 2018-11-24 11:16:57 +00:00
Mike Brady d93aeec50a Quieten a few debug messages. 2018-11-23 15:11:04 +00:00
Mike Brady ae1453f8aa Stop going to verbosity level 3 on occasion. It's not so useful now. 2018-11-23 13:57:34 +00:00
Mike Brady 093bf1dd46 Rotate usage of UDP ports if a session is interrupted. Avoids out-of-date packets landing in a new session. 2018-11-23 13:29:09 +00:00
Mike Brady 0e6835589c Try making dropping and closing the DAC un-cancelable to stop the bcm DMA problem. Add some diagnostics. 2018-11-22 21:57:54 +00:00
Mike Brady 303a85c3b5 Add back in the ability to interrupt a session. Clean up a few debug messages. 2018-11-21 21:32:18 +00:00
Mike Brady ccc4fe09af Tidy up the formats. 2018-11-20 22:56:53 +00:00
Mike Brady 8f34c181e1 Remove inner flush loop from get_buffer. Use flush for fixing large positive error. 2018-11-20 22:41:23 +00:00
Mike Brady 6e6c8213e6 Put in a cancellation point explicitly in the player_thread main loop. Tidy up some debug messages. 2018-11-20 14:18:33 +00:00
Mike Brady ec7d46bc32 Double check debug is not a cancellation point and move the dacp monitor initialisation code to after the subsidiary session threads are created. 2018-11-20 12:06:13 +00:00
Mike Brady 95f0f0121a Stop logging an error if the pthread_cond_wait times out. 2018-11-19 20:28:02 +00:00
Mike Brady 58a66ebb0e Make debuglev volatile, over player_vol past the cleanup push, add some temporary diagnostics. 2018-11-19 14:24:24 +00:00
Mike Brady 45c1c566ae Fix a logical error in buffer_get_frame that could cause an endless loop if an unready frame occurred during a flush. 2018-11-18 15:25:06 +00:00