aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/command.c2
-rw-r--r--src/decode.c6
-rw-r--r--src/inputPlugins/mp3_plugin.c5
-rw-r--r--src/playlist.c5
4 files changed, 13 insertions, 5 deletions
diff --git a/src/command.c b/src/command.c
index 044c811ab..13325e851 100644
--- a/src/command.c
+++ b/src/command.c
@@ -155,7 +155,7 @@ int handlePlay(FILE * fp, unsigned int * permission, int argArrayLength,
return -1;
}
}
- return playPlaylist(fp,song,1);
+ return playPlaylist(fp,song,0);
}
int handleStop(FILE * fp, unsigned int * permission, int argArrayLength,
diff --git a/src/decode.c b/src/decode.c
index d8f2fa21f..bb043d6b2 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -256,7 +256,7 @@ int decodeSeek(PlayerControl * pc, DecoderControl * dc, OutputBuffer * cb,
void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) {
int ret;
InputStream inStream;
- InputPlugin * plugin;
+ InputPlugin * plugin = NULL;
char * path;
if(isRemoteUrl(pc->utf8url)) {
@@ -311,7 +311,9 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) {
ret = DECODE_ERROR_UNKTYPE;
if(isRemoteUrl(pc->utf8url)) {
- plugin = getInputPluginFromMimeType(inStream.mime);
+ if(inStream.mime) {
+ plugin = getInputPluginFromMimeType(inStream.mime);
+ }
if(plugin == NULL) {
plugin = getInputPluginFromSuffix(
getSuffix(dc->utf8url));
diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c
index 3ba1d36a0..a501377dc 100644
--- a/src/inputPlugins/mp3_plugin.c
+++ b/src/inputPlugins/mp3_plugin.c
@@ -451,7 +451,6 @@ void mp3DecodeDataFinalize(mp3DecodeData * data) {
mad_frame_finish(&data->frame);
mad_stream_finish(&data->stream);
- closeInputStream(data->inStream);
if(data->frameOffset) free(data->frameOffset);
if(data->times) free(data->times);
}
@@ -468,6 +467,7 @@ int getMp3TotalTime(char * file) {
if(decodeFirstFrame(&data, NULL, NULL)<0) ret = -1;
else ret = data.totalTime+0.5;
mp3DecodeDataFinalize(&data);
+ closeInputStream(&inStream);
return ret;
}
@@ -626,7 +626,7 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) {
MpdTag * tag;
if(openMp3FromInputStream(inStream, &data, dc, &tag) < 0) {
- closeInputStream(inStream);
+ closeInputStream(inStream);
if(!dc->stop) {
ERROR("Input does not appear to be a mp3 bit stream.\n");
return -1;
@@ -662,6 +662,7 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) {
flushOutputBuffer(cb);
mp3DecodeDataFinalize(&data);
+ closeInputStream(inStream);
/*if(dc->seek) {
dc->seekError = 1;
diff --git a/src/playlist.c b/src/playlist.c
index 75b812338..1dea4b7ce 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -825,16 +825,21 @@ void playPlaylistIfPlayerStopped() {
if(error==PLAYER_ERROR_NOERROR) playlist_errorCount = 0;
else playlist_errorCount++;
+ printf("HERE 1\n");
if(playlist_state==PLAYLIST_STATE_PLAY && (
(playlist_stopOnError &&
error!=PLAYER_ERROR_NOERROR) ||
error==PLAYER_ERROR_AUDIO ||
error==PLAYER_ERROR_SYSTEM ||
playlist_errorCount>=playlist.length)) {
+ printf("HERE 1-1\n");
+ printf("playlist_stopOnError: %i\n", playlist_stopOnError);
stopPlaylist(stderr);
+ printf("HERE 1-2\n");
}
else if(playlist_noGoToNext) currentSongInPlaylist(stderr);
else nextSongInPlaylist(stderr);
+ printf("HERE 2\n");
}
}