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

Reply via email to