![]() |
RDK Documentation (Open Sourced RDK Components)
|
Streamer for progressive mp3/mp4 playback. More...
#include <fragmentcollector_progressive.h>
Public Member Functions | |
StreamAbstractionAAMP_PROGRESSIVE (AampLogManager *logObj, class PrivateInstanceAAMP *aamp, double seekpos, float rate) | |
StreamAbstractionAAMP_PROGRESSIVE Constructor. | |
~StreamAbstractionAAMP_PROGRESSIVE () | |
StreamAbstractionAAMP_PROGRESSIVE Destructor. | |
StreamAbstractionAAMP_PROGRESSIVE (const StreamAbstractionAAMP_PROGRESSIVE &)=delete | |
Copy constructor disabled. More... | |
StreamAbstractionAAMP_PROGRESSIVE & | operator= (const StreamAbstractionAAMP_PROGRESSIVE &)=delete |
assignment operator disabled More... | |
void | DumpProfiles (void) override |
Stub implementation. | |
void | Start () override |
Starts streaming. More... | |
void | Stop (bool clearChannelData) override |
Stops streaming. 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... | |
double | GetStreamPosition () override |
Get current stream position. More... | |
MediaTrack * | GetMediaTrack (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 Buffered duration. | |
bool | IsInitialCachingSupported () override |
check whether initial caching data 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... | |
void | FetcherLoop () |
harvest chunks from large mp3/mp4 More... | |
std::vector< StreamInfo * > | GetAvailableVideoTracks (void) override |
To get the available video tracks. More... | |
std::vector< StreamInfo * > | GetAvailableThumbnailTracks (void) override |
To get the available thumbnail tracks. More... | |
bool | SetThumbnailTrack (int) override |
Function to set thumbnail track for processing. More... | |
std::vector< ThumbnailData > | GetThumbnailRangeData (double, double, std::string *, int *, int *, int *, int *) override |
bool | Is4KStream (int &height, long &bandwidth) override |
check if current stream have 4K content More... | |
![]() | |
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. | |
void | WaitForVideoTrackCatchup () |
Waits audio track injection until caught up with video track. Used internally by injection logic. More... | |
void | ReassessAndResumeAudioTrack (bool abort) |
Unblock track if caught up with video or downloads are stopped. More... | |
void | SetTsbBandwidth (long tsbBandwidth) |
When TSB is involved, use this to set bandwidth to be reported. More... | |
long | GetTsbBandwidth () |
When TSB is involved, use this to get bandwidth to be reported. More... | |
void | SetESChangeStatus (void) |
Set elementary stream type change status for reconfigure the pipeline. More... | |
void | ResetESChangeStatus (void) |
Reset elementary stream type change status once the pipeline reconfigured. More... | |
bool | GetESChangeStatus (void) |
Get elementary stream type change status for reconfigure the pipeline.. More... | |
bool | RampDownProfile (long http_error) |
Rampdown profile. More... | |
void | GetDesiredProfileOnBuffer (int currProfileIndex, int &newProfileIndex) |
Get Desired Profile based on Buffer availability. More... | |
void | GetDesiredProfileOnSteadyState (int currProfileIndex, int &newProfileIndex, long nwBandwidth) |
Get Desired Profile on steady state. More... | |
void | ConfigureTimeoutOnBuffer () |
Configure download timeouts based on buffer. More... | |
bool | IsLowestProfile (int currentProfileIndex) |
Check whether the current profile is lowest. More... | |
long | getOriginalCurlError (long http_error) |
Convert custom curl errors to original. More... | |
bool | CheckForRampDownProfile (long http_error) |
Check for ramdown profile. More... | |
void | CheckForProfileChange (void) |
Checks and update profile based on bandwidth. More... | |
int | GetIframeTrack () |
Get iframe track index. This shall be called only after UpdateIframeTracks() is done. More... | |
void | UpdateIframeTracks () |
Update iframe tracks. Subclasses shall invoke this after StreamInfo is populated . More... | |
double | LastVideoFragParsedTimeMS (void) |
Get the last video fragment parsed time. More... | |
int | GetDesiredProfile (bool getMidProfile) |
Get the desired profile to start fetching. More... | |
void | UpdateRampdownProfileReason (void) |
Update rampdown profile on network failure. More... | |
void | NotifyBitRateUpdate (int profileIndex, const StreamInfo &cacheFragStreamInfo, double position) |
Notify bitrate updates to application. Used internally by injection logic. More... | |
bool | IsStreamerAtLivePoint () |
Whether we are playing at live point or not. More... | |
virtual bool | GetPreferredLiveOffsetFromConfig () |
Set the offset value Live object. More... | |
virtual void | NotifyPlaybackPaused (bool paused) |
Function called when playback is paused to update related flags. More... | |
bool | CheckIfPlayerRunningDry (void) |
Check if player caches are running dry. More... | |
void | CheckForPlaybackStall (bool fragmentParsed) |
Check if playback has stalled and update related flags. More... | |
void | NotifyFirstFragmentInjected (void) |
MediaTracks shall call this to notify first fragment is injected. More... | |
double | GetElapsedTime () |
Get elapsed time of play-back. More... | |
virtual double | GetFirstPeriodStartTime () |
virtual double | GetFirstPeriodDynamicStartTime () |
virtual uint32_t | GetCurrPeriodTimeScale () |
bool | CheckForRampDownLimitReached () |
Check for ramp down limit reached by player. More... | |
int | GetMaxBWProfile () |
Get profile index of highest bandwidth. More... | |
ABRManager & | GetABRManager () |
Get the ABRManager reference. More... | |
virtual int | GetProfileCount () |
Get number of profiles/ representations from subclass. More... | |
virtual int | GetProfileIndexForBandwidth (long mTsbBandwidth) |
Get profile index for TsbBandwidth. More... | |
long | GetCurProfIdxBW () |
long | GetVideoBitrate (void) |
Get the bitrate of current video profile selected. More... | |
long | GetAudioBitrate (void) |
Get the bitrate of current audio profile selected. More... | |
void | SetVideoBitrate (long bitrate) |
Set a preferred bitrate for video. More... | |
bool | IsStreamerStalled (void) |
Check if playback stalled in fragment collector side. More... | |
bool | IsMuxedStream () |
Check if current stream is muxed. More... | |
virtual void | NotifyFirstVideoPTS (unsigned long long pts, unsigned long timeScale) |
Receives first video PTS for the current playback. More... | |
virtual void | StartSubtitleParser () |
Kicks off subtitle display - sent at start of video presentation. More... | |
virtual void | PauseSubtitleParser (bool pause) |
Pause/unpause subtitles. More... | |
void | WaitForAudioTrackCatchup (void) |
Waits subtitle track injection until caught up with muxed/audio track. Used internally by injection logic. More... | |
void | AbortWaitForAudioTrackCatchup (bool force) |
Unblock subtitle track injector if downloads are stopped. More... | |
virtual void | SetCDAIObject (CDAIObject *cdaiObj) |
Set Client Side DAI object instance. More... | |
virtual bool | IsEOSReached () |
Checks if streamer reached end of stream. More... | |
virtual std::vector< AudioTrackInfo > & | GetAvailableAudioTracks (bool allTrack=false) |
Get available audio tracks. More... | |
virtual std::vector< TextTrackInfo > & | GetAvailableTextTracks (bool allTrack=false) |
Get available text tracks. More... | |
double | GetLastInjectedFragmentPosition () |
Function to returns last injected fragment position. More... | |
bool | ProcessDiscontinuity (TrackType type) |
Function to process discontinuity. More... | |
void | AbortWaitForDiscontinuity () |
Function to abort any wait for discontinuity by injector theads. More... | |
void | CheckForMediaTrackInjectionStall (TrackType type) |
Function to check if any media tracks are stalled on discontinuity. More... | |
double | GetBufferedVideoDurationSec () |
Get buffered video duration in seconds. More... | |
void | UpdateStreamInfoBitrateData (int profileIndex, StreamInfo &cacheFragStreamInfo) |
Function to update stream info of current fetched fragment. More... | |
virtual int | GetAudioTrack () |
Get current audio track. More... | |
virtual bool | GetCurrentAudioTrack (AudioTrackInfo &audioTrack) |
Get current audio track information. More... | |
virtual bool | GetCurrentTextTrack (TextTrackInfo &textTrack) |
Get current text track. More... | |
int | GetTextTrack () |
Get current text track. More... | |
void | RefreshSubtitles () |
Refresh subtitle track. More... | |
virtual void | 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 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 | |
double | seekPosition |
![]() | |
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 | |
StreamInfo * | GetStreamInfo (int idx) override |
Get stream information of a profile from subclass. More... | |
Private Member Functions | |
void | StreamFile (const char *uri, long *http_error) |
Private Attributes | |
bool | fragmentCollectorThreadStarted |
pthread_t | fragmentCollectorThreadID |
Additional Inherited Members | |
![]() | |
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 |
Streamer for progressive mp3/mp4 playback.
Definition at line 37 of file fragmentcollector_progressive.h.
|
delete |
Copy constructor disabled.
|
delete |
assignment operator disabled
|
overridevirtual |
Starts streaming.
Implements StreamAbstractionAAMP.
Definition at line 243 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Stops streaming.
Implements StreamAbstractionAAMP.
Definition at line 252 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Initialize a newly created object.
tuneType | to set type of object. |
true | on success |
false | on failure |
Implements StreamAbstractionAAMP.
Definition at line 198 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Get output format of stream.
[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 279 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Get current stream position.
current | position of stream. |
Implements StreamAbstractionAAMP.
Definition at line 298 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Return MediaTrack of requested type.
[in] | type | - track type |
MediaTrack | pointer. |
Implements StreamAbstractionAAMP.
Definition at line 290 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Get PTS of first sample.
PTS | of first sample |
Implements StreamAbstractionAAMP.
Definition at line 314 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Get Start time PTS of first sample.
start | time of first sample |
Implements StreamAbstractionAAMP.
Definition at line 322 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
check whether initial caching data supported
Reimplemented from StreamAbstractionAAMP.
Definition at line 339 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Get index of profile corresponds to bandwidth.
[in] | bitrate | Bitrate to lookup profile |
profile | index |
Implements StreamAbstractionAAMP.
Definition at line 347 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
To get the available video bitrates.
Implements StreamAbstractionAAMP.
Definition at line 355 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
To get the available audio bitrates.
Implements StreamAbstractionAAMP.
Definition at line 371 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Gets Max Bitrate avialable for current playback.
Reimplemented from StreamAbstractionAAMP.
Definition at line 363 of file fragmentcollector_progressive.cpp.
|
inlinevirtual |
Update seek position when player is initialized.
[in] | secondsRelativeToTuneTime | seekposition time. |
Implements StreamAbstractionAAMP.
Definition at line 152 of file fragmentcollector_progressive.h.
StreamAbstractionAAMP_PROGRESSIVE::FetcherLoop | ( | ) |
harvest chunks from large mp3/mp4
Definition at line 156 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
To get the available video tracks.
Implements StreamAbstractionAAMP.
Definition at line 379 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
To get the available thumbnail tracks.
Implements StreamAbstractionAAMP.
Definition at line 387 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Function to set thumbnail track for processing.
thumbnailIndex | thumbnail index value indicating the track to select |
Implements StreamAbstractionAAMP.
Definition at line 395 of file fragmentcollector_progressive.cpp.
|
overridevirtual |
Implements StreamAbstractionAAMP.
Definition at line 402 of file fragmentcollector_progressive.cpp.
|
inlineoverridevirtual |
check if current stream have 4K content
height | - resolution of 4K stream if found |
bandwidth | - bandwidth of 4K stream if foudd |
Implements StreamAbstractionAAMP.
Definition at line 188 of file fragmentcollector_progressive.h.
|
overrideprotectedvirtual |
Get stream information of a profile from subclass.
[in] | idx | - profile index. |
stream | information corresponding to index. |
Implements StreamAbstractionAAMP.
Definition at line 306 of file fragmentcollector_progressive.cpp.