Christopher Snowhill
e695e33537
SID Input: Bring back file hints, better this time
...
Now file hint stashes the whole file in memory, so that any other
threads reading the file at the same time will just grab the same memory
block and read it, rather than opening the file repeatedly.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-11 04:43:20 -08:00
Christopher Snowhill
425306129f
SID Input: Clean up memory leaks
...
Two were potential memory leaks on file errors, one was a guaranteed
leak when reading metadata.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-11 04:19:27 -08:00
Christopher Snowhill
b40b8521dd
SID Input: Open the files for decoding regardless
...
No more file handle caching, this was probably a source of crashes.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-11 04:18:39 -08:00
Christopher Snowhill
4f5e5a9e4e
SID Input: Synchronize cross file access
...
The same file may be accessed from other threads, thanks to this cache
thing. Synchronize access so that only one thread is reading the file at
a time.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-11 03:56:50 -08:00
Christopher Snowhill
be6fda4663
SID Input: Don't close hinted source files
...
The SID decoder uses a hint cache so that when the library requests the
current file open, it will return the exact file already opened, rather
than opening it again. Unfortunately, I was closing the file regardless,
and sometimes, libsidplayfp will reopen the file multiple times, from
other threads, even.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-11 03:55:26 -08:00
Christopher Snowhill
68c3f3b1d8
Highly Complete: Disable USF HLE
...
The HLE is incomplete, and sometimes buggy. Disable it for now.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 20:57:44 -08:00
Christopher Snowhill
39dcb88728
FFmpeg input: Support reading metadata
...
Where TagLib is not being employed, use FFmpeg to read tags where
possible. This allows reading tags from files like IFF. It reads it
through properties, otherwise allowing tag readers to function like
usual.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 15:29:13 -08:00
Christopher Snowhill
5ff1f95481
Add decoder open error indicator
...
When decoder is redirected to the internal silence decoder, show an icon
on the playlist indicating a playback error.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 02:15:48 -08:00
Christopher Snowhill
f203911bb1
FFmpeg Input: Support various DSD formats and IFF
...
Implement support for DFF, WSD, and IFF formats, and all DSD formats
carried within, using our own DSD decimation method instead of relying
on FFmpeg to do it.
Fixes #165
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 00:32:24 -08:00
Christopher Snowhill
085891aff1
FFmpeg Input: Retry on decode error
...
When feeding packet to decoder, attempt to retry another packet when it
reports invalid data.
Fixes #97
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 22:37:39 -08:00
Christopher Snowhill
4cdf919b45
Opus Input: Now reads ReplayGain tags
...
Instead of rendering the ReplayGain values into the stream on decode, as
it did before. This allows exposing the values to the properties dialog.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 21:27:33 -08:00
Christopher Snowhill
c3cd4c34f4
MIDI Plugin: Rearrange project source files
...
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 18:43:01 -08:00
Christopher Snowhill
a212c85252
MIDI Plugin: Fix stupid typo
...
Damn, how did I miss this one?
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 18:38:12 -08:00
Christopher Snowhill
b03702e164
MIDI Plugin: Fix BASSMIDI driver SysEx handling
...
These events were split up in handling after this driver fell out of
use. It needed updating with the latest split handling design.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 18:36:37 -08:00
Christopher Snowhill
808b14a358
MIDI Plugin: Vital changes for stability
...
Among the changes, range checking on lots of things, and especially,
the pre-render-loop backlog handler, which rendered samples left over
from the previous call, would possibly over-render by way too much, due
to a stupid backwards subtraction I managed to type into there. This is
totally fixed now.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 18:29:34 -08:00
Christopher Snowhill
e2e83ea760
FFmpeg/FLAC/Opus/Vorbis Inputs: Fix metadata
...
The dynamic metadata functions should only activate for unseekable
streams, not seekable streams, and not local files.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 15:04:49 -08:00
Christopher Snowhill
0012d1b17e
Implement dynamic metadata reading for streams
...
Supported by FFmpeg, FLAC, Ogg Vorbis, and Opus.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 13:44:50 -08:00
Christopher Snowhill
69506cd1d7
HTTP Reader: Replaced implementation with libCURL
...
New implementation largely based on the vfs_curl module from DeaDBeeF.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 13:41:01 -08:00
Christopher Snowhill
e13f83609e
FFmpeg Input: Implement stream metadata reading
...
Now reads Icy interval metadata and timed ID3v2 tags.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 21:34:28 -08:00
Christopher Snowhill
7cea254f4c
Implement framework for dynamic metadata updates
...
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 21:21:53 -08:00
Christopher Snowhill
b927f4c02b
Replace more NSDictionary use with literals
...
Use literals to initialize fixed NSDictionary objects in various places.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 19:56:04 -08:00
Christopher Snowhill
838b31a6e8
MIDI: Replaced FluidSynth with BASSMIDI again
...
FluidSynth is just too unstable, and also just bad in general.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 18:29:03 -08:00
Christopher Snowhill
4fd24838fa
FFmpeg Input: Fix format changes
...
Format changes should only occur on whole packet intervals.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 19:37:06 -08:00
Christopher Snowhill
477feaab1d
Now properly supports sample format changing
...
Sample format can now change dynamically at play time, and the player
will resample it as necessary, extrapolating edges between changes to
reduce the potential for gaps.
Currently supported formats for this:
- FLAC
- Ogg Vorbis
- Any format supported by FFmpeg, such as MP3 or AAC
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 19:18:45 -08:00
Christopher Snowhill
b2177fccbc
Core Audio input: Fix channel config, and a leak
...
Channel config should not contain duplicate channels, or unsupported
channels. Also fix a memory leak from not freeing the AudioChannelLayout
structure allocated previously.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 02:47:32 -08:00
Christopher Snowhill
22d8b8c132
Implement channel config fields for inputs
...
This implements channel masks for inputs where applicable, namely the
CoreAudio decoder, FFmpeg, FLAC, and WavPack. All others will still use
guessing from the channel number.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 02:06:51 -08:00
Christopher Snowhill
85c7073649
Reformat my own source code with clang-format
...
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00
Christopher Snowhill
b85fef5c16
MIDI Input: Fix seeking code
...
This fixes a possible crash with seeking operations, especially with
Audio Unit plugins. Fix implemented in foo_midi and imported here.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-05 05:01:31 -08:00
Christopher Snowhill
e0e7274339
HTTP Reader: Fix opening really tiny files
...
Tiny files complete fetching within the scope of the open function, so
the URL session task would have completed already. Now the function will
accept the data, and allow reading it.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-04 22:03:22 -08:00
Christopher Snowhill
bf6627aa73
MIDI input: Fix general pacing issues with AU
...
The timing of block based mode was kind of off. Now it should be just
fine. Thanks to testing on Windows in foo_midi.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-03 13:50:25 -08:00
Christopher Snowhill
0b243158a0
Cue Sheet input: Fix files with no length
...
This bug prevented zero length or unknown length files, such as FLAC
files with no sample count in the header, or audio streams, from playing
properly, and clipped their output to the 0 samples indicated by the
field. Now it will simply allow wrapped files to decode until they stop
producing output.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-01 23:54:54 -08:00
Christopher Snowhill
b40d5eecc5
GME: Play SPC and SFM files at 32 kHz
...
And let the player itself resample them, as necessary.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-01 19:04:06 -08:00
Christopher Snowhill
61a30c959c
Bundled resources: Use NSBundle interface
...
These methods should use NSBundle, rather than CF* C functions
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-01 14:40:02 -08:00
Christopher Snowhill
7e5107d431
User Settings: Obey standards
...
Replace "midi.plugin" with "midiPlugin", as per the value naming
conventions that Apple set out. Migrate the old value if found.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-29 16:38:53 -08:00
Christopher Snowhill
7be0ade7ce
Ogg Vorbis and Opus: Fix 7.1ch file remapping
...
File channel remapping was incorrectly only working for 1-7 channel
files, not 8 channel files. Fixed that.
PLEASE NOTE: This will be my last commit and build for over a week, I
promised myself I would stop, and this is the last straw. These are the
last two, I promise. No more bug fixes this week, until at least the 7th
of February. Please, I'm begging you.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 23:04:19 -08:00
Christopher Snowhill
f807cd8169
FFmpeg Input: Just-in-case change to file reader
...
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 14:49:33 -08:00
Christopher Snowhill
2e41e7c525
FFmpeg Input: Enable networking and HLS support...
...
... also disable use of AudioToolbox codecs, and use only bundled codecs
and libfdk-aac for AAC input. This is required for HLS at least, as
Apple's system codecs didn't really like the network streams that were
provided by HLS streaming stations.
Also reshuffle the input priorities between Core Audio input and FFmpeg
input, so that they were the way they were before I messed with things a
while back. This puts FFmpeg back at the top, using bundled codecs where
supported.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 00:11:14 -08:00
Christopher Snowhill
547de6cf08
M3U Playlist container input: Disable for HLS
...
The built-in M3U container parser should not be used for HLS playlists,
so they should end up in the playlist as-is, so that inputs can parse
them in real time.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 00:11:14 -08:00
Christopher Snowhill
3c35cf1037
MIDI Input: Fall back to system DLS Synth
...
If there's no configured SoundFont bank, or if the selected bank has
gone missing, and the user has configured the player to use the
FluidSynth driver, fall back to the system DLS Synthesizer, which has
its own Roland bank to fall back on if unconfigured.
Also, whether falling back, or already on an AU synthesizer, don't fail
if there's no bank configured or found. DLS doesn't explicitly require a
bank, and most other synthesizers of interest would not require a bank
either.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 00:09:40 -08:00
Christopher Snowhill
b53567edc5
Fix VGMStream so it handles EOF properly
...
The file prober in FFmpeg expects that when the read function reaches
end of file, it returns AVERROR_EOF, not zero. Otherwise, it will loop
endlessly until the process is terminated.
Fixes #217 .
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 00:09:40 -08:00
Christopher Snowhill
ee7b7dad5f
VGMStream: Add a bodge for PSF files
...
For some incredibly dumb reason, PSF files get into FFmpeg 5.0, then
just sit there and lock up, reading them forever and ever, doing nothing
useful. Add a bodge to detect PSF files by signature and ignore them in
the VGMStream container parser, and all other parts of VGMStream in Cog.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-26 15:40:44 -08:00
Christopher Snowhill
fee7fcdb21
FFmpeg: Handle preroll skip manually
2022-01-24 06:07:09 -08:00
Christopher Snowhill
d771a58e69
FFmpeg: Update to version 5.0, and add another patch for iTunes MP3 gapless info
2022-01-24 04:41:27 -08:00
Christopher Snowhill
6b8d300384
Opus input: Support switching gain modes based on player settings, since the Opus tag reader doesn't support Opus gain tags yet
2022-01-22 21:03:52 -08:00
Christopher Snowhill
72f1168498
TagLib: Support reading Apple SoundCheck tags from ID3v2 and MP4
2022-01-22 20:20:24 -08:00
Christopher Snowhill
058614b6a0
Core Audio / FFmpeg inputs: Change to correctly discern most lossy/lossless codecs
2022-01-21 23:09:35 -08:00
Christopher Snowhill
0c4d5002f6
Metadata: Now supports storing cuesheet tags and encoding quality status properties
2022-01-21 22:38:54 -08:00
Christopher Snowhill
2165d37144
Metadata: Now supports disc number field where possible
2022-01-21 21:49:17 -08:00
Christopher Snowhill
698798a6f4
CUE Sheet input: Seek function now returns correct time offset
2022-01-19 22:09:29 -08:00
Christopher Snowhill
244f896318
CUE Sheet input: Fix for regular cue sheets, and for existing URLs for embed supported tracks
2022-01-19 22:06:36 -08:00
Christopher Snowhill
684951bdc0
Change a bunch of NSArray declarations to const collection literals
2022-01-18 18:12:57 -08:00
Christopher Snowhill
ba0fedf151
Add stub function to Silence Decoder
2022-01-18 17:30:07 -08:00
Christopher Snowhill
1540b84b09
Clean up association names
2022-01-18 03:20:07 -08:00
Christopher Snowhill
39a5ee8ab7
Utility: Add stubs to regenerate Info.plist with file type associations
2022-01-18 03:07:32 -08:00
Christopher Snowhill
6684a8280f
AdPlug: Plugin now loads its AdPlug database on startup
2022-01-17 21:48:35 -08:00
Christopher Snowhill
a1522aeb6e
CueSheet parser: Support quirky FLAC generated CueSheets that contain sample counts instead of frames
2022-01-14 22:45:45 -08:00
Christopher Snowhill
33f3b4f5a0
CueSheet processor: Support timestamps with one or two fields, as well as the standard three fields
2022-01-14 19:05:48 -08:00
Christopher Snowhill
dac1dfee47
CueSheet input: Implement support for ReplayGain tags
2022-01-14 18:51:44 -08:00
Christopher Snowhill
2d32381bc1
Cue Sheet: Fix decoder priority level
2022-01-14 17:45:10 -08:00
Christopher Snowhill
d24a01a637
Implemented basic embedded CueSheet support
2022-01-14 16:46:35 -08:00
Christopher Snowhill
748891f285
Cog Audio / WavPack input: Add DSD decimation to converter, and change WavPack input to emit only raw DSD
2022-01-14 06:26:09 -08:00
Christopher Snowhill
ec0b343596
WavPack input: Decode DSD without letting WavPack library decimate it. The supplied filter was rather noisy.
2022-01-14 02:11:46 -08:00
Christopher Snowhill
ca4a2efea1
FFmpeg input: Disable peak limiting for libfdk-aac decoder
2022-01-13 16:14:04 -08:00
Christopher Snowhill
bfa178f4e2
FFmpeg input: Add support for libfdk-aac, which will be used to support USAC and AAC on 10.14.x and older
2022-01-13 04:13:58 -08:00
Christopher Snowhill
e3df82cf70
VGMStream input: Improve file interface, to handle duplicate file requests in the same thread, and to handle archive paths
2022-01-12 16:45:50 -08:00
Christopher Snowhill
c8301a9868
CoreAudio input takes priority over FFmpeg on 10.14.x and older
2022-01-09 17:05:10 -08:00
Christopher Snowhill
a1a85c502e
FFmpeg input: Check for seeking errors and stop decoding when they happen
2022-01-09 03:37:45 -08:00
Christopher Snowhill
b35d405e20
libvgm input: Correctly declare logging formatting strings
2022-01-07 19:07:46 -08:00
Christopher Snowhill
614517f813
FFmpeg input: Disable AudioToolbox codecs on macOS 10.14.x and older
2022-01-07 19:07:07 -08:00
Christopher Snowhill
7ee76f914a
OpenMPT legacy: Correct header import paths so that the correct version of OpenMPT framework headers are used
2022-01-06 23:53:39 -08:00
Christopher Snowhill
1eb2270049
VGMStream: Rewrite file interface based on the VGMStream stdio interface, only using CogSource files
2022-01-06 22:12:34 -08:00
Christopher Snowhill
0e8f417e67
libvgm Player: Correctly report version number in codec field
2022-01-05 02:37:39 -08:00
Christopher Snowhill
888ee2fb38
Implemented new libvgm-based VGM, S98, DRO, and GYM player
2022-01-03 01:55:48 -08:00
Christopher Snowhill
8ad7e086a8
Update copyright year
2022-01-02 23:34:29 -08:00
Christopher Snowhill
df9743c821
Consolidated Vorbis framework usage
2021-12-31 01:35:08 -08:00
Christopher Snowhill
98ead66851
Consolidate File_Extractor framework usage
2021-12-31 01:16:44 -08:00
Christopher Snowhill
2e76c56ba7
Switch FFmpeg libraries to dynamic builds, consolidate to a single copy in the main application framework folder
2021-12-31 01:07:05 -08:00
Christopher Snowhill
112a20132b
OpenMPT: Add format info as codec string
2021-12-30 00:07:32 -08:00
Christopher Snowhill
e4cbdb07f8
FFmpeg Decoder: Remove spurious debug logging
2021-12-29 22:56:53 -08:00
Christopher Snowhill
fa20465271
FFmpeg Decoder: Fix seeking in files with preroll that happens to make the decoder return EAGAIN error, so they don't inadvertently skip actual audio data unnecessarily. Fixes seeking to the start of USAC files with preroll packets.
2021-12-29 22:55:31 -08:00
Christopher Snowhill
cd8b728ca6
Removed plugin
2021-12-29 15:24: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
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
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
fd75e1b260
HTTP source: Fix API abuse by calling completion handler as requested
2021-12-22 16:27:41 -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
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
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
bb1f9dcb33
CoreAudio / FFmpeg: Swap decoder priorities so FFmpeg takes priority over Core Audio
2021-12-21 22:26:50 -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
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
5772662984
Cuesheet: Read and merge metadata from referenced audio files, no matter their format
2021-11-21 00:16:16 -08:00
Christopher Snowhill
bce21b44d4
MIDI: Overhaul player completely, now Audio Unit support works properly, and the Sound Canvas VA hack is no longer needed. Now System Exclusive messages may be filtered for all plugins.
2021-11-02 19:52:12 -07:00
Christopher Snowhill
ee6faec757
VGMStream: oops, coding error
2021-10-02 18:49:00 -07:00
Christopher Snowhill
6c8c807781
VGMStream: Clear sample buffer, just in case
2021-10-02 18:47:04 -07:00
Christopher Snowhill
cbf20dab08
VGMStream: Correctly implement mixing support and output channel reporting for downmixes
2021-10-02 18:38:23 -07:00
Christopher Snowhill
0ec1ae4c47
Core Audio input: Added Codec info reporting
2021-10-01 20:22:26 -07:00
Christopher Snowhill
cb70b066d7
Updated VGMStream to r1640-85-gfe316bb2
2021-10-01 20:21:50 -07:00
Christopher Snowhill
fdae7eec21
File info: Implemented support for Album Artist and Codec fields
2021-10-01 19:18:42 -07:00
Christopher Snowhill
cfeadad97f
Reduce minimum OS to macOS 10.12
2021-09-18 01:08:49 -07:00
Christopher Snowhill
42a6738e8f
Updated VGMStream to r1640-11-gdfa3779a
2021-09-06 09:28:26 -07:00
Christopher Snowhill
6395684001
CoreAudio input: Fixed new case where lossy inputs report file bit depth as unsupported field, causing some or possibly all lossy files to fail to decode
2021-08-25 01:57:59 -07:00
Christopher Snowhill
5b73336cb0
CoreAudio input: Optimized file size reporting to cache the file size on open, so file input isn't seeking as much
2021-08-25 01:57:05 -07:00
Christopher Snowhill
3f6cb1bc1c
VGMStream: Fix .txtp with option fragments in the filename
2021-08-11 17:33:02 -07:00
Christopher Snowhill
0891a20bba
MIDI: Detect presence and compatibility of Sound Canvas VA before attempting to import it later. It currently does not work with arm64, only x86_64 native or Rosetta 2.
2021-08-10 17:35:15 -07:00
Christopher Snowhill
59a5a7687e
MIDI: Fix Sound Canvas VA duplication function to support the 32 signed instances current versions ship
2021-08-10 17:35:14 -07:00
Christopher Snowhill
510c762921
TagLib plugin: Implement FLAC embedded art reading
2021-07-03 15:31:26 -07:00
Christopher Snowhill
75a4f1e722
VGMStream: Fix one shot files actually decoding to completion instead of getting stuck forever
2021-06-15 01:34:01 -07:00
Christopher Snowhill
668475c43a
VGMStream: Correctly report ReplayGain tags from external M3U tags
2021-05-30 14:47:21 -07:00
Christopher Snowhill
8aa47584f1
FFmpeg: Fix seeking so it's sample exact, using packet timestamps. Fixes noticeable issues when using CUE sheets with APE, for instance.
2021-05-30 14:22:20 -07:00
Christopher Snowhill
466c1beb00
Added safety checks to VGMStream file interface, which should hopefully prevent a known crash deep in the library due to possibly trying to retrieve the file name from an invalid file handle
2021-05-17 22:43:27 -07:00
Christopher Snowhill
95a63327fa
MIDI: Trimmed down FluidSynth libraries significantly, and should be compatible with 10.13 once again
2021-05-09 17:46:36 -07:00
Christopher Snowhill
b2a6a67170
MIDI: FluidSynth is now configured to load samples dynamically instead of caching entire banks at once
2021-05-08 19:41:35 -07:00
Christopher Snowhill
17fd41fbbc
Updated FluidSynth again, restoring SF3 support
2021-05-08 00:47:03 -07:00
Christopher Snowhill
5d29b741a0
Updated FluidSynth
2021-05-07 21:08:48 -07:00
Christopher Snowhill
79d12e9fc7
CoreAudio: Don't try closing resources that aren't opened
2021-05-07 15:33:20 -07:00
Christopher Snowhill
37aa36f9f4
MIDI: Fix FluidSynth device-id setting, which requires unique settings objects
2021-05-06 19:02:25 -07:00
Christopher Snowhill
81aca83940
MIDI: Update FluidSynth to HEAD-9b671b2, with personal changes to implement reset messages to switch drum control and bank select mode
2021-05-06 19:01:50 -07:00
Christopher Snowhill
f9d3a5f9eb
MIDI: Fix FluidSynth SysEx code
2021-05-06 14:59:27 -07:00
Christopher Snowhill
1a95c234b2
Update FluidSynth code, changing default gain, and letting it handle SysEx messages on its own
2021-05-06 13:35:24 -07:00
Dzmitry Neviadomski
66efdfcf1e
Roll libsidplayfp
2021-05-04 22:30:10 +03:00
Christopher Snowhill
e8e2fc3164
MIDI: Add SF3 extension to FluidSynth loader
2021-05-03 19:18:55 -07:00
Christopher Snowhill
4cf76dd7e3
MIDI: Replaced BASSMIDI with FluidSynth
2021-05-03 19:18:55 -07:00
Dzmitry Neviadomski
1e6d0e16f0
Remove remaining signing ids.
2021-05-02 23:18:11 +03:00
Christopher Snowhill
1e97d02384
Cleaned up project files, also removed accidental and remaining team identifiers
2021-05-01 15:43:56 -07:00
Christopher Snowhill
13bd399b31
Clean up most warnings and update some dependencies
2021-04-29 18:16:24 -07:00
Christopher Snowhill
4d7a4ec29d
MIDI: No longer call BASS_Free on shutdown, may have been possible to cause a hang on shutdown
2021-04-27 00:19:26 -07:00
Christopher Snowhill
7acfdf774d
VGMStream: Fix length reporting and track termination when not looping forever
2021-04-22 23:53:59 -07:00
Christopher Snowhill
4ea289ba27
MIDI: Reject files with no event data
2021-04-11 17:23:55 -07:00
Christopher Snowhill
2c20205f8f
Fix VGMStream info parser to remove anchors and URL percent encodings from filenames
2021-04-06 16:51:08 -07:00
Christopher Snowhill
b32f9d4ac3
libsidplayfp: Fix stereo playback, and implement support for multi-file songs, and fix stereo blending so it applies to the entire output
2021-04-05 14:07:20 -07:00
Christopher Snowhill
bdd02c76d3
PSF/PSF2: Set harsh compatibility mode, so emulator behaves more like actual hardware, which fixes a few PSF and PSF2 rips
2021-03-28 12:49:34 -07:00
Christopher Snowhill
ba7aaec69c
M3U and PLS playlist handlers now correctly handle macOS Classic line endings
2021-03-09 23:49:13 -08:00
Dzmitry Neviadomski
3a387c3a3f
Update Copyright year to 2021 with regex.
2021-03-03 23:05:57 +03:00
Christopher Snowhill
483b8d6647
Don't load metadata for stream URLs
2021-02-28 18:48:21 -08:00
Dzmitry Neviadomski
e4199694a8
Update FFMPEG plugin project settings.
2021-02-26 15:31:35 +03:00
Dzmitry Neviadomski
0aff2c9567
Add sidplayfp Xcode subproject as dep.
2021-02-25 18:37:39 +03:00
Dzmitry Neviadomski
72702ed1e1
Add libsidplayfp submodule and supporting files.
2021-02-25 18:36:04 +03:00
Christopher Snowhill
04074f5d74
Fix Core Audio input to report and decode format native bits per sample, and report file bitrate
2021-02-22 20:48:23 -08:00
Christopher Snowhill
b16d2114eb
Change Core Audio file handler priority
...
Now it should take priority for all supported formats, including MP3, so that reported broken file should play properly now. Not fixing FFmpeg outside of FFmpeg, someone can report the file to FFmpeg if they want to.
2021-02-09 18:43:39 -08:00
Dzmitry Neviadomski
a6aaeafdca
Re-apply patch for replay gain support
2021-02-07 06:50:28 +03:00
Dzmitry Neviadomski
15cbc97040
Adapt to new version of TagLib and read Vorbis Album art.
2021-02-07 04:48:49 +03:00
Dzmitry Neviadomski
1d84b7b682
Fix loading of cover art from same directory.
2021-02-07 03:54:31 +03:00
Christopher Snowhill
dce400435e
Fix #89 by encoding paths correctly I hope
2021-01-30 19:37:10 -08:00
Dzmitry Neviadomski
832fa6dbd0
Even more deprecations fixes.
2021-01-27 05:45:02 +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
Jan Weiß
63ed28919b
Second attempt to fix build with other than maintainer’s TeamIDs. Worked for me with Xcode 12.3.
2021-01-05 17:25:12 +01:00
Christopher Snowhill
dbc51d76f9
Revert PR #60 - Nope, that breaks hardened runtime and signing it myself
2020-12-22 02:11:50 -08:00
Jan Weiß
c305a5f949
Fix build with other than maintainer’s TeamIDs.
...
This commit removes development team and code signing key/value pairs that slipped through when Xcode applied code signing changes.
2020-12-13 12:01:48 +01:00
Christopher Snowhill
58b6ea5881
Added HMQ extension for HMP format
2020-12-08 19:16:03 -08:00
Christopher Snowhill
91b1271ae2
Bump deployment target to 10.13
2020-11-24 15:26:26 -08:00
Christopher Snowhill
6646e01d8a
Switched FFmpeg back to static libraries, now that I know I can make Universal static libraries
2020-11-23 23:50:50 -08:00
Dan Leehr
1d4a777018
Restore libFLAC plugin on macOS 10.13 and newer
2020-11-23 17:01:25 -05:00
Christopher Snowhill
dedeb399a8
- Big Sur phase two
...
- Restructure main window a bit more
- Remove attempt at SF Symbols icons for now
- Add Now Playing popout to Stacks style main window, tooltip instructs to click to select the current track in playlist
- Disable libFLAC plugin on macOS 10.13 and newer, letting Core Audio handle it instead. Apparently, libFLAC is not really ready for Apple Silicon yet.
2020-11-22 18:16:34 -08:00
Christopher Snowhill
85907a48d9
Add .ogg extension to Opus plugin
2020-11-19 01:37:50 -08:00
Christopher Snowhill
4eb7a3eebf
Update VGMStream plugin with new API changes a bit, and now force auto downmixing to 6ch
2020-09-21 22:33:18 -07:00
Christopher Snowhill
dab78ed74f
Updated libopenmpt to version 0.5.2
2020-09-21 21:54:24 -07:00
Christopher Snowhill
0001bd581b
Phase one of Big Sur
2020-06-30 01:04:55 -07:00
Christopher Snowhill
3b628c3989
Touched by Xcode
2020-06-07 19:57:15 -07:00
Christopher Snowhill
f5c7c4d49a
Update midi_processing to latest version, fixing some severe MIDI file handling issues, including Standard MIDI file SysEx and SysEx continuation handling
2020-04-14 02:10:52 -07:00
Christopher Snowhill
53bfe785bb
Disable remote file support for CoreAudio decoder
2020-04-11 00:31:22 -07:00
Christopher Snowhill
4aca4a9c77
- Increase HTTP buffer size to 256KB
...
- Support a different older flavor of ShoutCAST server
2020-04-11 00:30:27 -07:00
Christopher Snowhill
b7596caa44
Fixed WavPack tag reading, by actually enabling it
2020-03-22 00:16:13 -07:00
Christopher Snowhill
9ca13ad471
Updated WavPack decoder to 5.2.0
2020-03-22 00:15:45 -07:00
Christopher Snowhill
a43ae5fc81
- Redo HTTP buffering mechanism
...
- Handle HTTP errors better
- Fix handling ShoutCAST servers responding ICY headers
2020-03-10 01:56:59 -07:00
Christopher Snowhill
b37a6f0f0d
Attempt to add rewinding to CoreAudio for streamed source files, but it doesn't work, it still fails to play anything from a stream
2020-03-09 00:23:58 -07:00
Christopher Snowhill
18acc7fdd2
Handle HTTP redirection, including preventing circular redirects
2020-03-08 20:13:46 -07:00
Christopher Snowhill
25a030a46c
Implement custom reader support in CoreAudio decoder, now supports archives and possibly streams
2020-03-08 20:05:03 -07:00
Christopher Snowhill
443aa05f88
Replace HTTPSource with a new reader based on NSURLSession, which actually does support HTTPS. This portion of the player now requires macOS 10.9.
2020-03-07 16:08:47 -08:00
Christopher Snowhill
8bc6396918
Fix local signing issues
2020-02-13 17:45:11 -08:00
Christopher Snowhill
c2278b49be
Remove unused variable from SID decoder
2020-02-13 14:42:57 -08:00
Christopher Snowhill
765cb5e890
Usual Xcode update mess
2020-02-13 01:41:21 -08:00
Christopher Snowhill
0e4694ba67
Updated libsidplayfp to version 2.0.1
2020-02-13 01:29:08 -08:00
Christopher Snowhill
37b75bf6e7
Fix resource leak with VGMStream container parser, and serialize metadata caching from there as well
2019-12-19 17:12:09 -08:00
Christopher Snowhill
8e9f8237e3
Fix potential error with SID decoder
2019-12-05 18:13:52 -08:00
Christopher Snowhill
86681e9726
Implemented support for VGMStream external !tags.m3u metadata playlists
2019-11-23 20:36:57 -08:00
Christopher Snowhill
5422338d58
Now supports reading playlists from remote paths
2019-11-17 14:44:47 -08:00
Christopher Snowhill
fa6c02d3e8
Handle relative redirects without crashing, and fix URLs that require trailing slash on path
2019-11-16 15:25:01 -08:00
Christopher Snowhill
258a88464a
Fix VGM metadata and properties reading
2019-11-08 15:05:21 -08:00
Christopher Snowhill
cb8fb9ce87
Fix VGM parsing so it doesn't hit the other two registered VGM container handlers
2019-11-08 15:04:43 -08:00
Christopher Snowhill
5c85c2a1b9
Fix handling invalid archive paths
2019-11-08 15:03:45 -08:00
Jan Weiß
105b0f26bb
Improve file encoding detection.
2019-10-22 18:19:15 +02:00
Jan Weiß
f94226bcf2
Fix file encoding.
2019-10-22 18:19:15 +02:00
Christopher Snowhill
389a701553
Implemented new VGMStream properties and metadata caching, which keeps file smashing under control, which stops Hardened Runtime from crashing on us
2019-10-18 20:21:27 -07:00
Christopher Snowhill
a1ec4dba40
Updated FFmpeg
2019-10-15 19:15:52 -07:00
Christopher Snowhill
a23085082a
Switch back to lazyusf2, and enable JIT entitlement for it
2019-10-15 14:32:18 -07:00
Christopher Snowhill
fd7ab684c2
Updates for modern Xcode
2019-10-05 00:12:36 -07:00
Christopher Snowhill
b5b4eaf99d
Fix AdPlug fileprovider to handle URL fragments properly.
2019-07-07 00:38:19 -07:00
Christopher Snowhill
c1a45135b3
Remove unnecessary cleanup code that impeded cases where multiple decoders could handle a single file type.
2019-07-07 00:37:56 -07:00
Christopher Snowhill
050eef7225
Updated to latest Xcode
2019-07-02 16:37:17 -07:00
Christopher Snowhill
412a094b94
Updated VGMStream to r1050-2323-g2e1739e6
2019-06-20 20:57:32 -07:00
Chris Moeller
451e508939
Minor automatic project change
2019-01-23 18:26:37 -08:00
Chris Moeller
d1e4abf78c
Updated libopenmpt to version 0.4.2
2019-01-23 18:26:37 -08:00
Chris Moeller
16d0d9f5cc
Fix File source to not remove text after hash marks, as NSURL does that for us when we use the path property.
2019-01-04 18:30:45 -08:00
Christopher Snowhill
eda1c9674a
Add HTTPS scheme to HTTP source plugin.
2018-09-23 16:45:03 -07:00