\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}}


Statistics of a call session.  




{\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}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_rtc_stats_a6c76d9907caac0e8ddc66d90247680ba}{lan\+Accelerate\+State}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Statistics of a call session. 

\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}

Call duration of the local user in seconds, 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 number of bytes sent. \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 number of bytes received. \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, 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, 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, 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, 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 actual bitrate (Kbps) while sending the local video stream. \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). \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}

The bitrate (Kbps) of receiving the audio. \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 bitrate (Kbps) of sending the audio packet. \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 bitrate (Kbps) of receiving the video. \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 bitrate (Kbps) of sending the video. \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 client-\/to-\/server delay (milliseconds). \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}

Application 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 (ms) from the client to the local router. \begin{DoxyNote}{Note}
This property is disabled on devices running i\+OS 14 or later, and enabled on devices running versions earlier than i\+OS 14 by default. To enable this property on devices running i\+OS 14 or later, {\ttfamily technical support}. 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 ratio occupied by 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 occupied by 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 size occupied by 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 duration (ms) between the S\+DK starts connecting and the connection is established. If the value reported is 0, it means invalid. \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 (\%) from the client to the Agora server before applying the anti-\/packet-\/loss algorithm. \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 (\%) from the Agora server to the client before using the anti-\/packet-\/loss method. \mbox{\Hypertarget{structagora_1_1rtc_1_1_rtc_stats_a6c76d9907caac0e8ddc66d90247680ba}\label{structagora_1_1rtc_1_1_rtc_stats_a6c76d9907caac0e8ddc66d90247680ba}} 
\index{agora::rtc::RtcStats@{agora::rtc::RtcStats}!lanAccelerateState@{lanAccelerateState}}
\index{lanAccelerateState@{lanAccelerateState}!agora::rtc::RtcStats@{agora::rtc::RtcStats}}
\doxysubsubsection{\texorpdfstring{lanAccelerateState}{lanAccelerateState}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Rtc\+Stats\+::lan\+Accelerate\+State}

The local network acceleration state. A value of 1 indicates that local network acceleration is active, while 0 indicates it is inactive. @technical preview 