|
Shaka Packager SDK
|
#include <media_handler.h>
Public Member Functions | |
| 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. | |
Static Public Member Functions | |
| static Status | Chain (const std::vector< std::shared_ptr< MediaHandler > > &list) |
Protected Member Functions | |
| virtual Status | InitializeInternal ()=0 |
| virtual Status | Process (std::unique_ptr< StreamData > stream_data)=0 |
| virtual Status | OnFlushRequest (size_t input_stream_index) |
| Event handler for flush request at the specific input stream index. | |
| 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 () |
MediaHandler is the base media processing unit. Media handlers transform the input streams and propagate the outputs to downstream media handlers. There are three different types of media handlers: 1) Single input single output This is the most basic handler. It only supports one input and one output with both index as 0. 2) Multiple inputs multiple outputs The number of outputs must be equal to the number of inputs. The output stream at a specific index comes from the input stream at the same index. Different streams usually share a common resource, although they may be independent. One example of this is encryption handler. 3) Single input multiple outputs The input stream is split into multiple output streams. One example of this is the replicator media handler. Other types of media handlers are disallowed and not supported.
Definition at line 157 of file media_handler.h.
|
inline |
Connect downstream handler to the next available output stream index.
Definition at line 167 of file media_handler.h.
|
static |
Definition at line 63 of file media_handler.cc.
|
protected |
Dispatch the stream data to downstream handlers. Note that stream_data.stream_index should be the output stream index.
Definition at line 94 of file media_handler.cc.
|
inlineprotected |
Dispatch the cue event to downstream handlers.
Definition at line 243 of file media_handler.h.
|
inlineprotected |
Dispatch the media sample to downstream handlers.
Definition at line 210 of file media_handler.h.
|
inlineprotected |
Dispatch the scte35 event to downstream handlers.
Definition at line 235 of file media_handler.h.
|
inlineprotected |
Dispatch the segment info to downstream handlers.
Definition at line 227 of file media_handler.h.
|
inlineprotected |
Dispatch the stream info to downstream handlers.
Definition at line 202 of file media_handler.h.
|
inlineprotected |
Dispatch the text sample to downstream handlers.
Definition at line 219 of file media_handler.h.
|
protected |
Flush all connected downstream handlers.
Definition at line 114 of file media_handler.cc.
|
protected |
Flush the downstream connected at the specified output stream index.
Definition at line 105 of file media_handler.cc.
| Status shaka::media::MediaHandler::Initialize | ( | ) |
Initialize the handler and downstream handlers. Note that it should be called after setting up the graph before running the graph.
Definition at line 46 of file media_handler.cc.
|
inlineprotected |
Definition at line 255 of file media_handler.h.
|
protectedpure virtual |
Internal implementation of initialize. Note that it should only initialize the MediaHandler itself. Downstream handlers are handled in Initialize().
Implemented in shaka::media::CcStreamFilter, shaka::media::Muxer, shaka::media::ChunkingHandler, shaka::media::EncryptionHandler, and shaka::media::Demuxer.
|
inline |
Validate if the handler is connected to its upstream handler.
Definition at line 176 of file media_handler.h.
|
inlineprotected |
Definition at line 257 of file media_handler.h.
|
inlineprotected |
Definition at line 256 of file media_handler.h.
|
protectedvirtual |
Event handler for flush request at the specific input stream index.
Reimplemented in shaka::media::Muxer, and shaka::media::ChunkingHandler.
Definition at line 83 of file media_handler.cc.
|
inlineprotected |
Definition at line 259 of file media_handler.h.
|
protectedpure virtual |
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.
Implemented in shaka::media::CcStreamFilter, shaka::media::Muxer, shaka::media::ChunkingHandler, shaka::media::EncryptionHandler, and shaka::media::Demuxer.
| Status shaka::media::MediaHandler::SetHandler | ( | size_t | output_stream_index, |
| std::shared_ptr< MediaHandler > | handler | ||
| ) |
Connect downstream handler at the specified output stream index.
Definition at line 34 of file media_handler.cc.
|
protectedvirtual |
Validate if the stream at the specified index actually exists.
Reimplemented in shaka::media::Demuxer.
Definition at line 90 of file media_handler.cc.