Shaka Player Embedded
Classes | Public Member Functions | List of all members
shaka::media::Demuxer Class Referenceabstract

#include <demuxer.h>

Inheritance diagram for shaka::media::Demuxer:
shaka::media::ffmpeg::FFmpegDemuxer

Classes

class  Client
 

Public Member Functions

 Demuxer ()
 
virtual ~ Demuxer ()
 
 Demuxer (const Demuxer &)=delete
 
Demuxeroperator= (const Demuxer &)=delete
 
 Demuxer (Demuxer &&)=delete
 
Demuxeroperator= (Demuxer &&)=delete
 
virtual bool SwitchType (const std::string &mime_type)
 
virtual void Reset ()=0
 
virtual bool Demux (double timestamp_offset, const uint8_t *data, size_t size, std::vector< std::shared_ptr< EncodedFrame >> *frames)=0
 

Detailed Description

This is given raw bytes from an input stream and produces EncodedFrame objects. This must do so synchronously and is called on a background thread. This is only used from a single thread after being created.

Definition at line 35 of file demuxer.h.

Constructor & Destructor Documentation

§ Demuxer() [1/3]

shaka::media::Demuxer::Demuxer ( )

§ ~ Demuxer()

virtual shaka::media::Demuxer::~ Demuxer ( )
virtual

§ Demuxer() [2/3]

shaka::media::Demuxer::Demuxer ( const Demuxer )
delete

§ Demuxer() [3/3]

shaka::media::Demuxer::Demuxer ( Demuxer &&  )
delete

Member Function Documentation

§ Demux()

virtual bool shaka::media::Demuxer::Demux ( double  timestamp_offset,
const uint8_t *  data,
size_t  size,
std::vector< std::shared_ptr< EncodedFrame >> *  frames 
)
pure virtual

Attempts to demux the given data into some number of encoded frames.

If the data contains multiple streams (i.e. multiplexed content), then all frames will be given and they will be separated based on their stream_info field.

This may be given segments from a different source after starting. This will be first given the init segment for the new stream then the new segments. This should support this case and reinitialize the demxuer if needed. The resulting frames should have different stream_info fields from before, even if they are of the same type and codec.

Parameters
timestamp_offsetThe current offset to add to the timestamps.
dataThe data to demux.
sizeThe number of bytes in data.
frames[OUT] Where to insert newly created frames.
Returns
True on success, false on error.

Implemented in shaka::media::ffmpeg::FFmpegDemuxer.

§ operator=() [1/2]

Demuxer& shaka::media::Demuxer::operator= ( Demuxer &&  )
delete

§ operator=() [2/2]

Demuxer& shaka::media::Demuxer::operator= ( const Demuxer )
delete

§ Reset()

virtual void shaka::media::Demuxer::Reset ( )
pure virtual

Resets the demuxer to parse a new stream. This may be called when adapting before parsing a new stream. This should reset any partial reads and should prepare to read from a new stream. This may not be called during adaptation, so the demuxer should still handle getting a new init segment without calling Reset first.

Implemented in shaka::media::ffmpeg::FFmpegDemuxer.

§ SwitchType()

Doxygen_Skip bool shaka::media::Demuxer::SwitchType ( const std::string &  mime_type)
virtual

Switches to demux content of the given MIME type. It is not required for this to be supported; but if it is supported, this will be called before changing containers. This is not called for changing codec profiles or adaptation.

Parameters
mime_typeThe MIME type to start demuxing.
Returns
True on success, false on error or unsupported.

Definition at line 43 of file demuxer.cc.


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