more bug fixes

git-svn-id: https://svn.musicpd.org/mpd/trunk@1108 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
Warren Dukes 2004-05-20 04:32:38 +00:00
parent 05889aa3e3
commit 0b05109416
4 changed files with 21 additions and 11 deletions

View File

@ -251,6 +251,8 @@ int decodeSeek(PlayerControl * pc, DecoderControl * dc, OutputBuffer * cb,
void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) { void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) {
int ret; int ret;
InputStream inStream; InputStream inStream;
int suffix = pc->fileSuffix;
int decodeType = pc->decodeType;
strncpy(dc->file,pc->file,MAXPATHLEN); strncpy(dc->file,pc->file,MAXPATHLEN);
dc->file[MAXPATHLEN] = '\0'; dc->file[MAXPATHLEN] = '\0';
@ -275,10 +277,10 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) {
return; return;
} }
switch(pc->decodeType) { switch(decodeType) {
case DECODE_TYPE_URL: case DECODE_TYPE_URL:
#ifdef HAVE_OGG #ifdef HAVE_OGG
if(pc->fileSuffix == DECODE_SUFFIX_OGG || (inStream.mime && if(suffix == DECODE_SUFFIX_OGG || (inStream.mime &&
0 == strcmp(inStream.mime, "application/ogg"))) 0 == strcmp(inStream.mime, "application/ogg")))
{ {
ret = ogg_decode(cb, dc, &inStream); ret = ogg_decode(cb, dc, &inStream);
@ -286,7 +288,7 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) {
} }
#endif #endif
#ifdef HAVE_MAD #ifdef HAVE_MAD
/*if(pc->fileSuffix == DECODE_SUFFIX_MP3 || (inStream.mime && /*if(fileSuffix == DECODE_SUFFIX_MP3 || (inStream.mime &&
0 == strcmp(inStream.mime, "audio/mpeg")))*/ 0 == strcmp(inStream.mime, "audio/mpeg")))*/
{ {
ret = mp3_decode(cb,dc,&inStream); ret = mp3_decode(cb,dc,&inStream);
@ -296,38 +298,38 @@ void decodeStart(PlayerControl * pc, OutputBuffer * cb, DecoderControl * dc) {
#endif #endif
case DECODE_TYPE_FILE: case DECODE_TYPE_FILE:
#ifdef HAVE_MAD #ifdef HAVE_MAD
if(pc->fileSuffix == DECODE_SUFFIX_MP3) { if(suffix == DECODE_SUFFIX_MP3) {
ret = mp3_decode(cb, dc, &inStream); ret = mp3_decode(cb, dc, &inStream);
break; break;
} }
#endif #endif
#ifdef HAVE_OGG #ifdef HAVE_OGG
if(pc->fileSuffix == DECODE_SUFFIX_OGG) { if(suffix == DECODE_SUFFIX_OGG) {
ret = ogg_decode(cb, dc, &inStream); ret = ogg_decode(cb, dc, &inStream);
break; break;
} }
#endif #endif
#ifdef HAVE_FAAD #ifdef HAVE_FAAD
if(pc->fileSuffix == DECODE_SUFFIX_AAC) { if(suffix == DECODE_SUFFIX_AAC) {
closeInputStream(&inStream); closeInputStream(&inStream);
ret = aac_decode(cb,dc); ret = aac_decode(cb,dc);
break; break;
} }
if(pc->fileSuffix == DECODE_SUFFIX_MP4) { if(suffix == DECODE_SUFFIX_MP4) {
closeInputStream(&inStream); closeInputStream(&inStream);
ret = mp4_decode(cb,dc); ret = mp4_decode(cb,dc);
break; break;
} }
#endif #endif
#ifdef HAVE_FLAC #ifdef HAVE_FLAC
if(pc->fileSuffix == DECODE_SUFFIX_FLAC) { if(suffix == DECODE_SUFFIX_FLAC) {
closeInputStream(&inStream); closeInputStream(&inStream);
ret = flac_decode(cb,dc); ret = flac_decode(cb,dc);
break; break;
} }
#endif #endif
#ifdef HAVE_AUDIOFILE #ifdef HAVE_AUDIOFILE
if(pc->fileSuffix == DECODE_SUFFIX_WAVE) { if(suffix == DECODE_SUFFIX_WAVE) {
closeInputStream(&inStream); closeInputStream(&inStream);
ret = audiofile_decode(cb,dc); ret = audiofile_decode(cb,dc);
break; break;

View File

@ -39,7 +39,7 @@
#define HTTP_CONN_STATE_OPEN 3 #define HTTP_CONN_STATE_OPEN 3
#define HTTP_CONN_STATE_REOPEN 4 #define HTTP_CONN_STATE_REOPEN 4
#define HTTP_BUFFER_SIZE 524289 #define HTTP_BUFFER_SIZE 131072
#define HTTP_PREBUFFER_SIZE (HTTP_BUFFER_SIZE >> 2) #define HTTP_PREBUFFER_SIZE (HTTP_BUFFER_SIZE >> 2)
//#define HTTP_PREBUFFER_SIZE 0 //#define HTTP_PREBUFFER_SIZE 0
@ -406,7 +406,7 @@ static int getHTTPHello(InputStream * inStream) {
data->connState = HTTP_CONN_STATE_OPEN; data->connState = HTTP_CONN_STATE_OPEN;
/*data->prebuffer = 1;*/ data->prebuffer = 1;
/*mark as unseekable till we actually implement seeking*/ /*mark as unseekable till we actually implement seeking*/
inStream->seekable = 0; inStream->seekable = 0;

View File

@ -567,6 +567,10 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) {
ERROR("Input does not appear to be a mp3 bit stream.\n"); ERROR("Input does not appear to be a mp3 bit stream.\n");
return -1; return -1;
} }
else {
dc->state = DECODE_STATE_STOP;
dc->stop = 0;
}
return 0; return 0;
} }

View File

@ -183,6 +183,10 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
ERROR("Input does not appear to be an Ogg Vorbis stream.\n"); ERROR("Input does not appear to be an Ogg Vorbis stream.\n");
return -1; return -1;
} }
else {
dc->state = DECODE_STATE_STOP;
dc->stop = 0;
}
return 0; return 0;
} }