{"push_id":1215741472,"size":30,"distinct_size":30,"ref":"refs/heads/master","head":"87b79ffe4635bea343867ac06daefc3ad3e3b272","before":"0aeb5b41bb3e330201183469b1d1c5a0df4e913b","commits":[{"sha":"fd83370ebca8fa580f81f07eca9c4256bcd83bf0","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: SDL: use SDL 2.0 Audio API instead of 1.2 compatibility functions","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/fd83370ebca8fa580f81f07eca9c4256bcd83bf0"},{"sha":"6b6be13a6f04292dec0b15ec564dcc178593c2be","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: SDL: move audio callback code from static Synthesise() function to new member function AudioCallback()","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/6b6be13a6f04292dec0b15ec564dcc178593c2be"},{"sha":"dca03247459f53de8bd677bcc12515e6676d3e99","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: Android: refactor static PlayedCallback() function to lambda","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/dca03247459f53de8bd677bcc12515e6676d3e99"},{"sha":"321761f9fe32ad135e5b980b36ac10623517ea0e","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: make Enqueue() and Synthesise() private","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/321761f9fe32ad135e5b980b36ac10623517ea0e"},{"sha":"d0b16735b409054902ec0cca4e893d673d4f2c90","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio: New helper function UpmixMonoPCM()\n\nIntroduce new header file \"AudioAlgorithms.hpp\" with helper function\nUpmixMonoPCM() for upmixing mono PCM stream to a given number of\nchannels","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/d0b16735b409054902ec0cca4e893d673d4f2c90"},{"sha":"cd9d82b4d7f25abcd1fe3415f17f960ed755a1e8","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: SDL: perform stereo upmixing for SDL using UpmixMonoPCM() in PCMPlayer::Synthesise()\n\nUse new helper function UpmixMonoPCM() in PCMPlayer::Synthesise to upmix\nsynthesized mono samples to stereo, instead of having the code in the\nSDL Audio callback function.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/cd9d82b4d7f25abcd1fe3415f17f960ed755a1e8"},{"sha":"476a1687e8e934b815ad5551ca491f64fec7d81f","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: SDL: request mono in SDL_OpenAudioDevice(), but upmix when necessary\n\nRequest a mono audio device, but allow SDL to ignore it when necessary,\nusing the SDL_AUDIO_ALLOW_CHANNELS_CHANGE option for\nSDL_OpenAudioDevice().","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/476a1687e8e934b815ad5551ca491f64fec7d81f"},{"sha":"9857357975cf6aca2d73def70d58b8f95a4e606c","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMSynthesiser: remove untrue comment about thread-safety for Synthesise()\n\nNone of the PCMPlayer implementations calls PCMSynthesiser::Synthesise()\non the same PCMSynthesiser instance from multiple threads.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/9857357975cf6aca2d73def70d58b8f95a4e606c"},{"sha":"1a9e297e023e96daeeece661e31cf52a33291fb1","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: add forgotten braces for else block","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/1a9e297e023e96daeeece661e31cf52a33291fb1"},{"sha":"b44791d65b38d6133a59c85ad9e5e36635d1fc4a","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: ensure that the ALSA handle is always closed in PCMPlayer::Stop()","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/b44791d65b38d6133a59c85ad9e5e36635d1fc4a"},{"sha":"19c2a1ab0891cb4aa460d3034fb2c8fbc246a29c","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: revise event handling\n\nStore stream_descriptor objects in two std::list containers (those for\nreading and writing separated), instead of\nstd::unique_ptr<std::unique_ptr[]>. And move code for starting and\nstopping event handling to new helper functions StartEventHandling() and\nStopEventHandling().","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/19c2a1ab0891cb4aa460d3034fb2c8fbc246a29c"},{"sha":"5d6ac79d8bd2c491913fb6eef2896e62f41a1e7f","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: handle stereo-only devices\n\nSome ALSA devices (including most \"hw\" devices and DMIX with its default\nconfiguration) cannot handle mono. If snd_pcm_set_params() fails for\nmono, retry with stereo. In this case, perform stereo upmixing of\nsynthesized mono samples.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/5d6ac79d8bd2c491913fb6eef2896e62f41a1e7f"},{"sha":"04dfce494561c3407530598de8175ee531129596","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: move error recovery code to new helper function TryRecoverFromError()","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/04dfce494561c3407530598de8175ee531129596"},{"sha":"ff8a29076f8e823e52e7948a04605a27e5e1aeb0","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: new helper function WriteFrames()\n\nIntroduce and use new helper function WriteFrames() to write ALSA PCM\nframes, with improved error handling, and use it instead of calling\nsnd_pcm_writei() directly.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/ff8a29076f8e823e52e7948a04605a27e5e1aeb0"},{"sha":"917c166580ef258f8d24bae739784008215503b0","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: Stop event handling after unrecoverable error in OnEvent()","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/917c166580ef258f8d24bae739784008215503b0"},{"sha":"036f372c85d9d9325fdcd7ee1d72967e40b4ddd5","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/PCMPlayer: ALSA: rewrite restart code\n\nHandle the case when the PCMPlayer is already initialised, and Start()\nis called again (to change the synthesiser) better. There is no need to\ndrop any frames. Instead, recover from buffer underrun if necessary. And\nmake sure that event handling is started.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/036f372c85d9d9325fdcd7ee1d72967e40b4ddd5"},{"sha":"ad351660c468101bba9f350bb740630d3ccf13a2","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio: Refactoring: introduce new interface \"PCMDataSource\"\n\nPCMPlayer now reads its PCM data from a PCMDataSource, instead of a\nPCMSynthesiser (with the exception of the Android implementation, which\ndoes not support the new interface yet). A PCMDataSource is a more\ncomplex interface, specifies its supported sample rate and enianness,\nand delivers data which can have an end. PCMSynthesiser is still the\nbase class for synthesisers, and is now an abstract subclass of\nPCMDataSource.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/ad351660c468101bba9f350bb740630d3ccf13a2"},{"sha":"aca76da10d45cb251c57ca08a4ef060ecd08ac53","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio: Refactoring: move PCMPlayer implementations to individual classes\n\nMake PCMPlayer an abstract base class, and move the audio platform\nspecific code to new classes AndroidPCMPlayer, ALSAPCMPlayer and\nSDLPCMPlayer. And introduce helper function\nPCMPlayerFactory::CreateInstance() to build a PCMPlayer instance.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/aca76da10d45cb251c57ca08a4ef060ecd08ac53"},{"sha":"b1dd6195ff8cbcb4279be0953e33348d34cdf441","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"Audio/ALSAPCMPlayer: new function SetParameters() to replace snd_pcm_set_params()\n\nThis SetParameters() function does almost the same what alsa-lib's\nsnd_pcm_set_params() does, but having our own function gives us a few\nadvantages:\n* snd_pcm_set_params() is not implemented in SALSA.\n* enabling soft resampling can be made optional - just try to enable it\nusing snd_pcm_hw_params_set_rate_resample(), but just proceed if it\nfails.\n* mono configuration, with multichannel output as fallback if the output\ndevice does not support mono, can be requested with a simple\nsnd_pcm_hw_params_set_channels_near() call.","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/b1dd6195ff8cbcb4279be0953e33348d34cdf441"},{"sha":"5498aee0bfd3dde9fe5515e6a6472dbad28cb9b3","author":{"name":"Felix Hädicke","email":"8a5cacc2f9b177afdac9b565a95b03e7c8c39598@web.de"},"message":"kobo: add USB sound support for Mini OTG kernel","distinct":true,"url":"https://api.github.com/repos/MaxKellermann/XCSoar/commits/5498aee0bfd3dde9fe5515e6a6472dbad28cb9b3"}]}
{"actor":{"display_login":"MaxKellermann"}}