summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-04-22 22:28:33 (UTC)
committer harlekin <harlekin>2002-04-22 22:28:33 (UTC)
commit01ddcc2d67eb928eec6018e7e355820f2458b74f (patch) (side-by-side diff)
tree25207e33fe281a07487e393f78c7686565811751
parent1ce5e1128e3c062d45e6dcfbcda20f195b4d5b13 (diff)
downloadopie-01ddcc2d67eb928eec6018e7e355820f2458b74f.zip
opie-01ddcc2d67eb928eec6018e7e355820f2458b74f.tar.gz
opie-01ddcc2d67eb928eec6018e7e355820f2458b74f.tar.bz2
fixed to segfault in connection to shoutcast
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmad/libmadplugin.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.cpp b/core/multimedia/opieplayer/libmad/libmadplugin.cpp
index 8b692ef..c744c6d 100644
--- a/core/multimedia/opieplayer/libmad/libmadplugin.cpp
+++ b/core/multimedia/opieplayer/libmad/libmadplugin.cpp
@@ -406,76 +406,82 @@ int LibMadPlugin::http_open(const QString& path ) {
bitrate = tr("Bitrate: ") + QString(http_request).mid(7, (QString(http_request).length())- 7 );
} else if ( QString( http_request ).left( 7 ) == "icy-url" ) {
url = tr("URL: ") + QString(http_request).mid(8, (QString(http_request).length())- 8 );
} else if ( QString( http_request ).left( 10 ) == "icy-notice" ) {
message += QString(http_request).mid(11, QString(http_request).length()-11 ) ;
}
}
} while (strcmp(http_request, "\n") != 0);
info = QString(name + genre + url + bitrate + message).replace( QRegExp("\n"), " : " );
qDebug("Stream info: " + info);
return (tcp_sock);
}
bool LibMadPlugin::open( const QString& path ) {
debugMsg( "LibMadPlugin::open" );
Config cfg("MediaPlayer");
cfg.setGroup("Options");
bufferSize = cfg.readNumEntry("MPeg_BufferSize",MPEG_BUFFER_SIZE);
qDebug("buffer size is %d", bufferSize);
d->bad_last_frame = 0;
d->flush = TRUE;
info = QString( "" );
//qDebug( "Opening %s", path.latin1() );
if (path.left( 4 ) == "http" ) {
+ qDebug("Test2");
// in case of any error we get 0 here
- if ( !(http_open(path)==0) ) {
+ if ( !(http_open(path) == 0) ) {
+ qDebug("Test3");
d->input.fd = http_open(path);
+ } else {
+ qDebug("Test5");
+ return FALSE;
}
} else {
+ qDebug("Test4");
d->input.path = path.latin1();
d->input.fd = ::open( d->input.path, O_RDONLY );
// thats a better place, since it should only seek for ID3 tags on mp3 files, not streams
printID3Tags();
}
if (d->input.fd == -1) {
-// qDebug("error opening %s", d->input.path );
+ qDebug("error opening %s", d->input.path );
return FALSE;
}
// printID3Tags();
#if defined(HAVE_MMAP)
struct stat stat;
if (fstat(d->input.fd, &stat) == -1) {
//qDebug("error calling fstat"); return FALSE;
}
if (S_ISREG(stat.st_mode) && stat.st_size > 0) {
d->input.length = stat.st_size;
d->input.fdm = map_file(d->input.fd, &d->input.length);
if (d->input.fdm == 0) {
qDebug("error mmapping file"); return FALSE;
}
d->input.data = (unsigned char *)d->input.fdm;
}
#endif
if (d->input.data == 0) {
d->input.data = (unsigned char *)malloc( bufferSize /*MPEG_BUFFER_SIZE*/);
if (d->input.data == 0) {
qDebug("error allocating input buffer");
return FALSE;
}
d->input.length = 0;
}
d->input.eof = 0;
mad_stream_init(&d->stream);