summaryrefslogtreecommitdiff
path: root/streamer.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-01-07 21:47:35 +0100
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-01-07 21:48:46 +0100
commit3129ec417d5f659784f2bc2685fcf20cc1339cbd (patch)
tree3cb3d1f7d0237c4bcc8cac204dbef39d5de584bf /streamer.c
parentd6dd3e1d9a7155dd2fcb3bfd2b8b4689338b0fc1 (diff)
streamer: fixed setting output format after remote unpause
Diffstat (limited to 'streamer.c')
-rw-r--r--streamer.c7
1 files changed, 6 insertions, 1 deletions
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 ();