696 Commits
Author SHA1 Message Date
Mike Brady 0ca5fd3caa Fix a statistics bug and also tidy up the statistics logging interval logic for resetting min and max counters. 2023-06-24 22:20:14 +01:00
Mike Brady 48b433ef93 minor corrections 2023-06-10 19:35:33 +01:00
Mike Brady 97dd0b1eac replace some deprecated OpenSSL calls 2023-06-10 16:25:03 +01:00
Mike Brady 6eb70eee70 Add modifications for V9 of the nqptp interface. 2023-01-19 14:32:32 +00:00
Mike Brady 72f1554cbb Continuing to check the high-volume limiter. Add configuration file settings for default and threshold volume settings and timeout. Include in diagnostics, set tentative defaults. 2023-01-19 12:44:26 +00:00
Mike Brady 8201903a4e Add code to try to save your ears by handling a situation where the player volume was set very high some time ago and you have forgotten.
In that situation currenctly, when you play something, it will come out at the last volume set on the device, which will be that very high volume.
This could happen, for example, the morning after a loud party :).

The new code works as follows: If nothing has been played for a period, say a few hours, and the volume is higher than a threshold, new connections that ask
for the current volume setting will be offered the default (low) volume rather than the current (very high) one.
Most players, including the HomePod mini, iOS and iPadOS use this to set their initial volume.
The Mac Music app retains its own setting, and the Mac System Sounds preference sometimes seems to take its setting from the Music app,
but at least you can see the settings they will apply.

Existing connections are unaffected, so this facility should be unobtrusive.
2023-01-18 10:41:50 +00:00
Mike Brady d2ca8c84a4 Clang format 2023-01-14 12:53:20 +00:00
Mike Brady 28f54af281 Add a new setting: resync_recovery_time to give the systems a little time to restart.
Clean up the tolerance and resync threshold times.
2023-01-14 12:48:18 +00:00
Mike Brady 7d243492fd Don't report an ENODEV condition as an error when getting a delay. 2023-01-13 18:03:26 +00:00
Mike Brady 76387f8291 Be more careful checking for ENODEV conditions in audio_alsa.c. Still a few places where it is not done... 2022-12-31 17:16:02 +00:00
Mike Brady a87eb95d30 Call the unfixable error handler if the output device can't be opened or disappears. Clang-format. 2022-12-30 18:46:53 +00:00
Mike Brady d6536a8e79 Call the unfixable error if the output device can't be opened or disappears. Clang-format. 2022-12-30 18:36:33 +00:00
Mike Brady 3cdb8b790c Send B/E/P signals to NQPTP to tell it when SPS is playing. The clock should not be sleeping when SPS is playing or paused. 2022-12-10 11:57:19 +00:00
Mike Brady 712fc04734 Quieten a compiler warning. 2022-12-05 11:36:43 +00:00
Mike Brady 02c0a159ce Tidy up a few messages and fix a new compilation warning. 2022-12-03 10:28:16 +00:00
Mike Brady 37f060f48e Add "FirstFramePostion" property set when first frame of a play session is sent. 2022-11-28 15:09:43 +00:00
Mike Brady 4044666897 clang format 2022-11-26 19:09:42 +00:00
Mike Brady 50738c360d SEnd metadata _after_ sending audio to the output. 2022-11-26 18:09:57 +00:00
Mike Brady 7c1a5fd0ba Add ability to send frame/time updates at intervals as metadata. 2022-11-26 15:56:25 +00:00
Mike Brady e8b8c6edb7 Clang cleanup 2022-11-18 18:14:50 +00:00
Mike Brady 03d291f464 Second attempt. Modify the generation of the 12-digit classic AirPlay service name prefix so that it depends on the service name as well as the hardware address. 2022-11-17 10:31:51 +00:00
Mike Brady 61865bf36f Fix compilation bug when metadata isn't included in the build. 2022-11-12 16:57:12 +00:00
Mike Brady d67909b837 Add new metadata item: sps:songdatakind, derived from the asdk metadata token. It seems to indicate a timed item (0) or an untimed stream (1). Add output format, output frame rate, stream type (Realtime/Buffered/Classic) properties. Update MQTT appropriately. 2022-11-12 16:42:25 +00:00
Mike Brady 6d1369a4fc Typo. 2022-10-28 12:14:39 +01:00
Mike Brady 04e28ee12b Stop using the flush and data resumption as proxies for pause and resume. Add (true) pause and resume to buffered audio streams. 2022-10-18 12:13:07 +01:00
Mike Brady fd880056fb Squashed commit of the following:
Add three parameters to the backend play() function call -- (1) a flag indicating whether the samples are timed or not. If timed, (2) the timestamp and (3) the local time at which the first frame should be heard.
    Update missing pipewire library message.
    Makefile.am fix.
    Update the SHM version and fix the SHM name so that it works with FreeBSD.
    Remove redundant (?) AC_HEADER_STDC check.
    Fix compilation and installation under FreeBSD -- changes to allow building in a separate directory broke the FreeBSD build process.
    Add AC_CHECK_LIB for gcrypt in case PKG_CHECK_MODULES fails to find it.
    Find gcrypt using pkg-config
    Add code to detect when the RTSP channel goes idle for a period, and use it to reset clocks and timings, etc. so that SPS resumes correctly where the source has gone to sleep while playing a realtime stream and has subsequently woken up.
    Don't exit if a UDP Clock Control packet is empty. Also check minimum packet size.
    Remove some very experimental code which may cause memory and port leaks.
    Strip file path from the filename used in debug messages, information messages, warnings and fatal error messages.
    BB fix to Makefile.am -- overwriting the DBUS stuff with MPRIS definitions, duh.
    Fix some problems building on FreeBSD and tidy up the use of the "sed" editor.
    Fix some problems building on picore.
    Fix an uninitialised variable
    start using the "nqptp" SMI
2022-09-12 15:19:52 +01:00
Mike Brady 5f92164c4c Quieten a bogus warning. 2022-08-19 12:25:36 +01:00
Mike Brady 174556f054 Remove a few causes of "possibly uninitialised" warnings. 2022-08-16 09:26:35 +01:00
Mike Brady 05dfcdfd6a Merge other enhancements. 2022-08-09 14:18:53 +01:00
Mike Brady f61278278a Quieten a noisy debug message. 2022-08-09 12:39:23 +01:00
Mike Brady a238842385 Simplify use of an initial volume figure. 2022-08-06 19:19:43 +01:00
Mike Brady a72b5d7ca2 Quieten a debug message. 2022-08-05 14:24:03 +01:00
Mike Brady 1ca2487b1c Reset first_packet_timestamp if buffer goes empty. Reset anchor information if a clock control signal doesn't arrive in time in a realtime play. 2022-08-03 12:54:46 +01:00
Mike Brady 6a2ba5fd0f Minor debug message update. 2022-07-31 13:08:54 +01:00
Mike Brady 129343c165 Don't quit if the ALSA output device is or becomes busy and resume when it becomes available again. 2022-07-20 18:04:42 +01:00
Mike Brady 6911212775 Stop clipping when mono mixing is selected (32-bit) as well. 2022-07-01 13:53:59 +01:00
Mike Brady 2ab4895f16 Stop clipping when mono mixing is selected. 2022-07-01 13:32:20 +01:00
Mike Brady 97ecff93bd Modify a player_volume_without_notification to show sw and hw attenuation in dB. 2022-06-29 17:28:00 +01:00
Mike Brady d194561ab4 Don't set the initial volume to 0.0 (full volume) if ignore_volume_control is selected -- bad idea! 2022-06-25 10:54:27 +01:00
Mike Brady f551274a2e Set the initial volume to 0.0 (full volume) if ignore_volume_control is selected. Add some code to explore remote_control. Still not even close to working. 2022-06-25 10:47:18 +01:00
Mike Brady 2260853ebc Clean up a long comment about the ALAC data structures. 2022-06-19 13:04:05 +01:00
Mike Brady a1dabd79a7 Remove check for AAC decoder. 2022-05-24 10:17:01 +01:00
Mike Brady cdb4d384d3 Fix a stupid bug in the selection of timebases. 2022-05-23 20:34:37 +01:00
Mike Brady 95a43c9c1f Remove non sensible input_rate message. 2022-05-23 14:07:48 +01:00
Mike Brady 432b56c656 Remove stats function from audio_sndio backend, as it's too inaccurate. Also remove non-sensible infput frame rate from summary. 2022-05-23 14:00:28 +01:00
Mike Brady e4cadfc1e7 Put visual divider pipe characters between the column headings in statistics. 2022-05-23 13:38:39 +01:00
Mike Brady 0df6e18b86 Only disply the fps stuff if we have a stats function in the backend 2022-05-23 13:31:22 +01:00
Mike Brady 1d2288702a If statistics are enabled, log when a play starts and what type the stream is. 2022-05-18 11:05:28 +01:00
Mike Brady f06524cfa0 Ensure the AP2 Buffered Stream buffer size is hidden when playing an AP1 stream in AP2 mode. 2022-05-18 10:03:01 +01:00
Mike Brady 1115ec4f19 Small cosmetic changes. 2022-05-17 16:39:13 +01:00