diff options
author | waker <wakeroid@gmail.com> | 2010-12-11 13:42:53 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2010-12-11 13:42:53 +0100 |
commit | 56767e9528c55a6941cc32ec1f34b0d31be4dfc4 (patch) | |
tree | b8fd1a490b2f933b37c6dbca54e654ac11020b10 /streamer.c | |
parent | 4620d1444c6dce065fe7c24fbe2fbf3cede89cda (diff) |
minimize output setformat in streamer
Diffstat (limited to 'streamer.c')
-rw-r--r-- | streamer.c | 9 |
1 files changed, 3 insertions, 6 deletions
@@ -739,9 +739,6 @@ streamer_start_new_song (void) { int initsng = nextsong; int pstate = nextsong_pstate; nextsong = -1; - if (srcplug) { - srcplug->reset (src); - } streamer_unlock (); if (badsong == sng) { trace ("looped to bad file. stopping...\n"); @@ -804,7 +801,7 @@ streamer_start_new_song (void) { avg_bitrate = -1; if (output->state () != OUTPUT_STATE_PLAYING) { streamer_reset (1); - if (fileinfo) { + if (fileinfo && memcmp (&prevformat, &fileinfo->fmt, sizeof (ddb_waveformat_t))) { memcpy (&prevformat, &fileinfo->fmt, sizeof (ddb_waveformat_t)); plug_get_output ()->setformat (&fileinfo->fmt); } @@ -819,7 +816,7 @@ streamer_start_new_song (void) { last_bitrate = -1; avg_bitrate = -1; streamer_reset (1); - if (fileinfo) { + if (fileinfo && memcmp (&prevformat, &fileinfo->fmt, sizeof (ddb_waveformat_t))) { memcpy (&prevformat, &fileinfo->fmt, sizeof (ddb_waveformat_t)); plug_get_output ()->setformat (&fileinfo->fmt); } @@ -948,7 +945,7 @@ streamer_thread (void *ctx) { // output plugin may stop playback before switching samplerate if (output->state () != OUTPUT_STATE_PLAYING) { - if (fileinfo) { + if (fileinfo && memcmp (&prevformat, &fileinfo->fmt, sizeof (ddb_waveformat_t))) { memcpy (&prevformat, &fileinfo->fmt, sizeof (ddb_waveformat_t)); plug_get_output ()->setformat (&fileinfo->fmt); } |