RDK Documentation (Open Sourced RDK Components)
IsoBmffProcessor Class Reference

Class for ISO BMFF Fragment Processor. More...

#include <isobmffprocessor.h>

Inheritance diagram for IsoBmffProcessor:
Inheritance graph
Collaboration diagram for IsoBmffProcessor:
Collaboration graph

Public Member Functions

 IsoBmffProcessor (class PrivateInstanceAAMP *aamp, AampLogManager *logObj=NULL, IsoBmffProcessorType trackType=eBMFFPROCESSOR_TYPE_VIDEO, IsoBmffProcessor *peerBmffProcessor=NULL)
 IsoBmffProcessor constructor.
 
 ~IsoBmffProcessor ()
 IsoBmffProcessor destructor.
 
 IsoBmffProcessor (const IsoBmffProcessor &)=delete
 
IsoBmffProcessoroperator= (const IsoBmffProcessor &)=delete
 
void setThrottleEnable (bool enable) override
 Enable or disable throttle. More...
 
void setFrameRateForTM (int frameRate) override
 Set frame rate for trickmode. More...
 
bool sendSegment (char *segment, size_t &size, double position, double duration, bool discontinuous, bool &ptsError) override
 Process and send ISOBMFF fragment. More...
 
void abort () override
 Abort all operations. More...
 
void reset () override
 Reset all variables. More...
 
void setRate (double rate, PlayMode mode) override
 Set playback rate. More...
 
- Public Member Functions inherited from MediaProcessor
 MediaProcessor ()
 MediaProcessor constructor.
 
virtual ~MediaProcessor ()
 MediaProcessor destructor.
 
 MediaProcessor (const MediaProcessor &)=delete
 
MediaProcessoroperator= (const MediaProcessor &)=delete
 
virtual void ChangeMuxedAudioTrack (unsigned char index)
 
virtual void SetAudioGroupId (std::string &id)
 Function to set the group-ID. More...
 
virtual void setApplyOffsetFlag (bool enable)
 Function to set a offsetflag. if the value is fasle, no need to apply offset while doing pts restamping. More...
 

Private Member Functions

void setPeerProcessor (IsoBmffProcessor *processor)
 Set peer instance of IsoBmffProcessor. More...
 
void setBasePTS (uint64_t pts, uint32_t tScale)
 Set base PTS and TimeScale value. More...
 
void cacheInitSegment (char *segment, size_t size)
 Cache init fragment internally. More...
 
void pushInitSegment (double position)
 Push init fragment cached earlier. More...
 
void clearInitSegment ()
 Clear init fragment cached earlier. More...
 

Private Attributes

PrivateInstanceAAMPp_aamp
 
uint32_t timeScale
 
uint64_t basePTS
 
IsoBmffProcessorpeerProcessor
 
IsoBmffProcessorType type
 
bool processPTSComplete
 
bool initSegmentProcessComplete
 
double playRate
 
std::vector< GrowableBuffer * > initSegment
 
bool abortAll
 
pthread_mutex_t m_mutex
 
pthread_cond_t m_cond
 
AampLogManagermLogObj
 

yes

Class for ISO BMFF Fragment Processor.

Definition at line 47 of file isobmffprocessor.h.

Member Function Documentation

◆ setThrottleEnable()

void IsoBmffProcessor::setThrottleEnable ( bool  enable)
inlineoverridevirtual

Enable or disable throttle.

Parameters
[in]enable- throttle enable/disable
Returns
void

Implements MediaProcessor.

Definition at line 74 of file isobmffprocessor.h.

◆ setFrameRateForTM()

void IsoBmffProcessor::setFrameRateForTM ( int  frameRate)
inlineoverridevirtual

Set frame rate for trickmode.

Parameters
[in]frameRate- rate per second
Returns
void

Implements MediaProcessor.

Definition at line 82 of file isobmffprocessor.h.

◆ sendSegment()

IsoBmffProcessor::sendSegment ( char *  segment,
size_t &  size,
double  position,
double  duration,
bool  discontinuous,
bool &  ptsError 
)
overridevirtual

Process and send ISOBMFF fragment.

Parameters
[in]segment- fragment buffer pointer
[in]size- fragment buffer size
[in]position- position of fragment
[in]duration- duration of fragment
[in]discontinuous- true if discontinuous fragment
[out]ptsError- flag indicates if any PTS error occurred
Returns
true if fragment was sent, false otherwise

Implements MediaProcessor.

Definition at line 69 of file isobmffprocessor.cpp.

◆ abort()

IsoBmffProcessor::abort ( )
overridevirtual

Abort all operations.

Returns
void

Implements MediaProcessor.

Definition at line 241 of file isobmffprocessor.cpp.

◆ reset()

IsoBmffProcessor::reset ( )
overridevirtual

Reset all variables.

Returns
void

Implements MediaProcessor.

Definition at line 252 of file isobmffprocessor.cpp.

◆ setRate()

IsoBmffProcessor::setRate ( double  rate,
PlayMode  mode 
)
overridevirtual

Set playback rate.

Parameters
[in]rate- playback rate
[in]mode- playback mode
Returns
void

Implements MediaProcessor.

Definition at line 268 of file isobmffprocessor.cpp.

◆ setPeerProcessor()

void IsoBmffProcessor::setPeerProcessor ( IsoBmffProcessor processor)
inlineprivate

Set peer instance of IsoBmffProcessor.

Parameters
[in]processor- peer instance
Returns
void

Definition at line 128 of file isobmffprocessor.h.

◆ setBasePTS()

IsoBmffProcessor::setBasePTS ( uint64_t  pts,
uint32_t  tScale 
)
private

Set base PTS and TimeScale value.

Parameters
[in]pts- base PTS value
[in]tScale- TimeScale value
Returns
void

Definition at line 276 of file isobmffprocessor.cpp.

◆ cacheInitSegment()

IsoBmffProcessor::cacheInitSegment ( char *  segment,
size_t  size 
)
private

Cache init fragment internally.

Parameters
[in]segment- buffer pointer
[in]size- buffer size
Returns
void

Definition at line 290 of file isobmffprocessor.cpp.

◆ pushInitSegment()

IsoBmffProcessor::pushInitSegment ( double  position)
private

Push init fragment cached earlier.

Parameters
[in]position- position value
Returns
void

Definition at line 304 of file isobmffprocessor.cpp.

◆ clearInitSegment()

IsoBmffProcessor::clearInitSegment ( )
private

Clear init fragment cached earlier.

Returns
void

Definition at line 324 of file isobmffprocessor.cpp.


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