On 2012/04/06 12:52, Jurgen Kramer <gtmkra...@xs4all.nl> wrote: > The attached patch fixes playback for DSD-over-USB. Without this patch > MPD uses a frame size of 2 (stereo files) while the actual needed frame > size for the used output sample format is 8 (sample formats S24_P32 and > S32).
No, 8 is the wrong value for in_frame_size. The problem is not a wrong value for in_frame_size, but that in_frame_size is used where this variable is not appropriate. Your patch trades one breakage for another. The right approach would be to realize that two different in_frame_size variables are needed: one for the buffer passed to play(), and another one for the pcm_export result. This checks shift8 twice: > + if (ad->export.shift8) { > + g_warning("Adjusting in_frame_size for DSD-over-USB output\n"); > + ad->in_frame_size = ad->export.shift8 ? 8 : ad->in_frame_size; Why this warning message? Does the user care? ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ Musicpd-dev-team mailing list Musicpd-dev-team@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team