Christopher Snowhill
f8e3b0e1ee
Core Audio output: Some more minor changes
2022-01-11 22:06:41 -08:00
Christopher Snowhill
557e0bd399
Core Audio output: Fix so it stops properly
2022-01-11 20:38:17 -08:00
Christopher Snowhill
91c3feac2e
Cog Audio converter: Fix handling signed versus unsigned for 8 bit samples
2022-01-11 19:37:47 -08:00
Christopher Snowhill
f44e4e793b
Cog Audio converter: Fix end of track flush and extrapolation
2022-01-11 19:37:17 -08:00
Christopher Snowhill
ed882e25cb
Cog Audio: Resampler now extrapolates into latency padding for better gapless playback
2022-01-11 18:19:30 -08:00
Christopher Snowhill
7d4841b1c6
Core Audio output: Don't upmix unless output device requests it by default
2022-01-11 18:18:38 -08:00
Christopher Snowhill
ee05fe9e44
Core Audio output: Add sanity checking for supported formats, and support 64 bit float input data, in case anything actually uses that
2022-01-11 17:09:06 -08:00
Christopher Snowhill
4dd46a1b5b
Core Audio output: Fix output stopping properly
2022-01-11 07:52:44 -08:00
Christopher Snowhill
72210c67e4
Replaced AudioQueue output with AUAudioUnit
2022-01-11 07:06:40 -08:00
Christopher Snowhill
c4c9a741ef
Replaced AudioToolbox converter process with homebrew solution, using the RetroArch sinc resampler
2022-01-11 04:09:19 -08:00
Christopher Snowhill
dfe92ffedc
Audio Player: Fix so ReplayGain isn't reset on seek
2021-12-28 21:05:25 -08:00
Christopher Snowhill
841481599e
Audio Player: Minor change
2021-12-28 21:04:46 -08:00
Christopher Snowhill
c1c21ec84f
Hopefully fix glitching on seeking
2021-12-28 16:04:16 -08:00
Christopher Snowhill
486352ea72
Core Audio output: Enforce some minimum quality settings
2021-12-28 15:41:31 -08:00
Christopher Snowhill
ba3746fcff
Remove blank line
2021-12-28 15:40:53 -08:00
Christopher Snowhill
476dd913b2
Audio player: Attempt to fix queue issues. There are still remaining issues if a single short track queues repeatedly and the user changes tracks manually.
2021-12-28 15:40:26 -08:00
Christopher Snowhill
38c530043d
Output converter: Add more upmixing modes
2021-12-28 15:39:23 -08:00
Christopher Snowhill
b13235ec5f
Fix 6.1 stereo downmix mapping
2021-12-28 00:10:44 -08:00
Christopher Snowhill
258a56a276
Audio Output: Implement more upmixing modes, and correct some upmixing behavior
2021-12-28 00:09:57 -08:00
Christopher Snowhill
ad3058c4f3
Audio Queue: Better handle a lot of short files playing in a row, so files don't get skipped, and so the player doesn't get overburdened starting new files
2021-12-27 23:21:48 -08:00
Christopher Snowhill
e2bca8f93b
OpenMPT: Correctly OS version gate the OpenMPT plugins, and add an interface for any other plugin to use, should it ever become necessary
2021-12-27 17:46:09 -08:00
Christopher Snowhill
25a43a9083
Audio Output: Fix converter to always emit trailing samples on end of track
2021-12-27 17:04:16 -08:00
Christopher Snowhill
8e895c88c0
Core Audio output: Properly apply or remove default device change listener when switching preferences between the 'System Default Device' setting and manually setting the device to the current default
2021-12-26 21:33:28 -08:00
Christopher Snowhill
8435416cd7
Core Audio output: Default device setting now tracks system device changes, and output assigns a speaker mapping depending on the channel count
2021-12-26 21:27:26 -08:00
Christopher Snowhill
378aaf23ae
Clean up several CFStringRef leaks
2021-12-26 18:08:53 -08:00
Christopher Snowhill
d2e480ace5
Core Audio output: Properly support switching output devices
2021-12-26 17:16:16 -08:00
Christopher Snowhill
917b7457b6
Made resume playback on startup so that seeking operation is entirely atomic with starting playback, so the new seeking behavior doesn't have the potential to crash the player
2021-12-26 04:35:54 -08:00
Christopher Snowhill
1cc34ea7d4
Audio Output: Made converter cleanup atomic, to wait on any threads that are still running
2021-12-26 04:34:33 -08:00
Christopher Snowhill
8d7cd6cc93
Multi Input plugin: Correctly forward register and remove observer callbacks to the actual decoder in use
2021-12-26 02:01:53 -08:00
Christopher Snowhill
dfeca7aa97
Seeking now takes the true nuclear approach to output, and should no longer have glitches
2021-12-26 02:01:02 -08:00
Christopher Snowhill
d22ee14a36
Audio Output: Take a more nuclear approach to output resetting when seeking
2021-12-25 23:41:45 -08:00
Christopher Snowhill
1278b64afd
Audio Output: Fixed converter so it won't loop endlessly when it either reaches the end of a stream or is otherwise supposed to terminate
2021-12-25 22:47:17 -08:00
Christopher Snowhill
5246731189
Core Audio: Overhauled audio output to use AudioQueue instead of AudioUnit, fixed downmixing to mono, and implemented upmixing mono or other formats to more channels if the device requests them
2021-12-25 22:32:43 -08:00
Christopher Snowhill
c6b112f512
CoreAudio output: Fix buffer underruns on output that could result in buffer looping in CoreAudio, by feeding silence from the callback instead of returning incomplete or possibly empty buffers
2021-12-25 19:43:10 -08:00
Christopher Snowhill
9c9d71cd9c
Overhaul CoreAudio output code: Downmix properly from 8 channels, redo converter process, and no longer crash when forced to output to a low quality device. Switchover to stereo from mono isn't perfect, however.
2021-12-25 15:02:13 -08:00
Christopher Snowhill
2445cc94a9
- Retrieve profile paths properly instead of hard coding
...
- Display playlist total duration in units up to weeks and down to just seconds, and only pluralize units as necessary
- Major change: Implemented a SQLite disk backed playlist, track data, and queue storage system, which will be synchronized from the player in real time, and will hopefully survive system or app crashes. Existing plist playlist will be imported on first run, and removed on shutdown.
2021-12-24 01:01:21 -08:00
Christopher Snowhill
4ff38268ae
Plugins: Support multiple handlers per MIME type for streams
2021-12-22 16:22:49 -08:00
Christopher Snowhill
9566a36815
Error handler: Better handle errors and increase silence generator to 10 seconds at a time
2021-12-22 16:22:05 -08:00
Christopher Snowhill
44b813d2bf
Audio queue: Better handle queues of lots of short files
2021-12-11 00:22:54 -08:00
Christopher Snowhill
00f1e0957c
FLAC: Move libFLAC decoder to higher priority than any potential system decoder, support arbitrary sample bit depths
2021-12-11 00:22:19 -08:00
Christopher Snowhill
ed8a5763ab
Output: Add System Default Output option, rather than adjusting the listing to display the current system default only the first time
2021-12-05 22:49:56 -08:00
Christopher Snowhill
ceb2e3f7dd
Fix warning due to incorrect delegate function prototype
2021-09-25 13:17:00 -07:00
Christopher Snowhill
cfeadad97f
Reduce minimum OS to macOS 10.12
2021-09-18 01:08:49 -07:00
Christopher Snowhill
da96d2c21e
Core Audio Output: Add a check that should prevent it from attempting to output data through the callback during or after destruction
2021-09-17 19:09:34 -07:00
Christopher Snowhill
13bd399b31
Clean up most warnings and update some dependencies
2021-04-29 18:16:24 -07:00
Christopher Snowhill
483b8d6647
Don't load metadata for stream URLs
2021-02-28 18:48:21 -08:00
Dzmitry Neviadomski
9840d87127
Convert CogStatus enum to NS_ENUM
2021-02-07 00:22:19 +03:00
Dzmitry Neviadomski
70a22e9611
Fix some more warnings.
2021-01-27 05:12:07 +03:00
Dzmitry Neviadomski
64b9764b2e
Inhibit ThirdParty libraries build errors.
...
This helps as to actually see warnings of our code.
2021-01-27 04:31:43 +03:00
Christopher Snowhill
97fee7e486
Add a bodge so playback status bar doesn't pop in and out repeatedly on manual track changes
2021-01-06 00:39:12 -08:00