Commit Graph

204 Commits (a217bbec1e1bd5b35269703549fa52e59e1c878f)

Author SHA1 Message Date
Christopher Snowhill af6677cf34 Cog Audio: Keep track of last resampler quality used so we don't reinitialize when not necessary, and also keep track of DSD decimated sample rate separately, so the input format remains unmodified 2022-01-14 11:18:50 -08:00
Christopher Snowhill 3ce3edde88 Cog Audio: Fix track end extrapolator used by resampler 2022-01-14 07:39:55 -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 903b457a28 Cog Audio: Make it possible to play obscene sample rate files without major failures 2022-01-14 02:00:32 -08:00
Christopher Snowhill c8d2864862 Cog Audio: Enhance playback queue handler, so it always halts buffering when there are at least 30 seconds worth of buffers filled, possibly spanning multiple files. Also improve the chain reset function so that playlist changes and playback order control reset the queue properly when the queue refill function is currently entered in another thread. 2022-01-13 23:05:32 -08:00
Christopher Snowhill 7cc89c9f92 Cog Audio: Enhance track end extrapolator so it will always have a reasonable amount of buffered data for extrapolation 2022-01-13 23:03:53 -08:00
Christopher Snowhill 92d29e7acf Cog Audio: Now preserves already resampled output when switching output formats 2022-01-13 19:43:18 -08:00
Christopher Snowhill 73348b1616 Cog Audio: Implement play position skip ahead when output format changes, based on how much converter output is being discarded 2022-01-12 23:17:07 -08:00
Christopher Snowhill d1b519d59d Cog Audio: Only declare end of stream on read when previous node has declared end of stream and the buffer has actually run empty. This prevents the case where the buffer may terminate early due to the read pointer hitting the end of the ring buffer and wrapping. 2022-01-12 23:15:23 -08:00
Christopher Snowhill ec7ac74fcd Cog Audio: Fix input chain to reset its buffers when seeking properly 2022-01-12 23:13:49 -08:00
Christopher Snowhill cc134ce293 Cog Audio: Converter node actually pauses when it is being reconfigured, and resets its buffer when the output format is changed 2022-01-12 23:13:00 -08:00
Christopher Snowhill b0f5a37e85 Cog Audio: Only proceed to the next track when the current track has actually finished 2022-01-12 21:53:58 -08:00
Christopher Snowhill 5fef62dd03 Cog Audio: Implemented device output and input file format changing support 2022-01-12 21:31:22 -08:00
Christopher Snowhill 9feaffc92d Cog Audio: Made RetroArch resampler safer 2022-01-12 18:45:43 -08:00
Christopher Snowhill f1d70aaa54 Cog Audio: Add explanatory comment to source code 2022-01-12 03:36:27 -08:00
Christopher Snowhill 84d445cffe Cog Audio: Fix converter so that seeking on startup playback position resume works properly 2022-01-12 03:01:55 -08:00
Christopher Snowhill f8e3b0e1ee Core Audio output: Some more minor changes 2022-01-11 22:06:41 -08:00
Christopher Snowhill 557e0bd399 Core Audio output: Fix so it stops properly 2022-01-11 20:38:17 -08:00
Christopher Snowhill 91c3feac2e Cog Audio converter: Fix handling signed versus unsigned for 8 bit samples 2022-01-11 19:37:47 -08:00
Christopher Snowhill f44e4e793b Cog Audio converter: Fix end of track flush and extrapolation 2022-01-11 19:37:17 -08:00
Christopher Snowhill ed882e25cb Cog Audio: Resampler now extrapolates into latency padding for better gapless playback 2022-01-11 18:19:30 -08:00
Christopher Snowhill ee05fe9e44 Core Audio output: Add sanity checking for supported formats, and support 64 bit float input data, in case anything actually uses that 2022-01-11 17:09:06 -08:00
Christopher Snowhill 72210c67e4 Replaced AudioQueue output with AUAudioUnit 2022-01-11 07:06:40 -08:00
Christopher Snowhill c4c9a741ef Replaced AudioToolbox converter process with homebrew solution, using the RetroArch sinc resampler 2022-01-11 04:09:19 -08:00
Christopher Snowhill dfe92ffedc Audio Player: Fix so ReplayGain isn't reset on seek 2021-12-28 21:05:25 -08:00
Christopher Snowhill c1c21ec84f Hopefully fix glitching on seeking 2021-12-28 16:04:16 -08:00
Christopher Snowhill ba3746fcff Remove blank line 2021-12-28 15:40:53 -08:00
Christopher Snowhill 38c530043d Output converter: Add more upmixing modes 2021-12-28 15:39:23 -08:00
Christopher Snowhill b13235ec5f Fix 6.1 stereo downmix mapping 2021-12-28 00:10:44 -08:00
Christopher Snowhill 258a56a276 Audio Output: Implement more upmixing modes, and correct some upmixing behavior 2021-12-28 00:09:57 -08:00
Christopher Snowhill 25a43a9083 Audio Output: Fix converter to always emit trailing samples on end of track 2021-12-27 17:04:16 -08:00
Christopher Snowhill 8435416cd7 Core Audio output: Default device setting now tracks system device changes, and output assigns a speaker mapping depending on the channel count 2021-12-26 21:27:26 -08:00
Christopher Snowhill 1cc34ea7d4 Audio Output: Made converter cleanup atomic, to wait on any threads that are still running 2021-12-26 04:34:33 -08:00
Christopher Snowhill dfeca7aa97 Seeking now takes the true nuclear approach to output, and should no longer have glitches 2021-12-26 02:01:02 -08:00
Christopher Snowhill d22ee14a36 Audio Output: Take a more nuclear approach to output resetting when seeking 2021-12-25 23:41:45 -08:00
Christopher Snowhill 1278b64afd Audio Output: Fixed converter so it won't loop endlessly when it either reaches the end of a stream or is otherwise supposed to terminate 2021-12-25 22:47:17 -08:00
Christopher Snowhill 5246731189 Core Audio: Overhauled audio output to use AudioQueue instead of AudioUnit, fixed downmixing to mono, and implemented upmixing mono or other formats to more channels if the device requests them 2021-12-25 22:32:43 -08:00
Christopher Snowhill 9c9d71cd9c Overhaul CoreAudio output code: Downmix properly from 8 channels, redo converter process, and no longer crash when forced to output to a low quality device. Switchover to stereo from mono isn't perfect, however. 2021-12-25 15:02:13 -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 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
Dzmitry Neviadomski 70a22e9611 Fix some more warnings. 2021-01-27 05:12:07 +03:00
Chris Moeller 17272ce43c Clean up lots of warnings and minor issues. 2016-06-29 22:10:29 -07:00
Chris Moeller 0e3644177e Updated everything else to ARC, and plugged a release cycle. 2016-05-05 13:05:39 -07:00
Chris Moeller 06d0f1834c Added slight sleep delay to retry cycle of input decoder chain 2015-08-02 00:18:22 -07:00
Chris Moeller f55eb1d3bf Added a silence decoder, and fall back all decoder open failures on one second of silence 2015-02-08 18:15:02 -08:00
Chris Moeller 9d5a1fc32e Handled FLAC seeking to the end of file, and stopping on seek errors in general 2014-03-26 02:46:36 -07:00
Chris Moeller 755147b48a Through a bit of ugliness and interface exposure, the InputNode will now pause the OutputNode while it is making the decoder seek, which prevents cases of the output continuing to run for seconds at a time during a slow seek operation by decoders such as HighlyComplete 2013-10-20 22:04:09 -07:00
Chris Moeller 5b13ee3f97 Fixed Ogg chained streams which I broke with the previous commit 2013-10-18 05:56:41 -07:00
Chris Moeller 8c80981827 Minor changes that may or may not have any impact on gaplessness 2013-10-18 05:33:38 -07:00
Chris Moeller b9ce8462c4 Corrected gaplessness with my new converter setup 2013-10-18 05:33:20 -07:00
Chris Moeller a52c54a12c Initialize some pointers properly, and redesign to reallocate the converter buffer instead of freeing it every time 2013-10-13 05:14:57 -07:00
Chris Moeller c088011fd5 mamburu: Some more fixes 2013-10-12 14:01:21 -07:00
Chris Moeller 1b818bcaa7 mamburu: Fixed InputNode's thread not being stopped at all 2013-10-12 13:59:34 -07:00
Chris Moeller 56848daad6 mamburu: Fixed crashes when seeking near the end of stream 2013-10-12 13:52:58 -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 c29583ec42 Fixed ConverterNode listener 2013-10-10 20:02:02 -07:00
Chris Moeller bbb5549873 Added MPEG Audio support to FFMPEG plugin, which also supports proper seeking in VBR files; Fixed decoding of files which contain multiple streams 2013-10-08 23:57:58 -07:00
Chris Moeller 1123dc6b91 Whoops, forgot to remove the volume scaling option observer when cleaning up ConverterNode 2013-10-07 20:21:34 -07:00
Chris Moeller cdafef8a9c Fixed handling ReplayGain info on automatic track changes 2013-10-07 13:03:34 -07:00
Chris Moeller 15c545b10d Fixed input to float conversion and made it mandatory, so I could move volume scaling to the converter node 2013-10-07 03:59:04 -07:00
Chris Moeller 8aa01894ee Added downmixing of surround for stereo output devices 2013-10-07 00:24:26 -07:00
Chris Moeller 74b6188772 Implemented floating point sample format support into CogAudio and all relevant plug-ins 2013-10-05 14:15:09 -07:00
Chris Moeller ec0e45381e Cleaned up most of the warnings, eliminated use of deprecated APIs, and fixed the hotkeys crashing. 2013-10-03 01:00:58 -07:00
Chris Moeller 4c0cf34250 More ReplayGain support, now with metadata handling, but only if the metadata is already loaded 2013-10-02 02:30:04 -07:00
Chris Moeller 6ea103b1c3 Implemented ReplayGain support, so far only in the HighlyComplete component. 2013-10-01 23:00:16 -07:00
vspader bf7b2c0a2b Added timeout and chillout logic to the HTTP source so it doesn't freak out when there's no data available. 2009-03-06 21:58:50 -08:00
vspader c78a553532 Bug fix for cue sheet changes. 2008-05-01 23:34:23 +00:00
areff 567711e85e Fixed Trac bug 65: Doesn't show correct position after 203:50 mins - caused by an unsigned long overflow. 2008-02-18 11:37:33 +00:00
vspader 03b0abb92f Fixed memory leak in previous commit caused by anal retentive retention. 2008-02-16 02:52:49 +00:00
vspader a4eb42eab0 Fixed crash, and in doing so introduced a huge memory leak!
Added patch from Eric Hanneken that improves shuffle.
2008-02-16 02:46:19 +00:00
vspader 5715522470 Moved to frame-based reading/seeking instead of byte/second based. Some formats have still not been updated and are broken.
Added icons for other formats.
2007-11-24 20:16:27 +00:00
vspader 678d406879 Bug fix for flac files. 2007-11-04 03:08:41 +00:00
vspader 5ff84158cc Made playlist/cuesheet encoding a little more robust (Vasfed). 2007-10-20 15:08:06 +00:00
vspader 2e44b9833e Fixed some synchronization problems. 2007-10-20 03:24:27 +00:00
vspader f1b9141f4b Added mime type support. 2007-10-14 18:12:15 +00:00
vspader c536ea06a5 Removed useless PropertiesReader classes.
PluginController now uses the decoder if a properties reader class is not found.
PropertiesReaders should still be created if performance can be improved if code is only reading properties.
2007-10-14 17:31:20 +00:00
vspader 97a278a143 Cleaned up memory leaks. 2007-10-13 07:09:46 +00:00
vspader b51d8aedb5 Added metadata reading to cue sheets. 2007-10-13 01:07:19 +00:00
vspader 139bab5e0e Fixed up streaming a bit.
Removed debugging code for http source. Was that in 0.06? Whoops.
2007-10-12 02:55:59 +00:00
vspader b57bcc121c Added support for gapless multitrack files.
Modified cue sheet plugin to use it.
2007-10-11 02:08:29 +00:00
vspader 0e2da5efc7 Cleaned up converter. Added Media Keys support for apple's new multimedia keyboard (has not been tested). 2007-10-03 22:26:39 +00:00
vspader 5fd24bd88b Fixed ConverterNode.m file. 2007-10-03 20:24:14 +00:00
vspader 5ad2728d3c Moved converter to a seperate node again. 2007-10-03 20:23:14 +00:00
vspader daba91b462 Removed debugging messages. 2007-07-11 01:20:32 +00:00
vspader a2b9db5f58 Fixed bug where dialogs would lose focus when the dock icon is clicked.
Fixed bug where playback would not resume when seeking to the end of a file.
Fixed bug where seek bar is enabled on launch.
2007-07-05 23:08:10 +00:00
vspader 88d26d3461 Fixed some seeking bugs. 2007-05-26 22:13:11 +00:00
vspader b653133695 Added debug message for when output buffer runs dry. 2007-05-26 12:44:01 +00:00
vspader 0f7f8f2750 A fix to try to stop the buffer from running dry when seeking. 2007-05-26 12:42:00 +00:00
vspader 5f7215e5e7 Fixed overflow error. 2007-05-22 23:37:22 +00:00
vspader 4e1f598ac4 Fix for short audio files. 2007-05-16 23:07:00 +00:00
vspader 1eda6c0e7d Removed debugging messages. 2007-05-16 01:31:04 +00:00
vspader a18ab13d58 Fixed up shorten decoder. 2007-05-16 01:30:28 +00:00
vspader 79934e0607 Fix for some playback issues (low frequency files). 2007-05-16 01:06:23 +00:00
vspader bbba06e4b2 Fixed bug that caused problems when doing sample rate conversion. 2007-05-10 23:19:56 +00:00
vspader 77c7819dd6 Added some error messages that should hopefully fix some initial stuttering issues. 2007-03-19 00:19:47 +00:00
vspader ce08d6d4da Doubled the buffer size. Since the converter and input are now merged, a larger buffer is a good thing (tm). 2007-03-04 16:00:26 +00:00
vspader d5c777f7e8 Fix crash when input errors. 2007-03-04 00:59:40 +00:00
vspader c810d2f492 Muleiple vorbis bitstreams in one file for streaming. Bitstreams can be different formats. (!) 2007-03-03 22:55:26 +00:00
vspader aafb021a80 Gapless playback fixes. 2007-03-03 21:13:25 +00:00
vspader 1e16835c8c Fixed up converter/inputnode relationship. 2007-03-03 18:25:10 +00:00
vspader 1aead1bf0d Merged decoder and converter threads to facilitate midstream format changing. 2007-03-03 17:19:37 +00:00
vspader 116e78c3ed Removed SourceNode, since its dumb. 2007-03-03 00:41:19 +00:00
vspader 934840ace5 Added source plugin support. Things are incredibly broken. Besides Ogg Vorbis. That should still work. 2007-03-02 01:36:52 +00:00
vspader 927b65a4a5 Merged with cog-audio-framework branch. Cog now uses plugins. 2007-02-24 20:36:27 +00:00