RDK Documentation (Open Sourced RDK Components)
StreamAbstractionAAMP_VIDEOIN Class Reference

Fragment collector for MPEG DASH. More...

#include <videoin_shim.h>

Inheritance diagram for StreamAbstractionAAMP_VIDEOIN:
Inheritance graph
Collaboration diagram for StreamAbstractionAAMP_VIDEOIN:
Collaboration graph

Public Member Functions

 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 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< ThumbnailDataGetThumbnailRangeData (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...
 

Protected Member Functions

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

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
 

Private Member Functions

bool GetScreenResolution (int &screenWidth, int &screenHeight)
 

Private Attributes

int videoInputPort
 
std::string mName
 
std::list< std::string > mRegisteredEvents
 

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
 

yes

Fragment collector for MPEG DASH.

Definition at line 42 of file videoin_shim.h.

Constructor & Destructor Documentation

◆ StreamAbstractionAAMP_VIDEOIN()

StreamAbstractionAAMP_VIDEOIN::StreamAbstractionAAMP_VIDEOIN ( const StreamAbstractionAAMP_VIDEOIN )
delete

Copy constructor disabled.

Member Function Documentation

◆ operator=()

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

assignment operator disabled

◆ SetVideoRectangle()

StreamAbstractionAAMP_VIDEOIN::SetVideoRectangle ( int  x,
int  y,
int  w,
int  h 
)
overridevirtual

SetVideoRectangle sets the position coordinates (x,y) & size (w,h)

Parameters
[in]x,y- position coordinates of video rectangle
[in]w,h- width & height of video rectangle

Reimplemented from StreamAbstractionAAMP.

Definition at line 75 of file FakeHDMIIN.cpp.

◆ Init()

StreamAbstractionAAMP_VIDEOIN::Init ( TuneType  tuneType)
overridevirtual

Initialize a newly created object.

Note
To be implemented by sub classes
Parameters
tuneTypeto set type of object.
Return values
eAAMPSTATUS_OK

Implements StreamAbstractionAAMP.

Definition at line 38 of file FakeHDMIIN.cpp.

◆ GetStreamFormat()

StreamAbstractionAAMP_VIDEOIN::GetStreamFormat ( StreamOutputFormat primaryOutputFormat,
StreamOutputFormat audioOutputFormat,
StreamOutputFormat auxAudioOutputFormat,
StreamOutputFormat subtitleOutputFormat 
)
overridevirtual

Get output format of stream.

Parameters
[out]primaryOutputFormat- format of primary track
[out]audioOutputFormat- format of audio track
[out]auxOutputFormat- format of aux audio track
[out]subtitleOutputFormat- format of sutbtile track

Implements StreamAbstractionAAMP.

Definition at line 44 of file FakeHDMIIN.cpp.

◆ Is4KStream()

StreamAbstractionAAMP_VIDEOIN::Is4KStream ( int &  height,
long &  bandwidth 
)
inlineoverridevirtual

check if current stream have 4K content

Parameters
height- resolution of 4K stream if found
bandwidth- bandwidth of 4K stream if foudd
Returns
true on success

Implements StreamAbstractionAAMP.

Definition at line 108 of file videoin_shim.h.

◆ GetStreamPosition()

StreamAbstractionAAMP_VIDEOIN::GetStreamPosition ( )
overridevirtual

Get current stream position.

Return values
currentposition of stream.

Implements StreamAbstractionAAMP.

Definition at line 46 of file FakeHDMIIN.cpp.

◆ GetMediaTrack()

StreamAbstractionAAMP_VIDEOIN::GetMediaTrack ( TrackType  type)
overridevirtual

Return MediaTrack of requested type.

Parameters
[in]type- track type
Return values
MediaTrackpointer.

Implements StreamAbstractionAAMP.

Definition at line 52 of file FakeHDMIIN.cpp.

◆ GetFirstPTS()

StreamAbstractionAAMP_VIDEOIN::GetFirstPTS ( )
overridevirtual

Get PTS of first sample.

Return values
PTSof first sample

Implements StreamAbstractionAAMP.

Definition at line 48 of file FakeHDMIIN.cpp.

◆ GetStartTimeOfFirstPTS()

StreamAbstractionAAMP_VIDEOIN::GetStartTimeOfFirstPTS ( )
overridevirtual

Get Start time PTS of first sample.

Return values
starttime of first sample

Implements StreamAbstractionAAMP.

Definition at line 50 of file FakeHDMIIN.cpp.

◆ IsInitialCachingSupported()

StreamAbstractionAAMP_VIDEOIN::IsInitialCachingSupported ( )
overridevirtual

Check if Initial caching is supported.

Returns
true if yes

Reimplemented from StreamAbstractionAAMP.

Definition at line 56 of file FakeHDMIIN.cpp.

◆ GetBWIndex()

StreamAbstractionAAMP_VIDEOIN::GetBWIndex ( long  bitrate)
overridevirtual

Get index of profile corresponds to bandwidth.

Parameters
[in]bitrateBitrate to lookup profile
Return values
profileindex

Implements StreamAbstractionAAMP.

Definition at line 58 of file FakeHDMIIN.cpp.

◆ GetVideoBitrates()

StreamAbstractionAAMP_VIDEOIN::GetVideoBitrates ( void  )
overridevirtual

To get the available video bitrates.

Returns
available video bitrates

Implements StreamAbstractionAAMP.

Definition at line 60 of file FakeHDMIIN.cpp.

◆ GetAudioBitrates()

StreamAbstractionAAMP_VIDEOIN::GetAudioBitrates ( void  )
overridevirtual

To get the available audio bitrates.

Returns
available audio bitrates

Implements StreamAbstractionAAMP.

Definition at line 62 of file FakeHDMIIN.cpp.

◆ GetMaxBitrate()

StreamAbstractionAAMP_VIDEOIN::GetMaxBitrate ( void  )
overridevirtual

Gets Max Bitrate avialable for current playback.

Returns
long MAX video bitrates

Reimplemented from StreamAbstractionAAMP.

Definition at line 70 of file FakeHDMIIN.cpp.

◆ SeekPosUpdate()

void StreamAbstractionAAMP_VIDEOIN::SeekPosUpdate ( double  secondsRelativeToTuneTime)
inlinevirtual

Update seek position when player is initialized.

Parameters
[in]secondsRelativeToTuneTimeseekposition time.

Implements StreamAbstractionAAMP.

Definition at line 172 of file videoin_shim.h.

◆ GetStreamInfo()

StreamAbstractionAAMP_VIDEOIN::GetStreamInfo ( int  idx)
overrideprotectedvirtual

Get stream information of a profile from subclass.

Parameters
[in]idx- profile index.
Return values
streaminformation corresponding to index.

Implements StreamAbstractionAAMP.

Definition at line 68 of file FakeHDMIIN.cpp.


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