aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/audioOutputs/audioOutput_oss.c4
-rw-r--r--src/audioOutputs/audioOutput_shout.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/audioOutputs/audioOutput_oss.c b/src/audioOutputs/audioOutput_oss.c
index 012952502..70ae04695 100644
--- a/src/audioOutputs/audioOutput_oss.c
+++ b/src/audioOutputs/audioOutput_oss.c
@@ -254,8 +254,10 @@ static int oss_playAudio(AudioOutput * audioOutput, char * playChunk,
while (size > 0) {
ret = write(od->fd, playChunk, size);
+ if(errno == EINTR) continue;
if(ret<0) {
- ERROR("closing audio device due to write error\n");
+ ERROR("closing oss device \"%s\" due to write error: "
+ "%s\n", od->device, strerror(errno));
oss_closeDevice(audioOutput);
return -1;
}
diff --git a/src/audioOutputs/audioOutput_shout.c b/src/audioOutputs/audioOutput_shout.c
index 16b27947e..9a54eb8a9 100644
--- a/src/audioOutputs/audioOutput_shout.c
+++ b/src/audioOutputs/audioOutput_shout.c
@@ -320,7 +320,7 @@ static void finishEncoder(ShoutData * sd) {
}
static int flushEncoder(ShoutData * sd) {
- return !(ogg_stream_pageout(&sd->os, &sd->og) <= 0 );
+ return (ogg_stream_pageout(&sd->os, &sd->og) > 0);
}
static void clearEncoder(ShoutData * sd) {