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
f4f4f80f64
Restart playback on device or output format change
...
Now the output is restarted on the current file at the current position
if the output format has changed. This should resolve the issue finally.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 22:44:56 -08:00
Christopher Snowhill
1ef8df675f
Cog Audio: Implement support for channel config
...
This implements the basic output and mixing support for channel config
bits, optionally set by the input plugin.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 01:10:05 -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
0131f7c925
Revert "Core Audio output: Rewrote major portions"
...
This reverts commit 637ea4efe1
.
2022-02-05 04:14:03 -08:00
Christopher Snowhill
637ea4efe1
Core Audio output: Rewrote major portions
...
After all this rewriting, down or upmixing the audio is now handled with
the lowest latency possible, meaning that toggling the HRIR option now
takes effect immediately.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-05 03:45:02 -08:00
Christopher Snowhill
002be384ff
Cog Audio: Terminate queueing when stopping
...
The end of input queueing, which can go nuts when there are a lot of
short files, should be terminated when the user asks the player to stop.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-01 22:48:25 -08:00
Christopher Snowhill
9e5a70c9ae
Cog Audio: Dealt with a major retain cycle leak
...
This seals up a major memory leak of the playback state whenever a chain
is released on stop or on manual track change. CogAudioMulti was
retaining the input node due to its listeners, and InputNode was not
releasing the listeners when asked to stop running. This is fixed now.
Fixes #221
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-29 21:31:19 -08:00
Christopher Snowhill
85fd3836c0
Debug logging: Added logging of playback and tags
...
Added a logging method that indicates starting playback of a given URL,
and added a debug build only logging of every metadata load event.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-29 16:34:43 -08:00
Christopher Snowhill
26e0e0cead
HDCD Decoding: Add HDCD indicator
2022-01-20 23:53:45 -08:00
Christopher Snowhill
7a0c1d230e
Volume control: Make preamp optional, defaulting to a limit of 100% volume
2022-01-17 22:41:26 -08:00
Christopher Snowhill
83ad969d9b
Equalizer: Add option for presets to track the music genre tags
2022-01-17 20:43:08 -08:00
Christopher Snowhill
71b2f7a4f2
Implement graphic equalizer
2022-01-16 07:32:47 -08:00
Christopher Snowhill
fbef034903
Cog Audio: Further overhaul output buffering and track queue code
2022-01-15 02:09:26 -08:00
Christopher Snowhill
5ab728b205
Cog Audio: Overhaul output buffering yet again, adding an extra buffer stage between the converter and the output thread
2022-01-14 22:46:41 -08:00
Christopher Snowhill
d24a01a637
Implemented basic embedded CueSheet support
2022-01-14 16:46:35 -08:00
Christopher Snowhill
2e164d3fc8
Cog Audio: Reduce glitching on track change by invoking a delegate method that occurs when the track finishes outputting without waiting for it
2022-01-14 11:16:35 -08:00
Christopher Snowhill
5aa3f7dd0a
Cog Audio: Properly support seeking within the file that appears to be playing, even if it has already finished decoding
2022-01-14 00:29:02 -08:00
Christopher Snowhill
083dbbf18b
Cog Audio: Also commit synchronization delay on new track playback
2022-01-13 23:54:16 -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
2633e713a3
Cog Audio: Remove seek mess from previous commit
2022-01-12 16:03:49 -08:00
Christopher Snowhill
f8e3b0e1ee
Core Audio output: Some more minor changes
2022-01-11 22:06:41 -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
841481599e
Audio Player: Minor change
2021-12-28 21:04:46 -08:00
Christopher Snowhill
476dd913b2
Audio player: Attempt to fix queue issues. There are still remaining issues if a single short track queues repeatedly and the user changes tracks manually.
2021-12-28 15:40:26 -08:00
Christopher Snowhill
ad3058c4f3
Audio Queue: Better handle a lot of short files playing in a row, so files don't get skipped, and so the player doesn't get overburdened starting new files
2021-12-27 23:21:48 -08:00
Christopher Snowhill
917b7457b6
Made resume playback on startup so that seeking operation is entirely atomic with starting playback, so the new seeking behavior doesn't have the potential to crash the player
2021-12-26 04:35:54 -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
44b813d2bf
Audio queue: Better handle queues of lots of short files
2021-12-11 00:22:54 -08:00
Christopher Snowhill
13bd399b31
Clean up most warnings and update some dependencies
2021-04-29 18:16:24 -07:00
Dzmitry Neviadomski
9840d87127
Convert CogStatus enum to NS_ENUM
2021-02-07 00:22:19 +03:00
Christopher Snowhill
7bb116a33b
Added a fix so that a rapid succession of sub-10 second files do not get queued up until the player eventually crashes.
2016-09-17 20:59:58 -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
b50ed67591
Fixed Repeat None correctly this time
2015-02-10 21:42:36 -08:00
Chris Moeller
759aeab4fb
Implemented pause on startup
2013-10-12 19:16:47 -07:00
Chris Moeller
26cf87a62e
Oops, ChainQueue items should not be removed twice
2013-10-12 16:03:59 -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
3e057adf56
Replaced every instance of NSEnumerator with for/in loops
2013-10-10 01:44:45 -07:00
Chris Moeller
cdafef8a9c
Fixed handling ReplayGain info on automatic track changes
2013-10-07 13:03:34 -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
vspader
288c5cbee5
Misc leaks fixes.
2009-09-01 21:14:07 -07:00
vspader
4bd8f6142c
Moved growl/scrobbler notifications into PlaybackEventController.
2009-03-05 09:03:30 -08:00
vspader
87c0109773
Corrected logic for resetting streams.
2009-02-28 22:02:26 -08:00
vspader
b5b5b45eda
Fixed thread leak when next streams are reset.
2009-02-28 19:14:52 -08:00
vspader
384911beb6
Playback continues as expected when you moved a song that was at the end of the playlist.
2009-02-28 11:11:22 -08:00
vspader
85630c836a
Fixed bug when you changed the playlist without having a next song queued up.
2009-02-28 11:01:49 -08:00
vspader
fda5d50712
If you change the playlist near the end of a song, it should now play the correct song.
2009-02-28 10:57:21 -08:00
vspader
3ab720427e
Made stop update synchronous since there were issues when moving on to the next song.
2008-02-22 03:46:04 +00:00