Christopher Snowhill
934589ebdd
FFmpeg: Enable AIFF support
...
The system AIFF reader seems unable to read some really old files, so
enable FFmpeg to do so instead.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-14 21:09:24 -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
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
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
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
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