\hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame}{}\doxysection{agora\+::media\+::base\+::External\+Video\+Frame Struct Reference}
\label{structagora_1_1media_1_1base_1_1_external_video_frame}\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}


{\ttfamily \#include $<$Agora\+Media\+Base.\+h$>$}

\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6e}{E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T\+\_\+\+T\+Y\+PE}} \{ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6eaf07bb7690606c3a24f9f4b32ae598cc6}{E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T10}} = 0, 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6ead1abf8ba9245ce8636233427dbcaa203}{E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T14}} = 1
 \}
\item 
enum \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+PE}} \{ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a1cb4e8d0001c9ac28ce56b1e4d101df9}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+A\+W\+\_\+\+D\+A\+TA}} = 1, 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a767f2a01ef67aaea91124f6a3deb5fe7}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+R\+R\+AY}} = 2, 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a8f7506cec103d2b652d67e64aac46585}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+E\+X\+T\+U\+RE}} = 3
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+PE}} \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aca697964ecf0ef6777c5f3ca6bc19df3}{type}}
\item 
V\+I\+D\+E\+O\+\_\+\+P\+I\+X\+E\+L\+\_\+\+F\+O\+R\+M\+AT \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a264d977121549c423356bd1a5ab95d70}{format}}
\item 
void $\ast$ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a61534d41bf4db60191b2b59d0104ee17}{buffer}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a4d2806af56cbe86d81085886cda0ba38}{stride}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a8660054906a93874245548ddb518ee91}{height}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a2736b5ba60cc95632dad24bf7fc59fd7}{crop\+Left}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1bb83aa81cf7dcfccc73febe7d457bbb}{crop\+Top}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a44b4a212198d1d3120335976027959ff}{crop\+Right}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a76170242235dcebdf8920c636898eefd}{crop\+Bottom}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_ac2c082bed54dce31f37c42b6e830878f}{rotation}}
\item 
long long \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a9947a78766f522599a3a28210febb4a4}{timestamp}}
\item 
void $\ast$ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_abf867949a9202338b1e4938d4916eaad}{egl\+Context}}
\item 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6e}{E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T\+\_\+\+T\+Y\+PE}} \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a6506e906bae104bfd28c32a244018eaa}{egl\+Type}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_ab0a171427a8cc62c3b01a65dbbf7ae0c}{texture\+Id}}
\item 
long long \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a0ac3cc55c86459dd0d9c1f527fea985f}{fence\+Object}}
\item 
float \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_acf1331f3f4dc611034b6ee455cb50eb6}{matrix}} \mbox{[}16\mbox{]}
\item 
uint8\+\_\+t $\ast$ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a4651204a5c46751554a7360a0be09754}{metadata\+Buffer}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa5c42b5b277e58ef7e4985d47a5b1a39}{metadata\+Size}}
\item 
uint8\+\_\+t $\ast$ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a57dc77fe6a4ac9f7d2b30d15a5be0646}{alpha\+Buffer}}
\item 
bool \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a4b058fa8cf5eb030a53ecc9aadc465b0}{fill\+Alpha\+Buffer}}
\item 
A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+M\+O\+DE \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_ab36773a8fc3ecf88bc929f3801283c08}{alpha\+Stitch\+Mode}}
\item 
void $\ast$ \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a3d3e9e3f4616ee8042625c51175d7de1}{d3d11\+Texture2d}}
\item 
int \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_ae79acdb0a9b33955b2482bc674268840}{texture\+Slice\+Index}}
\item 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_hdr10_metadata_info}{Hdr10\+Metadata\+Info}} \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a0dbfebfff6c2a52858144721879bc47a}{hdr10\+Metadata\+Info}}
\item 
\mbox{\hyperlink{structagora_1_1media_1_1base_1_1_color_space}{Color\+Space}} \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_adb4fe5860987988e94fd9dd18b0b0e8a}{color\+Space}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The definition of the \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame}{External\+Video\+Frame}} struct. 

\doxysubsection{Member Enumeration Documentation}
\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6e}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6e}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!EGL\_CONTEXT\_TYPE@{EGL\_CONTEXT\_TYPE}}
\index{EGL\_CONTEXT\_TYPE@{EGL\_CONTEXT\_TYPE}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{EGL\_CONTEXT\_TYPE}{EGL\_CONTEXT\_TYPE}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6e}{agora\+::media\+::base\+::\+External\+Video\+Frame\+::\+E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T\+\_\+\+T\+Y\+PE}}}

The E\+GL context type. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EGL\_CONTEXT10@{EGL\_CONTEXT10}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!EGL\_CONTEXT10@{EGL\_CONTEXT10}}}\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6eaf07bb7690606c3a24f9f4b32ae598cc6}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6eaf07bb7690606c3a24f9f4b32ae598cc6}} 
E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T10&0\+: When using the Open\+GL interface (javax.\+microedition.\+khronos.\+egl.$\ast$) defined by Khronos \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EGL\_CONTEXT14@{EGL\_CONTEXT14}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!EGL\_CONTEXT14@{EGL\_CONTEXT14}}}\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6ead1abf8ba9245ce8636233427dbcaa203}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6ead1abf8ba9245ce8636233427dbcaa203}} 
E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T14&0\+: When using the Open\+GL interface (android.\+opengl.$\ast$) defined by Android \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}\label{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!VIDEO\_BUFFER\_TYPE@{VIDEO\_BUFFER\_TYPE}}
\index{VIDEO\_BUFFER\_TYPE@{VIDEO\_BUFFER\_TYPE}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{VIDEO\_BUFFER\_TYPE}{VIDEO\_BUFFER\_TYPE}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}{agora\+::media\+::base\+::\+External\+Video\+Frame\+::\+V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+PE}}}

Video buffer types. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{VIDEO\_BUFFER\_RAW\_DATA@{VIDEO\_BUFFER\_RAW\_DATA}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!VIDEO\_BUFFER\_RAW\_DATA@{VIDEO\_BUFFER\_RAW\_DATA}}}\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a1cb4e8d0001c9ac28ce56b1e4d101df9}\label{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a1cb4e8d0001c9ac28ce56b1e4d101df9}} 
V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+A\+W\+\_\+\+D\+A\+TA&1\+: Raw data. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{VIDEO\_BUFFER\_ARRAY@{VIDEO\_BUFFER\_ARRAY}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!VIDEO\_BUFFER\_ARRAY@{VIDEO\_BUFFER\_ARRAY}}}\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a767f2a01ef67aaea91124f6a3deb5fe7}\label{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a767f2a01ef67aaea91124f6a3deb5fe7}} 
V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+A\+R\+R\+AY&2\+: The same as V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+A\+W\+\_\+\+D\+A\+TA. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{VIDEO\_BUFFER\_TEXTURE@{VIDEO\_BUFFER\_TEXTURE}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!VIDEO\_BUFFER\_TEXTURE@{VIDEO\_BUFFER\_TEXTURE}}}\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a8f7506cec103d2b652d67e64aac46585}\label{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2a8f7506cec103d2b652d67e64aac46585}} 
V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+E\+X\+T\+U\+RE&3\+: The video buffer in the format of texture. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_aca697964ecf0ef6777c5f3ca6bc19df3}\label{structagora_1_1media_1_1base_1_1_external_video_frame_aca697964ecf0ef6777c5f3ca6bc19df3}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!type@{type}}
\index{type@{type}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{type}{type}}
{\footnotesize\ttfamily \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+PE}} agora\+::media\+::base\+::\+External\+Video\+Frame\+::type}

The buffer type\+: \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_aa8de65fda03edf2a02cad8a522cc9fc2}{V\+I\+D\+E\+O\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+T\+Y\+PE}}. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a264d977121549c423356bd1a5ab95d70}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a264d977121549c423356bd1a5ab95d70}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!format@{format}}
\index{format@{format}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{format}{format}}
{\footnotesize\ttfamily V\+I\+D\+E\+O\+\_\+\+P\+I\+X\+E\+L\+\_\+\+F\+O\+R\+M\+AT agora\+::media\+::base\+::\+External\+Video\+Frame\+::format}

The pixel format\+: \#\+V\+I\+D\+E\+O\+\_\+\+P\+I\+X\+E\+L\+\_\+\+F\+O\+R\+M\+AT \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a61534d41bf4db60191b2b59d0104ee17}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a61534d41bf4db60191b2b59d0104ee17}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!buffer@{buffer}}
\index{buffer@{buffer}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{buffer}{buffer}}
{\footnotesize\ttfamily void$\ast$ agora\+::media\+::base\+::\+External\+Video\+Frame\+::buffer}

The video buffer. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a4d2806af56cbe86d81085886cda0ba38}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a4d2806af56cbe86d81085886cda0ba38}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!stride@{stride}}
\index{stride@{stride}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{stride}{stride}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::stride}

The line spacing of the incoming video frame (px). For texture, it is the width of the texture. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a8660054906a93874245548ddb518ee91}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a8660054906a93874245548ddb518ee91}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!height@{height}}
\index{height@{height}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{height}{height}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::height}

The height of the incoming video frame. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a2736b5ba60cc95632dad24bf7fc59fd7}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a2736b5ba60cc95632dad24bf7fc59fd7}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!cropLeft@{cropLeft}}
\index{cropLeft@{cropLeft}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropLeft}{cropLeft}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::crop\+Left}

\mbox{[}Raw data related parameter\mbox{]} The number of pixels trimmed from the left. The default value is 0. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a1bb83aa81cf7dcfccc73febe7d457bbb}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a1bb83aa81cf7dcfccc73febe7d457bbb}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!cropTop@{cropTop}}
\index{cropTop@{cropTop}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropTop}{cropTop}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::crop\+Top}

\mbox{[}Raw data related parameter\mbox{]} The number of pixels trimmed from the top. The default value is 0. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a44b4a212198d1d3120335976027959ff}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a44b4a212198d1d3120335976027959ff}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!cropRight@{cropRight}}
\index{cropRight@{cropRight}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropRight}{cropRight}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::crop\+Right}

\mbox{[}Raw data related parameter\mbox{]} The number of pixels trimmed from the right. The default value is 0. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a76170242235dcebdf8920c636898eefd}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a76170242235dcebdf8920c636898eefd}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!cropBottom@{cropBottom}}
\index{cropBottom@{cropBottom}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{cropBottom}{cropBottom}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::crop\+Bottom}

\mbox{[}Raw data related parameter\mbox{]} The number of pixels trimmed from the bottom. The default value is 0. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_ac2c082bed54dce31f37c42b6e830878f}\label{structagora_1_1media_1_1base_1_1_external_video_frame_ac2c082bed54dce31f37c42b6e830878f}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!rotation@{rotation}}
\index{rotation@{rotation}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{rotation}{rotation}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::rotation}

\mbox{[}Raw data related parameter\mbox{]} The clockwise rotation information of the video frame. You can set the rotation angle as 0, 90, 180, or 270. The default value is 0. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a9947a78766f522599a3a28210febb4a4}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a9947a78766f522599a3a28210febb4a4}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!timestamp@{timestamp}}
\index{timestamp@{timestamp}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{timestamp}{timestamp}}
{\footnotesize\ttfamily long long agora\+::media\+::base\+::\+External\+Video\+Frame\+::timestamp}

The timestamp (ms) of the incoming video frame. An incorrect timestamp results in a frame loss or unsynchronized audio and video.

Please refer to get\+Agora\+Current\+Monotonic\+Time\+In\+Ms or get\+Current\+Monotonic\+Time\+In\+Ms to determine how to fill this filed. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_abf867949a9202338b1e4938d4916eaad}\label{structagora_1_1media_1_1base_1_1_external_video_frame_abf867949a9202338b1e4938d4916eaad}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!eglContext@{eglContext}}
\index{eglContext@{eglContext}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{eglContext}{eglContext}}
{\footnotesize\ttfamily void$\ast$ agora\+::media\+::base\+::\+External\+Video\+Frame\+::egl\+Context}

\mbox{[}Texture-\/related parameter\mbox{]} When using the Open\+GL interface (javax.\+microedition.\+khronos.\+egl.$\ast$) defined by Khronos, set E\+G\+L\+Context to this field. When using the Open\+GL interface (android.\+opengl.$\ast$) defined by Android, set E\+G\+L\+Context to this field. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a6506e906bae104bfd28c32a244018eaa}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a6506e906bae104bfd28c32a244018eaa}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!eglType@{eglType}}
\index{eglType@{eglType}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{eglType}{eglType}}
{\footnotesize\ttfamily \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_external_video_frame_a1119a3357e72c4f8256a777ab4466c6e}{E\+G\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T\+\_\+\+T\+Y\+PE}} agora\+::media\+::base\+::\+External\+Video\+Frame\+::egl\+Type}

\mbox{[}Texture related parameter\mbox{]} Texture ID used by the video frame. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_ab0a171427a8cc62c3b01a65dbbf7ae0c}\label{structagora_1_1media_1_1base_1_1_external_video_frame_ab0a171427a8cc62c3b01a65dbbf7ae0c}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!textureId@{textureId}}
\index{textureId@{textureId}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{textureId}{textureId}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::texture\+Id}

\mbox{[}Texture related parameter\mbox{]} Incoming 4 {$\times$} 4 transformational matrix. The typical value is a unit matrix. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a0ac3cc55c86459dd0d9c1f527fea985f}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a0ac3cc55c86459dd0d9c1f527fea985f}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!fenceObject@{fenceObject}}
\index{fenceObject@{fenceObject}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{fenceObject}{fenceObject}}
{\footnotesize\ttfamily long long agora\+::media\+::base\+::\+External\+Video\+Frame\+::fence\+Object}

\mbox{[}Texture related parameter\mbox{]} The fence object related to the texture\+Id parameter, indicating the synchronization status of the video data in Texture format. The default value is 0 \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_acf1331f3f4dc611034b6ee455cb50eb6}\label{structagora_1_1media_1_1base_1_1_external_video_frame_acf1331f3f4dc611034b6ee455cb50eb6}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!matrix@{matrix}}
\index{matrix@{matrix}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{matrix}{matrix}}
{\footnotesize\ttfamily float agora\+::media\+::base\+::\+External\+Video\+Frame\+::matrix\mbox{[}16\mbox{]}}

\mbox{[}Texture related parameter\mbox{]} Incoming 4 {$\times$} 4 transformational matrix. The typical value is a unit matrix. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a4651204a5c46751554a7360a0be09754}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a4651204a5c46751554a7360a0be09754}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!metadataBuffer@{metadataBuffer}}
\index{metadataBuffer@{metadataBuffer}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{metadataBuffer}{metadataBuffer}}
{\footnotesize\ttfamily uint8\+\_\+t$\ast$ agora\+::media\+::base\+::\+External\+Video\+Frame\+::metadata\+Buffer}

\mbox{[}Texture related parameter\mbox{]} The Meta\+Data buffer. The default value is N\+U\+LL \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_aa5c42b5b277e58ef7e4985d47a5b1a39}\label{structagora_1_1media_1_1base_1_1_external_video_frame_aa5c42b5b277e58ef7e4985d47a5b1a39}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!metadataSize@{metadataSize}}
\index{metadataSize@{metadataSize}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{metadataSize}{metadataSize}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::metadata\+Size}

\mbox{[}Texture related parameter\mbox{]} The Meta\+Data size. The default value is 0 \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a57dc77fe6a4ac9f7d2b30d15a5be0646}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a57dc77fe6a4ac9f7d2b30d15a5be0646}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!alphaBuffer@{alphaBuffer}}
\index{alphaBuffer@{alphaBuffer}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{alphaBuffer}{alphaBuffer}}
{\footnotesize\ttfamily uint8\+\_\+t$\ast$ agora\+::media\+::base\+::\+External\+Video\+Frame\+::alpha\+Buffer}

Indicates the alpha channel of current frame, which is consistent with the dimension of the video frame. The value range of each pixel is \mbox{[}0,255\mbox{]}, where 0 represents the background; 255 represents the foreground. The default value is N\+U\+LL. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a4b058fa8cf5eb030a53ecc9aadc465b0}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a4b058fa8cf5eb030a53ecc9aadc465b0}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!fillAlphaBuffer@{fillAlphaBuffer}}
\index{fillAlphaBuffer@{fillAlphaBuffer}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{fillAlphaBuffer}{fillAlphaBuffer}}
{\footnotesize\ttfamily bool agora\+::media\+::base\+::\+External\+Video\+Frame\+::fill\+Alpha\+Buffer}

\mbox{[}For bgra or rgba only\mbox{]} Extract alpha\+Buffer from bgra or rgba data. Set it true if you do not explicitly specify the alphabuffer. The default value is false \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_ab36773a8fc3ecf88bc929f3801283c08}\label{structagora_1_1media_1_1base_1_1_external_video_frame_ab36773a8fc3ecf88bc929f3801283c08}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!alphaStitchMode@{alphaStitchMode}}
\index{alphaStitchMode@{alphaStitchMode}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{alphaStitchMode}{alphaStitchMode}}
{\footnotesize\ttfamily A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+M\+O\+DE agora\+::media\+::base\+::\+External\+Video\+Frame\+::alpha\+Stitch\+Mode}

The relative position between alphabuffer and the frame. 0\+: Normal frame; 1\+: Alphabuffer is above the frame; 2\+: Alphabuffer is below the frame; 3\+: Alphabuffer is on the left of frame; 4\+: Alphabuffer is on the right of frame; The default value is 0. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a3d3e9e3f4616ee8042625c51175d7de1}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a3d3e9e3f4616ee8042625c51175d7de1}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!d3d11Texture2d@{d3d11Texture2d}}
\index{d3d11Texture2d@{d3d11Texture2d}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{d3d11Texture2d}{d3d11Texture2d}}
{\footnotesize\ttfamily void$\ast$ agora\+::media\+::base\+::\+External\+Video\+Frame\+::d3d11\+Texture2d}

\mbox{[}For Windows only\mbox{]} The pointer of I\+D3\+D11\+Texture2D used by the video frame. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_ae79acdb0a9b33955b2482bc674268840}\label{structagora_1_1media_1_1base_1_1_external_video_frame_ae79acdb0a9b33955b2482bc674268840}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!textureSliceIndex@{textureSliceIndex}}
\index{textureSliceIndex@{textureSliceIndex}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{textureSliceIndex}{textureSliceIndex}}
{\footnotesize\ttfamily int agora\+::media\+::base\+::\+External\+Video\+Frame\+::texture\+Slice\+Index}

\mbox{[}For Windows only\mbox{]} The index of I\+D3\+D11\+Texture2D array used by the video frame. \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_a0dbfebfff6c2a52858144721879bc47a}\label{structagora_1_1media_1_1base_1_1_external_video_frame_a0dbfebfff6c2a52858144721879bc47a}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!hdr10MetadataInfo@{hdr10MetadataInfo}}
\index{hdr10MetadataInfo@{hdr10MetadataInfo}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{hdr10MetadataInfo}{hdr10MetadataInfo}}
{\footnotesize\ttfamily \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_hdr10_metadata_info}{Hdr10\+Metadata\+Info}} agora\+::media\+::base\+::\+External\+Video\+Frame\+::hdr10\+Metadata\+Info}

metadata info used for hdr video data \mbox{\Hypertarget{structagora_1_1media_1_1base_1_1_external_video_frame_adb4fe5860987988e94fd9dd18b0b0e8a}\label{structagora_1_1media_1_1base_1_1_external_video_frame_adb4fe5860987988e94fd9dd18b0b0e8a}} 
\index{agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}!colorSpace@{colorSpace}}
\index{colorSpace@{colorSpace}!agora::media::base::ExternalVideoFrame@{agora::media::base::ExternalVideoFrame}}
\doxysubsubsection{\texorpdfstring{colorSpace}{colorSpace}}
{\footnotesize\ttfamily \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_color_space}{Color\+Space}} agora\+::media\+::base\+::\+External\+Video\+Frame\+::color\+Space}

The \mbox{\hyperlink{structagora_1_1media_1_1base_1_1_color_space}{Color\+Space}} of the video frame. 