RDK Documentation (Open Sourced RDK Components)
AAMP_COMMON_TYPES

Description

Data Structures

struct  TuneEndMetrics
 TuneEndMetrics structure to store tunemetrics data. More...
 
struct  AsyncEventDescriptor
 Used in asynchronous event notification logic. More...
 
struct  PeriodInfo
 Stores details about available periods in mpd. More...
 
struct  EventBreakInfo
 Stores the detail about the Event break info. More...
 
struct  DynamicDrmInfo
 
class  ContentGapInfo
 Class for Content gap information. More...
 
struct  httpRespHeaderData
 To store Set Cookie: headers and X-Reason headers in HTTP Response. More...
 
struct  ThumbnailData
 Holds the Thumbnail information. More...
 
struct  SpeedCache
 Stroes the information for cache speed. More...
 
struct  AampLLDashServiceData
 To store Low Latency Service configurtions. More...
 
struct  videoRect
 To store video rectangle properties. More...
 
class  AudioTrackTuple
 Class to hold audio information like lang, codec, bitrate,etc. More...
 
struct  eCurlHostMap
 To have hostname mapped curl handles. More...
 
struct  AampUrlInfo
 Struct to store parsed url hostname & its type. More...
 

Typedefs

typedef int(* IdleTask) (void *arg)
 Function pointer for the idle task. More...
 
typedef void(* DestroyTask) (void *arg)
 Function pointer for the destroy task. More...
 
typedef struct eCurlHostMap eCurlHostMapStruct
 To have hostname mapped curl handles.
 
typedef struct AampUrlInfo AampURLInfoStruct
 Struct to store parsed url hostname & its type.
 

Enumerations

enum  ProfilerBucketType
 Bucket types of AAMP profiler. More...
 
enum  ClassicProfilerBucketType
 Bucket types of classic profiler. More...
 
enum  ContentType
 Asset's content types. More...
 
enum  AampCurlInstance
 Enumeration for Curl Instances. More...
 
enum  PlaybackErrorType
 
enum  TuneType
 Tune Typea. More...
 
enum  AAMPStatusType
 AAMP Function return values. More...
 
enum  HttpHeaderType
 Http Header Type. More...
 
enum  CurlAbortReason
 Http Header Type.
 
enum  BitrateChangeReason
 Different reasons for bitrate change.
 
enum  AudioType
 Type of audio ES for MPD.
 
enum  CurlRequest
 
enum  UtcTiming
 

Data Structure Documentation

◆ TuneEndMetrics

struct TuneEndMetrics

TuneEndMetrics structure to store tunemetrics data.

Definition at line 124 of file AampProfiler.h.

Collaboration diagram for TuneEndMetrics:
Collaboration graph
Data Fields
int success

Flag indicate whether the tune is success or not

int streamType

Media stream Type

int mTimedMetadata

Total no.of TimedMetaData(Ads) processed in the manifest

long long mTimedMetadataStartTime

Time at which timedmetadata event starts sending

int mTimedMetadataDuration

Time Taken to send TiedMetaData event

int mTuneAttempts

No of tune attepts taken

bool mFirstTune

To identify the first tune after load.

bool mTSBEnabled

Flag to indicate TSB is enabled or not

int mTotalTime
ContentType contentType

◆ AsyncEventDescriptor

struct AsyncEventDescriptor

Used in asynchronous event notification logic.

Definition at line 311 of file priv_aamp.h.

Collaboration diagram for AsyncEventDescriptor:
Collaboration graph

Public Member Functions

 AsyncEventDescriptor ()
 AsyncEventDescriptor constructor.
 
virtual ~AsyncEventDescriptor ()
 AsyncEventDescriptor destructor.
 
 AsyncEventDescriptor (const AsyncEventDescriptor &other)=delete
 
AsyncEventDescriptoroperator= (const AsyncEventDescriptor &other)=delete
 

Data Fields

AAMPEventPtr event
 
std::shared_ptr< PrivateInstanceAAMPaamp
 

◆ PeriodInfo

struct PeriodInfo

Stores details about available periods in mpd.

Definition at line 339 of file priv_aamp.h.

Collaboration diagram for PeriodInfo:
Collaboration graph

Data Fields

std::string periodId
 
uint64_t startTime
 
uint32_t timeScale
 
double duration
 

◆ EventBreakInfo

struct EventBreakInfo

Stores the detail about the Event break info.

Definition at line 354 of file priv_aamp.h.

Collaboration diagram for EventBreakInfo:
Collaboration graph

Public Member Functions

 EventBreakInfo (std::string _data, std::string _name, uint64_t _presentationTime, uint32_t _dur)
 

Data Fields

std::string payload
 
std::string name
 
uint32_t duration
 
uint64_t presentationTime
 

◆ DynamicDrmInfo

struct DynamicDrmInfo

Definition at line 366 of file priv_aamp.h.

Collaboration diagram for DynamicDrmInfo:
Collaboration graph

Data Fields

std::vector< uint8_t > keyID
 
std::map< std::string, std::string > licenseEndPoint
 
std::string customData
 
std::string authToken
 
std::string licenseResponse
 

◆ TimedMetadata

class TimedMetadata

Class for Timed Metadata.

Definition at line 382 of file priv_aamp.h.

Collaboration diagram for TimedMetadata:
Collaboration graph

Public Member Functions

 TimedMetadata ()
 TimedMetadata Constructor.
 
 TimedMetadata (long long timeMS, std::string name, std::string content, std::string id, double durMS)
 TimedMetadata Constructor. More...
 

Data Fields

long long _timeMS
 
std::string _name
 
std::string _content
 
std::string _id
 
double _durationMS
 

Constructor & Destructor Documentation

◆ TimedMetadata()

TimedMetadata::TimedMetadata ( long long  timeMS,
std::string  name,
std::string  content,
std::string  id,
double  durMS 
)
inline

TimedMetadata Constructor.

Parameters
[in]timeMS- Time in milliseconds
[in]name- Metadata name
[in]content- Metadata content

Definition at line 398 of file priv_aamp.h.

Field Documentation

◆ _timeMS

long long TimedMetadata::_timeMS

Time in milliseconds

Definition at line 401 of file priv_aamp.h.

◆ _name

std::string TimedMetadata::_name

Metadata name

Definition at line 402 of file priv_aamp.h.

◆ _content

std::string TimedMetadata::_content

Metadata content

Definition at line 403 of file priv_aamp.h.

◆ _id

std::string TimedMetadata::_id

Id of the timedMetadata. If not available an Id will bre created

Definition at line 404 of file priv_aamp.h.

◆ _durationMS

double TimedMetadata::_durationMS

Duration in milliseconds

Definition at line 405 of file priv_aamp.h.

◆ ContentGapInfo

class ContentGapInfo

Class for Content gap information.

Definition at line 412 of file priv_aamp.h.

Collaboration diagram for ContentGapInfo:
Collaboration graph

Public Member Functions

 ContentGapInfo ()
 ContentGapInfo Constructor.
 
 ContentGapInfo (long long timeMS, std::string id, double durMS)
 ContentGapInfo Constructor. More...
 

Data Fields

long long _timeMS
 
std::string _id
 
double _durationMS
 
bool _complete
 

Constructor & Destructor Documentation

◆ ContentGapInfo()

ContentGapInfo::ContentGapInfo ( long long  timeMS,
std::string  id,
double  durMS 
)
inline

ContentGapInfo Constructor.

Parameters
[in]timeMS- Time in milliseconds
[in]id- Content gap ID
[in]durMS- Total duration of gap identified

Definition at line 428 of file priv_aamp.h.

Field Documentation

◆ _timeMS

long long ContentGapInfo::_timeMS

Time in milliseconds

Definition at line 437 of file priv_aamp.h.

◆ _id

std::string ContentGapInfo::_id

Id of the content gap information. (period ID of new dash period after gap)

Definition at line 438 of file priv_aamp.h.

◆ _durationMS

double ContentGapInfo::_durationMS

Duration in milliseconds

Definition at line 439 of file priv_aamp.h.

◆ _complete

bool ContentGapInfo::_complete

Flag to indicate whether gap info is complete or not

Definition at line 440 of file priv_aamp.h.

◆ httpRespHeaderData

struct httpRespHeaderData

To store Set Cookie: headers and X-Reason headers in HTTP Response.

Definition at line 462 of file priv_aamp.h.

Collaboration diagram for httpRespHeaderData:
Collaboration graph

Data Fields

int type
 
std::string data
 

Field Documentation

◆ type

int httpRespHeaderData::type

Header type

Definition at line 466 of file priv_aamp.h.

◆ data

std::string httpRespHeaderData::data

Header value

Definition at line 467 of file priv_aamp.h.

◆ ThumbnailData

struct ThumbnailData

Holds the Thumbnail information.

Definition at line 474 of file priv_aamp.h.

Collaboration diagram for ThumbnailData:
Collaboration graph

Data Fields

std::string url
 
double t
 
double d
 
int x
 
int y
 

Field Documentation

◆ url

std::string ThumbnailData::url

url of tile image (may be relative or absolute path)

Definition at line 478 of file priv_aamp.h.

◆ t

double ThumbnailData::t

presentation time for this thumbnail

Definition at line 479 of file priv_aamp.h.

◆ d

double ThumbnailData::d

time duration of this tile

Definition at line 480 of file priv_aamp.h.

◆ x

int ThumbnailData::x

x coordinate of thumbnail within tile

Definition at line 481 of file priv_aamp.h.

◆ y

int ThumbnailData::y

y coordinate of Thumbnail within tile

Definition at line 482 of file priv_aamp.h.

◆ SpeedCache

struct SpeedCache

Stroes the information for cache speed.

Definition at line 489 of file priv_aamp.h.

Collaboration diagram for SpeedCache:
Collaboration graph

Data Fields

long last_sample_time_val
 
long prev_dlnow
 
long prevSampleTotalDownloaded
 
long totalDownloaded
 
long speed_now
 
long start_val
 
bool bStart
 
double totalWeight
 
double weightedBitsPerSecond
 
std::vector< std::pair< double, long > > mChunkSpeedData
 

◆ AampLLDashServiceData

struct AampLLDashServiceData

To store Low Latency Service configurtions.

Definition at line 511 of file priv_aamp.h.

Collaboration diagram for AampLLDashServiceData:
Collaboration graph
Data Fields
bool lowLatencyMode

LL Playback mode enabled

bool strictSpecConformance

Check for Strict LL Dash spec conformace

double availabilityTimeOffset

LL Availability Time Offset

bool availabilityTimeComplete

LL Availability Time Complete

int targetLatency

Target Latency of playback

int minLatency

Minimum Latency of playback

int maxLatency

Maximum Latency of playback

int latencyThreshold

Latency when play rate correction kicks-in

double minPlaybackRate

Minimum playback rate for playback

double maxPlaybackRate

Maximum playback rate for playback

bool isSegTimeLineBased

Indicates is stream is segmenttimeline based

double fragmentDuration

Maximum Fragment Duartion

UtcTiming utcTiming

Server UTC timings

◆ videoRect

struct videoRect

To store video rectangle properties.

Definition at line 530 of file priv_aamp.h.

Collaboration diagram for videoRect:
Collaboration graph
Data Fields
int horizontalPos
int verticalPos
int width
int height

◆ AudioTrackTuple

class AudioTrackTuple

Class to hold audio information like lang, codec, bitrate,etc.

Definition at line 541 of file priv_aamp.h.

Collaboration diagram for AudioTrackTuple:
Collaboration graph

Public Member Functions

void setAudioTrackTuple (std::string language="", std::string rendition="", std::string codec="", unsigned int channel=0)
 
void clear (void)
 

Data Fields

std::string language
 
std::string rendition
 
std::string codec
 
unsigned int bitrate
 
unsigned int channel
 

◆ eCurlHostMap

struct eCurlHostMap

To have hostname mapped curl handles.

Definition at line 598 of file priv_aamp.h.

Collaboration diagram for eCurlHostMap:
Collaboration graph

Public Member Functions

 eCurlHostMap (const eCurlHostMap &)=delete
 
eCurlHostMapoperator= (const eCurlHostMap &)=delete
 

Data Fields

CURL * curl
 
std::string hostname
 
bool isRemotehost
 
bool redirect
 

◆ AampUrlInfo

struct AampUrlInfo

Struct to store parsed url hostname & its type.

Definition at line 616 of file priv_aamp.h.

Collaboration diagram for AampUrlInfo:
Collaboration graph

Public Member Functions

 AampUrlInfo (const AampUrlInfo &)=delete
 
AampUrlInfooperator= (const AampUrlInfo &)=delete
 

Data Fields

std::string hostname
 
bool isRemotehost
 

Typedef Documentation

◆ IdleTask

typedef int(* IdleTask) (void *arg)

Function pointer for the idle task.

Parameters
[in]arg- Arguments
Returns
Idle task status

Definition at line 449 of file priv_aamp.h.

◆ DestroyTask

typedef void(* DestroyTask) (void *arg)

Function pointer for the destroy task.

Parameters
[in]arg- Arguments

Definition at line 457 of file priv_aamp.h.

Enumeration Type Documentation

◆ ProfilerBucketType

Bucket types of AAMP profiler.

Enumerator
PROFILE_BUCKET_MANIFEST 

Manifest download bucket

PROFILE_BUCKET_PLAYLIST_VIDEO 

Video playlist download bucket

PROFILE_BUCKET_PLAYLIST_AUDIO 

Audio playlist download bucket

PROFILE_BUCKET_PLAYLIST_SUBTITLE 

Subtitle playlist download bucket

PROFILE_BUCKET_PLAYLIST_AUXILIARY 

Auxiliary playlist download bucket

PROFILE_BUCKET_INIT_VIDEO 

Video init fragment download bucket

PROFILE_BUCKET_INIT_AUDIO 

Audio init fragment download bucket

PROFILE_BUCKET_INIT_SUBTITLE 

Subtitle fragment download bucket

PROFILE_BUCKET_INIT_AUXILIARY 

Auxiliary fragment download bucket

PROFILE_BUCKET_FRAGMENT_VIDEO 

Video fragment download bucket

PROFILE_BUCKET_FRAGMENT_AUDIO 

Audio fragment download bucket

PROFILE_BUCKET_FRAGMENT_SUBTITLE 

Subtitle fragment download bucket

PROFILE_BUCKET_FRAGMENT_AUXILIARY 

Auxiliary fragment download bucket

PROFILE_BUCKET_DECRYPT_VIDEO 

Video decryption bucket

PROFILE_BUCKET_DECRYPT_AUDIO 

Audio decryption bucket

PROFILE_BUCKET_DECRYPT_SUBTITLE 

Subtitle decryption bucket

PROFILE_BUCKET_DECRYPT_AUXILIARY 

Auxiliary decryption bucket

PROFILE_BUCKET_LA_TOTAL 

License acquisition total bucket

PROFILE_BUCKET_LA_PREPROC 

License acquisition pre-processing bucket

PROFILE_BUCKET_LA_NETWORK 

License acquisition network operation bucket

PROFILE_BUCKET_LA_POSTPROC 

License acquisition post-processing bucket

PROFILE_BUCKET_FIRST_BUFFER 

First buffer to gstreamer bucket

PROFILE_BUCKET_FIRST_FRAME 

First frame displayed bucket

PROFILE_BUCKET_PLAYER_PRE_BUFFERED 

Prebuffer bucket ( BG to FG )

PROFILE_BUCKET_TYPE_COUNT 

Bucket count

Definition at line 43 of file AampProfiler.h.

◆ ClassicProfilerBucketType

Bucket types of classic profiler.

Enumerator
TuneTimeBaseTime 

Tune time base

TuneTimeBeginLoad 

Player load time

TuneTimePrepareToPlay 

Manifest ready time

TuneTimePlay 

Profiles ready time

TuneTimeDrmReady 

DRM ready time

TuneTimeStartStream 

First buffer insert time

TuneTimeStreaming 

First frame display time

TuneTimeBackToXre 

Tune status back to XRE time

TuneTimeMax 

Max bucket type

Definition at line 82 of file AampProfiler.h.

◆ ContentType

Asset's content types.

Enumerator
ContentType_UNKNOWN 

0 - Unknown type

ContentType_CDVR 

1 - CDVR

ContentType_VOD 

2 - VOD

ContentType_LINEAR 

3 - Linear

ContentType_IVOD 

4 - IVOD

ContentType_EAS 

5 - EAS

ContentType_CAMERA 

6 - Camera

ContentType_DVR 

7 - DVR

ContentType_MDVR 

8 - MDVR

ContentType_IPDVR 

9 - IPDVR

ContentType_PPV 

10 - PPV

ContentType_OTT 

11 - OTT

ContentType_OTA 

12 - OTA

ContentType_HDMIIN 

13 - HDMI Input

ContentType_COMPOSITEIN 

14 - COMPOSITE Input

ContentType_SLE 

15 - SLE - Single Live Event (kind of iVOD)

ContentType_MAX 

16 - Type Count

Definition at line 99 of file AampProfiler.h.

◆ AampCurlInstance

Enumeration for Curl Instances.

Enumerator
eCURLINSTANCE_VIDEO 

Curl Instance for Video

eCURLINSTANCE_AUDIO 

Curl Instance for Audio

eCURLINSTANCE_SUBTITLE 

Curl Instance for Subtitle

eCURLINSTANCE_AUX_AUDIO 

Curl Instance for Aux Audio

eCURLINSTANCE_MANIFEST_PLAYLIST 

Curl Instance for Manifest file

eCURLINSTANCE_DAI 

Curl Instance for DAI

eCURLINSTANCE_AES 

Curl Instance for AES

eCURLINSTANCE_PLAYLISTPRECACHE 

Curl Instance for Precache

eCURLINSTANCE_MAX 

Curl Max Instance

Definition at line 156 of file priv_aamp.h.

◆ PlaybackErrorType

Enumerator
eGST_ERROR_PTS 

PTS error from gstreamer

eGST_ERROR_UNDERFLOW 

Underflow error from gstreamer

eGST_ERROR_VIDEO_BUFFERING 

Video buffering error

eGST_ERROR_OUTPUT_PROTECTION_ERROR 

Output Protection error

eDASH_ERROR_STARTTIME_RESET 

Start time reset of DASH

eSTALL_AFTER_DISCONTINUITY 

Playback stall after notifying discontinuity

eGST_ERROR_GST_PIPELINE_INTERNAL 

GstPipeline Internal Error

eDASH_LOW_LATENCY_MAX_CORRECTION_REACHED 

Low Latency Dash Max Correction Reached

eDASH_LOW_LATENCY_INPUT_PROTECTION_ERROR 

Low Latency Dash Input Protection error

eDASH_RECONFIGURE_FOR_ENC_PERIOD 

Retune to reconfigure pipeline for encrypted period

Definition at line 172 of file priv_aamp.h.

◆ TuneType

enum TuneType

Tune Typea.

Enumerator
eTUNETYPE_NEW_NORMAL 

Play from live point for live streams, from start for VOD

eTUNETYPE_NEW_SEEK 

A new tune with valid seek position

eTUNETYPE_SEEK 

Seek to a position. Not a new channel, so resources can be reused

eTUNETYPE_SEEKTOLIVE 

Seek to live point. Not a new channel, so resources can be reused

eTUNETYPE_RETUNE 

Internal retune for error handling.

eTUNETYPE_LAST 

Use the tune mode used in last tune

eTUNETYPE_NEW_END 

Start playback from the end of the asset

eTUNETYPE_SEEKTOEND 

Seek to live point. Not a new channel, so resources can be reused

Definition at line 190 of file priv_aamp.h.

◆ AAMPStatusType

AAMP Function return values.

Enumerator
eAAMPSTATUS_OK 

Aamp Status ok

eAAMPSTATUS_FAKE_TUNE_COMPLETE 

Fake tune completed

eAAMPSTATUS_GENERIC_ERROR 

Aamp General Error

eAAMPSTATUS_MANIFEST_DOWNLOAD_ERROR 

Manifest download failed

eAAMPSTATUS_PLAYLIST_VIDEO_DOWNLOAD_ERROR 

Video download failed

eAAMPSTATUS_PLAYLIST_AUDIO_DOWNLOAD_ERROR 

Audio dowload failed

eAAMPSTATUS_MANIFEST_PARSE_ERROR 

Manifest parse failed

eAAMPSTATUS_MANIFEST_CONTENT_ERROR 

Manifest content is unknown or Error

eAAMPSTATUS_MANIFEST_INVALID_TYPE 

Invalid manifest type

eAAMPSTATUS_PLAYLIST_PLAYBACK 

Playlist play back happening

eAAMPSTATUS_SEEK_RANGE_ERROR 

Seek position range invalid

eAAMPSTATUS_TRACKS_SYNCHRONISATION_ERROR 

Audio video track synchronisation Error

eAAMPSTATUS_INVALID_PLAYLIST_ERROR 

Playlist discontinuity mismatch

eAAMPSTATUS_UNSUPPORTED_DRM_ERROR 

Unsupported DRM

Definition at line 205 of file priv_aamp.h.

◆ HttpHeaderType

Http Header Type.

Enumerator
eHTTPHEADERTYPE_COOKIE 

Cookie Header

eHTTPHEADERTYPE_XREASON 

X-Reason Header

eHTTPHEADERTYPE_FOG_REASON 

X-Reason Header

eHTTPHEADERTYPE_EFF_LOCATION 

Effective URL location returned

eHTTPHEADERTYPE_UNKNOWN 

Unkown Header

Definition at line 227 of file priv_aamp.h.