Hi Max, 2009/3/23 Max Kellermann <m...@duempel.org>: > On 2009/03/22 11:43, Kodest <kod...@gmail.com> wrote: >> Just tell me when i can check the wakeups again :) > > Submit a bug report, we'll add it to the 0.15 roadmap.
http://musicpd.org/mantis/view.php?id=2183 >> Is there any docs on how the output mechanism works? I would be >> interested in how the audio chunks travel among the different >> threads at the output subsystem, but the code is quite >> complex. Maybe I can help if i understand this one. (Only maybe >> because my time is really limited nowadays.) > > Yes, I've been missing your regular contributions in the past months > ;) > > Basically: the decoder thread feeds music_chunk objects into a > music_pipe. The player thread takes them from there, and appends them > to the output's music_pipe instance. The output threads now consume > them. When all output threads have consumed a music_chunk, it is > freed (returned to the music_buffer). > > The frequent wakeups (supposedly) come from the threads waiting for > more chunks, or waiting for enough room in the pipe, or waiting for > free chunks in the music_buffer. They're just using g_usleep(10ms) to > synchronize, because I havn't had time to think about the proper > solution yet (using GCond or struct notify). > > For most setups (small buffers, low latency), the > music_pipe/chunk/buffer code is more efficient than the old method > (fully synchronous buffer passing), but for your setup, it's worse. > We will optimize MPD for all possible use cases. I tried with default sized alsa buffer (period_size=1024; buffer_size=8192). I get the same amount of wakeups caused by mpd (~950 per sec). Only the number of interrupts changed to 50 per sec from <10. Btw low latency can be achieved through large buffers as well; this could be useful reading: http://0pointer.de/blog/projects/pulse-glitch-free.html > I believe it'll take some time to fully understand that code, so if > you have little time, I promise to fix it this week. Thanks for the info, I will look at that code too. Regards, Kodest ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Musicpd-dev-team mailing list Musicpd-dev-team@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team