Shaka Packager SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Protected Member Functions | List of all members
shaka::media::Muxer Class Referenceabstract

#include <muxer.h>

Inheritance diagram for shaka::media::Muxer:
shaka::media::MediaHandler shaka::media::mp2t::TsMuxer shaka::media::mp4::MP4Muxer shaka::media::webm::WebMMuxer

Public Member Functions

 Muxer (const MuxerOptions &options)
 
void Cancel ()
 
void SetMuxerListener (std::unique_ptr< MuxerListener > muxer_listener)
 
void SetProgressListener (std::unique_ptr< ProgressListener > progress_listener)
 
const std::vector
< std::shared_ptr< const
StreamInfo > > & 
streams () const
 
void set_clock (base::Clock *clock)
 
- Public Member Functions inherited from shaka::media::MediaHandler
Status SetHandler (size_t output_stream_index, std::shared_ptr< MediaHandler > handler)
 Connect downstream handler at the specified output stream index.
 
Status AddHandler (std::shared_ptr< MediaHandler > handler)
 Connect downstream handler to the next availble output stream index.
 
Status Initialize ()
 
bool IsConnected ()
 Validate if the handler is connected to its upstream handler.
 

Protected Member Functions

const MuxerOptionsoptions () const
 
MuxerListenermuxer_listener ()
 
ProgressListenerprogress_listener ()
 
base::Clock * clock ()
 
MediaHandler implementation overrides.
Status InitializeInternal () override
 
Status Process (std::unique_ptr< StreamData > stream_data) override
 
Status OnFlushRequest (size_t input_stream_index) override
 Event handler for flush request at the specific input stream index.
 
- Protected Member Functions inherited from shaka::media::MediaHandler
virtual bool ValidateOutputStreamIndex (size_t stream_index) const
 Validate if the stream at the specified index actually exists.
 
Status Dispatch (std::unique_ptr< StreamData > stream_data)
 
Status DispatchPeriodInfo (size_t stream_index, std::shared_ptr< const PeriodInfo > period_info)
 Dispatch the period info to downstream handlers.
 
Status DispatchStreamInfo (size_t stream_index, std::shared_ptr< const StreamInfo > stream_info)
 Dispatch the stream info to downstream handlers.
 
Status DispatchMediaSample (size_t stream_index, std::shared_ptr< const MediaSample > media_sample)
 Dispatch the media sample to downstream handlers.
 
Status DispatchTextSample (size_t stream_index, std::shared_ptr< const TextSample > text_sample)
 Dispatch the text sample to downsream handlers.
 
Status DispatchMediaEvent (size_t stream_index, std::shared_ptr< const MediaEvent > media_event)
 Dispatch the media event to downstream handlers.
 
Status DispatchSegmentInfo (size_t stream_index, std::shared_ptr< const SegmentInfo > segment_info)
 Dispatch the segment info to downstream handlers.
 
Status FlushDownstream (size_t output_stream_index)
 Flush the downstream connected at the specified output stream index.
 
Status FlushAllDownstreams ()
 Flush all connected downstreams.
 
bool initialized ()
 
size_t num_input_streams () const
 
size_t next_output_stream_index () const
 
const std::map< size_t,
std::pair< std::shared_ptr
< MediaHandler >, size_t > > & 
output_handlers ()
 

Detailed Description

Muxer is responsible for taking elementary stream samples and producing media containers. An optional KeySource can be provided to Muxer to generate encrypted outputs.

Definition at line 30 of file muxer.h.

Member Function Documentation

void shaka::media::Muxer::Cancel ( )

Cancel a muxing job in progress. Will cause Run to exit with an error status of type CANCELLED.

Definition at line 24 of file muxer.cc.

Status shaka::media::Muxer::InitializeInternal ( )
inlineoverrideprotectedvirtual

Internal implementation of initialize. Note that it should only initialize the MediaHandler itself. Downstream handlers are handled in Initialize().

Implements shaka::media::MediaHandler.

Definition at line 64 of file muxer.h.

Status shaka::media::Muxer::Process ( std::unique_ptr< StreamData stream_data)
overrideprotectedvirtual

Process the incoming stream data. Note that (1) stream_data.stream_index should be the input stream index; (2) The implementation needs to call DispatchXxx to dispatch the processed stream data to the downstream handlers after finishing processing if needed.

Implements shaka::media::MediaHandler.

Definition at line 37 of file muxer.cc.

void shaka::media::Muxer::set_clock ( base::Clock *  clock)
inline

Inject clock, mainly used for testing. The injected clock will be used to generate the creation time-stamp and modification time-stamp of the muxer output. If no clock is injected, the code uses base::Time::Now() to generate the time-stamps.

Parameters
clockis the Clock to be injected.

Definition at line 57 of file muxer.h.

void shaka::media::Muxer::SetMuxerListener ( std::unique_ptr< MuxerListener muxer_listener)

Set a MuxerListener event handler for this object.

Parameters
muxer_listenershould not be NULL.

Definition at line 28 of file muxer.cc.

void shaka::media::Muxer::SetProgressListener ( std::unique_ptr< ProgressListener progress_listener)

Set a ProgressListener event handler for this object.

Parameters
progress_listenershould not be NULL.

Definition at line 32 of file muxer.cc.


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