Shaka Packager SDK
|
#include <chunking_handler.h>
Public Member Functions | |
ChunkingHandler (const ChunkingParams &chunking_params) | |
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 | |
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 () |
Friends | |
class | ChunkingHandlerTest |
Additional Inherited Members | |
Static Public Member Functions inherited from shaka::media::MediaHandler | |
static Status | Chain (std::initializer_list< std::shared_ptr< MediaHandler >> list) |
ChunkingHandler splits the samples into segments / subsegments based on the specified chunking params. This handler is a one-in one-out handler. There can be multiple chunking handler running in different threads or even different processes, we use the "consistent chunking algorithm" to make sure the chunks in different streams are aligned without explicit communcating with each other - which is not efficient and often difficult.
Consistent Chunking Algorithm:
This algorithm will make sure the chunks from different video streams are aligned if they have aligned GoPs.
Definition at line 39 of file chunking_handler.h.
|
overrideprotectedvirtual |
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 36 of file chunking_handler.cc.
|
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 44 of file chunking_handler.cc.