\hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info}{}\doxysection{io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info Class Reference}
\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info}\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}


Information about externally encoded video frames.  


\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a973c8797bb353e1544b34dd7f721fdf3}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a973c8797bb353e1544b34dd7f721fdf3}} 
{\bfseries Encoded\+Video\+Frame\+Info} (int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a692d74e5dd62aff6792a33c6f402a8b5}{codec\+Type}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aaff4e0fa9e3354d150c59f3336babe81}{width}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a7e9dd211fa7ab398c7c74627c1ec6bde}{height}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aa017bf9597dcbe75da20cd199e8c7525}{frames\+Per\+Second}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a0cc50e3fef2339b85f9e3024ec12c4d5}{frame\+Type}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_ad817f2766f7954461b403038a6217c4f}{rotation}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a76e93936903fc3d9203593a2be405643}{track\+Id}}, long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_afa1573705c4f935c28cafd65a0985ca1}{capture\+Time\+Ms}}, long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a22c7f0b2b90d648afc3d6a39721915ec}{decode\+Time\+Ms}}, int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a285f6749bb857b37af738fb6254dbb2e}{stream\+Type}})
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a8d05833c57f11f427a08388e5017c735}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a8d05833c57f11f427a08388e5017c735}} 
int {\bfseries get\+Codec\+Type} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a6c55c6facd1ae88792b275e1f0aecdea}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a6c55c6facd1ae88792b275e1f0aecdea}} 
int {\bfseries get\+Width} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_abe3f49feef66d5cbe9ba6a3f612e9a43}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_abe3f49feef66d5cbe9ba6a3f612e9a43}} 
int {\bfseries get\+Height} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a43f98ea3dc0f3630e4c13d6c1f7fb6c4}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a43f98ea3dc0f3630e4c13d6c1f7fb6c4}} 
int {\bfseries get\+Frames\+Per\+Second} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aa2cc96279f20208fac53d8d03bbc86a1}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aa2cc96279f20208fac53d8d03bbc86a1}} 
int {\bfseries get\+Frame\+Type} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a0cee9e540f5b27002d897ed2e331d7f6}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a0cee9e540f5b27002d897ed2e331d7f6}} 
int {\bfseries get\+Rotation} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_af9af743316f6ac8f50d4fe5111fc600e}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_af9af743316f6ac8f50d4fe5111fc600e}} 
int {\bfseries get\+Track\+Id} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a61897586ef853f66f6fdf4c5866ab6c8}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a61897586ef853f66f6fdf4c5866ab6c8}} 
long {\bfseries get\+Capture\+Time\+Ms} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a06856641d32659e42b3fc4a0f81692b0}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a06856641d32659e42b3fc4a0f81692b0}} 
long {\bfseries get\+Decode\+Time\+Ms} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a90a20d5328f3a2740c8042ad25bfffd3}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a90a20d5328f3a2740c8042ad25bfffd3}} 
int {\bfseries get\+Stream\+Type} ()
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_ace8f277f79d512b6e992d947d3d37754}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_ace8f277f79d512b6e992d947d3d37754}} 
String {\bfseries to\+String} ()
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a692d74e5dd62aff6792a33c6f402a8b5}{codec\+Type}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aaff4e0fa9e3354d150c59f3336babe81}{width}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a7e9dd211fa7ab398c7c74627c1ec6bde}{height}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aa017bf9597dcbe75da20cd199e8c7525}{frames\+Per\+Second}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a0cc50e3fef2339b85f9e3024ec12c4d5}{frame\+Type}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_ad817f2766f7954461b403038a6217c4f}{rotation}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a76e93936903fc3d9203593a2be405643}{track\+Id}}
\item 
long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_afa1573705c4f935c28cafd65a0985ca1}{capture\+Time\+Ms}}
\item 
long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a22c7f0b2b90d648afc3d6a39721915ec}{decode\+Time\+Ms}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a285f6749bb857b37af738fb6254dbb2e}{stream\+Type}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Information about externally encoded video frames. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a692d74e5dd62aff6792a33c6f402a8b5}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a692d74e5dd62aff6792a33c6f402a8b5}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!codecType@{codecType}}
\index{codecType@{codecType}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{codecType}{codecType}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+codec\+Type}

The codec type of the video\+:
\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_1video_1_1_encoded_video_frame_info_aaff4e0fa9e3354d150c59f3336babe81}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aaff4e0fa9e3354d150c59f3336babe81}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!width@{width}}
\index{width@{width}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{width}{width}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+width}

Width (pixel) of the video frame. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a7e9dd211fa7ab398c7c74627c1ec6bde}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a7e9dd211fa7ab398c7c74627c1ec6bde}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!height@{height}}
\index{height@{height}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{height}{height}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+height}

Height (pixel) of the video frame. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aa017bf9597dcbe75da20cd199e8c7525}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_aa017bf9597dcbe75da20cd199e8c7525}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!framesPerSecond@{framesPerSecond}}
\index{framesPerSecond@{framesPerSecond}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{framesPerSecond}{framesPerSecond}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+frames\+Per\+Second}

The number of video frames per second. When this parameter is not {\ttfamily 0}, you can use it to calculate the Unix timestamp of externally encoded video frames. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a0cc50e3fef2339b85f9e3024ec12c4d5}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a0cc50e3fef2339b85f9e3024ec12c4d5}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!frameType@{frameType}}
\index{frameType@{frameType}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{frameType}{frameType}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+frame\+Type}

The video frame type.
\begin{DoxyItemize}
\item 0\+: (Default) V\+I\+D\+E\+O\+\_\+\+F\+R\+A\+M\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+L\+A\+N\+K\+\_\+\+F\+R\+A\+ME, a blank frame.
\item 3\+: V\+I\+D\+E\+O\+\_\+\+F\+R\+A\+M\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+K\+E\+Y\+\_\+\+F\+R\+A\+ME, a key frame.
\item 4\+: V\+I\+D\+E\+O\+\_\+\+F\+R\+A\+M\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+E\+L\+T\+A\+\_\+\+F\+R\+A\+ME, a Delta frame.
\item 5\+: V\+I\+D\+E\+O\+\_\+\+F\+R\+A\+M\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+\_\+\+F\+R\+A\+ME, a B frame.
\item 6\+: V\+I\+D\+E\+O\+\_\+\+F\+R\+A\+M\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+N\+K\+N\+OW, an unknown frame. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_ad817f2766f7954461b403038a6217c4f}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_ad817f2766f7954461b403038a6217c4f}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!rotation@{rotation}}
\index{rotation@{rotation}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{rotation}{rotation}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+rotation}

Rotation information of the video frame, as the following\+:
\begin{DoxyItemize}
\item 0\+: (Default) 0 degree.
\item 90\+: 90 degrees.
\item 180\+: 180 degrees.
\item 270\+: 270 degrees. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a76e93936903fc3d9203593a2be405643}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a76e93936903fc3d9203593a2be405643}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!trackId@{trackId}}
\index{trackId@{trackId}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{trackId}{trackId}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+track\+Id}

Reserved for future use. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_afa1573705c4f935c28cafd65a0985ca1}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_afa1573705c4f935c28cafd65a0985ca1}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!captureTimeMs@{captureTimeMs}}
\index{captureTimeMs@{captureTimeMs}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{captureTimeMs}{captureTimeMs}}
{\footnotesize\ttfamily long io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+capture\+Time\+Ms}

The Unix timestamp (ms) for capturing the external encoded video frames. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a22c7f0b2b90d648afc3d6a39721915ec}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a22c7f0b2b90d648afc3d6a39721915ec}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!decodeTimeMs@{decodeTimeMs}}
\index{decodeTimeMs@{decodeTimeMs}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{decodeTimeMs}{decodeTimeMs}}
{\footnotesize\ttfamily long io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+decode\+Time\+Ms}

This is a output parameter which means timestamp for decoding the video frame. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a285f6749bb857b37af738fb6254dbb2e}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info_a285f6749bb857b37af738fb6254dbb2e}} 
\index{io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}!streamType@{streamType}}
\index{streamType@{streamType}!io.agora.rtc2.video.EncodedVideoFrameInfo@{io.agora.rtc2.video.EncodedVideoFrameInfo}}
\doxysubsubsection{\texorpdfstring{streamType}{streamType}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Encoded\+Video\+Frame\+Info.\+stream\+Type}

The type of video streams. 