From 3129ec417d5f659784f2bc2685fcf20cc1339cbd Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Tue, 7 Jan 2014 21:47:35 +0100 Subject: streamer: fixed setting output format after remote unpause --- streamer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'streamer.c') diff --git a/streamer.c b/streamer.c index 2541750a..5a2d761f 100644 --- a/streamer.c +++ b/streamer.c @@ -2021,7 +2021,7 @@ streamer_set_output_format (void) { DB_output_t *output = plug_get_output (); int playing = (output->state () == OUTPUT_STATE_PLAYING); -// fprintf (stderr, "streamer_set_output_format %dbit %s %dch %dHz channelmask=%X, bufferfill: %d\n", output_format.bps, output_format.is_float ? "float" : "int", output_format.channels, output_format.samplerate, output_format.channelmask, streamer_ringbuf.remaining); + trace ("streamer_set_output_format %dbit %s %dch %dHz channelmask=%X, bufferfill: %d\n", output_format.bps, output_format.is_float ? "float" : "int", output_format.channels, output_format.samplerate, output_format.channelmask, streamer_ringbuf.remaining); ddb_waveformat_t fmt; memcpy (&fmt, &output_format, sizeof (ddb_waveformat_t)); if (autoconv_8_to_16) { @@ -2494,6 +2494,11 @@ streamer_play_current_track (void) { if (output->state () == OUTPUT_STATE_PAUSED && playing_track) { if (is_remote_stream (playing_track)) { streamer_set_current (playing_track); + if (fileinfo && memcmp (&orig_output_format, &fileinfo->fmt, sizeof (ddb_waveformat_t))) { + memcpy (&output_format, &fileinfo->fmt, sizeof (ddb_waveformat_t)); + memcpy (&orig_output_format, &fileinfo->fmt, sizeof (ddb_waveformat_t)); + streamer_set_output_format (); + } } // unpause currently paused track output->unpause (); -- cgit v1.2.3