RDK Documentation (Open Sourced RDK Components)
|
StreamAbstraction class of AAMP. More...
#include <StreamAbstractionAAMP.h>
Public Member Functions | |
StreamAbstractionAAMP (AampLogManager *logObj, PrivateInstanceAAMP *aamp) | |
StreamAbstractionAAMP constructor. | |
virtual | ~StreamAbstractionAAMP () |
StreamAbstractionAAMP destructor. | |
StreamAbstractionAAMP (const StreamAbstractionAAMP &)=delete | |
StreamAbstractionAAMP Copy Constructor. | |
StreamAbstractionAAMP & | operator= (const StreamAbstractionAAMP &)=delete |
StreamAbstractionAAMP assignment operator overloading. | |
virtual void | DumpProfiles (void)=0 |
Dump profiles for debugging. To be implemented by sub classes. More... | |
virtual AAMPStatusType | Init (TuneType tuneType)=0 |
Initialize a newly created object. To be implemented by sub classes. More... | |
virtual void | Start ()=0 |
Start streaming. More... | |
virtual void | Stop (bool clearChannelData)=0 |
Stops streaming. More... | |
virtual void | GetStreamFormat (StreamOutputFormat &primaryOutputFormat, StreamOutputFormat &audioOutputFormat, StreamOutputFormat &auxAudioOutputFormat, StreamOutputFormat &subtitleOutputFormat)=0 |
Get output format of stream. More... | |
virtual double | GetStreamPosition ()=0 |
Get current stream position. More... | |
virtual double | GetFirstPTS ()=0 |
Get PTS of first sample. More... | |
virtual double | GetStartTimeOfFirstPTS ()=0 |
Get Start time PTS of first sample. More... | |
virtual MediaTrack * | GetMediaTrack (TrackType type)=0 |
Return MediaTrack of requested type. More... | |
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... | |
virtual double | GetBufferedDuration (void)=0 |
Function to get the buffer duration of stream. 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... | |
virtual bool | IsInitialCachingSupported () |
Check if Initial Fragment Caching is supported. More... | |
bool | IsStreamerAtLivePoint () |
Whether we are playing at live point or not. More... | |
virtual bool | Is4KStream (int &height, long &bandwidth)=0 |
check if current stream have 4K content 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... | |
virtual int | GetBWIndex (long bandwidth)=0 |
Get profile index of given 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 () |
virtual long | GetMaxBitrate () |
Gets Max bitrate supported. More... | |
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... | |
virtual std::vector< long > | GetVideoBitrates (void)=0 |
Get available video bitrates. More... | |
virtual std::vector< long > | GetAudioBitrates (void)=0 |
Get available audio bitrates. More... | |
bool | IsStreamerStalled (void) |
Check if playback stalled in fragment collector side. More... | |
virtual void | StopInjection (void)=0 |
Stop injection of fragments. | |
virtual void | StartInjection (void)=0 |
Start injection of fragments. | |
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... | |
virtual void | SeekPosUpdate (double secondsRelativeToTuneTime)=0 |
Update seek position when player is initialized. 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 | SetVideoRectangle (int x, int y, int w, int h) |
setVideoRectangle sets the position coordinates (x,y) & size (w,h) for OTA streams only More... | |
virtual std::vector< StreamInfo * > | GetAvailableVideoTracks (void)=0 |
virtual std::vector< StreamInfo * > | GetAvailableThumbnailTracks (void)=0 |
Get available thumbnail bitrates. More... | |
virtual bool | SetThumbnailTrack (int)=0 |
Set thumbnail bitrate. More... | |
virtual std::vector< ThumbnailData > | GetThumbnailRangeData (double, double, std::string *, int *, int *, int *, int *)=0 |
Get thumbnail data for duration value. 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... | |
Data Fields | |
PrivateInstanceAAMP * | aamp |
AampLogManager * | mLogObj |
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 | |
virtual StreamInfo * | GetStreamInfo (int idx)=0 |
Get stream information of a profile from subclass. More... | |
Protected Attributes | |
std::vector< AudioTrackInfo > | mAudioTracks |
std::vector< AudioTrackInfo > | mAudioTracksAll |
std::vector< TextTrackInfo > | mTextTracksAll |
std::vector< TextTrackInfo > | mTextTracks |
MediaTrackDiscontinuityState | mTrackState |
std::string | mAudioTrackIndex |
std::string | mTextTrackIndex |
bool | mFwdAudioToAux |
Private Member Functions | |
int | GetDesiredProfileBasedOnCache (void) |
Get desired profile based on cached duration. More... | |
void | UpdateProfileBasedOnFragmentDownloaded (void) |
Update profile state based on bandwidth of fragments downloaded. More... | |
bool | UpdateProfileBasedOnFragmentCache (void) |
Update profile based on fragment cache. More... | |
Private Attributes | |
pthread_mutex_t | mLock |
pthread_cond_t | mCond |
pthread_cond_t | mSubCond |
pthread_cond_t | mAuxCond |
long | mCurrentBandwidth |
int | mLastVideoFragCheckedforABR |
long | mTsbBandwidth |
long | mNwConsistencyBypass |
int | mABRHighBufferCounter |
int | mABRLowBufferCounter |
int | mMaxBufferCountCheck |
int | mABRMaxBuffer |
int | mABRCacheLength |
int | mABRMinBuffer |
int | mABRNwConsistency |
bool | mESChangeStatus |
unsigned int | mAudiostateChangeCount |
double | mLastVideoFragParsedTimeMS |
bool | mIsPaused |
long long | mTotalPausedDurationMS |
long long | mStartTimeStamp |
long long | mLastPausedTimeStamp |
pthread_mutex_t | mStateLock |
pthread_cond_t | mStateCond |
int | mRampDownLimit |
BitrateChangeReason | mBitrateReason |
StreamAbstraction class of AAMP.
Definition at line 577 of file StreamAbstractionAAMP.h.
|
pure virtual |
Dump profiles for debugging. To be implemented by sub classes.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Initialize a newly created object. To be implemented by sub classes.
[in] | tuneType | - to set type of playback. |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, StreamAbstractionAAMP_PROGRESSIVE, StreamAbstractionAAMP_COMPOSITEIN, and StreamAbstractionAAMP_HDMIIN.
|
pure virtual |
Start streaming.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_COMPOSITEIN, StreamAbstractionAAMP_HDMIIN, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Stops streaming.
[in] | clearChannelData | - clear channel /drm data on stop. |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_COMPOSITEIN, StreamAbstractionAAMP_HDMIIN, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Get output format of stream.
[out] | primaryOutputFormat | - format of primary track |
[out] | audioOutputFormat | - format of audio track |
[out] | auxAudioOutputFormat | - format of aux audio track |
Implemented in StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, StreamAbstractionAAMP_PROGRESSIVE, and StreamAbstractionAAMP_HLS.
|
pure virtual |
Get current stream position.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_VIDEOIN, StreamAbstractionAAMP_OTA, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Get PTS of first sample.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Get Start time PTS of first sample.
start | time of first sample |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Return MediaTrack of requested type.
[in] | type | - track type |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
void StreamAbstractionAAMP::WaitForVideoTrackCatchup | ( | ) |
Waits audio track injection until caught up with video track. Used internally by injection logic.
Blocks aux track injection until caught up with video track. Used internally by injection logic.
None |
Definition at line 1561 of file streamabstraction.cpp.
StreamAbstractionAAMP::ReassessAndResumeAudioTrack | ( | bool | abort | ) |
Unblock track if caught up with video or downloads are stopped.
Definition at line 1522 of file streamabstraction.cpp.
|
inline |
When TSB is involved, use this to set bandwidth to be reported.
[in] | tsbBandwidth | - Bandwidth of the track. |
Definition at line 692 of file StreamAbstractionAAMP.h.
|
inline |
When TSB is involved, use this to get bandwidth to be reported.
Definition at line 699 of file StreamAbstractionAAMP.h.
|
inline |
Set elementary stream type change status for reconfigure the pipeline.
Definition at line 706 of file StreamAbstractionAAMP.h.
|
inline |
Reset elementary stream type change status once the pipeline reconfigured.
Definition at line 713 of file StreamAbstractionAAMP.h.
|
inline |
Get elementary stream type change status for reconfigure the pipeline..
mESChangeStatus | flag value ( true or false ) |
Definition at line 725 of file StreamAbstractionAAMP.h.
StreamAbstractionAAMP::RampDownProfile | ( | long | http_error | ) |
Rampdown profile.
[in] | http_error | - Http error code |
Definition at line 2019 of file streamabstraction.cpp.
StreamAbstractionAAMP::GetDesiredProfileOnBuffer | ( | int | currProfileIndex, |
int & | newProfileIndex | ||
) |
Get Desired Profile based on Buffer availability.
[in] | currProfileIndex | |
[in] | newProfileIndex |
Definition at line 1844 of file streamabstraction.cpp.
StreamAbstractionAAMP::GetDesiredProfileOnSteadyState | ( | int | currProfileIndex, |
int & | newProfileIndex, | ||
long | nwBandwidth | ||
) |
Get Desired Profile on steady state.
[in] | currProfileIndex | |
[in] | newProfileIndex | |
[in] | nwBandwidth |
Definition at line 1856 of file streamabstraction.cpp.
StreamAbstractionAAMP::ConfigureTimeoutOnBuffer | ( | ) |
Configure download timeouts based on buffer.
Definition at line 1902 of file streamabstraction.cpp.
|
pure virtual |
Function to get the buffer duration of stream.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, StreamAbstractionAAMP_PROGRESSIVE, and StreamAbstractionAAMP_MPD.
StreamAbstractionAAMP::IsLowestProfile | ( | int | currentProfileIndex | ) |
Check whether the current profile is lowest.
currentProfileIndex | - current profile index to be checked. |
Definition at line 2097 of file streamabstraction.cpp.
StreamAbstractionAAMP::getOriginalCurlError | ( | long | http_error | ) |
Convert custom curl errors to original.
[in] | http_error | - Error code |
Definition at line 2119 of file streamabstraction.cpp.
StreamAbstractionAAMP::CheckForRampDownProfile | ( | long | http_error | ) |
Check for ramdown profile.
http_error | - Http error code |
Definition at line 2143 of file streamabstraction.cpp.
StreamAbstractionAAMP::CheckForProfileChange | ( | void | ) |
Checks and update profile based on bandwidth.
Definition at line 2193 of file streamabstraction.cpp.
StreamAbstractionAAMP::GetIframeTrack | ( | ) |
Get iframe track index. This shall be called only after UpdateIframeTracks() is done.
Definition at line 2227 of file streamabstraction.cpp.
StreamAbstractionAAMP::UpdateIframeTracks | ( | ) |
Update iframe tracks. Subclasses shall invoke this after StreamInfo is populated .
Definition at line 2236 of file streamabstraction.cpp.
StreamAbstractionAAMP::LastVideoFragParsedTimeMS | ( | void | ) |
Get the last video fragment parsed time.
Definition at line 1673 of file streamabstraction.cpp.
StreamAbstractionAAMP::GetDesiredProfile | ( | bool | getMidProfile | ) |
Get the desired profile to start fetching.
getMidProfile | - Get the middle profile(True/False) |
Definition at line 1681 of file streamabstraction.cpp.
StreamAbstractionAAMP::UpdateRampdownProfileReason | ( | void | ) |
Update rampdown profile on network failure.
Definition at line 1836 of file streamabstraction.cpp.
StreamAbstractionAAMP::NotifyBitRateUpdate | ( | int | profileIndex, |
const StreamInfo & | cacheFragStreamInfo, | ||
double | position | ||
) |
Notify bitrate updates to application. Used internally by injection logic.
Used internally by injection logic
[in] | profileIndex | - profile index of last injected fragment. |
[in] | cacheFragStreamInfo | - stream info for the last injected fragment. |
Definition at line 1740 of file streamabstraction.cpp.
|
virtual |
Check if Initial Fragment Caching is supported.
Reimplemented in StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
Definition at line 1777 of file streamabstraction.cpp.
|
inline |
Whether we are playing at live point or not.
Definition at line 856 of file StreamAbstractionAAMP.h.
|
pure virtual |
check if current stream have 4K content
height | - resolution of 4K stream if found |
bandwidth | - bandwidth of 4K stream if foudd |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_PROGRESSIVE, and StreamAbstractionAAMP_VIDEOIN.
|
virtual |
Set the offset value Live object.
Definition at line 3115 of file streamabstraction.cpp.
|
virtual |
Function called when playback is paused to update related flags.
[in] | paused | - true, if playback was paused |
Definition at line 2245 of file streamabstraction.cpp.
StreamAbstractionAAMP::CheckIfPlayerRunningDry | ( | void | ) |
Check if player caches are running dry.
Definition at line 2273 of file streamabstraction.cpp.
StreamAbstractionAAMP::CheckForPlaybackStall | ( | bool | fragmentParsed | ) |
Check if playback has stalled and update related flags.
[in] | fragmentParsed | - true if next fragment was parsed, otherwise false |
Definition at line 2339 of file streamabstraction.cpp.
StreamAbstractionAAMP::NotifyFirstFragmentInjected | ( | void | ) |
MediaTracks shall call this to notify first fragment is injected.
Definition at line 2386 of file streamabstraction.cpp.
StreamAbstractionAAMP::GetElapsedTime | ( | ) |
Get elapsed time of play-back.
Definition at line 2399 of file streamabstraction.cpp.
StreamAbstractionAAMP::CheckForRampDownLimitReached | ( | ) |
Check for ramp down limit reached by player.
Definition at line 2943 of file streamabstraction.cpp.
int StreamAbstractionAAMP::GetMaxBWProfile | ( | ) |
Get profile index of highest bandwidth.
Definition at line 1722 of file streamabstraction.cpp.
|
pure virtual |
Get profile index of given bandwidth.
[in] | bandwidth | - Bandwidth |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
inline |
Get the ABRManager reference.
Definition at line 955 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Get number of profiles/ representations from subclass.
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 964 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Get profile index for TsbBandwidth.
mTsbBandwidth | - bandwidth to identify profile index from list |
profile | index of the current bandwidth |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 973 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Gets Max bitrate supported.
Reimplemented in StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
Definition at line 987 of file StreamAbstractionAAMP.h.
long StreamAbstractionAAMP::GetVideoBitrate | ( | void | ) |
Get the bitrate of current video profile selected.
Definition at line 2419 of file streamabstraction.cpp.
long StreamAbstractionAAMP::GetAudioBitrate | ( | void | ) |
Get the bitrate of current audio profile selected.
Definition at line 2428 of file streamabstraction.cpp.
void StreamAbstractionAAMP::SetVideoBitrate | ( | long | bitrate | ) |
Set a preferred bitrate for video.
[in] | bitrate | preferred bitrate. |
|
pure virtual |
Get available video bitrates.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
pure virtual |
Get available audio bitrates.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, and StreamAbstractionAAMP_PROGRESSIVE.
|
inline |
Check if playback stalled in fragment collector side.
Definition at line 1031 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::IsMuxedStream | ( | ) |
Check if current stream is muxed.
Definition at line 2438 of file streamabstraction.cpp.
|
inlinevirtual |
Receives first video PTS for the current playback.
[in] | pts | - pts value |
[in] | timeScale | - time scale value |
Reimplemented in StreamAbstractionAAMP_HLS.
Definition at line 1056 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Kicks off subtitle display - sent at start of video presentation.
Reimplemented in StreamAbstractionAAMP_HLS, and StreamAbstractionAAMP_MPD.
Definition at line 1062 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Pause/unpause subtitles.
pause | - enable or disable pause |
Reimplemented in StreamAbstractionAAMP_HLS, and StreamAbstractionAAMP_MPD.
Definition at line 1070 of file StreamAbstractionAAMP.h.
StreamAbstractionAAMP::WaitForAudioTrackCatchup | ( | void | ) |
Waits subtitle track injection until caught up with muxed/audio track. Used internally by injection logic.
Definition at line 2511 of file streamabstraction.cpp.
StreamAbstractionAAMP::AbortWaitForAudioTrackCatchup | ( | bool | force | ) |
Unblock subtitle track injector if downloads are stopped.
Definition at line 2565 of file streamabstraction.cpp.
|
inlinevirtual |
Set Client Side DAI object instance.
[in] | cdaiObj | - Pointer to Client Side DAI object. |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1091 of file StreamAbstractionAAMP.h.
|
virtual |
Checks if streamer reached end of stream.
Definition at line 2597 of file streamabstraction.cpp.
|
inlinevirtual |
Get available audio tracks.
Reimplemented in StreamAbstractionAAMP_MPD, and StreamAbstractionAAMP_OTA.
Definition at line 1105 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Get available text tracks.
Reimplemented in StreamAbstractionAAMP_MPD, and StreamAbstractionAAMP_OTA.
Definition at line 1112 of file StreamAbstractionAAMP.h.
|
pure virtual |
Update seek position when player is initialized.
[in] | secondsRelativeToTuneTime | seekposition time. |
Implemented in StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_VIDEOIN, StreamAbstractionAAMP_PROGRESSIVE, StreamAbstractionAAMP_HLS, and StreamAbstractionAAMP_MPD.
double StreamAbstractionAAMP::GetLastInjectedFragmentPosition | ( | ) |
Function to returns last injected fragment position.
Definition at line 2624 of file streamabstraction.cpp.
StreamAbstractionAAMP::ProcessDiscontinuity | ( | TrackType | type | ) |
Function to process discontinuity.
[in] | type | - track type. |
Definition at line 2708 of file streamabstraction.cpp.
StreamAbstractionAAMP::AbortWaitForDiscontinuity | ( | ) |
Function to abort any wait for discontinuity by injector theads.
Definition at line 2817 of file streamabstraction.cpp.
StreamAbstractionAAMP::CheckForMediaTrackInjectionStall | ( | TrackType | type | ) |
Function to check if any media tracks are stalled on discontinuity.
[in] | type | - track type. |
Definition at line 2828 of file streamabstraction.cpp.
double StreamAbstractionAAMP::GetBufferedVideoDurationSec | ( | ) |
Get buffered video duration in seconds.
Definition at line 2960 of file streamabstraction.cpp.
StreamAbstractionAAMP::UpdateStreamInfoBitrateData | ( | int | profileIndex, |
StreamInfo & | cacheFragStreamInfo | ||
) |
Function to update stream info of current fetched fragment.
[in] | profileIndex | - profile index of current fetched fragment |
[out] | cacheFragStreamInfo | - stream info of current fetched fragment |
Definition at line 1786 of file streamabstraction.cpp.
|
virtual |
Get current audio track.
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 3017 of file streamabstraction.cpp.
|
virtual |
Get current audio track information.
[out] | audioTrack | - current audio track |
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 2974 of file streamabstraction.cpp.
|
virtual |
Get current text track.
[out] | TextTrack | - current text track |
Definition at line 2996 of file streamabstraction.cpp.
int StreamAbstractionAAMP::GetTextTrack | ( | ) |
Get current text track.
Definition at line 3036 of file streamabstraction.cpp.
void StreamAbstractionAAMP::RefreshSubtitles | ( | ) |
|
inlinevirtual |
setVideoRectangle sets the position coordinates (x,y) & size (w,h) for OTA streams only
[in] | x,y | - position coordinates of video rectangle |
[in] | w,h | - width & height of video rectangle |
Reimplemented in StreamAbstractionAAMP_OTA, and StreamAbstractionAAMP_VIDEOIN.
Definition at line 1206 of file StreamAbstractionAAMP.h.
|
pure virtual |
Get available thumbnail bitrates.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_PROGRESSIVE, StreamAbstractionAAMP_COMPOSITEIN, and StreamAbstractionAAMP_HDMIIN.
|
pure virtual |
Set thumbnail bitrate.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_PROGRESSIVE, StreamAbstractionAAMP_COMPOSITEIN, and StreamAbstractionAAMP_HDMIIN.
|
pure virtual |
Get thumbnail data for duration value.
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_PROGRESSIVE, StreamAbstractionAAMP_HDMIIN, and StreamAbstractionAAMP_COMPOSITEIN.
|
inlinevirtual |
SetAudioTrack set the audio track using index value. [currently for OTA].
[in] | index | - Index of audio track |
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 1237 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
SetAudioTrackByLanguage set the audio language. [currently for OTA].
[in] | lang | Language to be set |
[in] |
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 1245 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
SetPreferredAudioLanguages set the preferred audio languages and rendition. [currently for OTA].
[in] |
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 1253 of file StreamAbstractionAAMP.h.
void StreamAbstractionAAMP::MuteSubtitles | ( | bool | mute | ) |
Send a MUTE/UNMUTE packet to the subtitle renderer.
[in] | mute | mute/unmute |
Definition at line 2585 of file streamabstraction.cpp.
StreamAbstractionAAMP::WaitForVideoTrackCatchupForAux | ( | ) |
Definition at line 3067 of file streamabstraction.cpp.
|
inlinevirtual |
Set Content Restrictions.
[in] | restrictions | - restrictions to be applied |
Definition at line 1275 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Disable Content Restrictions - unlock.
[in] | grace | - seconds from current time, grace period, grace = -1 will allow an unlimited grace period |
[in] | time | - seconds from current time,time till which the channel need to be kept unlocked |
[in] | eventChange | - disable restriction handling till next program event boundary |
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 1285 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Enable Content Restrictions - lock.
Reimplemented in StreamAbstractionAAMP_OTA.
Definition at line 1291 of file StreamAbstractionAAMP.h.
|
inline |
Get audio forward to aux pipeline status.
Definition at line 1298 of file StreamAbstractionAAMP.h.
|
inline |
Set audio forward to aux pipeline status.
[in] | status | - enabled/disabled |
Definition at line 1306 of file StreamAbstractionAAMP.h.
|
virtual |
Set AudioTrack info from Muxed stream.
[in] | string | index |
[in] | vector | AudioTrack info |
Definition at line 2460 of file streamabstraction.cpp.
|
inline |
Set current audio track index.
[in] | string | index |
Definition at line 1322 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Change muxed audio track index.
[in] | string | index |
Reimplemented in StreamAbstractionAAMP_HLS.
Definition at line 1330 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
Initilaize subtitle parser for sidecar support.
data | - subtitle data received from application |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1340 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
reset subtitle parser created for sidecar support
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1347 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
mute subtitles on pause
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1354 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
resume subtitles on play
mute | - mute status |
data | - subtitle data received from application |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1363 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
mute/unmute sidecar subtitles
mute | - mute/unmute |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1371 of file StreamAbstractionAAMP.h.
|
inlinevirtual |
resume subtitles after trickplay
mute | - mute status |
data | - subtitle data received from application |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 1380 of file StreamAbstractionAAMP.h.
|
virtual |
Set the text style of the subtitle to the options passed.
[in] | - | options - reference to the Json string that contains the information |
[in] | options | - reference to the Json string that contains the information |
Reimplemented in StreamAbstractionAAMP_MPD.
Definition at line 3192 of file streamabstraction.cpp.
|
protectedpure virtual |
Get stream information of a profile from subclass.
[in] | idx | - profile index. |
Implemented in StreamAbstractionAAMP_HLS, StreamAbstractionAAMP_MPD, StreamAbstractionAAMP_OTA, StreamAbstractionAAMP_PROGRESSIVE, and StreamAbstractionAAMP_VIDEOIN.
|
private |
Get desired profile based on cached duration.
Definition at line 1954 of file streamabstraction.cpp.
|
private |
Update profile state based on bandwidth of fragments downloaded.
Definition at line 1805 of file streamabstraction.cpp.
|
private |
Update profile based on fragment cache.
Definition at line 2295 of file streamabstraction.cpp.
PrivateInstanceAAMP* StreamAbstractionAAMP::aamp |
Pointer to PrivateInstanceAAMP object associated with stream
Definition at line 727 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::trickplayMode |
trick play flag to be updated by subclasses
Definition at line 917 of file StreamAbstractionAAMP.h.
int StreamAbstractionAAMP::currentProfileIndex |
current Video profile index of the track
Definition at line 918 of file StreamAbstractionAAMP.h.
int StreamAbstractionAAMP::currentAudioProfileIndex |
current Audio profile index of the track
Definition at line 919 of file StreamAbstractionAAMP.h.
int StreamAbstractionAAMP::currentTextTrackProfileIndex |
current SubTitle profile index of the track
Definition at line 920 of file StreamAbstractionAAMP.h.
int StreamAbstractionAAMP::profileIdxForBandwidthNotification |
internal - profile index for bandwidth change notification
Definition at line 921 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::hasDrm |
denotes if the current asset is DRM protected
Definition at line 922 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::mIsAtLivePoint |
flag that denotes if playback is at live point
Definition at line 924 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::mIsPlaybackStalled |
flag that denotes if playback was stalled or not
Definition at line 926 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::mNetworkDownDetected |
Network down status indicator
Definition at line 927 of file StreamAbstractionAAMP.h.
bool StreamAbstractionAAMP::mCheckForRampdown |
flag to indicate if rampdown is attempted or not
Definition at line 928 of file StreamAbstractionAAMP.h.
TuneType StreamAbstractionAAMP::mTuneType |
Tune type of current playback, initialize by derived classes on Init()
Definition at line 929 of file StreamAbstractionAAMP.h.
int StreamAbstractionAAMP::mRampDownCount |
Total number of rampdowns
Definition at line 930 of file StreamAbstractionAAMP.h.
double StreamAbstractionAAMP::mProgramStartTime |
Indicate program start time or availability start time
Definition at line 931 of file StreamAbstractionAAMP.h.
int StreamAbstractionAAMP::mTsbMaxBitrateProfileIndex |
Indicates the index of highest profile in the saved stream info
Definition at line 932 of file StreamAbstractionAAMP.h.
|
private |
lock for A/V track catchup logic
Definition at line 1422 of file StreamAbstractionAAMP.h.
|
private |
condition for A/V track catchup logic
Definition at line 1423 of file StreamAbstractionAAMP.h.
|
private |
condition for Audio/Subtitle track catchup logic
Definition at line 1424 of file StreamAbstractionAAMP.h.
|
private |
condition for Aux and video track catchup logic
Definition at line 1425 of file StreamAbstractionAAMP.h.
|
private |
stores current bandwidth
Definition at line 1428 of file StreamAbstractionAAMP.h.
|
private |
Last video fragment for which ABR is checked
Definition at line 1429 of file StreamAbstractionAAMP.h.
|
private |
stores bandwidth when TSB is involved
Definition at line 1430 of file StreamAbstractionAAMP.h.
|
private |
Network consistency bypass
Definition at line 1431 of file StreamAbstractionAAMP.h.
|
private |
ABR High buffer counter
Definition at line 1432 of file StreamAbstractionAAMP.h.
|
private |
ABR Low Buffer counter
Definition at line 1433 of file StreamAbstractionAAMP.h.
|
private |
ABR ramp up buffer
Definition at line 1435 of file StreamAbstractionAAMP.h.
|
private |
ABR cache length
Definition at line 1436 of file StreamAbstractionAAMP.h.
|
private |
ABR ramp down buffer
Definition at line 1437 of file StreamAbstractionAAMP.h.
|
private |
ABR Network consistency
Definition at line 1438 of file StreamAbstractionAAMP.h.
|
private |
flag value which is used to call pipeline configuration if the audio type changed in mid stream
Definition at line 1439 of file StreamAbstractionAAMP.h.
|
private |
variable to know how many times player need to reconfigure the pipeline for audio type change
Definition at line 1440 of file StreamAbstractionAAMP.h.
|
private |
timestamp when last video fragment was parsed
Definition at line 1441 of file StreamAbstractionAAMP.h.
|
private |
paused state or not
Definition at line 1443 of file StreamAbstractionAAMP.h.
|
private |
Total duration for which stream is paused
Definition at line 1444 of file StreamAbstractionAAMP.h.
|
private |
stores timestamp at which injection starts
Definition at line 1445 of file StreamAbstractionAAMP.h.
|
private |
stores timestamp of last pause operation
Definition at line 1446 of file StreamAbstractionAAMP.h.
|
private |
lock for A/V track discontinuity injection
Definition at line 1447 of file StreamAbstractionAAMP.h.
|
private |
condition for A/V track discontinuity injection
Definition at line 1448 of file StreamAbstractionAAMP.h.
|
private |
stores ramp down limit value
Definition at line 1449 of file StreamAbstractionAAMP.h.
|
private |
holds the reason for last bitrate change
Definition at line 1450 of file StreamAbstractionAAMP.h.
|
protected |
Available audio tracks
Definition at line 1452 of file StreamAbstractionAAMP.h.
|
protected |
Alternative variable to store audio track information from all period
Definition at line 1453 of file StreamAbstractionAAMP.h.
|
protected |
Alternative variable to store text track information from all period
Definition at line 1454 of file StreamAbstractionAAMP.h.
|
protected |
Available text tracks
Definition at line 1455 of file StreamAbstractionAAMP.h.
|
protected |
stores the discontinuity status of tracks
Definition at line 1456 of file StreamAbstractionAAMP.h.
|
protected |
Current audio track index in track list
Definition at line 1457 of file StreamAbstractionAAMP.h.
|
protected |
Current text track index in track list
Definition at line 1458 of file StreamAbstractionAAMP.h.
|
protected |
If audio buffers are to be forwarded to auxiliary pipeline, happens if both are playing same language
Definition at line 1459 of file StreamAbstractionAAMP.h.