1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-06 14:16:32 +02:00

Make readCallback a member function

This commit is contained in:
Uwe L. Korn
2014-11-09 12:39:51 +01:00
parent e6d1e90542
commit f949fe9de3
3 changed files with 28 additions and 16 deletions

View File

@@ -173,6 +173,13 @@ AudioOutput::setCurrentSource( QIODevice* stream )
} }
int readCallback ( void* data, const char* cookie, int64_t* dts, int64_t* pts, unsigned* flags, size_t* bufferSize, void** buffer )
{
MediaStream* mediaStream = static_cast< MediaStream * >( data );
return mediaStream->readCallback( cookie, dts, pts, flags, bufferSize, buffer );
}
void void
AudioOutput::setCurrentSource( MediaStream* stream ) AudioOutput::setCurrentSource( MediaStream* stream )
{ {
@@ -248,7 +255,7 @@ AudioOutput::setCurrentSource( MediaStream* stream )
libvlc_media_add_option_flag(m_vlcMedia, "imem-cat=4", libvlc_media_option_trusted); libvlc_media_add_option_flag(m_vlcMedia, "imem-cat=4", libvlc_media_option_trusted);
const char* imemData = QString( "imem-data=%1" ).arg( (uintptr_t)stream ).toLatin1().constData(); const char* imemData = QString( "imem-data=%1" ).arg( (uintptr_t)stream ).toLatin1().constData();
libvlc_media_add_option_flag(m_vlcMedia, imemData, libvlc_media_option_trusted); libvlc_media_add_option_flag(m_vlcMedia, imemData, libvlc_media_option_trusted);
const char* imemGet = QString( "imem-get=%1" ).arg( (uintptr_t)&MediaStream::readCallback ).toLatin1().constData(); const char* imemGet = QString( "imem-get=%1" ).arg( (uintptr_t)&readCallback ).toLatin1().constData();
libvlc_media_add_option_flag(m_vlcMedia, imemGet, libvlc_media_option_trusted); libvlc_media_add_option_flag(m_vlcMedia, imemGet, libvlc_media_option_trusted);
const char* imemRelease = QString( "imem-release=%1" ).arg( (uintptr_t)&MediaStream::readDoneCallback ).toLatin1().constData(); const char* imemRelease = QString( "imem-release=%1" ).arg( (uintptr_t)&MediaStream::readDoneCallback ).toLatin1().constData();
libvlc_media_add_option_flag(m_vlcMedia, imemRelease, libvlc_media_option_trusted); libvlc_media_add_option_flag(m_vlcMedia, imemRelease, libvlc_media_option_trusted);

View File

@@ -98,38 +98,43 @@ MediaStream::bufferingFinished()
int int
MediaStream::readCallback ( void* data, const char* cookie, int64_t* dts, int64_t* pts, unsigned* flags, size_t* bufferSize, void** buffer ) MediaStream::readCallback ( const char* cookie, int64_t* dts, int64_t* pts, unsigned* flags, size_t* bufferSize, void** buffer )
{ {
Q_UNUSED(cookie); Q_UNUSED(cookie);
Q_UNUSED(dts); Q_UNUSED(dts);
Q_UNUSED(pts); Q_UNUSED(pts);
Q_UNUSED(flags); Q_UNUSED(flags);
MediaStream* that = static_cast < MediaStream * > ( data );
qint64 bufsize = 0; qint64 bufsize = 0;
*bufferSize = 0; *bufferSize = 0;
if ( that->m_eos == true ) { if ( m_eos == true )
{
return -1; return -1;
} }
if ( that->m_type == Stream ) { if ( m_type == Stream )
bufsize = that->needData(buffer); {
bufsize = needData( buffer );
} }
else if ( that->m_type == IODevice ) { else if ( m_type == IODevice )
bufsize = that->m_ioDevice->read( that->m_buffer, BLOCK_SIZE ); {
*buffer = that->m_buffer; bufsize = m_ioDevice->read( m_buffer, BLOCK_SIZE );
*buffer = m_buffer;
} }
if ( bufsize > 0 ) { if ( bufsize > 0 )
that->m_started = true; {
m_started = true;
} }
if ( that->m_type == IODevice && bufsize == 0 && that->m_started && that->m_bufferingFinished == true ) { if ( m_type == IODevice && bufsize == 0 && m_started && m_bufferingFinished == true )
that->m_eos = true; {
m_eos = true;
return -1; return -1;
} }
if ( bufsize < 0 ) { if ( bufsize < 0 )
that->m_eos = true; {
m_eos = true;
return -1; return -1;
} }

View File

@@ -54,7 +54,7 @@ public:
virtual void seekStream( qint64 offset ) { (void)offset; } virtual void seekStream( qint64 offset ) { (void)offset; }
virtual qint64 needData ( void** buffer ) { (void)buffer; return 0; } virtual qint64 needData ( void** buffer ) { (void)buffer; return 0; }
static int readCallback ( void* data, const char* cookie, int64_t* dts, int64_t* pts, unsigned* flags, size_t* bufferSize, void** buffer ); int readCallback( const char* cookie, int64_t* dts, int64_t* pts, unsigned* flags, size_t* bufferSize, void** buffer );
static int readDoneCallback ( void *data, const char *cookie, size_t bufferSize, void *buffer ); static int readDoneCallback ( void *data, const char *cookie, size_t bufferSize, void *buffer );
static int seekCallback ( void *data, const uint64_t pos ); static int seekCallback ( void *data, const uint64_t pos );