\hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info}{}\doxysection{io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info Class Reference}
\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info}\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}


Indicators during video frame rendering progress.  


\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a5ed73cf7a5ff395cf33cd98586d9b6eb}{elapsed\+Time}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a6171785c19afc94d284bcf8c7e912b34}{start2\+Join\+Channel}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_abf2b3e55ce00022084205dc7eb7f9f81}{join2\+Join\+Success}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_ae50f2995b1eb07ce6a39cdfd920f4ba5}{join\+Success2\+Remote\+Joined}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a12139cb2e85fc1bdbb190328e8ba06a5}{remote\+Joined2\+Set\+View}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a6ce6fe427fb21551abd2867470105a9c}{remote\+Joined2\+Unmute\+Video}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_aaa63aac671ca40ab2f632e8c3eb2fe98}{remote\+Joined2\+Packet\+Received}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Indicators during video frame rendering progress. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a5ed73cf7a5ff395cf33cd98586d9b6eb}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a5ed73cf7a5ff395cf33cd98586d9b6eb}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!elapsedTime@{elapsedTime}}
\index{elapsedTime@{elapsedTime}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{elapsedTime}{elapsedTime}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+elapsed\+Time}

The time interval (ms) from {\ttfamily start\+Media\+Rendering\+Tracing} to S\+DK triggering the {\ttfamily on\+Video\+Rendering\+Tracing\+Result} callback. Agora recommends you call {\ttfamily start\+Media\+Rendering\+Tracing} before joining a channel. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a6171785c19afc94d284bcf8c7e912b34}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a6171785c19afc94d284bcf8c7e912b34}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!start2JoinChannel@{start2JoinChannel}}
\index{start2JoinChannel@{start2JoinChannel}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{start2JoinChannel}{start2JoinChannel}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+start2\+Join\+Channel}

The time interval (ms) from {\ttfamily start\+Media\+Rendering\+Tracing} to {\ttfamily join\+Channel(String token, String channel\+Id, String optional\+Info, int uid)} or {\ttfamily join\+Channel(String token, String channel\+Id, int uid, \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_channel_media_options}{Channel\+Media\+Options}} options)} . A negative number indicates that {\ttfamily start\+Media\+Rendering\+Tracing} is called after calling {\ttfamily join\+Channel(String token, String channel\+Id, int uid, \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_channel_media_options}{Channel\+Media\+Options}} options)}. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_abf2b3e55ce00022084205dc7eb7f9f81}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_abf2b3e55ce00022084205dc7eb7f9f81}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!join2JoinSuccess@{join2JoinSuccess}}
\index{join2JoinSuccess@{join2JoinSuccess}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{join2JoinSuccess}{join2JoinSuccess}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+join2\+Join\+Success}

The time interval (ms) from {\ttfamily join\+Channel(String token, String channel\+Id, String optional\+Info, int uid)} or {\ttfamily join\+Channel(String token, String channel\+Id, int uid, \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_channel_media_options}{Channel\+Media\+Options}} options)} to successfully joining the channel. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_ae50f2995b1eb07ce6a39cdfd920f4ba5}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_ae50f2995b1eb07ce6a39cdfd920f4ba5}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!joinSuccess2RemoteJoined@{joinSuccess2RemoteJoined}}
\index{joinSuccess2RemoteJoined@{joinSuccess2RemoteJoined}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{joinSuccess2RemoteJoined}{joinSuccess2RemoteJoined}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+join\+Success2\+Remote\+Joined}


\begin{DoxyItemize}
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} before successfully joining the channel, this value is the time interval (ms) from the local user successfully joining the channel to the remote user joining the channel.
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after successfully joining the channel, the value is the time interval (ms) from {\ttfamily start\+Media\+Rendering\+Tracing} to when the remote user joins the channel. \begin{DoxyNote}{Note}

\end{DoxyNote}

\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after the remote user joins the channel, the value is 0 and meaningless.
\item In order to reduce the time of rendering the first frame for remote users, Agora recommends that the local user joins the channel when the remote user is in the channel to reduce this value. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a12139cb2e85fc1bdbb190328e8ba06a5}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a12139cb2e85fc1bdbb190328e8ba06a5}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!remoteJoined2SetView@{remoteJoined2SetView}}
\index{remoteJoined2SetView@{remoteJoined2SetView}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{remoteJoined2SetView}{remoteJoined2SetView}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+remote\+Joined2\+Set\+View}


\begin{DoxyItemize}
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} before the remote user joins the channel, this value is the time interval (ms) from when the remote user joins the channel to when the local user sets the remote view.
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after the remote user joins the channel, this value is the time interval (ms) from calling {\ttfamily start\+Media\+Rendering\+Tracing} to setting the remote view. \begin{DoxyNote}{Note}

\end{DoxyNote}

\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after setting the remote view, the value is 0 and has no effect.
\item In order to reduce the time of rendering the first frame for remote users, Agora recommends that the local user sets the remote view before the remote user joins the channel, or sets the remote view immediately after the remote user joins the channel to reduce this value. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a6ce6fe427fb21551abd2867470105a9c}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_a6ce6fe427fb21551abd2867470105a9c}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!remoteJoined2UnmuteVideo@{remoteJoined2UnmuteVideo}}
\index{remoteJoined2UnmuteVideo@{remoteJoined2UnmuteVideo}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{remoteJoined2UnmuteVideo}{remoteJoined2UnmuteVideo}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+remote\+Joined2\+Unmute\+Video}


\begin{DoxyItemize}
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} before the remote user joins the channel, this value is the time interval (ms) from the remote user joining the channel to subscribing to the remote video stream.
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after the remote user joins the channel, this value is the time interval (ms) from {\ttfamily start\+Media\+Rendering\+Tracing} to subscribing to the remote video stream. \begin{DoxyNote}{Note}

\end{DoxyNote}

\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after subscribing to the remote video stream, the value is 0 and has no effect.
\item In order to reduce the time of rendering the first frame for remote users, Agora recommends that after the remote user joins the channel, the local user immediately subscribes to the remote video stream to reduce this value. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_aaa63aac671ca40ab2f632e8c3eb2fe98}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_video_rendering_tracing_info_aaa63aac671ca40ab2f632e8c3eb2fe98}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}!remoteJoined2PacketReceived@{remoteJoined2PacketReceived}}
\index{remoteJoined2PacketReceived@{remoteJoined2PacketReceived}!io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo@{io.agora.rtc2.IRtcEngineEventHandler.VideoRenderingTracingInfo}}
\doxysubsubsection{\texorpdfstring{remoteJoined2PacketReceived}{remoteJoined2PacketReceived}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Video\+Rendering\+Tracing\+Info.\+remote\+Joined2\+Packet\+Received}


\begin{DoxyItemize}
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} before the remote user joins the channel, this value is the time interval (ms) from when the remote user joins the channel to when the local user receives the remote video stream.
\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after the remote user joins the channel, this value is the time interval (ms) from {\ttfamily start\+Media\+Rendering\+Tracing} to receiving the remote video stream. \begin{DoxyNote}{Note}

\end{DoxyNote}

\item If the local user calls {\ttfamily start\+Media\+Rendering\+Tracing} after receiving the remote video stream, the value is 0 and has no effect.
\item In order to reduce the time of rendering the first frame for remote users, Agora recommends that the remote user publishes video streams immediately after joining the channel, and the local user immediately subscribes to remote video streams to reduce this value. 
\end{DoxyItemize}