\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}}


The external video frame.  




{\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
 \}
\begin{DoxyCompactList}\small\item\em The video buffer type. \end{DoxyCompactList}\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 external video frame. 

\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}}}



The video buffer type. 

\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\+: The video buffer in the format of 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 video buffer in the format of raw data. \\
\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 {\ttfamily 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 video type. See {\ttfamily 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. See {\ttfamily 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}

Video frame 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}

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{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}

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}

Raw data related parameter. 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}

Raw data related parameter. 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}

Raw data related parameter. 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}

Raw data related parameter. 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}

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{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}

Timestamp (ms) of the incoming video frame. An incorrect timestamp results in frame loss or unsynchronized audio and video. \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}

This parameter only applies to video data in Texture format.
\begin{DoxyItemize}
\item When using the Open\+GL interface (javax.\+microedition.\+khronos.\+egl.$\ast$) defined by Khronos, set egl\+Context to this field.
\item When using the Open\+GL interface (android.\+opengl.$\ast$) defined by Android, set egl\+Context to this field. 
\end{DoxyItemize}\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}

This parameter only applies to video data in Texture format. Texture ID of 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}

This parameter only applies to video data in Texture format. Incoming 4 × 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}

The Meta\+Data buffer. The default value is {\ttfamily N\+U\+LL}. \begin{DoxyNote}{Note}
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. 
\end{DoxyNote}
\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}

The Meta\+Data size. The default value is {\ttfamily 0}. \begin{DoxyNote}{Note}
The default maximum metadata size is 1024 bytes. 
\end{DoxyNote}
\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}

The alpha channel data output by using portrait segmentation algorithm. This data matches the size of the video frame, with each pixel value ranging from \mbox{[}0,255\mbox{]}, where 0 represents the background and 255 represents the foreground (portrait). By setting this parameter, you can render the video background into various effects, such as transparent, solid color, image, video, etc. \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}

This parameter only applies to video data in B\+G\+RA or R\+G\+BA format. Whether to extract the alpha channel data from the video frame and automatically fill it into {\ttfamily alpha\+Buffer}\+:
\begin{DoxyItemize}
\item {\ttfamily true：\+Extract and fill the alpha channel data.}
\item {\ttfamily false}\+: (Default) Do not extract and fill the Alpha channel data. \begin{DoxyNote}{Note}
For video data in B\+G\+RA or R\+G\+BA format, you can set the Alpha channel data in either of the following ways\+:
\end{DoxyNote}

\item Automatically by setting this parameter to {\ttfamily true}.
\item Manually through the {\ttfamily alpha\+Buffer} parameter. 
\end{DoxyItemize}\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}

When the video frame contains alpha channel data, it represents the relative position of {\ttfamily alpha\+Buffer} and the video frame. See {\ttfamily A\+L\+P\+H\+A\+\_\+\+S\+T\+I\+T\+C\+H\+\_\+\+M\+O\+DE}. \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}

This parameter only applies to video data in Windows Texture format. It represents a pointer to an object of type{\ttfamily I\+D3\+D11\+Texture2D}, which is used by a 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}

This parameter only applies to video data in Windows Texture format. It represents an index of an {\ttfamily I\+D3\+D11\+Texture2D} texture object used by the video frame in the {\ttfamily I\+D3\+D11\+Texture2D} array. \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}

By default, the color space properties of video frames will apply the Full Range and B\+T.\+709 standard configurations. 