Commit Graph

58 Commits (b927f4c02b544385e5d2b10fcc362b0ede8af635)

Author SHA1 Message Date
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 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 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 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 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 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 684951bdc0 Change a bunch of NSArray declarations to const collection literals 2022-01-18 18:12:57 -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 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 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 614517f813 FFmpeg input: Disable AudioToolbox codecs on macOS 10.14.x and older 2022-01-07 19:07:07 -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 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 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 bb1f9dcb33 CoreAudio / FFmpeg: Swap decoder priorities so FFmpeg takes priority over Core Audio 2021-12-21 22:26:50 -08:00
Christopher Snowhill fdae7eec21 File info: Implemented support for Album Artist and Codec fields 2021-10-01 19:18:42 -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
Dzmitry Neviadomski 70a22e9611 Fix some more warnings. 2021-01-27 05:12:07 +03:00
Christopher Snowhill 10f2ee1461 Added new extensions. 2017-12-16 19:58:49 -08:00
Christopher Snowhill 67332f4982 Last minute fix for files with multiple streams, which includes APE files with attached pictures. 2017-05-20 18:29:27 -07:00
Christopher Snowhill 2771809af6 Update FFmpeg plugin with some minor changes. 2016-12-03 21:40:53 -08:00
Chris Moeller ff46687597 Updated VGMStream with FFmpeg support, and moved the supported formats over to that plug-in. 2016-07-16 23:03:44 -07:00
Chris Moeller aaf516fb00 Further improved the FFmpeg plug-in, including cleaning up after a memory leak. 2016-07-15 21:41:23 -07:00
Chris Moeller b89c68a768 Updated FFmpeg to version 3.1.1, and enabled assembly optimizations. 2016-07-15 09:26:18 -07:00
Chris Moeller 03b825ced3 Hopefully fix the last of the Automatic Reference Counting issues that remained. 2016-06-19 12:57:18 -07:00
Chris Moeller af7485f26a Fix newly imported FFMPEG, so it actually uses and links to the new libraries. 2016-05-06 23:35:04 -07:00
Chris Moeller 8308f30d5f Fixed FFMPEG by replacing it with a proper build, should be faster now, too. 2016-05-06 23:16:12 -07:00
Chris Moeller 75c565da0d Fixed HTTP streaming FFMPEG supported formats 2014-07-04 01:07:55 -07:00
Chris Moeller d8817e8f3b Fixed FFMPEG input hitting the end of the stream with samples already in the buffer causing it to live lock afterward 2014-04-26 15:38:45 -07:00
Chris Moeller 104e4c140f Fixed seeking to the end of files with FFMPEG plug-in 2014-03-26 02:27:51 -07:00
Chris Moeller 27fc345488 Fixed MP3 decoding hanging at the end of the file 2014-03-12 20:39:01 -07:00
Chris Moeller 24a3573503 Updated FFMPEG, and enabled some new formats, including Atrac3+ 2014-03-09 21:16:37 -07:00
Chris Moeller 06b1058b47 YOU DEATH IST KNoW ME NoW 2014-02-05 17:49:56 -08:00
Chris Moeller 092fdda05a Fixed FFMPEG seeking 2013-11-14 23:28:02 -08:00
Chris Moeller 63fba5930e Implemented support for multiple decoders per file name extension, with a floating point priority control per interface. In the event that more than one input is registered to a given extension, and we match that extension, it will be passed off to an instance of the multi-decoder wrapper, which will try opening the file with all of the decoders in order of priority, until either one of them accepts it, or all of them have failed. This paves the way for adding a VGMSTREAM input, so I can give it a very low priority, since it has several formats that are verified by file name extension only. All current inputs have been given a priority of 1.0, except for CoreAudio, which was given a priority of 0.5, because it contains an MP3 and AC3 decoders that I'd rather not use if I don't have to. 2013-10-21 10:54:11 -07:00
Chris Moeller e5a648578b mamburu: Logging improved, no more excessive logging in release builds 2013-10-11 05:03:55 -07:00
Chris Moeller 4d7b96107b Added TrueAudio support 2013-10-10 23:51:19 -07:00
Chris Moeller 570fd380f8 Added a whole bunch of formats for WAV support 2013-10-10 23:25:26 -07:00
Chris Moeller 21b78fde9f Added DCA/DTS/DTS-HD support 2013-10-10 22:13:27 -07:00
Chris Moeller de467b38d6 Added AC3 decoder to FFMPEG plugin 2013-10-10 21:53:28 -07:00
Chris Moeller fd9d9a7065 Fixed several bugs with decoding audio 2013-10-10 21:52:32 -07:00