\hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats}{}\doxysection{io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats Class Reference}
\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats}\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}


The statistics of the local video stream.  


\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a46dd77e7744c624c4007122cce0bf0a1}{uid}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a68ab0fc749e0ce7becd3e49abdfe6a7d}{sent\+Bitrate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ae0dd10d98f0ff884c5b5cda07d3536fb}{sent\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_aaa54a4eced1c5ec66a00d09a5ed5a39a}{capture\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0f54fe5d26ff7a1d021c7d8663cdea09}{capture\+Frame\+Width}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a23cf5adeb93c6214a46f665f3bf092af}{capture\+Frame\+Height}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0bf401c2dd5f222354a15c809d3e9c2d}{regulated\+Capture\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a86a2989a81bb5adc6735426aa00fffbe}{regulated\+Capture\+Frame\+Width}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a1c366fd414294affb75db7c010b154ec}{regulated\+Capture\+Frame\+Height}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a2e9c274129a22cace45c5da4040f9846}{encoder\+Output\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a737a451263c78de3e6a17c99cd9c8b16}{renderer\+Output\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0b6a7798f26c6d72f831737148d5caa9}{target\+Bitrate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a36e616086f8c1d480eb0f6bd9e44b903}{target\+Frame\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a5ab9aa24ac1527cca4e6ef1158c65968}{quality\+Adapt\+Indication}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ac574c892c78953daf0f8f0f5037aff6b}{encoded\+Bitrate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_aa6f65b779331222559c7209cb8a9aeea}{encoded\+Frame\+Width}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a6abdb5425ca735f920aada82953abd3c}{encoded\+Frame\+Height}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ac3c529ec566fffe1def3af123128a7f0}{encoded\+Frame\+Count}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a2859d9c4d40ee2e469b59fc1c3876ba8}{codec\+Type}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ae4821a73114db1fd2842069fadc752dc}{tx\+Packet\+Loss\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0b9c8c6a4ad81db91528ae33e54c3e36}{capture\+Brightness\+Level}}
\item 
boolean \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ad5e1ea04be8da784d3306ddc4187e31c}{dual\+Stream\+Enabled}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a4a56f96c1282b5415d957f071de2b2be}{hw\+Encoder\+Accelerating}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_afca7f1cb7c79fdfb56cefccf9fa0aafb}{encoded\+Frame\+Depth}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The statistics of the local video stream. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a46dd77e7744c624c4007122cce0bf0a1}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a46dd77e7744c624c4007122cce0bf0a1}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!uid@{uid}}
\index{uid@{uid}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{uid}{uid}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+uid}

The ID of the local user. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a68ab0fc749e0ce7becd3e49abdfe6a7d}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a68ab0fc749e0ce7becd3e49abdfe6a7d}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!sentBitrate@{sentBitrate}}
\index{sentBitrate@{sentBitrate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{sentBitrate}{sentBitrate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+sent\+Bitrate}

The actual bitrate (Kbps) while sending the local video stream. \begin{DoxyNote}{Note}
This value does not include the bitrate for resending the video after packet loss. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ae0dd10d98f0ff884c5b5cda07d3536fb}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ae0dd10d98f0ff884c5b5cda07d3536fb}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!sentFrameRate@{sentFrameRate}}
\index{sentFrameRate@{sentFrameRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{sentFrameRate}{sentFrameRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+sent\+Frame\+Rate}

The actual frame rate (fps) while sending the local video stream. \begin{DoxyNote}{Note}
This value does not include the frame rate for resending the video after packet loss. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_aaa54a4eced1c5ec66a00d09a5ed5a39a}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_aaa54a4eced1c5ec66a00d09a5ed5a39a}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!captureFrameRate@{captureFrameRate}}
\index{captureFrameRate@{captureFrameRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{captureFrameRate}{captureFrameRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+capture\+Frame\+Rate}

The frame rate (fps) for capturing the local video stream. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0f54fe5d26ff7a1d021c7d8663cdea09}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0f54fe5d26ff7a1d021c7d8663cdea09}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!captureFrameWidth@{captureFrameWidth}}
\index{captureFrameWidth@{captureFrameWidth}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{captureFrameWidth}{captureFrameWidth}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+capture\+Frame\+Width}

The width (px) for capturing the local video stream. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a23cf5adeb93c6214a46f665f3bf092af}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a23cf5adeb93c6214a46f665f3bf092af}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!captureFrameHeight@{captureFrameHeight}}
\index{captureFrameHeight@{captureFrameHeight}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{captureFrameHeight}{captureFrameHeight}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+capture\+Frame\+Height}

The height (px) for capturing the local video stream. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0bf401c2dd5f222354a15c809d3e9c2d}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0bf401c2dd5f222354a15c809d3e9c2d}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!regulatedCaptureFrameRate@{regulatedCaptureFrameRate}}
\index{regulatedCaptureFrameRate@{regulatedCaptureFrameRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{regulatedCaptureFrameRate}{regulatedCaptureFrameRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+regulated\+Capture\+Frame\+Rate}

The frame rate (fps) adjusted by the built-\/in video capture adapter (regulator) of the S\+DK for capturing the local video stream. The regulator adjusts the frame rate of the video captured by the camera according to the video encoding configuration. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a86a2989a81bb5adc6735426aa00fffbe}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a86a2989a81bb5adc6735426aa00fffbe}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!regulatedCaptureFrameWidth@{regulatedCaptureFrameWidth}}
\index{regulatedCaptureFrameWidth@{regulatedCaptureFrameWidth}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{regulatedCaptureFrameWidth}{regulatedCaptureFrameWidth}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+regulated\+Capture\+Frame\+Width}

The width (px) adjusted by the built-\/in video capture adapter (regulator) of the S\+DK for capturing the local video stream. The regulator adjusts the height and width of the video captured by the camera according to the video encoding configuration. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a1c366fd414294affb75db7c010b154ec}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a1c366fd414294affb75db7c010b154ec}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!regulatedCaptureFrameHeight@{regulatedCaptureFrameHeight}}
\index{regulatedCaptureFrameHeight@{regulatedCaptureFrameHeight}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{regulatedCaptureFrameHeight}{regulatedCaptureFrameHeight}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+regulated\+Capture\+Frame\+Height}

The height (px) adjusted by the built-\/in video capture adapter (regulator) of the S\+DK for capturing the local video stream. The regulator adjusts the height and width of the video captured by the camera according to the video encoding configuration. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a2e9c274129a22cace45c5da4040f9846}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a2e9c274129a22cace45c5da4040f9846}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!encoderOutputFrameRate@{encoderOutputFrameRate}}
\index{encoderOutputFrameRate@{encoderOutputFrameRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{encoderOutputFrameRate}{encoderOutputFrameRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+encoder\+Output\+Frame\+Rate}

The output frame rate (fps) of the local video encoder. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a737a451263c78de3e6a17c99cd9c8b16}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a737a451263c78de3e6a17c99cd9c8b16}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!rendererOutputFrameRate@{rendererOutputFrameRate}}
\index{rendererOutputFrameRate@{rendererOutputFrameRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{rendererOutputFrameRate}{rendererOutputFrameRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+renderer\+Output\+Frame\+Rate}

The output frame rate (fps) of the local video renderer. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0b6a7798f26c6d72f831737148d5caa9}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0b6a7798f26c6d72f831737148d5caa9}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!targetBitrate@{targetBitrate}}
\index{targetBitrate@{targetBitrate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{targetBitrate}{targetBitrate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+target\+Bitrate}

The target bitrate (Kbps) of the current encoder. This is an estimate made by the S\+DK based on the current network conditions. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a36e616086f8c1d480eb0f6bd9e44b903}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a36e616086f8c1d480eb0f6bd9e44b903}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!targetFrameRate@{targetFrameRate}}
\index{targetFrameRate@{targetFrameRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{targetFrameRate}{targetFrameRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+target\+Frame\+Rate}

The target frame rate (fps) of the current encoder. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a5ab9aa24ac1527cca4e6ef1158c65968}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a5ab9aa24ac1527cca4e6ef1158c65968}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!qualityAdaptIndication@{qualityAdaptIndication}}
\index{qualityAdaptIndication@{qualityAdaptIndication}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{qualityAdaptIndication}{qualityAdaptIndication}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+quality\+Adapt\+Indication}

The quality adaptation of the local video stream in the reported interval (based on the target frame rate and target bitrate).
\begin{DoxyItemize}
\item A\+D\+A\+P\+T\+\_\+\+N\+O\+NE (0)\+: The local video quality stays the same.
\item A\+D\+A\+P\+T\+\_\+\+U\+P\+\_\+\+B\+A\+N\+D\+W\+I\+D\+TH (1)\+: The local video quality improves because the network bandwidth increases.
\item A\+D\+A\+P\+T\+\_\+\+D\+O\+W\+N\+\_\+\+B\+A\+N\+D\+W\+I\+D\+TH (2)\+: The local video quality deteriorates because the network bandwidth decreases. \begin{DoxySince}{Since}
v2.\+4.\+0. 
\end{DoxySince}

\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ac574c892c78953daf0f8f0f5037aff6b}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ac574c892c78953daf0f8f0f5037aff6b}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!encodedBitrate@{encodedBitrate}}
\index{encodedBitrate@{encodedBitrate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{encodedBitrate}{encodedBitrate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+encoded\+Bitrate}

The bitrate (Kbps) while encoding the local video stream. \begin{DoxyNote}{Note}
This value does not include the bitrate for resending the video after packet loss. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_aa6f65b779331222559c7209cb8a9aeea}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_aa6f65b779331222559c7209cb8a9aeea}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!encodedFrameWidth@{encodedFrameWidth}}
\index{encodedFrameWidth@{encodedFrameWidth}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{encodedFrameWidth}{encodedFrameWidth}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+encoded\+Frame\+Width}

The width of the encoded video (px). \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a6abdb5425ca735f920aada82953abd3c}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a6abdb5425ca735f920aada82953abd3c}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!encodedFrameHeight@{encodedFrameHeight}}
\index{encodedFrameHeight@{encodedFrameHeight}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{encodedFrameHeight}{encodedFrameHeight}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+encoded\+Frame\+Height}

The height of the encoded video (px). \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ac3c529ec566fffe1def3af123128a7f0}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ac3c529ec566fffe1def3af123128a7f0}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!encodedFrameCount@{encodedFrameCount}}
\index{encodedFrameCount@{encodedFrameCount}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{encodedFrameCount}{encodedFrameCount}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+encoded\+Frame\+Count}

The number of the sent video frames, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a2859d9c4d40ee2e469b59fc1c3876ba8}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a2859d9c4d40ee2e469b59fc1c3876ba8}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!codecType@{codecType}}
\index{codecType@{codecType}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{codecType}{codecType}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+codec\+Type}

The codec type of the local video. See {\ttfamily V\+I\+D\+E\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+T\+Y\+PE}.
\begin{DoxyItemize}
\item V\+I\+D\+E\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+V\+P8 (1)\+: V\+P8.
\item V\+I\+D\+E\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H264 (2)\+: H.\+264.
\item V\+I\+D\+E\+O\+\_\+\+C\+O\+D\+E\+C\+\_\+\+H265 (3)\+: (Default) H.\+265. \begin{DoxyNote}{Note}
In certain scenarios, such as low resolution of the captured video stream or limited device performance, the S\+DK automatically adjusts to the H.\+264 encoding format. 
\end{DoxyNote}

\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ae4821a73114db1fd2842069fadc752dc}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ae4821a73114db1fd2842069fadc752dc}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!txPacketLossRate@{txPacketLossRate}}
\index{txPacketLossRate@{txPacketLossRate}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{txPacketLossRate}{txPacketLossRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+tx\+Packet\+Loss\+Rate}

The video packet loss rate (\%) from the local client to the Agora server before applying the anti-\/packet loss strategies. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0b9c8c6a4ad81db91528ae33e54c3e36}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a0b9c8c6a4ad81db91528ae33e54c3e36}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!captureBrightnessLevel@{captureBrightnessLevel}}
\index{captureBrightnessLevel@{captureBrightnessLevel}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{captureBrightnessLevel}{captureBrightnessLevel}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+capture\+Brightness\+Level}

The brightness level of the video image captured by the local camera.
\begin{DoxyItemize}
\item C\+A\+P\+T\+U\+R\+E\+\_\+\+B\+R\+I\+G\+H\+T\+N\+E\+S\+S\+\_\+\+L\+E\+V\+E\+L\+\_\+\+I\+N\+V\+A\+L\+ID (-\/1)\+: The S\+DK does not detect the brightness level of the video image. Wait a few seconds to get the brightness level from {\ttfamily capture\+Brightness\+Level} in the next callback.
\item C\+A\+P\+T\+U\+R\+E\+\_\+\+B\+R\+I\+G\+H\+T\+N\+E\+S\+S\+\_\+\+L\+E\+V\+E\+L\+\_\+\+N\+O\+R\+M\+AL (0)\+: The brightness level of the video image is normal.
\item C\+A\+P\+T\+U\+R\+E\+\_\+\+B\+R\+I\+G\+H\+T\+N\+E\+S\+S\+\_\+\+L\+E\+V\+E\+L\+\_\+\+B\+R\+I\+G\+HT (1)\+: The brightness level of the video image is too bright.
\item C\+A\+P\+T\+U\+R\+E\+\_\+\+B\+R\+I\+G\+H\+T\+N\+E\+S\+S\+\_\+\+L\+E\+V\+E\+L\+\_\+\+D\+A\+RK (2)\+: The brightness level of the video image is too dark. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ad5e1ea04be8da784d3306ddc4187e31c}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_ad5e1ea04be8da784d3306ddc4187e31c}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!dualStreamEnabled@{dualStreamEnabled}}
\index{dualStreamEnabled@{dualStreamEnabled}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{dualStreamEnabled}{dualStreamEnabled}}
{\footnotesize\ttfamily boolean io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+dual\+Stream\+Enabled}

Whether we send dual stream now. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a4a56f96c1282b5415d957f071de2b2be}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_a4a56f96c1282b5415d957f071de2b2be}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!hwEncoderAccelerating@{hwEncoderAccelerating}}
\index{hwEncoderAccelerating@{hwEncoderAccelerating}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{hwEncoderAccelerating}{hwEncoderAccelerating}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+hw\+Encoder\+Accelerating}

The local video encoding acceleration type.
\begin{DoxyItemize}
\item 0\+: Software encoding is applied without acceleration.
\item 1\+: Hardware encoding is applied for acceleration. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_afca7f1cb7c79fdfb56cefccf9fa0aafb}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_local_video_stats_afca7f1cb7c79fdfb56cefccf9fa0aafb}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}!encodedFrameDepth@{encodedFrameDepth}}
\index{encodedFrameDepth@{encodedFrameDepth}!io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats@{io.agora.rtc2.IRtcEngineEventHandler.LocalVideoStats}}
\doxysubsubsection{\texorpdfstring{encodedFrameDepth}{encodedFrameDepth}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Local\+Video\+Stats.\+encoded\+Frame\+Depth}

@technical preview

The encoder frame is sdr or hdr\+:
\begin{DoxyItemize}
\item encoded\+Frame\+Depth = 8\+: sdr.
\item encoded\+Frame\+Depth = 10\+: hdr. 
\end{DoxyItemize}