\hypertarget{structagora_1_1rtc_1_1_rtc_stats}{}\doxysection{agora\+::rtc\+::Rtc\+Stats Struct Reference}
\label{structagora_1_1rtc_1_1_rtc_stats}\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}}


{\ttfamily \#include $<$Agora\+Base.\+h$>$}

\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a4b202fc7c44e9f17bdc089de6a45e4b8}{duration}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_ae2e9e4c28982202a1b1d73f38d577432}{tx\+Bytes}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a1ef8bd15b4fa6912be76cd8b4d0681f6}{rx\+Bytes}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_add288adbe7c7a044dc27089949e56efe}{tx\+Audio\+Bytes}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a2cb6fe0fe309315603f315897662bc27}{tx\+Video\+Bytes}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a7146512103f1f79a7956b277196761ad}{rx\+Audio\+Bytes}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_aeb90e4ab6c3e6fd488e24a7fc7cb9296}{rx\+Video\+Bytes}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a720b33c7dfbedeecfd2d0f531992926c}{tx\+K\+Bit\+Rate}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a2f274984864ca3e654abf83fb4154bb6}{rx\+K\+Bit\+Rate}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a14556ad320dd114a5e905727e7fb203b}{rx\+Audio\+K\+Bit\+Rate}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a24a1c889f9685b887ff4161cec72486b}{tx\+Audio\+K\+Bit\+Rate}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a0527a3279ee38ff998c434eadd6b6a4a}{rx\+Video\+K\+Bit\+Rate}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_aaf35f0a9d782043137b9619060766dd7}{tx\+Video\+K\+Bit\+Rate}}
\item 
unsigned short \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a255549c958a1dcb0aad1eb0f13ff7f18}{lastmile\+Delay}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a296afc59475c4b6fa89d4e685eacca7e}{user\+Count}}
\item 
double \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_af9f69e743e0cc4012c1fea16f861dae1}{cpu\+App\+Usage}}
\item 
double \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a90870c00ee6886a44a259e55185595f0}{cpu\+Total\+Usage}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a30cc889ef34f63e23950b54591218cb5}{gateway\+Rtt}}
\item 
double \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_aab879ec9c52f2dd8d662c26c4939a7d3}{memory\+App\+Usage\+Ratio}}
\item 
double \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_aae6d57e709b08258be372960f9e19fd6}{memory\+Total\+Usage\+Ratio}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a17258e12476bb9106ccc248af4cfe734}{memory\+App\+Usage\+In\+Kbytes}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_aae61655375923d62768db130ab8753d7}{connect\+Time\+Ms}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a7f75ab2bfac01e377831dd8401f53a68}{first\+Audio\+Packet\+Duration}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a5b698ce3109f94ec78e2d7a07cd86107}{first\+Video\+Packet\+Duration}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_aec144addd46c89ed274f2d10a2528883}{first\+Video\+Key\+Frame\+Packet\+Duration}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a73c72aac81c17e9564a3ddcfa2292b46}{packets\+Before\+First\+Key\+Frame\+Packet}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a83c36a6fbe7aa63e497db3e5facccb98}{first\+Audio\+Packet\+Duration\+After\+Unmute}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a0a489e1b58117166f0c365361626efa2}{first\+Video\+Packet\+Duration\+After\+Unmute}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a84768d40c1556ffa9c06b00b08d048d1}{first\+Video\+Key\+Frame\+Packet\+Duration\+After\+Unmute}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a1431bf6fc5bff206e981a232bbec8687}{first\+Video\+Key\+Frame\+Decoded\+Duration\+After\+Unmute}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a970e9c9f763a3a753140c7ba5f1af840}{first\+Video\+Key\+Frame\+Rendered\+Duration\+After\+Unmute}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a87cdcd7830501a47e98f8c7e0260cae2}{tx\+Packet\+Loss\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a78f3bc438c6a7c149e1cf2efceb247a4}{rx\+Packet\+Loss\+Rate}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The definition of the \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats}{Rtc\+Stats}} struct. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a4b202fc7c44e9f17bdc089de6a45e4b8}\label{structagora_1_1rtc_1_1_rtc_stats_a4b202fc7c44e9f17bdc089de6a45e4b8}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!duration@{duration}}
\index{duration@{duration}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{duration}{duration}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::duration}

The call duration (s), represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_ae2e9e4c28982202a1b1d73f38d577432}\label{structagora_1_1rtc_1_1_rtc_stats_ae2e9e4c28982202a1b1d73f38d577432}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txBytes@{txBytes}}
\index{txBytes@{txBytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txBytes}{txBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::tx\+Bytes}

The total number of bytes transmitted, represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a1ef8bd15b4fa6912be76cd8b4d0681f6}\label{structagora_1_1rtc_1_1_rtc_stats_a1ef8bd15b4fa6912be76cd8b4d0681f6}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxBytes@{rxBytes}}
\index{rxBytes@{rxBytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxBytes}{rxBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::rx\+Bytes}

The total number of bytes received, represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_add288adbe7c7a044dc27089949e56efe}\label{structagora_1_1rtc_1_1_rtc_stats_add288adbe7c7a044dc27089949e56efe}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txAudioBytes@{txAudioBytes}}
\index{txAudioBytes@{txAudioBytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txAudioBytes}{txAudioBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::tx\+Audio\+Bytes}

The total number of audio bytes sent (bytes), represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a2cb6fe0fe309315603f315897662bc27}\label{structagora_1_1rtc_1_1_rtc_stats_a2cb6fe0fe309315603f315897662bc27}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txVideoBytes@{txVideoBytes}}
\index{txVideoBytes@{txVideoBytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txVideoBytes}{txVideoBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::tx\+Video\+Bytes}

The total number of video bytes sent (bytes), represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a7146512103f1f79a7956b277196761ad}\label{structagora_1_1rtc_1_1_rtc_stats_a7146512103f1f79a7956b277196761ad}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxAudioBytes@{rxAudioBytes}}
\index{rxAudioBytes@{rxAudioBytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxAudioBytes}{rxAudioBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::rx\+Audio\+Bytes}

The total number of audio bytes received (bytes), represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_aeb90e4ab6c3e6fd488e24a7fc7cb9296}\label{structagora_1_1rtc_1_1_rtc_stats_aeb90e4ab6c3e6fd488e24a7fc7cb9296}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxVideoBytes@{rxVideoBytes}}
\index{rxVideoBytes@{rxVideoBytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxVideoBytes}{rxVideoBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::rx\+Video\+Bytes}

The total number of video bytes received (bytes), represented by an aggregate value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a720b33c7dfbedeecfd2d0f531992926c}\label{structagora_1_1rtc_1_1_rtc_stats_a720b33c7dfbedeecfd2d0f531992926c}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txKBitRate@{txKBitRate}}
\index{txKBitRate@{txKBitRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txKBitRate}{txKBitRate}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::tx\+K\+Bit\+Rate}

The transmission bitrate (Kbps), represented by an instantaneous value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a2f274984864ca3e654abf83fb4154bb6}\label{structagora_1_1rtc_1_1_rtc_stats_a2f274984864ca3e654abf83fb4154bb6}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxKBitRate@{rxKBitRate}}
\index{rxKBitRate@{rxKBitRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxKBitRate}{rxKBitRate}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::rx\+K\+Bit\+Rate}

The receiving bitrate (Kbps), represented by an instantaneous value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a14556ad320dd114a5e905727e7fb203b}\label{structagora_1_1rtc_1_1_rtc_stats_a14556ad320dd114a5e905727e7fb203b}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxAudioKBitRate@{rxAudioKBitRate}}
\index{rxAudioKBitRate@{rxAudioKBitRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxAudioKBitRate}{rxAudioKBitRate}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::rx\+Audio\+K\+Bit\+Rate}

Audio receiving bitrate (Kbps), represented by an instantaneous value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a24a1c889f9685b887ff4161cec72486b}\label{structagora_1_1rtc_1_1_rtc_stats_a24a1c889f9685b887ff4161cec72486b}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txAudioKBitRate@{txAudioKBitRate}}
\index{txAudioKBitRate@{txAudioKBitRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txAudioKBitRate}{txAudioKBitRate}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::tx\+Audio\+K\+Bit\+Rate}

The audio transmission bitrate (Kbps), represented by an instantaneous value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a0527a3279ee38ff998c434eadd6b6a4a}\label{structagora_1_1rtc_1_1_rtc_stats_a0527a3279ee38ff998c434eadd6b6a4a}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxVideoKBitRate@{rxVideoKBitRate}}
\index{rxVideoKBitRate@{rxVideoKBitRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxVideoKBitRate}{rxVideoKBitRate}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::rx\+Video\+K\+Bit\+Rate}

The video receive bitrate (Kbps), represented by an instantaneous value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_aaf35f0a9d782043137b9619060766dd7}\label{structagora_1_1rtc_1_1_rtc_stats_aaf35f0a9d782043137b9619060766dd7}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txVideoKBitRate@{txVideoKBitRate}}
\index{txVideoKBitRate@{txVideoKBitRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txVideoKBitRate}{txVideoKBitRate}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::tx\+Video\+K\+Bit\+Rate}

The video transmission bitrate (Kbps), represented by an instantaneous value. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a255549c958a1dcb0aad1eb0f13ff7f18}\label{structagora_1_1rtc_1_1_rtc_stats_a255549c958a1dcb0aad1eb0f13ff7f18}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!lastmileDelay@{lastmileDelay}}
\index{lastmileDelay@{lastmileDelay}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{lastmileDelay}{lastmileDelay}}
{\footnotesize\ttfamily unsigned short agora\+::rtc\+::\+Rtc\+Stats\+::lastmile\+Delay}

The V\+OS client-\/server latency (ms). \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a296afc59475c4b6fa89d4e685eacca7e}\label{structagora_1_1rtc_1_1_rtc_stats_a296afc59475c4b6fa89d4e685eacca7e}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!userCount@{userCount}}
\index{userCount@{userCount}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{userCount}{userCount}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Rtc\+Stats\+::user\+Count}

The number of users in the channel. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_af9f69e743e0cc4012c1fea16f861dae1}\label{structagora_1_1rtc_1_1_rtc_stats_af9f69e743e0cc4012c1fea16f861dae1}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!cpuAppUsage@{cpuAppUsage}}
\index{cpuAppUsage@{cpuAppUsage}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{cpuAppUsage}{cpuAppUsage}}
{\footnotesize\ttfamily double agora\+::rtc\+::\+Rtc\+Stats\+::cpu\+App\+Usage}

The app C\+PU usage (\%). \begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item The value of {\ttfamily cpu\+App\+Usage} is always reported as 0 in the {\ttfamily on\+Leave\+Channel} callback.
\item As of Android 8.\+1, you cannot get the C\+PU usage from this attribute due to system limitations. 
\end{DoxyItemize}
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a90870c00ee6886a44a259e55185595f0}\label{structagora_1_1rtc_1_1_rtc_stats_a90870c00ee6886a44a259e55185595f0}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!cpuTotalUsage@{cpuTotalUsage}}
\index{cpuTotalUsage@{cpuTotalUsage}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{cpuTotalUsage}{cpuTotalUsage}}
{\footnotesize\ttfamily double agora\+::rtc\+::\+Rtc\+Stats\+::cpu\+Total\+Usage}

The system C\+PU usage (\%).

For Windows, in the multi-\/kernel environment, this member represents the average C\+PU usage. The value = (100 -\/ System Idle Progress in Task Manager)/100. \begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item The value of {\ttfamily cpu\+Total\+Usage} is always reported as 0 in the {\ttfamily on\+Leave\+Channel} callback.
\item As of Android 8.\+1, you cannot get the C\+PU usage from this attribute due to system limitations. 
\end{DoxyItemize}
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a30cc889ef34f63e23950b54591218cb5}\label{structagora_1_1rtc_1_1_rtc_stats_a30cc889ef34f63e23950b54591218cb5}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!gatewayRtt@{gatewayRtt}}
\index{gatewayRtt@{gatewayRtt}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{gatewayRtt}{gatewayRtt}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::gateway\+Rtt}

The round-\/trip time delay from the client to the local router. \begin{DoxyNote}{Note}
On Android, to get {\ttfamily gateway\+Rtt}, ensure that you add the {\ttfamily android.\+permission.\+A\+C\+C\+E\+S\+S\+\_\+\+W\+I\+F\+I\+\_\+\+S\+T\+A\+TE} permission after {\ttfamily $<$/application$>$} in the {\ttfamily Android\+Manifest.\+xml} file in your project. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_aab879ec9c52f2dd8d662c26c4939a7d3}\label{structagora_1_1rtc_1_1_rtc_stats_aab879ec9c52f2dd8d662c26c4939a7d3}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!memoryAppUsageRatio@{memoryAppUsageRatio}}
\index{memoryAppUsageRatio@{memoryAppUsageRatio}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{memoryAppUsageRatio}{memoryAppUsageRatio}}
{\footnotesize\ttfamily double agora\+::rtc\+::\+Rtc\+Stats\+::memory\+App\+Usage\+Ratio}

The memory usage ratio of the app (\%). \begin{DoxyNote}{Note}
This value is for reference only. Due to system limitations, you may not get this value. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_aae6d57e709b08258be372960f9e19fd6}\label{structagora_1_1rtc_1_1_rtc_stats_aae6d57e709b08258be372960f9e19fd6}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!memoryTotalUsageRatio@{memoryTotalUsageRatio}}
\index{memoryTotalUsageRatio@{memoryTotalUsageRatio}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{memoryTotalUsageRatio}{memoryTotalUsageRatio}}
{\footnotesize\ttfamily double agora\+::rtc\+::\+Rtc\+Stats\+::memory\+Total\+Usage\+Ratio}

The memory usage ratio of the system (\%). \begin{DoxyNote}{Note}
This value is for reference only. Due to system limitations, you may not get this value. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a17258e12476bb9106ccc248af4cfe734}\label{structagora_1_1rtc_1_1_rtc_stats_a17258e12476bb9106ccc248af4cfe734}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!memoryAppUsageInKbytes@{memoryAppUsageInKbytes}}
\index{memoryAppUsageInKbytes@{memoryAppUsageInKbytes}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{memoryAppUsageInKbytes}{memoryAppUsageInKbytes}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::memory\+App\+Usage\+In\+Kbytes}

The memory usage of the app (KB). \begin{DoxyNote}{Note}
This value is for reference only. Due to system limitations, you may not get this value. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_aae61655375923d62768db130ab8753d7}\label{structagora_1_1rtc_1_1_rtc_stats_aae61655375923d62768db130ab8753d7}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!connectTimeMs@{connectTimeMs}}
\index{connectTimeMs@{connectTimeMs}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{connectTimeMs}{connectTimeMs}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::connect\+Time\+Ms}

The time elapsed from the when the app starts connecting to an Agora channel to when the connection is established. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a7f75ab2bfac01e377831dd8401f53a68}\label{structagora_1_1rtc_1_1_rtc_stats_a7f75ab2bfac01e377831dd8401f53a68}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstAudioPacketDuration@{firstAudioPacketDuration}}
\index{firstAudioPacketDuration@{firstAudioPacketDuration}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstAudioPacketDuration}{firstAudioPacketDuration}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Audio\+Packet\+Duration}

The duration (ms) between the app starting connecting to an Agora channel and the first audio packet is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a5b698ce3109f94ec78e2d7a07cd86107}\label{structagora_1_1rtc_1_1_rtc_stats_a5b698ce3109f94ec78e2d7a07cd86107}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstVideoPacketDuration@{firstVideoPacketDuration}}
\index{firstVideoPacketDuration@{firstVideoPacketDuration}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstVideoPacketDuration}{firstVideoPacketDuration}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Video\+Packet\+Duration}

The duration (ms) between the app starting connecting to an Agora channel and the first video packet is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_aec144addd46c89ed274f2d10a2528883}\label{structagora_1_1rtc_1_1_rtc_stats_aec144addd46c89ed274f2d10a2528883}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstVideoKeyFramePacketDuration@{firstVideoKeyFramePacketDuration}}
\index{firstVideoKeyFramePacketDuration@{firstVideoKeyFramePacketDuration}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstVideoKeyFramePacketDuration}{firstVideoKeyFramePacketDuration}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Video\+Key\+Frame\+Packet\+Duration}

The duration (ms) between the app starting connecting to an Agora channel and the first video key frame is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a73c72aac81c17e9564a3ddcfa2292b46}\label{structagora_1_1rtc_1_1_rtc_stats_a73c72aac81c17e9564a3ddcfa2292b46}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!packetsBeforeFirstKeyFramePacket@{packetsBeforeFirstKeyFramePacket}}
\index{packetsBeforeFirstKeyFramePacket@{packetsBeforeFirstKeyFramePacket}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{packetsBeforeFirstKeyFramePacket}{packetsBeforeFirstKeyFramePacket}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::packets\+Before\+First\+Key\+Frame\+Packet}

The number of video packets before the first video key frame is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a83c36a6fbe7aa63e497db3e5facccb98}\label{structagora_1_1rtc_1_1_rtc_stats_a83c36a6fbe7aa63e497db3e5facccb98}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstAudioPacketDurationAfterUnmute@{firstAudioPacketDurationAfterUnmute}}
\index{firstAudioPacketDurationAfterUnmute@{firstAudioPacketDurationAfterUnmute}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstAudioPacketDurationAfterUnmute}{firstAudioPacketDurationAfterUnmute}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Audio\+Packet\+Duration\+After\+Unmute}

The duration (ms) between the last time unmute audio and the first audio packet is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a0a489e1b58117166f0c365361626efa2}\label{structagora_1_1rtc_1_1_rtc_stats_a0a489e1b58117166f0c365361626efa2}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstVideoPacketDurationAfterUnmute@{firstVideoPacketDurationAfterUnmute}}
\index{firstVideoPacketDurationAfterUnmute@{firstVideoPacketDurationAfterUnmute}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstVideoPacketDurationAfterUnmute}{firstVideoPacketDurationAfterUnmute}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Video\+Packet\+Duration\+After\+Unmute}

The duration (ms) between the last time unmute video and the first video packet is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a84768d40c1556ffa9c06b00b08d048d1}\label{structagora_1_1rtc_1_1_rtc_stats_a84768d40c1556ffa9c06b00b08d048d1}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstVideoKeyFramePacketDurationAfterUnmute@{firstVideoKeyFramePacketDurationAfterUnmute}}
\index{firstVideoKeyFramePacketDurationAfterUnmute@{firstVideoKeyFramePacketDurationAfterUnmute}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstVideoKeyFramePacketDurationAfterUnmute}{firstVideoKeyFramePacketDurationAfterUnmute}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Video\+Key\+Frame\+Packet\+Duration\+After\+Unmute}

The duration (ms) between the last time unmute video and the first video key frame is received. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a1431bf6fc5bff206e981a232bbec8687}\label{structagora_1_1rtc_1_1_rtc_stats_a1431bf6fc5bff206e981a232bbec8687}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstVideoKeyFrameDecodedDurationAfterUnmute@{firstVideoKeyFrameDecodedDurationAfterUnmute}}
\index{firstVideoKeyFrameDecodedDurationAfterUnmute@{firstVideoKeyFrameDecodedDurationAfterUnmute}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstVideoKeyFrameDecodedDurationAfterUnmute}{firstVideoKeyFrameDecodedDurationAfterUnmute}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Video\+Key\+Frame\+Decoded\+Duration\+After\+Unmute}

The duration (ms) between the last time unmute video and the first video key frame is decoded. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a970e9c9f763a3a753140c7ba5f1af840}\label{structagora_1_1rtc_1_1_rtc_stats_a970e9c9f763a3a753140c7ba5f1af840}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!firstVideoKeyFrameRenderedDurationAfterUnmute@{firstVideoKeyFrameRenderedDurationAfterUnmute}}
\index{firstVideoKeyFrameRenderedDurationAfterUnmute@{firstVideoKeyFrameRenderedDurationAfterUnmute}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{firstVideoKeyFrameRenderedDurationAfterUnmute}{firstVideoKeyFrameRenderedDurationAfterUnmute}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::first\+Video\+Key\+Frame\+Rendered\+Duration\+After\+Unmute}

The duration (ms) between the last time unmute video and the first video key frame is rendered. 0 indicates that this member does not apply. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a87cdcd7830501a47e98f8c7e0260cae2}\label{structagora_1_1rtc_1_1_rtc_stats_a87cdcd7830501a47e98f8c7e0260cae2}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!txPacketLossRate@{txPacketLossRate}}
\index{txPacketLossRate@{txPacketLossRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{txPacketLossRate}{txPacketLossRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::tx\+Packet\+Loss\+Rate}

The packet loss rate of sender(broadcaster). \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a78f3bc438c6a7c149e1cf2efceb247a4}\label{structagora_1_1rtc_1_1_rtc_stats_a78f3bc438c6a7c149e1cf2efceb247a4}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!rxPacketLossRate@{rxPacketLossRate}}
\index{rxPacketLossRate@{rxPacketLossRate}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{rxPacketLossRate}{rxPacketLossRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::rx\+Packet\+Loss\+Rate}

The packet loss rate of receiver(audience). 