\hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame}{}\doxysection{io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame Class Reference}
\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame}\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}


The external video frame.  


\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a3bf1db87df1032fc4e1016b735ef1b76}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a3bf1db87df1032fc4e1016b735ef1b76}} 
String {\bfseries to\+String} ()
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_ad1eeaf6635c1e27474c61a09043646e7}{format}}
\item 
long \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a2f5794bff46747acccedc8c052d653a7}{time\+Stamp}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_aab7d403079697ecc47095305039b9892}{stride}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a531a6023f54cc6dc14ec234ad90ab4ab}{height}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_ae4ee35ba0fc568dc1c1d137fcd48ef21}{texture\+ID}}
\item 
boolean \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a6ef6a43349c9eb697db4d425ee796b25}{sync\+Mode}}
\item 
float\mbox{[}$\,$\mbox{]} \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a51706d8ccb5e312faa32bb91cf03b4d7}{transform}}
\item 
javax.\+microedition.\+khronos.\+egl.\+E\+G\+L\+Context \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a1d63c2d3ce900356aa3aae0e2125dec7}{egl\+Context10}}
\item 
android.\+opengl.\+E\+G\+L\+Context \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a45688af3eefeb3814cd0f218a0a1fae6}{egl\+Context14}}
\item 
byte\mbox{[}$\,$\mbox{]} \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a9c91c2df165c2e820799106572adf17c}{buf}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afd0c12cf9227e3e1fe1c74312e4eb7f8}{crop\+Left}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afe0cb05cda64dd999bfe275d4c1802a8}{crop\+Top}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a95b485b7c5ad6805a3639cfd4f9b1832}{crop\+Right}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afb095bcd000c6b1bf450c55f48ace77d}{crop\+Bottom}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5449f5d14015699470898fd55127a261}{rotation}}
\item 
byte\mbox{[}$\,$\mbox{]} \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5236b8464b5221ae7c7476411390bc7d}{metadata\+Buffer}}
\item 
Alpha\+Stitch\+Mode \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a162a1080550aaf4724012d881c62eb77}{alpha\+Stitch\+Mode}}
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_adaf4ebb6c89932fb666a9be51308645f}{F\+O\+R\+M\+A\+T\+\_\+\+N\+O\+NE}} = -\/1
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a07412b747b3adccf8bf41bab7bc4766f}{F\+O\+R\+M\+A\+T\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+2D}} = 10
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a13339c0857a1ceb08fb8a10bda802067}{F\+O\+R\+M\+A\+T\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+O\+ES}} = 11
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_acf529612b8fe659001be97cf8ca21350}{F\+O\+R\+M\+A\+T\+\_\+\+I420}} = 1
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afef29a62263720bf2a8f102c23c485ab}{F\+O\+R\+M\+A\+T\+\_\+\+B\+G\+RA}} = 2
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a64efbeeb27e19353d082cf113ea349fd}{F\+O\+R\+M\+A\+T\+\_\+\+N\+V21}} = 3
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a48359dd124684dafea34545b2358e79e}{F\+O\+R\+M\+A\+T\+\_\+\+R\+G\+BA}} = 4
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afd27281c62556dc35778e3c96921bfd3}{F\+O\+R\+M\+A\+T\+\_\+\+I422}} = 16
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a6d811756114e1f87c26c032e72045643}{B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+N\+O\+NE}} = -\/1
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_abb0db072d3df78a0c7f171e50fd8995c}{B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+U\+F\+F\+ER}} = 1
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a2a5a506f783250b1d0094c8fac870772}{B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+R\+R\+AY}} = 2
\item 
static final int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a689d8648a1d207844cf2fd29fdfb85df}{B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+E\+X\+T\+U\+RE}} = 3
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The external video frame. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_adaf4ebb6c89932fb666a9be51308645f}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_adaf4ebb6c89932fb666a9be51308645f}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_NONE@{FORMAT\_NONE}}
\index{FORMAT\_NONE@{FORMAT\_NONE}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_NONE}{FORMAT\_NONE}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+N\+O\+NE = -\/1\hspace{0.3cm}{\ttfamily [static]}}

-\/1\+: No video format. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a07412b747b3adccf8bf41bab7bc4766f}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a07412b747b3adccf8bf41bab7bc4766f}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_TEXTURE\_2D@{FORMAT\_TEXTURE\_2D}}
\index{FORMAT\_TEXTURE\_2D@{FORMAT\_TEXTURE\_2D}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_TEXTURE\_2D}{FORMAT\_TEXTURE\_2D}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+2D = 10\hspace{0.3cm}{\ttfamily [static]}}

10\+: The video format is T\+E\+X\+T\+U\+R\+E\+\_\+2D. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a13339c0857a1ceb08fb8a10bda802067}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a13339c0857a1ceb08fb8a10bda802067}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_TEXTURE\_OES@{FORMAT\_TEXTURE\_OES}}
\index{FORMAT\_TEXTURE\_OES@{FORMAT\_TEXTURE\_OES}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_TEXTURE\_OES}{FORMAT\_TEXTURE\_OES}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+O\+ES = 11\hspace{0.3cm}{\ttfamily [static]}}

11\+: The video format is T\+E\+X\+T\+U\+R\+E\+\_\+\+O\+ES. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_acf529612b8fe659001be97cf8ca21350}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_acf529612b8fe659001be97cf8ca21350}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_I420@{FORMAT\_I420}}
\index{FORMAT\_I420@{FORMAT\_I420}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_I420}{FORMAT\_I420}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+I420 = 1\hspace{0.3cm}{\ttfamily [static]}}

1\+: The video format is I420. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afef29a62263720bf2a8f102c23c485ab}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afef29a62263720bf2a8f102c23c485ab}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_BGRA@{FORMAT\_BGRA}}
\index{FORMAT\_BGRA@{FORMAT\_BGRA}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_BGRA}{FORMAT\_BGRA}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+B\+G\+RA = 2\hspace{0.3cm}{\ttfamily [static]}}

2\+: The video format is B\+G\+RA. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a64efbeeb27e19353d082cf113ea349fd}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a64efbeeb27e19353d082cf113ea349fd}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_NV21@{FORMAT\_NV21}}
\index{FORMAT\_NV21@{FORMAT\_NV21}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_NV21}{FORMAT\_NV21}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+N\+V21 = 3\hspace{0.3cm}{\ttfamily [static]}}

3\+: The video format is N\+V21. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a48359dd124684dafea34545b2358e79e}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a48359dd124684dafea34545b2358e79e}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_RGBA@{FORMAT\_RGBA}}
\index{FORMAT\_RGBA@{FORMAT\_RGBA}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_RGBA}{FORMAT\_RGBA}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+R\+G\+BA = 4\hspace{0.3cm}{\ttfamily [static]}}

4\+: The video format is R\+G\+BA. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afd27281c62556dc35778e3c96921bfd3}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afd27281c62556dc35778e3c96921bfd3}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!FORMAT\_I422@{FORMAT\_I422}}
\index{FORMAT\_I422@{FORMAT\_I422}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{FORMAT\_I422}{FORMAT\_I422}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+F\+O\+R\+M\+A\+T\+\_\+\+I422 = 16\hspace{0.3cm}{\ttfamily [static]}}

16\+: Video frame in the format of I422. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a6d811756114e1f87c26c032e72045643}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a6d811756114e1f87c26c032e72045643}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!BUFFER\_TYPE\_NONE@{BUFFER\_TYPE\_NONE}}
\index{BUFFER\_TYPE\_NONE@{BUFFER\_TYPE\_NONE}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{BUFFER\_TYPE\_NONE}{BUFFER\_TYPE\_NONE}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+N\+O\+NE = -\/1\hspace{0.3cm}{\ttfamily [static]}}

-\/1\+: No buffer type. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_abb0db072d3df78a0c7f171e50fd8995c}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_abb0db072d3df78a0c7f171e50fd8995c}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!BUFFER\_TYPE\_BUFFER@{BUFFER\_TYPE\_BUFFER}}
\index{BUFFER\_TYPE\_BUFFER@{BUFFER\_TYPE\_BUFFER}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{BUFFER\_TYPE\_BUFFER}{BUFFER\_TYPE\_BUFFER}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+U\+F\+F\+ER = 1\hspace{0.3cm}{\ttfamily [static]}}

1\+: The buffer type is buffer. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a2a5a506f783250b1d0094c8fac870772}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a2a5a506f783250b1d0094c8fac870772}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!BUFFER\_TYPE\_ARRAY@{BUFFER\_TYPE\_ARRAY}}
\index{BUFFER\_TYPE\_ARRAY@{BUFFER\_TYPE\_ARRAY}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{BUFFER\_TYPE\_ARRAY}{BUFFER\_TYPE\_ARRAY}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+R\+R\+AY = 2\hspace{0.3cm}{\ttfamily [static]}}

2\+: The buffer type is array. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a689d8648a1d207844cf2fd29fdfb85df}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a689d8648a1d207844cf2fd29fdfb85df}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!BUFFER\_TYPE\_TEXTURE@{BUFFER\_TYPE\_TEXTURE}}
\index{BUFFER\_TYPE\_TEXTURE@{BUFFER\_TYPE\_TEXTURE}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{BUFFER\_TYPE\_TEXTURE}{BUFFER\_TYPE\_TEXTURE}}
{\footnotesize\ttfamily final int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+E\+X\+T\+U\+RE = 3\hspace{0.3cm}{\ttfamily [static]}}

3\+: The buffer type is texture. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_ad1eeaf6635c1e27474c61a09043646e7}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_ad1eeaf6635c1e27474c61a09043646e7}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!format@{format}}
\index{format@{format}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{format}{format}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+format}

The format of the video data\+:
\begin{DoxyItemize}
\item 10\+: T\+E\+X\+T\+U\+R\+E\+\_\+2D
\item 11\+: T\+E\+X\+T\+U\+R\+E\+\_\+\+O\+ES, usually the data captured by the camera is in this format.
\item 1\+: I420
\item 3\+: N\+V21
\item 4\+: R\+G\+BA
\item 16\+: I422 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a2f5794bff46747acccedc8c052d653a7}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a2f5794bff46747acccedc8c052d653a7}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!timeStamp@{timeStamp}}
\index{timeStamp@{timeStamp}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{timeStamp}{timeStamp}}
{\footnotesize\ttfamily long io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+time\+Stamp}

Timestamp (ms) of the incoming video frame. An incorrect timestamp results in frame loss or unsynchronized audio and video. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_aab7d403079697ecc47095305039b9892}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_aab7d403079697ecc47095305039b9892}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!stride@{stride}}
\index{stride@{stride}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{stride}{stride}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+stride}

Line spacing of the incoming video frame, which must be in pixels instead of bytes. For textures, it is the width of the texture. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a531a6023f54cc6dc14ec234ad90ab4ab}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a531a6023f54cc6dc14ec234ad90ab4ab}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!height@{height}}
\index{height@{height}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{height}{height}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+height}

Height of the incoming video frame. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_ae4ee35ba0fc568dc1c1d137fcd48ef21}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_ae4ee35ba0fc568dc1c1d137fcd48ef21}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!textureID@{textureID}}
\index{textureID@{textureID}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{textureID}{textureID}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+texture\+ID}

Texture ID of the frame. This parameter only applies to video data in Texture format. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a6ef6a43349c9eb697db4d425ee796b25}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a6ef6a43349c9eb697db4d425ee796b25}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!syncMode@{syncMode}}
\index{syncMode@{syncMode}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{syncMode}{syncMode}}
{\footnotesize\ttfamily boolean io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+sync\+Mode}

Set whether to enable the synchronization mode. After enabling, the S\+DK waits while Texture processing. This parameter only applies to video data in Texture format.
\begin{DoxyItemize}
\item {\ttfamily true}\+: Enable sync mode.
\item {\ttfamily false}\+: Disable sync mode. 
\end{DoxyItemize}\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a51706d8ccb5e312faa32bb91cf03b4d7}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a51706d8ccb5e312faa32bb91cf03b4d7}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!transform@{transform}}
\index{transform@{transform}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{transform}{transform}}
{\footnotesize\ttfamily float \mbox{[}$\,$\mbox{]} io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+transform}

Additional transform of Texture frames. This parameter only applies to video data in Texture format. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a1d63c2d3ce900356aa3aae0e2125dec7}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a1d63c2d3ce900356aa3aae0e2125dec7}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!eglContext10@{eglContext10}}
\index{eglContext10@{eglContext10}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{eglContext10}{eglContext10}}
{\footnotesize\ttfamily javax.\+microedition.\+khronos.\+egl.\+E\+G\+L\+Context io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+egl\+Context10}

E\+G\+L\+Context10. This parameter only applies to video data in Texture format. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a45688af3eefeb3814cd0f218a0a1fae6}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a45688af3eefeb3814cd0f218a0a1fae6}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!eglContext14@{eglContext14}}
\index{eglContext14@{eglContext14}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{eglContext14}{eglContext14}}
{\footnotesize\ttfamily android.\+opengl.\+E\+G\+L\+Context io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+egl\+Context14}

E\+G\+L\+Context14. This parameter only applies to video data in Texture format. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a9c91c2df165c2e820799106572adf17c}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a9c91c2df165c2e820799106572adf17c}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!buf@{buf}}
\index{buf@{buf}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{buf}{buf}}
{\footnotesize\ttfamily byte \mbox{[}$\,$\mbox{]} io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+buf}

Video frame buffer. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afd0c12cf9227e3e1fe1c74312e4eb7f8}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afd0c12cf9227e3e1fe1c74312e4eb7f8}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!cropLeft@{cropLeft}}
\index{cropLeft@{cropLeft}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropLeft}{cropLeft}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+crop\+Left}

Raw data related parameter. The number of pixels trimmed from the left. The default value is 0. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afe0cb05cda64dd999bfe275d4c1802a8}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afe0cb05cda64dd999bfe275d4c1802a8}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!cropTop@{cropTop}}
\index{cropTop@{cropTop}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropTop}{cropTop}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+crop\+Top}

Raw data related parameter. The number of pixels trimmed from the top. The default value is 0. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a95b485b7c5ad6805a3639cfd4f9b1832}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a95b485b7c5ad6805a3639cfd4f9b1832}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!cropRight@{cropRight}}
\index{cropRight@{cropRight}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropRight}{cropRight}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+crop\+Right}

Raw data related parameter. The number of pixels trimmed from the right. The default value is 0. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afb095bcd000c6b1bf450c55f48ace77d}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_afb095bcd000c6b1bf450c55f48ace77d}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!cropBottom@{cropBottom}}
\index{cropBottom@{cropBottom}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropBottom}{cropBottom}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+crop\+Bottom}

Raw data related parameter. The number of pixels trimmed from the bottom. The default value is 0. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5449f5d14015699470898fd55127a261}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5449f5d14015699470898fd55127a261}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!rotation@{rotation}}
\index{rotation@{rotation}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{rotation}{rotation}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+rotation}

Raw data related parameter. The clockwise rotation of the video frame. You can set the rotation angle as 0, 90, 180, or 270. The default value is 0. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5236b8464b5221ae7c7476411390bc7d}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5236b8464b5221ae7c7476411390bc7d}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!metadataBuffer@{metadataBuffer}}
\index{metadataBuffer@{metadataBuffer}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{metadataBuffer}{metadataBuffer}}
{\footnotesize\ttfamily byte \mbox{[}$\,$\mbox{]} io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+metadata\+Buffer}

User specified metadata buffer carried with the frame. The default value is
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{null} }
\end{DoxyCode}
 .

@technical preview

The S\+DK uses
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a5236b8464b5221ae7c7476411390bc7d}{metadataBuffer}}.length }
\end{DoxyCode}
 as the effective metadata size. The default maximum metadata size is 1024 bytes. If the input size exceeds the current metadata limit, the S\+DK truncates the payload to the effective limit. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a162a1080550aaf4724012d881c62eb77}\label{classio_1_1agora_1_1rtc2_1_1video_1_1_agora_video_frame_a162a1080550aaf4724012d881c62eb77}} 
\index{io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}!alphaStitchMode@{alphaStitchMode}}
\index{alphaStitchMode@{alphaStitchMode}!io.agora.rtc2.video.AgoraVideoFrame@{io.agora.rtc2.video.AgoraVideoFrame}}
\doxysubsubsection{\texorpdfstring{alphaStitchMode}{alphaStitchMode}}
{\footnotesize\ttfamily Alpha\+Stitch\+Mode io.\+agora.\+rtc2.\+video.\+Agora\+Video\+Frame.\+alpha\+Stitch\+Mode}

When the video frame contains alpha channel data, it represents the relative position of {\ttfamily alpha\+Buffer} and the video frame.
\begin{DoxyItemize}
\item A\+L\+P\+H\+A\+\_\+\+N\+O\+\_\+\+S\+T\+I\+T\+CH 0\+: (Default) Only video frame, that is, {\ttfamily alpha\+Buffer} is not stitched with the video frame.
\item A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+UP (1)\+: {\ttfamily alpha\+Buffer} is above the video frame.
\item A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+B\+E\+L\+OW (2)\+: {\ttfamily alpha\+Buffer} is below the video frame.
\item A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+L\+E\+FT (3)\+: {\ttfamily alpha\+Buffer} is to the left of the video frame.
\item A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+R\+I\+G\+HT (4)\+: {\ttfamily alpha\+Buffer} is to the right of the video frame. 
\end{DoxyItemize}