RDK Documentation (Open Sourced RDK Components)
StreamAbstractionAAMP_COMPOSITEIN Class Reference

Fragment collector for MPEG DASH. More...

#include <compositein_shim.h>

Inheritance diagram for StreamAbstractionAAMP_COMPOSITEIN:
Inheritance graph
Collaboration diagram for StreamAbstractionAAMP_COMPOSITEIN:
Collaboration graph

Public Member Functions

 StreamAbstractionAAMP_COMPOSITEIN (AampLogManager *logObj, class PrivateInstanceAAMP *aamp, double seekpos, float rate)
 StreamAbstractionAAMP_COMPOSITEIN Constructor.
 
 ~StreamAbstractionAAMP_COMPOSITEIN ()
 StreamAbstractionAAMP_COMPOSITEIN Destructor.
 
 StreamAbstractionAAMP_COMPOSITEIN (const StreamAbstractionAAMP_COMPOSITEIN &)=delete
 Copy constructor disabled. More...
 
StreamAbstractionAAMP_COMPOSITEINoperator= (const StreamAbstractionAAMP_COMPOSITEIN &)=delete
 assignment operator disabled More...
 
AAMPStatusType Init (TuneType tuneType) override
 Initialize a newly created object. More...
 
void Start () override
 Starts streaming.
 
void Stop (bool clearChannelData) override
 Stops streaming.
 
std::vector< StreamInfo * > GetAvailableVideoTracks (void) override
 To get the available video tracks. More...
 
std::vector< StreamInfo * > GetAvailableThumbnailTracks (void) override
 To get the available thumbnail tracks. More...
 
bool SetThumbnailTrack (int) override
 To set the available thumbnail tracks. More...
 
std::vector< ThumbnailDataGetThumbnailRangeData (double tStart, double tEnd, std::string *baseurl, int *raw_w, int *raw_h, int *width, int *height) override
 Function to fetch the thumbnail data. More...
 
- Public Member Functions inherited from StreamAbstractionAAMP_VIDEOIN
 StreamAbstractionAAMP_VIDEOIN (const std::string name, const std::string callSign, AampLogManager *logObj, class PrivateInstanceAAMP *aamp, double seekpos, float rate)
 StreamAbstractionAAMP_VIDEOIN Constructor.
 
 ~StreamAbstractionAAMP_VIDEOIN ()
 StreamAbstractionAAMP_VIDEOIN Destructor.
 
 StreamAbstractionAAMP_VIDEOIN (const StreamAbstractionAAMP_VIDEOIN &)=delete
 Copy constructor disabled. More...
 
StreamAbstractionAAMP_VIDEOINoperator= (const StreamAbstractionAAMP_VIDEOIN &)=delete
 assignment operator disabled More...
 
void DumpProfiles (void) override
 Stub implementation.
 
void Start () override
 Starts streaming.
 
void Stop (bool clearChannelData) override
 Stops streaming.
 
void SetVideoRectangle (int x, int y, int w, int h) override
 SetVideoRectangle sets the position coordinates (x,y) & size (w,h) More...
 
AAMPStatusType Init (TuneType tuneType) override
 Initialize a newly created object. More...
 
void GetStreamFormat (StreamOutputFormat &primaryOutputFormat, StreamOutputFormat &audioOutputFormat, StreamOutputFormat &auxOutputFormat, StreamOutputFormat &subtitleOutputFormat) override
 Get output format of stream. More...
 
virtual bool Is4KStream (int &height, long &bandwidth) override
 check if current stream have 4K content More...
 
double GetStreamPosition () override
 Get current stream position. More...
 
MediaTrackGetMediaTrack (TrackType type) override
 Return MediaTrack of requested type. More...
 
double GetFirstPTS () override
 Get PTS of first sample. More...
 
double GetStartTimeOfFirstPTS () override
 Get Start time PTS of first sample. More...
 
double GetBufferedDuration () override
 Get the Duration of buffer.
 
bool IsInitialCachingSupported () override
 Check if Initial caching is supported. More...
 
int GetBWIndex (long bitrate) override
 Get index of profile corresponds to bandwidth. More...
 
std::vector< long > GetVideoBitrates (void) override
 To get the available video bitrates. More...
 
std::vector< long > GetAudioBitrates (void) override
 To get the available audio bitrates. More...
 
long GetMaxBitrate (void) override
 Gets Max Bitrate avialable for current playback. More...
 
void StopInjection (void) override
 Stops injecting fragments to StreamSink.
 
void StartInjection (void) override
 Start injecting fragments to StreamSink.
 
void SeekPosUpdate (double)
 Update seek position when player is initialized. More...
 
- Public Member Functions inherited from StreamAbstractionAAMP
 StreamAbstractionAAMP (AampLogManager *logObj, PrivateInstanceAAMP *aamp)
 StreamAbstractionAAMP constructor.
 
virtual ~StreamAbstractionAAMP ()
 StreamAbstractionAAMP destructor.
 
 StreamAbstractionAAMP (const StreamAbstractionAAMP &)=delete
 StreamAbstractionAAMP Copy Constructor.
 
StreamAbstractionAAMPoperator= (const StreamAbstractionAAMP &)=delete
 StreamAbstractionAAMP assignment operator overloading.
 
void WaitForVideoTrackCatchup ()
 Waits audio track injection until caught up with video track. Used internally by injection logic. More...
 
void ReassessAndResumeAudioTrack (bool abort)
 Unblock track if caught up with video or downloads are stopped. More...
 
void SetTsbBandwidth (long tsbBandwidth)
 When TSB is involved, use this to set bandwidth to be reported. More...
 
long GetTsbBandwidth ()
 When TSB is involved, use this to get bandwidth to be reported. More...
 
void SetESChangeStatus (void)
 Set elementary stream type change status for reconfigure the pipeline. More...
 
void ResetESChangeStatus (void)
 Reset elementary stream type change status once the pipeline reconfigured. More...
 
bool GetESChangeStatus (void)
 Get elementary stream type change status for reconfigure the pipeline.. More...
 
bool RampDownProfile (long http_error)
 Rampdown profile. More...
 
void GetDesiredProfileOnBuffer (int currProfileIndex, int &newProfileIndex)
 Get Desired Profile based on Buffer availability. More...
 
void GetDesiredProfileOnSteadyState (int currProfileIndex, int &newProfileIndex, long nwBandwidth)
 Get Desired Profile on steady state. More...
 
void ConfigureTimeoutOnBuffer ()
 Configure download timeouts based on buffer. More...
 
bool IsLowestProfile (int currentProfileIndex)
 Check whether the current profile is lowest. More...
 
long getOriginalCurlError (long http_error)
 Convert custom curl errors to original. More...
 
bool CheckForRampDownProfile (long http_error)
 Check for ramdown profile. More...
 
void CheckForProfileChange (void)
 Checks and update profile based on bandwidth. More...
 
int GetIframeTrack ()
 Get iframe track index. This shall be called only after UpdateIframeTracks() is done. More...
 
void UpdateIframeTracks ()
 Update iframe tracks. Subclasses shall invoke this after StreamInfo is populated . More...
 
double LastVideoFragParsedTimeMS (void)
 Get the last video fragment parsed time. More...
 
int GetDesiredProfile (bool getMidProfile)
 Get the desired profile to start fetching. More...
 
void UpdateRampdownProfileReason (void)
 Update rampdown profile on network failure. More...
 
void NotifyBitRateUpdate (int profileIndex, const StreamInfo &cacheFragStreamInfo, double position)
 Notify bitrate updates to application. Used internally by injection logic. More...
 
bool IsStreamerAtLivePoint ()
 Whether we are playing at live point or not. More...
 
virtual bool GetPreferredLiveOffsetFromConfig ()
 Set the offset value Live object. More...
 
virtual void NotifyPlaybackPaused (bool paused)
 Function called when playback is paused to update related flags. More...
 
bool CheckIfPlayerRunningDry (void)
 Check if player caches are running dry. More...
 
void CheckForPlaybackStall (bool fragmentParsed)
 Check if playback has stalled and update related flags. More...
 
void NotifyFirstFragmentInjected (void)
 MediaTracks shall call this to notify first fragment is injected. More...
 
double GetElapsedTime ()
 Get elapsed time of play-back. More...
 
virtual double GetFirstPeriodStartTime ()
 
virtual double GetFirstPeriodDynamicStartTime ()
 
virtual uint32_t GetCurrPeriodTimeScale ()
 
bool CheckForRampDownLimitReached ()
 Check for ramp down limit reached by player. More...
 
int GetMaxBWProfile ()
 Get profile index of highest bandwidth. More...
 
ABRManager & GetABRManager ()
 Get the ABRManager reference. More...
 
virtual int GetProfileCount ()
 Get number of profiles/ representations from subclass. More...
 
virtual int GetProfileIndexForBandwidth (long mTsbBandwidth)
 Get profile index for TsbBandwidth. More...
 
long GetCurProfIdxBW ()
 
long GetVideoBitrate (void)
 Get the bitrate of current video profile selected. More...
 
long GetAudioBitrate (void)
 Get the bitrate of current audio profile selected. More...
 
void SetVideoBitrate (long bitrate)
 Set a preferred bitrate for video. More...
 
bool IsStreamerStalled (void)
 Check if playback stalled in fragment collector side. More...
 
bool IsMuxedStream ()
 Check if current stream is muxed. More...
 
virtual void NotifyFirstVideoPTS (unsigned long long pts, unsigned long timeScale)
 Receives first video PTS for the current playback. More...
 
virtual void StartSubtitleParser ()
 Kicks off subtitle display - sent at start of video presentation. More...
 
virtual void PauseSubtitleParser (bool pause)
 Pause/unpause subtitles. More...
 
void WaitForAudioTrackCatchup (void)
 Waits subtitle track injection until caught up with muxed/audio track. Used internally by injection logic. More...
 
void AbortWaitForAudioTrackCatchup (bool force)
 Unblock subtitle track injector if downloads are stopped. More...
 
virtual void SetCDAIObject (CDAIObject *cdaiObj)
 Set Client Side DAI object instance. More...
 
virtual bool IsEOSReached ()
 Checks if streamer reached end of stream. More...
 
virtual std::vector< AudioTrackInfo > & GetAvailableAudioTracks (bool allTrack=false)
 Get available audio tracks. More...
 
virtual std::vector< TextTrackInfo > & GetAvailableTextTracks (bool allTrack=false)
 Get available text tracks. More...
 
double GetLastInjectedFragmentPosition ()
 Function to returns last injected fragment position. More...
 
bool ProcessDiscontinuity (TrackType type)
 Function to process discontinuity. More...
 
void AbortWaitForDiscontinuity ()
 Function to abort any wait for discontinuity by injector theads. More...
 
void CheckForMediaTrackInjectionStall (TrackType type)
 Function to check if any media tracks are stalled on discontinuity. More...
 
double GetBufferedVideoDurationSec ()
 Get buffered video duration in seconds. More...
 
void UpdateStreamInfoBitrateData (int profileIndex, StreamInfo &cacheFragStreamInfo)
 Function to update stream info of current fetched fragment. More...
 
virtual int GetAudioTrack ()
 Get current audio track. More...
 
virtual bool GetCurrentAudioTrack (AudioTrackInfo &audioTrack)
 Get current audio track information. More...
 
virtual bool GetCurrentTextTrack (TextTrackInfo &textTrack)
 Get current text track. More...
 
int GetTextTrack ()
 Get current text track. More...
 
void RefreshSubtitles ()
 Refresh subtitle track. More...
 
virtual void SetAudioTrack (int index)
 SetAudioTrack set the audio track using index value. [currently for OTA]. More...
 
virtual void SetAudioTrackByLanguage (const char *lang)
 SetAudioTrackByLanguage set the audio language. [currently for OTA]. More...
 
virtual void SetPreferredAudioLanguages ()
 SetPreferredAudioLanguages set the preferred audio languages and rendition. [currently for OTA]. More...
 
void MuteSubtitles (bool mute)
 Send a MUTE/UNMUTE packet to the subtitle renderer. More...
 
void WaitForVideoTrackCatchupForAux ()
 
virtual void ApplyContentRestrictions (std::vector< std::string > restrictions)
 Set Content Restrictions. More...
 
virtual void DisableContentRestrictions (long grace, long time, bool eventChange)
 Disable Content Restrictions - unlock. More...
 
virtual void EnableContentRestrictions ()
 Enable Content Restrictions - lock. More...
 
bool GetAudioFwdToAuxStatus ()
 Get audio forward to aux pipeline status. More...
 
void SetAudioFwdToAuxStatus (bool status)
 Set audio forward to aux pipeline status. More...
 
virtual void SetAudioTrackInfoFromMuxedStream (std::vector< AudioTrackInfo > &vector)
 Set AudioTrack info from Muxed stream. More...
 
void SetCurrentAudioTrackIndex (std::string &index)
 Set current audio track index. More...
 
virtual void ChangeMuxedAudioTrackIndex (std::string &index)
 Change muxed audio track index. More...
 
virtual void InitSubtitleParser (char *data)
 Initilaize subtitle parser for sidecar support. More...
 
virtual void ResetSubtitle ()
 reset subtitle parser created for sidecar support More...
 
virtual void MuteSubtitleOnPause ()
 mute subtitles on pause More...
 
virtual void ResumeSubtitleOnPlay (bool mute, char *data)
 resume subtitles on play More...
 
virtual void MuteSidecarSubtitles (bool mute)
 mute/unmute sidecar subtitles More...
 
virtual void ResumeSubtitleAfterSeek (bool mute, char *data)
 resume subtitles after trickplay More...
 
virtual bool SetTextStyle (const std::string &options)
 Set the text style of the subtitle to the options passed. More...
 

Additional Inherited Members

- Data Fields inherited from StreamAbstractionAAMP
PrivateInstanceAAMPaamp
 
AampLogManagermLogObj
 
bool trickplayMode
 
int currentProfileIndex
 
int currentAudioProfileIndex
 
int currentTextTrackProfileIndex
 
int profileIdxForBandwidthNotification
 
bool hasDrm
 
bool mIsAtLivePoint
 
bool mIsPlaybackStalled
 
bool mNetworkDownDetected
 
bool mCheckForRampdown
 
TuneType mTuneType
 
int mRampDownCount
 
double mProgramStartTime
 
int mTsbMaxBitrateProfileIndex
 
- Protected Member Functions inherited from StreamAbstractionAAMP_VIDEOIN
StreamInfoGetStreamInfo (int idx) override
 Get stream information of a profile from subclass. More...
 
AAMPStatusType InitHelper (TuneType tuneType)
 
void StartHelper (int port, const std::string &methodName)
 calls start on video in specified by port and method name
 
void StopHelper (const std::string &methodName)
 Stops streaming.
 
- Protected Attributes inherited from StreamAbstractionAAMP_VIDEOIN
bool mTuned
 
- Protected Attributes inherited from StreamAbstractionAAMP
std::vector< AudioTrackInfomAudioTracks
 
std::vector< AudioTrackInfomAudioTracksAll
 
std::vector< TextTrackInfomTextTracksAll
 
std::vector< TextTrackInfomTextTracks
 
MediaTrackDiscontinuityState mTrackState
 
std::string mAudioTrackIndex
 
std::string mTextTrackIndex
 
bool mFwdAudioToAux
 

yes

Fragment collector for MPEG DASH.

Definition at line 41 of file compositein_shim.h.

Constructor & Destructor Documentation

◆ StreamAbstractionAAMP_COMPOSITEIN()

StreamAbstractionAAMP_COMPOSITEIN::StreamAbstractionAAMP_COMPOSITEIN ( const StreamAbstractionAAMP_COMPOSITEIN )
delete

Copy constructor disabled.

Member Function Documentation

◆ operator=()

StreamAbstractionAAMP_COMPOSITEIN& StreamAbstractionAAMP_COMPOSITEIN::operator= ( const StreamAbstractionAAMP_COMPOSITEIN )
delete

assignment operator disabled

◆ Init()

AAMPStatusType StreamAbstractionAAMP_COMPOSITEIN::Init ( TuneType  tuneType)
overridevirtual

Initialize a newly created object.

Parameters
tuneTypeto set type of object.
Return values
eAAMPSTATUS_OK

Implements StreamAbstractionAAMP.

Definition at line 54 of file compositein_shim.cpp.

◆ GetAvailableVideoTracks()

std::vector< StreamInfo * > StreamAbstractionAAMP_COMPOSITEIN::GetAvailableVideoTracks ( void  )
overridevirtual

To get the available video tracks.

Returns
available video tracks.

Implements StreamAbstractionAAMP.

Definition at line 86 of file compositein_shim.cpp.

◆ GetAvailableThumbnailTracks()

std::vector< StreamInfo * > StreamAbstractionAAMP_COMPOSITEIN::GetAvailableThumbnailTracks ( void  )
overridevirtual

To get the available thumbnail tracks.

Returns
available thunbnail tracks.

Implements StreamAbstractionAAMP.

Definition at line 96 of file compositein_shim.cpp.

◆ SetThumbnailTrack()

bool StreamAbstractionAAMP_COMPOSITEIN::SetThumbnailTrack ( int  thumbnailIndex)
overridevirtual

To set the available thumbnail tracks.

Returns
True/False to set.

Implements StreamAbstractionAAMP.

Definition at line 105 of file compositein_shim.cpp.

◆ GetThumbnailRangeData()

std::vector< ThumbnailData > StreamAbstractionAAMP_COMPOSITEIN::GetThumbnailRangeData ( double  start,
double  end,
std::string *  baseurl,
int *  raw_w,
int *  raw_h,
int *  width,
int *  height 
)
overridevirtual

Function to fetch the thumbnail data.

Returns
Updated vector of available thumbnail data.

Implements StreamAbstractionAAMP.

Definition at line 116 of file compositein_shim.cpp.


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