summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2010-12-11 13:42:53 +0100
committerGravatar waker <wakeroid@gmail.com>2010-12-11 13:42:53 +0100
commit56767e9528c55a6941cc32ec1f34b0d31be4dfc4 (patch)
treeb8fd1a490b2f933b37c6dbca54e654ac11020b10
parent4620d1444c6dce065fe7c24fbe2fbf3cede89cda (diff)
minimize output setformat in streamer
-rw-r--r--streamer.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/streamer.c b/streamer.c
index 16a2fe09..b652cfd3 100644
--- a/streamer.c
+++ b/streamer.c
@@ -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);
}