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
27dbd609c9
OpenMPT: Change decode call slightly
2021-12-28 15:38:57 -08:00
Christopher Snowhill
73a356ad1d
Ogg Vorbis/Opus: Use correct channel output order for surround files
2021-12-28 00:54:28 -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
120daf291a
OpenMPT legacy: No longer need to reduce its priority level, since it's OS version gated to not load on OSes that support the newer plugin
2021-12-27 17:47:57 -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
f241d88e16
OpenMPT legacy: Commit missing files, and fix .gitignore to allow them
2021-12-26 17:18:39 -08:00
Christopher Snowhill
d2e480ace5
Core Audio output: Properly support switching output devices
2021-12-26 17:16:16 -08:00
Christopher Snowhill
642945e80a
OpenMPT: Add include path for svn_version.h header file
2021-12-26 04:47:12 -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
106eb587b4
Updated libopenmpt to version 0.6.0, with major new changes. This new version requires macOS 10.15 to work, due to libc++ features required. A compatibility plugin has been duplicated from the existing plugin, which will now load libopenmpt 0.5.14, or whatever newer version may come out that still supports as old as macOS 10.12.
2021-12-26 03:29:43 -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
098650099e
Fix SQL playlist loader so it doesn't crash on an empty playlist
2021-12-25 16:42:28 -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
d4614a2f03
Syntrax/Jaytrax: Replace cubic interpolation function with a fixed point integer based version, for a 20% performance boost
2021-12-24 23:33:34 -08:00
Christopher Snowhill
a8a982d3a4
SQLite Store: Fix storing strings with multi byte Unicode sequences
2021-12-24 15:48:30 -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
fd75e1b260
HTTP source: Fix API abuse by calling completion handler as requested
2021-12-22 16:27:41 -08:00
Christopher Snowhill
2bb9698e34
FLAC: Remove unused files from libFLAC framework
2021-12-22 16:24:16 -08:00
Christopher Snowhill
e207cdc022
Opus/FFmpeg: Add more streaming types to handle, now supports working Ogg Vorbis, Opus, and FLAC streaming
2021-12-22 16:23:54 -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
7da3324e32
OpenMPT: Enable SSE2 and ARM NEON optimizations for a slight improvement in performance
2021-12-22 00:18:57 -08:00
Christopher Snowhill
c2585f5567
FFMPEG input: Add more formats, reduce buffering so streams start faster, and fix seeking calculation so streams seek properly
2021-12-22 00:17:59 -08:00
Christopher Snowhill
c47bd96d65
FFMPEG / vgmstream: Update dependencies for newer Matroska support
2021-12-22 00:15:19 -08:00
Christopher Snowhill
45ee8b01df
HTTP reader: Keep track of task suspend/resume so we don't stall trying to resume an already running stream
2021-12-22 00:14:19 -08:00
Christopher Snowhill
b2ae62a4db
URL open panel: Fix invocation of completion handler so it doesn't crash
2021-12-22 00:13:27 -08:00
Christopher Snowhill
bb1f9dcb33
CoreAudio / FFmpeg: Swap decoder priorities so FFmpeg takes priority over Core Audio
2021-12-21 22:26:50 -08:00
Christopher Snowhill
10d43d9154
FFmpeg: Enable extra demuxers, and switch AAC to AAC AudioToolbox
2021-12-21 22:24:05 -08:00
Christopher Snowhill
caf4855b4e
Syntrax/Jaytrax: Replace existing reverse engineered implementation with a different one that handles more songs correctly
2021-12-15 16:47:36 -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