summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-01-24output/alsa: convert to class, make attributes privateMax Kellermann
2017-01-24output/alsa: make AlsaSetup() an AlsaOutput methodMax Kellermann
2017-01-24output/alsa: move code from AlsaSetup() to AlsaSetupSw()Max Kellermann
2017-01-24output/alsa: move code from AlsaSetup() to AlsaSetupHw()Max Kellermann
2017-01-23lib/upnp/Util: pass single delimiter character to stringToTokens()Max Kellermann
2017-01-23lib/upnp/Util: remove parameter "skipinit", always trueMax Kellermann
2017-01-23lib/upnp/WorkQueue: fix race conditionMax Kellermann
With "ok==false", newly created threads may quit instantly.
2017-01-23lib/upnp: fix bad std::chrono castMax Kellermann
libupnp provides seconds, not whatever time unit is used by std::chrono::steady_clock.
2017-01-23db/simple: drop redundant "virtual"Max Kellermann
2017-01-23db/proxy: drop redundant "virtual"Max Kellermann
2017-01-23db/proxy: make connect errors during startup non-fatalMax Kellermann
2017-01-23db/proxy: improve Connect() error messageMax Kellermann
2017-01-23Main, db/Glue: improve error messagesMax Kellermann
2017-01-23lib/upnp/WorkQueue: disallow copyingMax Kellermann
2017-01-23lib/upnp/WorkQueue: make constructor explicitMax Kellermann
2017-01-23lib/upnp/WorkQueue: use C++11 initializersMax Kellermann
2017-01-23db/proxy: make the base class of LibmpdclientError publicMax Kellermann
If the base class is not accessible, the "catching" the base class won't work. This caused the fatal error: terminate called after throwing an instance of 'LibmpdclientError'
2017-01-23output/Source: reset the ReplayGain serials ion OpenFilter()Max Kellermann
Each close/open cycle resets the Filter's state, because a new Filter instance is being created. That results in the serials (replay_gain_serial and other_replay_gain_serial) being out of sync with the internal ReplayGainFilter state. So instead of initializing those serials once, we need to initialize them each time we create new ReplayGainFilter instances, i.e. in OpenFilter(). https://bugs.musicpd.org/view.php?id=4632
2017-01-20playlist/SoundCloud: eliminate unnecessary casted variableMax Kellermann
2017-01-20pcm/Traits: add "SILENCE" attributeMax Kellermann
2017-01-20pcm/Traits: add specialization for SampleFormat::DSDMax Kellermann
2017-01-19pcm/PcmChannels: silence surround channels when converting from stereoMax Kellermann
Previously, there was no special code to convert stereo to multi-channel. The generic solution for this was to convert to mono, and then copy the result to all channels. That's a pretty bad solution, but at least something which always renders audio. MPD does something, instead of failing. Now that MPD has proper support for multi-channel (by defining the channel order), we can do better than that. It is a (somewhat) common case to play back stereo music on a DAC which can only do multi-channel. The best approach here is to copy the stereo channels to front-left and front-right, and apply the "silence" pattern to all other channels.
2017-01-18DetachedSong: use C++11 initializersMax Kellermann
2017-01-17pcm/SampleFormat: make the two inline functions "constexpr"Max Kellermann
2017-01-17AudioFormat: update ToString() API documentatioMax Kellermann
2017-01-17Audio{Format,Parser}: use shortcuts such as "dsd64" in log messagesMax Kellermann
2017-01-17AudioFormat: replace struct audio_format_string with class StringBuffer, ↵Max Kellermann
return it
2017-01-17util/StringBuffer: new utility classMax Kellermann
2017-01-17AudioFormat: move enum SampleFormat to pcm/SampleFormat.hxxMax Kellermann
2017-01-17AUTHORS, ...: update my email addressMax Kellermann
2017-01-16PlaylistFile: "playlistadd" creates new playlist if it does not exist, as ↵Max Kellermann
documented
2017-01-16CommandLine: update copyright yearMax Kellermann
2017-01-15output/Thread: reconfigure ConvertFilter for its new input AudioFormatMax Kellermann
If the input AudioFormat changes but the out_audio_format doesn't change (e.g. because there is a fixed "format" setting in this "audio_output" section), the ConvertFilter needs to be reconfigured. This didn't happen, resulting in awful static noise after changing songs.
2017-01-15output/Thread: move AudioFormat logging code aroundMax Kellermann
2017-01-15output/Thread: remember the original filter audio format in local variableMax Kellermann
2017-01-15lib/nfs: add more API documentationMax Kellermann
2017-01-15DetachedSong: compare start_time and end_time in IsSame()Max Kellermann
This method is used by DecoderControl::IsCurrentSong(), which is used by the player thread to check whether the current decoder instance can be reused to seek. When switching to another song in the same CUE sheet, previously DetachedSong::IsSame() returned true, and thus the old decoder instance was used for the new song, not considering the new end_time. This led to the old decoder quickly quitting.
2017-01-14input/alsa: set period_size=buffer_size/4Max Kellermann
This way, we have four periods instead of the default of two. With only two periods, we don't get woken up often enough, and we frequently encounter buffer overruns. With four periods, we have more time to breathe, and the buffer overruns magically disappear.
2017-01-14input/alsa: remove the start_threshold settingMax Kellermann
This setting is mostly useless for capture devices. There's no point in configuring it.
2017-01-14input/alsa: dump buffer/period sizesMax Kellermann
2017-01-14input/alsa: enable non-blocking modeSteven O'Brien
2017-01-14input/alsa: handle EAGAINSteven O'Brien
2017-01-14input/alsa: call snd_pcm_start() after snd_pcm_prepare()Max Kellermann
This is necessary because we'll never get woken up again by epoll_wait() after a buffer overrun recovery, unless we start the PCM explicitly before returning to the I/O loop.
2017-01-14input/alsa: improve logging in Recover()Max Kellermann
Copy yet more code from the ALSA output plugin.
2017-01-14input/alsa: check snd_pcm_state() in Recover()Max Kellermann
Copy some good code from the ALSA output plugin.
2017-01-14output/alsa: explicitly mention all snd_pcm_state() enumsMax Kellermann
I want a compiler warning when a new state needs to be considered here.
2017-01-13input/alsa: make two attributes "const"Max Kellermann
2017-01-13input/alsa: clear sockets from within IOThreadMax Kellermann
Fixes assertion failure in implicit destructor.
2017-01-12output/recorder: fix typo in variable nameMax Kellermann
Fixes the dreaded error "Failed to create : No such file or directory". https://bugs.musicpd.org/view.php?id=4625
2017-01-11output/alsa: log DoP modeMax Kellermann