![]() |
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.