Backend interface to handle media streams (AbstractMediaStream).
Definition at line 44 of file streaminterface.h.
#include <Phonon/StreamInterface>
Public Member Functions |
|
| virtual | ~StreamInterface () |
| virtual void | writeData (const QByteArray &data)=0 |
| Called by the application to send a chunk of
(encoded) media data. |
|
| virtual void | endOfData ()=0 |
| Called when no more media data is available
and writeData will not be called anymore. |
|
| virtual void | setStreamSize (qint64 newSize)=0 |
| Called at the start of the stream to tell
how many bytes will be sent through writeData (if no seeks happen,
of course). |
|
| virtual void | setStreamSeekable (bool s)=0 |
| Tells whether the stream is seekable.
|
|
| void | connectToSource (const MediaSource &mediaSource) |
| Call this function from the constructor of
your StreamInterface
implementation (or as soon as you get the
MediaSource object). |
|
| void | needData () |
| Call this function to tell the AbstractMediaStream
that you need more data. |
|
| void | enoughData () |
| Call this function to tell the AbstractMediaStream
that you have enough data in your buffer and that it should pause
calling writeData if possible. |
|
| void | seekStream (qint64 seekTo) |
If the stream is seekable, calling this
function will make the next call to writeData pass data that starts
at the byte offset seekTo. |
|
| void | reset () |
| Resets the AbstractMediaStream.
|
|
Protected Member Functions |
|
| StreamInterface () | |
Protected Attributes |
|
| StreamInterfacePrivate *const | d |
Friends |
|
| class | StreamInterfacePrivate |
| class | AbstractMediaStreamPrivate |
| virtual ~StreamInterface | ( | ) | [virtual] |
| StreamInterface | ( | ) | [protected] |
| virtual void writeData | ( | const QByteArray & | data | ) | [pure virtual] |
Called by the application to send a chunk of (encoded) media data.
It is recommended to keep the QByteArray object until the data is consumed so that no memcopy is needed.
| virtual void endOfData | ( | ) | [pure virtual] |
Called when no more media data is available and writeData will not be called anymore.
| virtual void setStreamSize | ( | qint64 | newSize | ) | [pure virtual] |
Called at the start of the stream to tell how many bytes will be sent through writeData (if no seeks happen, of course).
If this value is negative the stream size cannot be determined (might be a "theoretically infinite" stream - like webradio).
| virtual void setStreamSeekable | ( | bool | s | ) | [pure virtual] |
Tells whether the stream is seekable.
| void connectToSource | ( | const MediaSource & | mediaSource | ) |
Call this function from the constructor of your StreamInterface implementation (or as soon as you get the MediaSource object).
This will connect your object to the AbstractMediaStream object. Only after the connection is done will the following functions have an effect.
| void needData | ( | ) |
Call this function to tell the AbstractMediaStream that you need more data.
The data will arrive through writeData. Don't rely on writeData getting called from needData, though some AbstractMediaStream implementations might do so.
Depending on the buffering you need you either treat needData as a replacement for a read call like QIODevice::read, or you start calling needData whenever your buffer reaches a certain lower threshold.
| void enoughData | ( | ) |
Call this function to tell the AbstractMediaStream that you have enough data in your buffer and that it should pause calling writeData if possible.
| void seekStream | ( | qint64 | seekTo | ) |
If the stream is seekable, calling this function will make the
next call to writeData pass data that starts at the byte offset
seekTo.
| void reset | ( | ) |
Resets the AbstractMediaStream.
E.g. this can be useful for non-seekable streams to start over again.
friend class StreamInterfacePrivate
[friend] |
Definition at line 46 of file streaminterface.h.
friend class AbstractMediaStreamPrivate
[friend] |
Definition at line 47 of file streaminterface.h.
StreamInterfacePrivate* const
d [protected] |
Definition at line 112 of file streaminterface.h.