Gnash  0.8.11dev
Public Member Functions | List of all members
gnash::media::gst::MediaParserGst Class Reference

Gstreamer based MediaParser. More...

#include <MediaParserGst.h>

Inheritance diagram for gnash::media::gst::MediaParserGst:
gnash::media::MediaParser

Public Member Functions

 MediaParserGst (std::auto_ptr< IOChannel > stream)
 Construct a Gstreamer-based media parser for given stream. More...
 
 ~MediaParserGst ()
 
bool seek (boost::uint32_t &)
 Seeks to the closest possible position the given position, and returns the new position. More...
 
bool parseNextChunk ()
 Parse next chunk of input. More...
 
virtual boost::uint64_t getBytesLoaded () const
 Return number of bytes parsed so far. More...
 
virtual boost::optional< Id3InfogetId3Info () const
 Get ID3 data from the parsed stream if it exists. More...
 
void rememberAudioFrame (EncodedAudioFrame *frame)
 
void rememberVideoFrame (EncodedVideoFrame *frame)
 
- Public Member Functions inherited from gnash::media::MediaParser
 MediaParser (std::auto_ptr< IOChannel > stream)
 
virtual ~MediaParser ()
 
DSOEXPORT boost::uint64_t getBufferLength () const
 Returns mininum length of available buffers in milliseconds. More...
 
DSOEXPORT bool isBufferEmpty () const
 Return true if both audio and video buffers are empty. More...
 
DSOEXPORT boost::uint64_t getBufferTime () const
 Return the time we want the parser thread to maintain in the buffer. More...
 
DSOEXPORT void setBufferTime (boost::uint64_t t)
 Set the time we want the parser thread to maintain in the buffer. More...
 
DSOEXPORT bool nextFrameTimestamp (boost::uint64_t &ts) const
 Get timestamp of the next frame available, if any. More...
 
DSOEXPORT bool nextVideoFrameTimestamp (boost::uint64_t &ts) const
 Get timestamp of the video frame which would be returned on nextVideoFrame. More...
 
DSOEXPORT std::auto_ptr
< EncodedVideoFrame
nextVideoFrame ()
 Returns the next video frame in the parsed buffer, advancing video cursor. More...
 
DSOEXPORT bool nextAudioFrameTimestamp (boost::uint64_t &ts) const
 Get timestamp of the audio frame which would be returned on nextAudioFrame. More...
 
DSOEXPORT std::auto_ptr
< EncodedAudioFrame
nextAudioFrame ()
 Returns the next audio frame in the parsed buffer, advancing audio cursor. More...
 
VideoInfogetVideoInfo ()
 Returns a VideoInfo class about the videostream. More...
 
AudioInfogetAudioInfo ()
 Returns a AudioInfo class about the audiostream. More...
 
bool parsingCompleted () const
 Return true of parsing is completed. More...
 
virtual bool indexingCompleted () const
 Return true of indexing is completed. More...
 
boost::uint64_t getBytesTotal () const
 Return total number of bytes in input. More...
 
virtual void fetchMetaTags (OrderedMetaTags &tags, boost::uint64_t ts)
 Retrieve any parsed metadata tags up to a specified timestamp. More...
 

Additional Inherited Members

- Public Types inherited from gnash::media::MediaParser
typedef std::multimap
< boost::uint64_t,
boost::shared_ptr
< SimpleBuffer > > 
MetaTags
 A container for executable MetaTags contained in media streams. More...
 
typedef std::vector
< MetaTags::mapped_type > 
OrderedMetaTags
 
- Protected Member Functions inherited from gnash::media::MediaParser
void startParserThread ()
 }@ More...
 
void stopParserThread ()
 Stop the parser thread. More...
 
void clearBuffers ()
 Clear the a/v buffers. More...
 
void pushEncodedAudioFrame (std::auto_ptr< EncodedAudioFrame > frame)
 Push an encoded audio frame to buffer. More...
 
void pushEncodedVideoFrame (std::auto_ptr< EncodedVideoFrame > frame)
 Push an encoded video frame to buffer. More...
 
void parserLoop ()
 
bool parserThreadKillRequested () const
 
void waitIfNeeded (boost::mutex::scoped_lock &qMutexLock)
 
void wakeupParserThread ()
 
bool bufferFull () const
 Method to check if buffer is full w/out locking the _qMutex. More...
 
- Static Protected Member Functions inherited from gnash::media::MediaParser
static void parserLoopStarter (MediaParser *mp)
 
- Protected Attributes inherited from gnash::media::MediaParser
std::auto_ptr< VideoInfo_videoInfo
 Subclasses must set the following variables: More...
 
std::auto_ptr< AudioInfo_audioInfo
 Info about the audio stream (if any) More...
 
bool _parsingComplete
 Whether the parsing is complete or not. More...
 
boost::uint64_t _bytesLoaded
 Number of bytes loaded. More...
 
std::auto_ptr< IOChannel_stream
 The stream used to access the file. More...
 
boost::mutex _streamMutex
 
boost::uint64_t _bufferTime
 
boost::mutex _bufferTimeMutex
 
std::auto_ptr< boost::thread > _parserThread
 
boost::barrier _parserThreadStartBarrier
 
boost::mutex _parserThreadKillRequestMutex
 
bool _parserThreadKillRequested
 
boost::condition _parserThreadWakeup
 
boost::mutex _qMutex
 mutex protecting access to the a/v encoded frames queues More...
 
boost::mutex _bytesLoadedMutex
 Mutex protecting _bytesLoaded (read by main, set by parser) More...
 
bool _seekRequest
 

Detailed Description

Gstreamer based MediaParser.

Constructor & Destructor Documentation

gnash::media::gst::MediaParserGst::MediaParserGst ( std::auto_ptr< IOChannel stream)

Construct a Gstreamer-based media parser for given stream.

Can throw a MediaException if input format couldn't be detected

References _, gnash::media::MediaParser::_audioInfo, gnash::media::MediaParser::_stream, gnash::media::MediaParser::_videoInfo, gnash::media::MediaParser::startParserThread(), and swfdec_gst_connect_srcpad().

gnash::media::gst::MediaParserGst::~MediaParserGst ( )

Member Function Documentation

boost::uint64_t gnash::media::gst::MediaParserGst::getBytesLoaded ( ) const
virtual

Return number of bytes parsed so far.

Reimplemented from gnash::media::MediaParser.

References gnash::media::MediaParser::_bytesLoaded, and gnash::media::MediaParser::_bytesLoadedMutex.

boost::optional< Id3Info > gnash::media::gst::MediaParserGst::getId3Info ( ) const
virtual

Get ID3 data from the parsed stream if it exists.

It's best to do this only when parsingComplete is true.

Reimplemented from gnash::media::MediaParser.

bool gnash::media::gst::MediaParserGst::parseNextChunk ( )
virtual

Parse next chunk of input.

The implementations are required to parse a small chunk of input, so to avoid blocking too much if parsing conditions change (ie: seek or destruction requested)

When LOAD_MEDIA_IN_A_SEPARATE_THREAD is defined, this should never be called by users (consider protected).

Implements gnash::media::MediaParser.

References gnash::media::MediaParser::_bytesLoaded, gnash::media::MediaParser::_bytesLoadedMutex, gnash::media::MediaParser::_parsingComplete, gnash::media::MediaParser::_stream, and gnash::media::MediaParser::_streamMutex.

void gnash::media::gst::MediaParserGst::rememberAudioFrame ( EncodedAudioFrame frame)
void gnash::media::gst::MediaParserGst::rememberVideoFrame ( EncodedVideoFrame frame)
bool gnash::media::gst::MediaParserGst::seek ( boost::uint32_t &  time)
virtual

Seeks to the closest possible position the given position, and returns the new position.

Parameters
timeinput/output parameter, input requests a time, output return the actual time seeked to.
Returns
true if the seek was valid, false otherwise.

Implements gnash::media::MediaParser.


The documentation for this class was generated from the following files: