\hypertarget{structagora_1_1rtc_1_1_remote_video_stats}{}\doxysection{agora\+::rtc\+::Remote\+Video\+Stats Struct Reference}
\label{structagora_1_1rtc_1_1_remote_video_stats}\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}


Statistics of the remote video stream.  




{\ttfamily \#include $<$I\+Agora\+Rtc\+Engine.\+h$>$}

\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
uid\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_ab7f35b279fca097d201912038399c442}{uid}}
\item 
int delay \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a0a0f8269be3dfe782aa5d0cf7dc074f0}{\+\_\+\+\_\+deprecated}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a491db76d9c18a39a7e8afadd3e2b5456}{e2e\+Delay}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a7f76b67276e62a32b50386047a11c410}{width}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_ace438b036daa0abd01148d54c942e5a3}{height}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_aad8f76a8724b2abe94055db44b930098}{received\+Bitrate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a8a224c26b416cb58e3dc9682bc00d351}{decoder\+Input\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a21776c26b256d836a90944c1051c9322}{decoder\+Output\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a500d2a8457bf877794c219d194ec09b0}{renderer\+Output\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_aec39801ed9fc1712d89e9a66b9b76bdb}{frame\+Loss\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a5d7c1702105f3e6eb40fca913da9b388}{packet\+Loss\+Rate}}
\item 
V\+I\+D\+E\+O\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+T\+Y\+PE \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a014a748c6a3db421bc6eaa71b296537a}{rx\+Stream\+Type}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_ad8b2816c6f3bff11358f41cf8cf708ff}{total\+Frozen\+Time}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a663b987ded60fe1b061602672e57c52e}{frozen\+Rate}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a0462d049d437240e6d2fef105386d2c4}{av\+Sync\+Time\+Ms}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a37988d611a05c65e6196def8f17dc50b}{total\+Active\+Time}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a676efb1f95dcb83df05fcd5ebb82a9b8}{publish\+Duration}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_a13638888565a2df83f5b7083b69964a8}{mos\+Value}}
\item 
unsigned int \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_video_stats_ae4faa6734f05f943b541da2767628452}{rx\+Video\+Bytes}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Statistics of the remote video stream. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_ab7f35b279fca097d201912038399c442}\label{structagora_1_1rtc_1_1_remote_video_stats_ab7f35b279fca097d201912038399c442}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!uid@{uid}}
\index{uid@{uid}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{uid}{uid}}
{\footnotesize\ttfamily uid\+\_\+t agora\+::rtc\+::\+Remote\+Video\+Stats\+::uid}

The user ID of the remote user sending the video stream. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a0a0f8269be3dfe782aa5d0cf7dc074f0}\label{structagora_1_1rtc_1_1_remote_video_stats_a0a0f8269be3dfe782aa5d0cf7dc074f0}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!\_\_deprecated@{\_\_deprecated}}
\index{\_\_deprecated@{\_\_deprecated}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{\_\_deprecated}{\_\_deprecated}}
{\footnotesize\ttfamily int delay agora\+::rtc\+::\+Remote\+Video\+Stats\+::\+\_\+\+\_\+deprecated}

Deprecated\+: In scenarios where audio and video are synchronized, you can get the video delay data from {\ttfamily network\+Transport\+Delay} and {\ttfamily jitter\+Buffer\+Delay} in {\ttfamily \mbox{\hyperlink{structagora_1_1rtc_1_1_remote_audio_stats}{Remote\+Audio\+Stats}}}. The video delay (ms). \begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000034}{Deprecated}}]Time delay (ms). \end{DoxyRefDesc}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a491db76d9c18a39a7e8afadd3e2b5456}\label{structagora_1_1rtc_1_1_remote_video_stats_a491db76d9c18a39a7e8afadd3e2b5456}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!e2eDelay@{e2eDelay}}
\index{e2eDelay@{e2eDelay}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{e2eDelay}{e2eDelay}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::e2e\+Delay}

End-\/to-\/end video latency (ms). That is, the time elapsed from the video capturing on the remote user\textquotesingle{}s end to the receiving and rendering of the video on the local user\textquotesingle{}s end. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a7f76b67276e62a32b50386047a11c410}\label{structagora_1_1rtc_1_1_remote_video_stats_a7f76b67276e62a32b50386047a11c410}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!width@{width}}
\index{width@{width}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{width}{width}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::width}

The width (pixels) of the video. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_ace438b036daa0abd01148d54c942e5a3}\label{structagora_1_1rtc_1_1_remote_video_stats_ace438b036daa0abd01148d54c942e5a3}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!height@{height}}
\index{height@{height}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{height}{height}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::height}

The height (pixels) of the video. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_aad8f76a8724b2abe94055db44b930098}\label{structagora_1_1rtc_1_1_remote_video_stats_aad8f76a8724b2abe94055db44b930098}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!receivedBitrate@{receivedBitrate}}
\index{receivedBitrate@{receivedBitrate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{receivedBitrate}{receivedBitrate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::received\+Bitrate}

The bitrate (Kbps) of the remote video received since the last count. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a8a224c26b416cb58e3dc9682bc00d351}\label{structagora_1_1rtc_1_1_remote_video_stats_a8a224c26b416cb58e3dc9682bc00d351}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!decoderInputFrameRate@{decoderInputFrameRate}}
\index{decoderInputFrameRate@{decoderInputFrameRate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{decoderInputFrameRate}{decoderInputFrameRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::decoder\+Input\+Frame\+Rate}

The decoder input frame rate (fps) of the remote video. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a21776c26b256d836a90944c1051c9322}\label{structagora_1_1rtc_1_1_remote_video_stats_a21776c26b256d836a90944c1051c9322}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!decoderOutputFrameRate@{decoderOutputFrameRate}}
\index{decoderOutputFrameRate@{decoderOutputFrameRate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{decoderOutputFrameRate}{decoderOutputFrameRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::decoder\+Output\+Frame\+Rate}

The frame rate (fps) of decoding the remote video. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a500d2a8457bf877794c219d194ec09b0}\label{structagora_1_1rtc_1_1_remote_video_stats_a500d2a8457bf877794c219d194ec09b0}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!rendererOutputFrameRate@{rendererOutputFrameRate}}
\index{rendererOutputFrameRate@{rendererOutputFrameRate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{rendererOutputFrameRate}{rendererOutputFrameRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::renderer\+Output\+Frame\+Rate}

The frame rate (fps) of rendering the remote video. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_aec39801ed9fc1712d89e9a66b9b76bdb}\label{structagora_1_1rtc_1_1_remote_video_stats_aec39801ed9fc1712d89e9a66b9b76bdb}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!frameLossRate@{frameLossRate}}
\index{frameLossRate@{frameLossRate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{frameLossRate}{frameLossRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::frame\+Loss\+Rate}

The packet loss rate (\%) of the remote video. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a5d7c1702105f3e6eb40fca913da9b388}\label{structagora_1_1rtc_1_1_remote_video_stats_a5d7c1702105f3e6eb40fca913da9b388}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!packetLossRate@{packetLossRate}}
\index{packetLossRate@{packetLossRate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{packetLossRate}{packetLossRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::packet\+Loss\+Rate}

The packet loss rate (\%) of the remote video after using the anti-\/packet-\/loss technology. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a014a748c6a3db421bc6eaa71b296537a}\label{structagora_1_1rtc_1_1_remote_video_stats_a014a748c6a3db421bc6eaa71b296537a}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!rxStreamType@{rxStreamType}}
\index{rxStreamType@{rxStreamType}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{rxStreamType}{rxStreamType}}
{\footnotesize\ttfamily V\+I\+D\+E\+O\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+T\+Y\+PE agora\+::rtc\+::\+Remote\+Video\+Stats\+::rx\+Stream\+Type}

The type of the video stream. See {\ttfamily V\+I\+D\+E\+O\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+T\+Y\+PE}. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_ad8b2816c6f3bff11358f41cf8cf708ff}\label{structagora_1_1rtc_1_1_remote_video_stats_ad8b2816c6f3bff11358f41cf8cf708ff}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!totalFrozenTime@{totalFrozenTime}}
\index{totalFrozenTime@{totalFrozenTime}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{totalFrozenTime}{totalFrozenTime}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::total\+Frozen\+Time}

The total freeze time (ms) of the remote video stream after the remote user joins the channel. In a video session where the frame rate is set to no less than 5 fps, video freeze occurs when the time interval between two adjacent renderable video frames is more than 500 ms. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a663b987ded60fe1b061602672e57c52e}\label{structagora_1_1rtc_1_1_remote_video_stats_a663b987ded60fe1b061602672e57c52e}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!frozenRate@{frozenRate}}
\index{frozenRate@{frozenRate}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{frozenRate}{frozenRate}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::frozen\+Rate}

The total video freeze time as a percentage (\%) of the total time the video is available. The video is considered available as long as that the remote user neither stops sending the video stream nor disables the video module after joining the channel. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a0462d049d437240e6d2fef105386d2c4}\label{structagora_1_1rtc_1_1_remote_video_stats_a0462d049d437240e6d2fef105386d2c4}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!avSyncTimeMs@{avSyncTimeMs}}
\index{avSyncTimeMs@{avSyncTimeMs}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{avSyncTimeMs}{avSyncTimeMs}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::av\+Sync\+Time\+Ms}

The amount of time (ms) that the audio is ahead of the video. \begin{DoxyNote}{Note}
If this value is negative, the audio is lagging behind the video. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a37988d611a05c65e6196def8f17dc50b}\label{structagora_1_1rtc_1_1_remote_video_stats_a37988d611a05c65e6196def8f17dc50b}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!totalActiveTime@{totalActiveTime}}
\index{totalActiveTime@{totalActiveTime}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{totalActiveTime}{totalActiveTime}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::total\+Active\+Time}

The total active time (ms) of the video. As long as the remote user or host neither stops sending the video stream nor disables the video module after joining the channel, the video is available. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a676efb1f95dcb83df05fcd5ebb82a9b8}\label{structagora_1_1rtc_1_1_remote_video_stats_a676efb1f95dcb83df05fcd5ebb82a9b8}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!publishDuration@{publishDuration}}
\index{publishDuration@{publishDuration}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{publishDuration}{publishDuration}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::publish\+Duration}

The total duration (ms) of the remote video stream. \mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_a13638888565a2df83f5b7083b69964a8}\label{structagora_1_1rtc_1_1_remote_video_stats_a13638888565a2df83f5b7083b69964a8}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!mosValue@{mosValue}}
\index{mosValue@{mosValue}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{mosValue}{mosValue}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Remote\+Video\+Stats\+::mos\+Value}

The quality of the remote video stream in the reported interval. The quality is determined by the Agora real-\/time video M\+OS (Mean Opinion Score) measurement method. The return value range is \mbox{[}0, 500\mbox{]}. Dividing the return value by 100 gets the M\+OS score, which ranges from 0 to 5. The higher the score, the better the video quality. \begin{DoxyNote}{Note}
For textured video data, this parameter always returns 0. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_remote_video_stats_ae4faa6734f05f943b541da2767628452}\label{structagora_1_1rtc_1_1_remote_video_stats_ae4faa6734f05f943b541da2767628452}} 
\index{agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}!rxVideoBytes@{rxVideoBytes}}
\index{rxVideoBytes@{rxVideoBytes}!agora::rtc::RemoteVideoStats@{agora::rtc::RemoteVideoStats}}
\doxysubsubsection{\texorpdfstring{rxVideoBytes}{rxVideoBytes}}
{\footnotesize\ttfamily unsigned int agora\+::rtc\+::\+Remote\+Video\+Stats\+::rx\+Video\+Bytes}

The total number of video bytes received (bytes), inluding the F\+EC bytes, represented by an aggregate value. 