author | harlekin <harlekin> | 2002-04-22 22:28:33 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-04-22 22:28:33 (UTC) |
commit | 01ddcc2d67eb928eec6018e7e355820f2458b74f (patch) (unidiff) | |
tree | 25207e33fe281a07487e393f78c7686565811751 /core/multimedia | |
parent | 1ce5e1128e3c062d45e6dcfbcda20f195b4d5b13 (diff) | |
download | opie-01ddcc2d67eb928eec6018e7e355820f2458b74f.zip opie-01ddcc2d67eb928eec6018e7e355820f2458b74f.tar.gz opie-01ddcc2d67eb928eec6018e7e355820f2458b74f.tar.bz2 |
fixed to segfault in connection to shoutcast
-rw-r--r-- | core/multimedia/opieplayer/libmad/libmadplugin.cpp | 10 |
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 | |||
@@ -414,60 +414,66 @@ int LibMadPlugin::http_open(const QString& path ) { | |||
414 | 414 | ||
415 | info = QString(name + genre + url + bitrate + message).replace( QRegExp("\n"), " : " ); | 415 | info = QString(name + genre + url + bitrate + message).replace( QRegExp("\n"), " : " ); |
416 | 416 | ||
417 | qDebug("Stream info: " + info); | 417 | qDebug("Stream info: " + info); |
418 | 418 | ||
419 | return (tcp_sock); | 419 | return (tcp_sock); |
420 | } | 420 | } |
421 | 421 | ||
422 | 422 | ||
423 | 423 | ||
424 | bool LibMadPlugin::open( const QString& path ) { | 424 | bool LibMadPlugin::open( const QString& path ) { |
425 | debugMsg( "LibMadPlugin::open" ); | 425 | debugMsg( "LibMadPlugin::open" ); |
426 | Config cfg("MediaPlayer"); | 426 | Config cfg("MediaPlayer"); |
427 | cfg.setGroup("Options"); | 427 | cfg.setGroup("Options"); |
428 | bufferSize = cfg.readNumEntry("MPeg_BufferSize",MPEG_BUFFER_SIZE); | 428 | bufferSize = cfg.readNumEntry("MPeg_BufferSize",MPEG_BUFFER_SIZE); |
429 | qDebug("buffer size is %d", bufferSize); | 429 | qDebug("buffer size is %d", bufferSize); |
430 | d->bad_last_frame = 0; | 430 | d->bad_last_frame = 0; |
431 | d->flush = TRUE; | 431 | d->flush = TRUE; |
432 | info = QString( "" ); | 432 | info = QString( "" ); |
433 | 433 | ||
434 | //qDebug( "Opening %s", path.latin1() ); | 434 | //qDebug( "Opening %s", path.latin1() ); |
435 | 435 | ||
436 | 436 | ||
437 | if (path.left( 4 ) == "http" ) { | 437 | if (path.left( 4 ) == "http" ) { |
438 | qDebug("Test2"); | ||
438 | // in case of any error we get 0 here | 439 | // in case of any error we get 0 here |
439 | if ( !(http_open(path)==0) ) { | 440 | if ( !(http_open(path) == 0) ) { |
441 | qDebug("Test3"); | ||
440 | d->input.fd = http_open(path); | 442 | d->input.fd = http_open(path); |
443 | } else { | ||
444 | qDebug("Test5"); | ||
445 | return FALSE; | ||
441 | } | 446 | } |
442 | } else { | 447 | } else { |
448 | qDebug("Test4"); | ||
443 | d->input.path = path.latin1(); | 449 | d->input.path = path.latin1(); |
444 | d->input.fd = ::open( d->input.path, O_RDONLY ); | 450 | d->input.fd = ::open( d->input.path, O_RDONLY ); |
445 | // thats a better place, since it should only seek for ID3 tags on mp3 files, not streams | 451 | // thats a better place, since it should only seek for ID3 tags on mp3 files, not streams |
446 | printID3Tags(); | 452 | printID3Tags(); |
447 | } | 453 | } |
448 | if (d->input.fd == -1) { | 454 | if (d->input.fd == -1) { |
449 | // qDebug("error opening %s", d->input.path ); | 455 | qDebug("error opening %s", d->input.path ); |
450 | return FALSE; | 456 | return FALSE; |
451 | } | 457 | } |
452 | 458 | ||
453 | // printID3Tags(); | 459 | // printID3Tags(); |
454 | 460 | ||
455 | #if defined(HAVE_MMAP) | 461 | #if defined(HAVE_MMAP) |
456 | struct stat stat; | 462 | struct stat stat; |
457 | if (fstat(d->input.fd, &stat) == -1) { | 463 | if (fstat(d->input.fd, &stat) == -1) { |
458 | //qDebug("error calling fstat"); return FALSE; | 464 | //qDebug("error calling fstat"); return FALSE; |
459 | } | 465 | } |
460 | if (S_ISREG(stat.st_mode) && stat.st_size > 0) { | 466 | if (S_ISREG(stat.st_mode) && stat.st_size > 0) { |
461 | d->input.length = stat.st_size; | 467 | d->input.length = stat.st_size; |
462 | d->input.fdm = map_file(d->input.fd, &d->input.length); | 468 | d->input.fdm = map_file(d->input.fd, &d->input.length); |
463 | if (d->input.fdm == 0) { | 469 | if (d->input.fdm == 0) { |
464 | qDebug("error mmapping file"); return FALSE; | 470 | qDebug("error mmapping file"); return FALSE; |
465 | } | 471 | } |
466 | d->input.data = (unsigned char *)d->input.fdm; | 472 | d->input.data = (unsigned char *)d->input.fdm; |
467 | } | 473 | } |
468 | #endif | 474 | #endif |
469 | 475 | ||
470 | if (d->input.data == 0) { | 476 | if (d->input.data == 0) { |
471 | d->input.data = (unsigned char *)malloc( bufferSize /*MPEG_BUFFER_SIZE*/); | 477 | d->input.data = (unsigned char *)malloc( bufferSize /*MPEG_BUFFER_SIZE*/); |
472 | if (d->input.data == 0) { | 478 | if (d->input.data == 0) { |
473 | qDebug("error allocating input buffer"); | 479 | qDebug("error allocating input buffer"); |