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