\hypertarget{structagora_1_1rtc_1_1_video_canvas}{}\doxysection{agora\+::rtc\+::Video\+Canvas Struct Reference}
\label{structagora_1_1rtc_1_1_video_canvas}\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}


Attributes of the video canvas object.  




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

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a687a6a46ae517e7647c473c7cff2c68c}\label{structagora_1_1rtc_1_1_video_canvas_a687a6a46ae517e7647c473c7cff2c68c}} 
{\bfseries Video\+Canvas} (view\+\_\+t v, media\+::base\+::\+R\+E\+N\+D\+E\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE m, V\+I\+D\+E\+O\+\_\+\+M\+I\+R\+R\+O\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE mt)
\item 
\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a9863d4818ccf1557f74ce88f7ac277e3}\label{structagora_1_1rtc_1_1_video_canvas_a9863d4818ccf1557f74ce88f7ac277e3}} 
{\bfseries Video\+Canvas} (view\+\_\+t v, media\+::base\+::\+R\+E\+N\+D\+E\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE m, V\+I\+D\+E\+O\+\_\+\+M\+I\+R\+R\+O\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE mt, uid\+\_\+t u)
\item 
\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_abf207abdf6abd8aba754f16fe553cc73}\label{structagora_1_1rtc_1_1_video_canvas_abf207abdf6abd8aba754f16fe553cc73}} 
{\bfseries Video\+Canvas} (view\+\_\+t v, media\+::base\+::\+R\+E\+N\+D\+E\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE m, V\+I\+D\+E\+O\+\_\+\+M\+I\+R\+R\+O\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE mt, uid\+\_\+t u, uid\+\_\+t subu)
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
uid\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a7dedf60431687b4b2cec7e7261ddcb42}{uid}}
\item 
uid\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a084a5f3669a8702f835f66c573fbf4ba}{subview\+Uid}}
\item 
view\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_afcd252553c16f841f51480db14426e87}{view}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a7be36a592ec6d6da4a93281683697b16}{background\+Color}}
\item 
media\+::base\+::\+R\+E\+N\+D\+E\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_adc9688e622b68f906d4906f97e563e1c}{render\+Mode}}
\item 
V\+I\+D\+E\+O\+\_\+\+M\+I\+R\+R\+O\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a7af6b90428fdcbd226f94df3cf6df9fc}{mirror\+Mode}}
\item 
V\+I\+D\+E\+O\+\_\+\+V\+I\+E\+W\+\_\+\+S\+E\+T\+U\+P\+\_\+\+M\+O\+DE \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a13b16704c6a54283a984caad8a202451}{setup\+Mode}}
\item 
V\+I\+D\+E\+O\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+T\+Y\+PE \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a8e2f4270b40e12fad52ac711c4a78879}{source\+Type}}
\item 
int \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_aae57619dd141cd5ffd2e6ceb1de37476}{media\+Player\+Id}}
\item 
\mbox{\hyperlink{structagora_1_1rtc_1_1_rectangle}{Rectangle}} \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a7a4a6b16c1ac1c5d6feaa8685a0309de}{crop\+Area}}
\item 
bool \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a164cf73d43bf71d46d7e7a196eeccf7d}{enable\+Alpha\+Mask}}
\item 
media\+::base\+::\+V\+I\+D\+E\+O\+\_\+\+M\+O\+D\+U\+L\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas_a1777aa67c688d1cd75adc341a751bd3e}{position}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Attributes of the video canvas object. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a7dedf60431687b4b2cec7e7261ddcb42}\label{structagora_1_1rtc_1_1_video_canvas_a7dedf60431687b4b2cec7e7261ddcb42}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!uid@{uid}}
\index{uid@{uid}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{uid}{uid}}
{\footnotesize\ttfamily uid\+\_\+t agora\+::rtc\+::\+Video\+Canvas\+::uid}

User ID that publishes the video source. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a084a5f3669a8702f835f66c573fbf4ba}\label{structagora_1_1rtc_1_1_video_canvas_a084a5f3669a8702f835f66c573fbf4ba}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!subviewUid@{subviewUid}}
\index{subviewUid@{subviewUid}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{subviewUid}{subviewUid}}
{\footnotesize\ttfamily uid\+\_\+t agora\+::rtc\+::\+Video\+Canvas\+::subview\+Uid}

The ID of the user who publishes a specific sub-\/video stream within the mixed video stream. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_afcd252553c16f841f51480db14426e87}\label{structagora_1_1rtc_1_1_video_canvas_afcd252553c16f841f51480db14426e87}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!view@{view}}
\index{view@{view}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{view}{view}}
{\footnotesize\ttfamily view\+\_\+t agora\+::rtc\+::\+Video\+Canvas\+::view}

The video display window. \begin{DoxyNote}{Note}
In one {\ttfamily \mbox{\hyperlink{structagora_1_1rtc_1_1_video_canvas}{Video\+Canvas}}}, you can only choose to set either {\ttfamily view} or {\ttfamily surface\+Texture}. If both are set, only the settings in {\ttfamily view} take effect. 
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a7be36a592ec6d6da4a93281683697b16}\label{structagora_1_1rtc_1_1_video_canvas_a7be36a592ec6d6da4a93281683697b16}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!backgroundColor@{backgroundColor}}
\index{backgroundColor@{backgroundColor}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{backgroundColor}{backgroundColor}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::rtc\+::\+Video\+Canvas\+::background\+Color}

The background color of the video canvas in R\+G\+BA format. The default value is 0x00000000, which represents black. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_adc9688e622b68f906d4906f97e563e1c}\label{structagora_1_1rtc_1_1_video_canvas_adc9688e622b68f906d4906f97e563e1c}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!renderMode@{renderMode}}
\index{renderMode@{renderMode}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{renderMode}{renderMode}}
{\footnotesize\ttfamily media\+::base\+::\+R\+E\+N\+D\+E\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE agora\+::rtc\+::\+Video\+Canvas\+::render\+Mode}

The rendering mode of the video. See {\ttfamily R\+E\+N\+D\+E\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE}. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a7af6b90428fdcbd226f94df3cf6df9fc}\label{structagora_1_1rtc_1_1_video_canvas_a7af6b90428fdcbd226f94df3cf6df9fc}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!mirrorMode@{mirrorMode}}
\index{mirrorMode@{mirrorMode}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{mirrorMode}{mirrorMode}}
{\footnotesize\ttfamily V\+I\+D\+E\+O\+\_\+\+M\+I\+R\+R\+O\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE agora\+::rtc\+::\+Video\+Canvas\+::mirror\+Mode}

The mirror mode of the view. See {\ttfamily V\+I\+D\+E\+O\+\_\+\+M\+I\+R\+R\+O\+R\+\_\+\+M\+O\+D\+E\+\_\+\+T\+Y\+PE}. \begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item For the mirror mode of the local video view\+: If you use a front camera, the S\+DK enables the mirror mode by default; if you use a rear camera, the S\+DK disables the mirror mode by default.
\item For the remote user\+: The mirror mode is disabled by default. 
\end{DoxyItemize}
\end{DoxyNote}
\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a13b16704c6a54283a984caad8a202451}\label{structagora_1_1rtc_1_1_video_canvas_a13b16704c6a54283a984caad8a202451}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!setupMode@{setupMode}}
\index{setupMode@{setupMode}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{setupMode}{setupMode}}
{\footnotesize\ttfamily V\+I\+D\+E\+O\+\_\+\+V\+I\+E\+W\+\_\+\+S\+E\+T\+U\+P\+\_\+\+M\+O\+DE agora\+::rtc\+::\+Video\+Canvas\+::setup\+Mode}

Setting mode of the view. See {\ttfamily V\+I\+D\+E\+O\+\_\+\+V\+I\+E\+W\+\_\+\+S\+E\+T\+U\+P\+\_\+\+M\+O\+DE}. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a8e2f4270b40e12fad52ac711c4a78879}\label{structagora_1_1rtc_1_1_video_canvas_a8e2f4270b40e12fad52ac711c4a78879}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!sourceType@{sourceType}}
\index{sourceType@{sourceType}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{sourceType}{sourceType}}
{\footnotesize\ttfamily V\+I\+D\+E\+O\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+T\+Y\+PE agora\+::rtc\+::\+Video\+Canvas\+::source\+Type}

The type of the video source. See {\ttfamily V\+I\+D\+E\+O\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+T\+Y\+PE}. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_aae57619dd141cd5ffd2e6ceb1de37476}\label{structagora_1_1rtc_1_1_video_canvas_aae57619dd141cd5ffd2e6ceb1de37476}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!mediaPlayerId@{mediaPlayerId}}
\index{mediaPlayerId@{mediaPlayerId}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{mediaPlayerId}{mediaPlayerId}}
{\footnotesize\ttfamily int agora\+::rtc\+::\+Video\+Canvas\+::media\+Player\+Id}

The ID of the media player. You can get the Device ID by calling {\ttfamily get\+Media\+Player\+Id}. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a7a4a6b16c1ac1c5d6feaa8685a0309de}\label{structagora_1_1rtc_1_1_video_canvas_a7a4a6b16c1ac1c5d6feaa8685a0309de}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!cropArea@{cropArea}}
\index{cropArea@{cropArea}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{cropArea}{cropArea}}
{\footnotesize\ttfamily \mbox{\hyperlink{structagora_1_1rtc_1_1_rectangle}{Rectangle}} agora\+::rtc\+::\+Video\+Canvas\+::crop\+Area}

(\mbox{\hyperlink{classagora_1_1_optional}{Optional}}) Display area of the video frame, see {\ttfamily \mbox{\hyperlink{structagora_1_1rtc_1_1_rectangle}{Rectangle}}}. {\ttfamily width} and {\ttfamily height} represent the video pixel width and height of the area. The default value is null (width or height is 0), which means that the actual resolution of the video frame is displayed. \mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a164cf73d43bf71d46d7e7a196eeccf7d}\label{structagora_1_1rtc_1_1_video_canvas_a164cf73d43bf71d46d7e7a196eeccf7d}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!enableAlphaMask@{enableAlphaMask}}
\index{enableAlphaMask@{enableAlphaMask}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{enableAlphaMask}{enableAlphaMask}}
{\footnotesize\ttfamily bool agora\+::rtc\+::\+Video\+Canvas\+::enable\+Alpha\+Mask}

(\mbox{\hyperlink{classagora_1_1_optional}{Optional}}) Whether to enable alpha mask rendering\+:
\begin{DoxyItemize}
\item {\ttfamily true}\+: Enable alpha mask rendering.
\item {\ttfamily false}\+: (Default) Disable alpha mask rendering. Alpha mask rendering can create images with transparent effects and extract portraits from videos. When used in combination with other methods, you can implement effects such as portrait-\/in-\/picture and watermarking. \begin{DoxyNote}{Note}

\end{DoxyNote}

\item The receiver can render alpha channel information only when the sender enables alpha transmission.
\item To enable alpha transmission, {\ttfamily technical support}. 
\end{DoxyItemize}\mbox{\Hypertarget{structagora_1_1rtc_1_1_video_canvas_a1777aa67c688d1cd75adc341a751bd3e}\label{structagora_1_1rtc_1_1_video_canvas_a1777aa67c688d1cd75adc341a751bd3e}} 
\index{agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}!position@{position}}
\index{position@{position}!agora::rtc::VideoCanvas@{agora::rtc::VideoCanvas}}
\doxysubsubsection{\texorpdfstring{position}{position}}
{\footnotesize\ttfamily media\+::base\+::\+V\+I\+D\+E\+O\+\_\+\+M\+O\+D\+U\+L\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON agora\+::rtc\+::\+Video\+Canvas\+::position}

The observation position of the video frame in the video link. See {\ttfamily V\+I\+D\+E\+O\+\_\+\+M\+O\+D\+U\+L\+E\+\_\+\+P\+O\+S\+I\+T\+I\+ON}. 