diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-01-07 21:47:35 +0100 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-01-07 21:48:46 +0100 |
commit | 3129ec417d5f659784f2bc2685fcf20cc1339cbd (patch) | |
tree | 3cb3d1f7d0237c4bcc8cac204dbef39d5de584bf /streamer.c | |
parent | d6dd3e1d9a7155dd2fcb3bfd2b8b4689338b0fc1 (diff) |
streamer: fixed setting output format after remote unpause
Diffstat (limited to 'streamer.c')
-rw-r--r-- | streamer.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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 (); |