regression of r503
This commit is contained in:
parent
8227296d5c
commit
6f62a31701
|
@ -61,7 +61,8 @@ CastSink :: init ( TcpSocket * socket,
|
|||
const char * name,
|
||||
const char * url,
|
||||
const char * genre,
|
||||
bool isPublic )
|
||||
bool isPublic,
|
||||
unsigned int bufferDuration )
|
||||
throw ( Exception )
|
||||
{
|
||||
this->socket = socket;
|
||||
|
@ -72,6 +73,13 @@ CastSink :: init ( TcpSocket * socket,
|
|||
this->url = url ? Util::strDup( url) : 0;
|
||||
this->genre = genre ? Util::strDup( genre) : 0;
|
||||
this->isPublic = isPublic;
|
||||
this->bufferDuration = bufferDuration;
|
||||
|
||||
int bufferSize = bitRate ? (bitRate * 1024 / 8) * bufferDuration
|
||||
: (128 * 1024 / 8) * bufferDuration;
|
||||
|
||||
bufferedSink = socket ? new BufferedSink( socket, bufferSize)
|
||||
: 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -110,7 +118,7 @@ CastSink :: open ( void ) throw ( Exception )
|
|||
return false;
|
||||
}
|
||||
|
||||
if ( !getSink()->open() ) {
|
||||
if ( !bufferedSink->open() ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -68,11 +68,21 @@ class CastSink : public Sink, public virtual Reporter
|
|||
*/
|
||||
Ref<TcpSocket> socket;
|
||||
|
||||
/**
|
||||
* The BufferedSink encapsulating the socket connection to the server.
|
||||
*/
|
||||
Ref<BufferedSink> bufferedSink;
|
||||
|
||||
/**
|
||||
* An optional Sink to enable stream dumps.
|
||||
*/
|
||||
Ref<Sink> streamDump;
|
||||
|
||||
/**
|
||||
* Duration of the BufferedSink buffer in seconds.
|
||||
*/
|
||||
unsigned int bufferDuration;
|
||||
|
||||
/**
|
||||
* Password to the server.
|
||||
*/
|
||||
|
@ -113,6 +123,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
* @param genre genre of the stream.
|
||||
* @param bitRate bitrate of the stream (e.g. mp3 bitrate).
|
||||
* @param isPublic is the stream public?
|
||||
* @param bufferDuration duration of the BufferedSink buffer
|
||||
* in seconds.
|
||||
* @exception Exception
|
||||
*/
|
||||
void
|
||||
|
@ -123,7 +135,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
const char * name,
|
||||
const char * url,
|
||||
const char * genre,
|
||||
bool isPublic)
|
||||
bool isPublic,
|
||||
unsigned int bufferDuration )
|
||||
throw ( Exception );
|
||||
|
||||
/**
|
||||
|
@ -165,7 +178,7 @@ class CastSink : public Sink, public virtual Reporter
|
|||
inline Sink *
|
||||
getSink ( void ) const throw ()
|
||||
{
|
||||
return getSocket();
|
||||
return bufferedSink.get();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -193,7 +206,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
* @param bitRate bitrate of the stream (e.g. mp3 bitrate).
|
||||
* @param isPublic is the stream public?
|
||||
* @param streamDump a Sink to dump the streamed binary data to
|
||||
*
|
||||
* @param bufferDuration duration of the BufferedSink buffer
|
||||
* in seconds.
|
||||
* @exception Exception
|
||||
*/
|
||||
inline
|
||||
|
@ -204,7 +218,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
const char * url = 0,
|
||||
const char * genre = 0,
|
||||
bool isPublic = false,
|
||||
Sink * streamDump = 0)
|
||||
Sink * streamDump = 0,
|
||||
unsigned int bufferDuration = 10 )
|
||||
throw ( Exception )
|
||||
{
|
||||
init( socket,
|
||||
|
@ -214,7 +229,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
name,
|
||||
url,
|
||||
genre,
|
||||
isPublic );
|
||||
isPublic,
|
||||
bufferDuration );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -233,7 +249,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
cs.name,
|
||||
cs.url,
|
||||
cs.genre,
|
||||
cs.isPublic );
|
||||
cs.isPublic,
|
||||
cs.bufferDuration );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -267,7 +284,8 @@ class CastSink : public Sink, public virtual Reporter
|
|||
cs.name,
|
||||
cs.url,
|
||||
cs.genre,
|
||||
cs.isPublic );
|
||||
cs.isPublic,
|
||||
cs.bufferDuration );
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
@ -290,11 +308,7 @@ class CastSink : public Sink, public virtual Reporter
|
|||
inline virtual bool
|
||||
isOpen ( void ) const throw ()
|
||||
{
|
||||
Sink *s = getSink();
|
||||
if (s)
|
||||
return getSink()->isOpen();
|
||||
else
|
||||
return false;
|
||||
return bufferedSink != NULL ? bufferedSink->isOpen() : false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -441,6 +455,17 @@ class CastSink : public Sink, public virtual Reporter
|
|||
{
|
||||
return isPublic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the duration of the BufferedSink buffer in seconds.
|
||||
*
|
||||
* @return the the duration of the BufferedSink buffer in seconds.
|
||||
*/
|
||||
inline unsigned int
|
||||
getBufferDuration ( void ) const throw ()
|
||||
{
|
||||
return bufferDuration;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue