Shaka Packager SDK
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
shaka::media::webm::Segmenter Class Referenceabstract
Inheritance diagram for shaka::media::webm::Segmenter:
shaka::media::webm::MultiSegmentSegmenter shaka::media::webm::SingleSegmentSegmenter shaka::media::webm::TwoPassSingleSegmentSegmenter

Public Member Functions

 Segmenter (const MuxerOptions &options)
 
Status Initialize (const StreamInfo &info, ProgressListener *progress_listener, MuxerListener *muxer_listener)
 
Status Finalize ()
 
Status AddSample (const MediaSample &sample)
 
virtual Status FinalizeSegment (int64_t start_timestamp, int64_t duration_timestamp, bool is_subsegment, int64_t segment_number)=0
 Finalize the (sub)segment.
 
virtual bool GetInitRangeStartAndEnd (uint64_t *start, uint64_t *end)=0
 
virtual bool GetIndexRangeStartAndEnd (uint64_t *start, uint64_t *end)=0
 
virtual std::vector< Range > GetSegmentRanges ()=0
 
float GetDurationInSeconds () const
 

Protected Member Functions

int64_t FromBmffTimestamp (int64_t bmff_timestamp)
 Converts the given time in ISO BMFF timestamp to WebM timecode.
 
int64_t FromWebMTimecode (int64_t webm_timecode)
 Converts the given time in WebM timecode to ISO BMFF timestamp.
 
Status WriteSegmentHeader (uint64_t file_size, MkvWriter *writer)
 Writes the Segment header to writer.
 
Status SetCluster (int64_t start_webm_timecode, uint64_t position, MkvWriter *writer)
 Creates a Cluster object with the given parameters.
 
void UpdateProgress (uint64_t progress)
 Update segmentation progress using ProgressListener.
 
void set_progress_target (uint64_t target)
 
const MuxerOptions & options () const
 
mkvmuxer::Cluster * cluster ()
 
mkvmuxer::Cues * cues ()
 
MuxerListener * muxer_listener ()
 
SeekHead * seek_head ()
 
int track_id () const
 
uint64_t segment_payload_pos () const
 
int64_t duration () const
 
virtual Status DoInitialize ()=0
 
virtual Status DoFinalize ()=0
 

Detailed Description

Definition at line 37 of file segmenter.h.

Constructor & Destructor Documentation

◆ Segmenter()

shaka::media::webm::Segmenter::Segmenter ( const MuxerOptions &  options)
explicit

Definition at line 85 of file segmenter.cc.

◆ ~Segmenter()

shaka::media::webm::Segmenter::~Segmenter ( )
virtual

Definition at line 87 of file segmenter.cc.

Member Function Documentation

◆ AddSample()

Status shaka::media::webm::Segmenter::AddSample ( const MediaSample &  sample)

Add sample to the indicated stream.

Parameters
samplepoints to the sample to be added.
Returns
OK on success, an error status otherwise.

Definition at line 172 of file segmenter.cc.

◆ cluster()

mkvmuxer::Cluster * shaka::media::webm::Segmenter::cluster ( )
inlineprotected

Definition at line 100 of file segmenter.h.

◆ cues()

mkvmuxer::Cues * shaka::media::webm::Segmenter::cues ( )
inlineprotected

Definition at line 101 of file segmenter.h.

◆ duration()

int64_t shaka::media::webm::Segmenter::duration ( ) const
inlineprotected

Definition at line 108 of file segmenter.h.

◆ Finalize()

Status shaka::media::webm::Segmenter::Finalize ( )

Finalize the segmenter.

Returns
OK on success, an error status otherwise.

Definition at line 163 of file segmenter.cc.

◆ FinalizeSegment()

Status shaka::media::webm::Segmenter::FinalizeSegment ( int64_t  start_timestamp,
int64_t  duration_timestamp,
bool  is_subsegment,
int64_t  segment_number 
)
pure virtual

Finalize the (sub)segment.

Implemented in shaka::media::webm::MultiSegmentSegmenter, and shaka::media::webm::SingleSegmentSegmenter.

Definition at line 212 of file segmenter.cc.

◆ FromBmffTimestamp()

int64_t shaka::media::webm::Segmenter::FromBmffTimestamp ( int64_t  bmff_timestamp)
protected

Converts the given time in ISO BMFF timestamp to WebM timecode.

Definition at line 229 of file segmenter.cc.

◆ FromWebMTimecode()

int64_t shaka::media::webm::Segmenter::FromWebMTimecode ( int64_t  webm_timecode)
protected

Converts the given time in WebM timecode to ISO BMFF timestamp.

Definition at line 234 of file segmenter.cc.

◆ GetDurationInSeconds()

float shaka::media::webm::Segmenter::GetDurationInSeconds ( ) const
Returns
The total length, in seconds, of segmented media files.

Definition at line 223 of file segmenter.cc.

◆ GetIndexRangeStartAndEnd()

virtual bool shaka::media::webm::Segmenter::GetIndexRangeStartAndEnd ( uint64_t *  start,
uint64_t *  end 
)
pure virtual
Returns
true if there is an index byte range, while setting start and end; or false if index byte range does not apply.

Implemented in shaka::media::webm::MultiSegmentSegmenter, and shaka::media::webm::SingleSegmentSegmenter.

◆ GetInitRangeStartAndEnd()

virtual bool shaka::media::webm::Segmenter::GetInitRangeStartAndEnd ( uint64_t *  start,
uint64_t *  end 
)
pure virtual
Returns
true if there is an initialization range, while setting start and end; or false if initialization range does not apply.

Implemented in shaka::media::webm::MultiSegmentSegmenter, and shaka::media::webm::SingleSegmentSegmenter.

◆ Initialize()

Status shaka::media::webm::Segmenter::Initialize ( const StreamInfo &  info,
ProgressListener *  progress_listener,
MuxerListener *  muxer_listener 
)

Initialize the segmenter. Calling other public methods of this class without this method returning Status::OK results in an undefined behavior.

Parameters
infoThe stream info for the stream being segmented.
muxer_listenerreceives muxer events. Can be NULL.
Returns
OK on success, an error status otherwise.

Definition at line 89 of file segmenter.cc.

◆ muxer_listener()

MuxerListener * shaka::media::webm::Segmenter::muxer_listener ( )
inlineprotected

Definition at line 102 of file segmenter.h.

◆ options()

const MuxerOptions & shaka::media::webm::Segmenter::options ( ) const
inlineprotected

Definition at line 99 of file segmenter.h.

◆ seek_head()

SeekHead * shaka::media::webm::Segmenter::seek_head ( )
inlineprotected

Definition at line 103 of file segmenter.h.

◆ segment_payload_pos()

uint64_t shaka::media::webm::Segmenter::segment_payload_pos ( ) const
inlineprotected

Definition at line 106 of file segmenter.h.

◆ set_progress_target()

void shaka::media::webm::Segmenter::set_progress_target ( uint64_t  target)
inlineprotected

Definition at line 97 of file segmenter.h.

◆ SetCluster()

Status shaka::media::webm::Segmenter::SetCluster ( int64_t  start_webm_timecode,
uint64_t  position,
MkvWriter *  writer 
)
protected

Creates a Cluster object with the given parameters.

Definition at line 278 of file segmenter.cc.

◆ track_id()

int shaka::media::webm::Segmenter::track_id ( ) const
inlineprotected

Definition at line 105 of file segmenter.h.

◆ UpdateProgress()

void shaka::media::webm::Segmenter::UpdateProgress ( uint64_t  progress)
protected

Update segmentation progress using ProgressListener.

Definition at line 287 of file segmenter.cc.

◆ WriteSegmentHeader()

Status shaka::media::webm::Segmenter::WriteSegmentHeader ( uint64_t  file_size,
MkvWriter *  writer 
)
protected

Writes the Segment header to writer.

Definition at line 240 of file segmenter.cc.


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