aboutsummaryrefslogtreecommitdiffstats
path: root/src/CrossFade.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-01Copyright year 2015Max Kellermann1-1/+1
2014-08-29CrossFade: pass total_time as SignedSongTime instanceMax Kellermann1-2/+4
2014-01-13copyright year 2014Max Kellermann1-1/+1
2013-11-28include cleanup using iwyuMax Kellermann1-2/+0
2013-10-30CrossFade: eliminate NaN from mixramp_interpolate()Max Kellermann1-4/+4
Use a boolean flag instead.
2013-10-30CrossFade: use negative value for invalid MixRamp overlapMax Kellermann1-5/+12
Avoid NaN to allow -ffast-math.
2013-10-30CrossFade: use negative value for invalid mixramp_delayMax Kellermann1-1/+1
Avoid NaN to allow -ffast-math.
2013-10-29PlayerControl: move attributes to struct CrossFadeSettingsMax Kellermann1-7/+6
2013-10-26CrossFade: reimplement mixramp_interpolate() without strtok()Max Kellermann1-25/+15
Don't require a writable string, and don't modify it.
2013-10-26CrossFade: apply coding styleMax Kellermann1-7/+8
2013-10-26CrossFade: merge "return" statements using "break"Max Kellermann1-2/+4
2013-10-26CrossFade: use nullptr instead of NULLMax Kellermann1-7/+7
2013-10-02Log: new logging library APIMax Kellermann1-7/+11
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-05Tag, ...: move to libtag.aMax Kellermann1-1/+0
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-1/+1
2013-08-03audio_format: convert to C++Max Kellermann1-6/+6
2013-07-30tag: convert to C++Max Kellermann1-1/+1
2013-01-07replay_gain_info, ...: use cmath instead of math.h in C++ modeMax Kellermann1-4/+6
Fixes build problems with mingw32.
2013-01-04crossfade: convert to C++Max Kellermann1-2/+2
2013-01-04buffer, pipe: convert to C++Max Kellermann1-1/+1
2011-10-20crossfade: include cleanupMax Kellermann1-1/+0
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-05-18crossfade: emulate strtok_r() on WIN32 with a functionMax Kellermann1-1/+5
Not a CPP macro. This adds the "unused" attribute to "saveptr", which eliminates one gcc warning.
2010-05-08mixramp: Adjust MixRamp threshold to account for ReplayGain.Tim Phipps1-4/+4
2010-05-02player_thread: move cross-fading to output threadMax Kellermann1-43/+0
Remove cross_fade_apply(), and call pcm_mix() in the output thread, mixing the chunk and chunk->other together.
2010-03-21strtok() is recursive by default on win32.Avuton Olrich1-0/+4
2010-03-21Add support for MixRamp tagsTim Phipps1-9/+85
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-15crossfade: use audio_format_valid() in assertionMax Kellermann1-3/+1
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-03-13all: Update copyright header.Avuton Olrich1-7/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-12crossfade: added missing '&'Jeffrey Middleton1-1/+1
2009-03-12crossfade: copy chunk.audio_format in !NDEBUGMax Kellermann1-0/+10
When the destination chunk was empty in cross_fade_apply(), it had no audio_format attached (an attribute which is only used for assertion in the debug build). cross_fade_apply() should assign it the audio_format of the second chunk (if available), otherwise MPD will crash.
2009-03-03music_pipe: moved struct music_chunk to chunk.hMax Kellermann1-1/+1
2009-02-10crossfade: don't use isCurrentAudioFormat()Max Kellermann1-2/+3
The crossfading code shouldn't depend on the audio output code. Pass the current audio format to cross_fade_calc() and let it compare directly, instead of using isCurrentAudioFormat().
2009-01-07pcm_utils: moved code to pcm_mix.cMax Kellermann1-1/+1
Moved the software mixing code (used by crossfading) to a separate library.
2008-11-02crossfade: copy tagMax Kellermann1-0/+5
If the source chunk has a tag, merge it into the destination chunk. The source chunk gets deleted after that, and this is our last chance to grab the tag.
2008-11-02music_pipe: no CamelCaseMax Kellermann1-8/+8
Rename all variables and struct members.
2008-11-02decoder: replaced music_pipe.audioFormat with dc.out_audio_formatMax Kellermann1-0/+1
.. and rename dc.audioFormat to dc.in_audio_format. The music pipe does not need to know the audio format, and its former "audioFormat" property indicated the format of the most recently added chunk, which might be confusing when you are reading the oldest chunks.
2008-11-02music_pipe: renamed struct output_buffer to struct music_pipeMax Kellermann1-1/+2
.. and rename ob_chunk to struct music_chunk.
2008-10-10audio_format: renamed sampleRate to sample_rateMax Kellermann1-1/+1
The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
2008-10-08don't include os_compat.hMax Kellermann1-0/+3
When there are standardized headers, use these instead of the bloated os_compat.h.
2008-09-29pcm_utils: pass only one buffer size to pcm_mix()Max Kellermann1-3/+17
pcm_mix() might overflow the destination buffer if it is smaller than the second buffer. This is ok because the physical buffer size passed by cross_fade_apply() is always big enough, but clutters pcm_mix() with complicated length checks and contains a dangerous buffer overflow pitfall. Simplify pcm_mix()/pcm_add() and pass only the smaller buffer size; let cross_fade_apply() do the memcpy().
2008-09-07audio_format: converted typedef AudioFormat to struct audio_formatMax Kellermann1-2/+2
Get rid of CamelCase, and don't use a typedef, so we can forward-declare it, and unclutter the include dependencies.
2008-08-26moved code to crossfade.cMax Kellermann1-0/+62
decode.c should be a lot smaller; start by moving all code which handles cross-fading to crossfade.c. Also includes camelCase conversion.