Commit Graph

676 Commits (cad09b891282d27bbd963198fbdebf9ef4129c57)

Author SHA1 Message Date
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