Shaka Packager SDK
|
#include <muxer.h>
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 (std::shared_ptr< 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 available output stream index. | |
Status | Initialize () |
bool | IsConnected () |
Validate if the handler is connected to its upstream handler. | |
Protected Member Functions | |
const MuxerOptions & | options () const |
MuxerListener * | muxer_listener () |
ProgressListener * | progress_listener () |
uint64_t | Now () const |
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) const |
Status | DispatchStreamInfo (size_t stream_index, std::shared_ptr< const StreamInfo > stream_info) const |
Dispatch the stream info to downstream handlers. | |
Status | DispatchMediaSample (size_t stream_index, std::shared_ptr< const MediaSample > media_sample) const |
Dispatch the media sample to downstream handlers. | |
Status | DispatchTextSample (size_t stream_index, std::shared_ptr< const TextSample > text_sample) const |
Dispatch the text sample to downstream handlers. | |
Status | DispatchSegmentInfo (size_t stream_index, std::shared_ptr< const SegmentInfo > segment_info) const |
Dispatch the segment info to downstream handlers. | |
Status | DispatchScte35Event (size_t stream_index, std::shared_ptr< const Scte35Event > scte35_event) const |
Dispatch the scte35 event to downstream handlers. | |
Status | DispatchCueEvent (size_t stream_index, std::shared_ptr< const CueEvent > cue_event) const |
Dispatch the cue event 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 downstream handlers. | |
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 () |
Additional Inherited Members | |
Static Public Member Functions inherited from shaka::media::MediaHandler | |
static Status | Chain (const std::vector< std::shared_ptr< MediaHandler >> &list) |
Muxer is responsible for taking elementary stream samples and producing media containers. An optional KeySource can be provided to Muxer to generate encrypted outputs.
void shaka::media::Muxer::Cancel | ( | ) |
|
inlineoverrideprotectedvirtual |
Internal implementation of initialize. Note that it should only initialize the MediaHandler itself. Downstream handlers are handled in Initialize().
Implements shaka::media::MediaHandler.
|
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.
|
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 std::chrone::system_clock::now() to generate the time-stamps.
clock | is the Clock to be injected. |
void shaka::media::Muxer::SetMuxerListener | ( | std::unique_ptr< MuxerListener > | muxer_listener | ) |
Set a MuxerListener event handler for this object.
muxer_listener | should not be NULL. |
void shaka::media::Muxer::SetProgressListener | ( | std::unique_ptr< ProgressListener > | progress_listener | ) |
Set a ProgressListener event handler for this object.
progress_listener | should not be NULL. |