Diffstat (limited to 'core/multimedia/opieplayer/libmad') (more/less context) (show whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/libmad/libmadplugin.cpp | 13 | ||||
-rw-r--r-- | core/multimedia/opieplayer/libmad/libmadplugin.h | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.cpp b/core/multimedia/opieplayer/libmad/libmadplugin.cpp index 9f8ba65..8ede537 100644 --- a/core/multimedia/opieplayer/libmad/libmadplugin.cpp +++ b/core/multimedia/opieplayer/libmad/libmadplugin.cpp @@ -29,12 +29,13 @@ #include <errno.h> #include <time.h> #include <locale.h> #include <math.h> #include <assert.h> #include <qapplication.h> +#include <qpe/config.h> //#define HAVE_MMAP #if defined(HAVE_MMAP) # include <sys/mman.h> #endif @@ -44,12 +45,13 @@ extern "C" { #include "mad.h" } #define MPEG_BUFFER_SIZE 65536 +//#define MPEG_BUFFER_SIZE 32768 //16384 // 8192 //#define debugMsg(a) qDebug(a) #define debugMsg(a) class Input { public: @@ -162,13 +164,16 @@ bool LibMadPlugin::isFileSupported( const QString& path ) { return FALSE; } 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() ); @@ -194,13 +199,13 @@ bool LibMadPlugin::open( const QString& path ) { } d->input.data = (unsigned char *)d->input.fdm; } #endif if (d->input.data == 0) { - d->input.data = (unsigned char *)malloc(MPEG_BUFFER_SIZE); + 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; } @@ -366,24 +371,24 @@ bool LibMadPlugin::read() { if (d->stream.next_frame) { memmove(d->input.data, d->stream.next_frame, d->input.length = &d->input.data[d->input.length] - d->stream.next_frame); } do { - len = ::read(d->input.fd, d->input.data + d->input.length, MPEG_BUFFER_SIZE - d->input.length); + len = ::read(d->input.fd, d->input.data + d->input.length, bufferSize /* MPEG_BUFFER_SIZE*/ - d->input.length); } while (len == -1 && errno == EINTR); if (len == -1) { qDebug("error reading audio"); return FALSE; } else if (len == 0) { d->input.eof = 1; - assert(MPEG_BUFFER_SIZE - d->input.length >= MAD_BUFFER_GUARD); + assert(bufferSize /*MPEG_BUFFER_SIZE*/ - d->input.length >= MAD_BUFFER_GUARD); while (len < MAD_BUFFER_GUARD) d->input.data[d->input.length + len++] = 0; } mad_stream_buffer(&d->stream, d->input.data, d->input.length += len); diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.h b/core/multimedia/opieplayer/libmad/libmadplugin.h index b240b77..46cd4a1 100644 --- a/core/multimedia/opieplayer/libmad/libmadplugin.h +++ b/core/multimedia/opieplayer/libmad/libmadplugin.h @@ -100,11 +100,11 @@ public: long getPlayTime() { return -1; } private: LibMadPluginData *d; QString info; - +int bufferSize; }; #endif |