|
RDK Documentation (Open Sourced RDK Components)
|
Go to the documentation of this file.
25 #ifndef __AAMP_PROFILER_H__
26 #define __AAMP_PROFILER_H__
190 #define bucketsOverlap(id1,id2) \
191 buckets[id1].complete && buckets[id2].complete && \
192 (buckets[id1].tStart <= buckets[id2].tFinish) && (buckets[id2].tStart <= buckets[id1].tFinish)
197 #define bucketDuration(id) \
198 (buckets[id].complete?(buckets[id].tFinish - buckets[id].tStart):0)
226 return MAX(buckets[id1].tFinish, buckets[id2].tFinish) - fmin(buckets[id1].tStart, buckets[id2].tStart);
295 void getTuneEventsJSON(std::string &outSS,
const std::string &streamType,
const char *url,
bool success);
316 void TuneEnd(
TuneEndMetrics &mTuneendmetrics, std::string appName, std::string playerActiveMode,
int playerId,
bool playerPreBuffered,
unsigned int durationSeconds,
bool interfaceWifi, std::string failureReason);
329 void GetClassicTuneTimeInfo(
bool success,
int tuneRetries,
int firstTuneType,
long long playerLoadTime,
int streamType,
bool isLive,
unsigned int durationinSec,
char *TuneTimeInfoStr);
TuneEndMetrics structure to store tunemetrics data.
@ PROFILE_BUCKET_DECRYPT_AUDIO
Class corresponding to tune time events.
@ PROFILE_BUCKET_FRAGMENT_VIDEO
long long tuneStartBaseUTCMS
@ PROFILE_BUCKET_FRAGMENT_AUDIO
void GetClassicTuneTimeInfo(bool success, int tuneRetries, int firstTuneType, long long playerLoadTime, int streamType, bool isLive, unsigned int durationinSec, char *TuneTimeInfoStr)
Method converting the AAMP style tune performance data to IP_EX_TUNETIME style data.
void SetBandwidthBitsPerSecondVideo(long bw)
Setting video bandwidth in bps.
@ PROFILE_BUCKET_DECRYPT_SUBTITLE
@ PROFILE_BUCKET_INIT_VIDEO
@ PROFILE_BUCKET_MANIFEST
@ PROFILE_BUCKET_DECRYPT_VIDEO
@ PROFILE_BUCKET_LA_POSTPROC
~ProfileEventAAMP()
ProfileEventAAMP Destructor.
@ PROFILE_BUCKET_PLAYLIST_AUDIO
unsigned int effectiveBucketTime(ProfilerBucketType id1, ProfilerBucketType id2)
Calculating effective time of two overlapping buckets.
void ProfilePerformed(ProfilerBucketType type)
Method to mark the end of a bucket, for which beginning is not marked.
@ PROFILE_BUCKET_PLAYLIST_VIDEO
Data structure corresponding to profiler bucket.
std::mutex tuneEventListMtx
void SetBandwidthBitsPerSecondAudio(long bw)
Setting audio bandwidth in bps.
Class for AAMP event Profiling.
long long xreTimeBuckets[TuneTimeMax]
void ProfileError(ProfilerBucketType type, int result=-1)
Marking error while executing a bucket.
@ PROFILE_BUCKET_LA_PREPROC
#define bucketDuration(id)
Calculating total duration a bucket id.
@ PROFILE_BUCKET_INIT_SUBTITLE
@ PROFILE_BUCKET_INIT_AUXILIARY
void SetTuneFailCode(int tuneFailCode, ProfilerBucketType failBucketType)
Method to set Failure code and Bucket Type used for microevents.
@ PROFILE_BUCKET_FRAGMENT_SUBTITLE
long bandwidthBitsPerSecondAudio
@ PROFILE_BUCKET_FIRST_FRAME
@ PROFILE_BUCKET_LA_NETWORK
@ PROFILE_BUCKET_INIT_AUDIO
void ProfileBegin(ProfilerBucketType type)
Marking the beginning of a bucket.
long long mTimedMetadataStartTime
TuneEvent(ProfilerBucketType i, unsigned int s, unsigned int d, int r)
TuneEvent Constructor.
void SetDrmErrorCode(int errCode)
Setting DRM error code.
@ PROFILE_BUCKET_PLAYLIST_AUXILIARY
void TuneBegin(void)
Profiler method to perform tune begin related operations.
ProfilerBucketType
Bucket types of AAMP profiler.
#define bucketsOverlap(id1, id2)
Calculating effecting duration of overlapping buckets, id1 & id2.
ProfileEventAAMP & operator=(const ProfileEventAAMP &)=delete
assignment operator disabled
ClassicProfilerBucketType
Bucket types of classic profiler.
@ PROFILE_BUCKET_DECRYPT_AUXILIARY
@ ContentType_COMPOSITEIN
void ProfileEnd(ProfilerBucketType type)
Marking the end of a bucket.
long bandwidthBitsPerSecondVideo
ContentType
Asset's content types.
int mTimedMetadataDuration
std::list< TuneEvent > tuneEventList
void getTuneEventsJSON(std::string &outSS, const std::string &streamType, const char *url, bool success)
Get tune time events in JSON format.
void TuneEnd(TuneEndMetrics &mTuneendmetrics, std::string appName, std::string playerActiveMode, int playerId, bool playerPreBuffered, unsigned int durationSeconds, bool interfaceWifi, std::string failureReason)
Logging performance metrics after successful tune completion. Metrics starts with IP_AAMP_TUNETIME.
@ PROFILE_BUCKET_PLAYLIST_SUBTITLE
@ PROFILE_BUCKET_LA_TOTAL
@ PROFILE_BUCKET_FIRST_BUFFER
ProfilerBucketType mTuneFailBucketType
@ PROFILE_BUCKET_TYPE_COUNT
@ PROFILE_BUCKET_PLAYER_PRE_BUFFERED
long long tuneStartMonotonicBase
ProfileEventAAMP()
ProfileEventAAMP Constructor.
@ PROFILE_BUCKET_FRAGMENT_AUXILIARY