Re: [Musicpd-dev-team] [PATCH/RFC] Fix DSD-over-USB playback

2012-04-18 Thread Max Kellermann
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


Re: [Musicpd-dev-team] [PATCH] Add support for DSF files to DSDIFF decoder

2012-04-18 Thread Max Kellermann
On 2012/04/14 17:05, Jurgen Kramer gtmkra...@xs4all.nl wrote:
 Attached patch adds support for DSF files to the DSDIFF decoder. It can
 be used in conjunction with DSD2PCM and DSD-over-USB.

This looks like this supports a different file format and should live
in another decoder plugin.  Is there an advantage in implementing both
formats in one plugin?

I get build errors:

src/decoder/dsdiff_decoder_plugin.c: In function 'dsdiff_read_metadata':
src/decoder/dsdiff_decoder_plugin.c:376:2: error: format '%u' expects argument 
of type 'unsigned int', but argument 4 has type 'goffset' [-Werror=format]
src/decoder/dsdiff_decoder_plugin.c:357:11: error: unused variable 'samplecnt' 
[-Werror=unused-variable]
src/decoder/dsdiff_decoder_plugin.c:330:11: error: unused variable 
'metadata_offset' [-Werror=unused-variable]
src/decoder/dsdiff_decoder_plugin.c:327:11: error: unused variable 'file_size' 
[-Werror=unused-variable]

--
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


Re: [Musicpd-dev-team] [PATCH]

2012-04-18 Thread Max Kellermann
On 2012/04/14 17:07, Jurgen Kramer gtmkra...@xs4all.nl wrote:
 Patch to update doc/user.xml to reflect added support for DSF
 files to the dsdiff decoder.

Not merging because the DSF patch hasn't been merged yet (see my
question in that thread).  Please fold into the DSF patch.

--
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


Re: [Musicpd-dev-team] curl streams EOF after a long pause

2012-04-18 Thread Max Kellermann
On 2012/04/14 15:29, Iskren Chernev iskren.cher...@gmail.com wrote:
 I think a better approach would be to try and reconnect to the stream
 (especially if its non seekable -- I'm not 100% if that happens only
 for radios, or some stupid https serving mp3 may also be), all the
 time, or maybe after a long pause.
 
 I just got a rough understanding of how the input and decoder layer
 work, but I'm not sure if the change should be introduced inside
 input_curl or on a higher level.

We have a bug report for this, but I havn't gotten around to fix it
yet.

What we need is two things:

- the input plugin API should get a new method, maybe called pause(),
  which suspends buffering for relevant plugins.

- for radio streams (remote, not seekable), the pause() method could
  tell its caller don't bother keeping me open, and some code a few
  layers up will close it and reopen on resume

Max

--
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