\hypertarget{structagora_1_1_video_layout}{}\doxysection{agora\+::Video\+Layout Struct Reference}
\label{structagora_1_1_video_layout}\index{agora::VideoLayout@{agora::VideoLayout}}


Layout information of a specific sub-\/video stream within the mixed stream.  




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

\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \mbox{\hyperlink{structagora_1_1_video_layout_aae8c427faa6baaa9f957bd1f463fa59e}{channel\+Id}}
\item 
rtc\+::uid\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_abdbed57e210d3a1e07764fbd22558cf2}{uid}}
\item 
user\+\_\+id\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_aa92ad5f12d60b7bb3f7a73efa315cb4d}{str\+Uid}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_a05e534db6ad1ef751f83a262b3302e4b}{x}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_a97d7f442429dffebc0a8d97d2839b8c1}{y}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_a0cb1bd104e1a5a3abafe4f5f88f69b1c}{width}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_a90a508bd3e02e96195cf6dfa7b87f68a}{height}}
\item 
uint32\+\_\+t \mbox{\hyperlink{structagora_1_1_video_layout_a33e00095eab9f4ebbf934530e740a20d}{video\+State}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Layout information of a specific sub-\/video stream within the mixed stream. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structagora_1_1_video_layout_aae8c427faa6baaa9f957bd1f463fa59e}\label{structagora_1_1_video_layout_aae8c427faa6baaa9f957bd1f463fa59e}} 
\index{agora::VideoLayout@{agora::VideoLayout}!channelId@{channelId}}
\index{channelId@{channelId}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{channelId}{channelId}}
{\footnotesize\ttfamily const char$\ast$ agora\+::\+Video\+Layout\+::channel\+Id}

The channel name to which the sub-\/video stream belongs. \mbox{\Hypertarget{structagora_1_1_video_layout_abdbed57e210d3a1e07764fbd22558cf2}\label{structagora_1_1_video_layout_abdbed57e210d3a1e07764fbd22558cf2}} 
\index{agora::VideoLayout@{agora::VideoLayout}!uid@{uid}}
\index{uid@{uid}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{uid}{uid}}
{\footnotesize\ttfamily rtc\+::uid\+\_\+t agora\+::\+Video\+Layout\+::uid}

User ID who published this sub-\/video stream. \mbox{\Hypertarget{structagora_1_1_video_layout_aa92ad5f12d60b7bb3f7a73efa315cb4d}\label{structagora_1_1_video_layout_aa92ad5f12d60b7bb3f7a73efa315cb4d}} 
\index{agora::VideoLayout@{agora::VideoLayout}!strUid@{strUid}}
\index{strUid@{strUid}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{strUid}{strUid}}
{\footnotesize\ttfamily user\+\_\+id\+\_\+t agora\+::\+Video\+Layout\+::str\+Uid}

Reserved for future use. \mbox{\Hypertarget{structagora_1_1_video_layout_a05e534db6ad1ef751f83a262b3302e4b}\label{structagora_1_1_video_layout_a05e534db6ad1ef751f83a262b3302e4b}} 
\index{agora::VideoLayout@{agora::VideoLayout}!x@{x}}
\index{x@{x}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{x}{x}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::\+Video\+Layout\+::x}

X-\/coordinate (px) of the sub-\/video stream on the mixing canvas. The relative lateral displacement of the top left corner of the video for video mixing to the origin (the top left corner of the canvas). \mbox{\Hypertarget{structagora_1_1_video_layout_a97d7f442429dffebc0a8d97d2839b8c1}\label{structagora_1_1_video_layout_a97d7f442429dffebc0a8d97d2839b8c1}} 
\index{agora::VideoLayout@{agora::VideoLayout}!y@{y}}
\index{y@{y}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{y}{y}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::\+Video\+Layout\+::y}

Y-\/coordinate (px) of the sub-\/video stream on the mixing canvas. The relative longitudinal displacement of the top left corner of the captured video to the origin (the top left corner of the canvas). \mbox{\Hypertarget{structagora_1_1_video_layout_a0cb1bd104e1a5a3abafe4f5f88f69b1c}\label{structagora_1_1_video_layout_a0cb1bd104e1a5a3abafe4f5f88f69b1c}} 
\index{agora::VideoLayout@{agora::VideoLayout}!width@{width}}
\index{width@{width}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{width}{width}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::\+Video\+Layout\+::width}

Width (px) of the sub-\/video stream. \mbox{\Hypertarget{structagora_1_1_video_layout_a90a508bd3e02e96195cf6dfa7b87f68a}\label{structagora_1_1_video_layout_a90a508bd3e02e96195cf6dfa7b87f68a}} 
\index{agora::VideoLayout@{agora::VideoLayout}!height@{height}}
\index{height@{height}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{height}{height}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::\+Video\+Layout\+::height}

Heitht (px) of the sub-\/video stream. \mbox{\Hypertarget{structagora_1_1_video_layout_a33e00095eab9f4ebbf934530e740a20d}\label{structagora_1_1_video_layout_a33e00095eab9f4ebbf934530e740a20d}} 
\index{agora::VideoLayout@{agora::VideoLayout}!videoState@{videoState}}
\index{videoState@{videoState}!agora::VideoLayout@{agora::VideoLayout}}
\doxysubsubsection{\texorpdfstring{videoState}{videoState}}
{\footnotesize\ttfamily uint32\+\_\+t agora\+::\+Video\+Layout\+::video\+State}

Status of the sub-\/video stream on the video mixing canvas.
\begin{DoxyItemize}
\item 0\+: Normal. The sub-\/video stream has been rendered onto the mixing canvas.
\item 1\+: Placeholder image. The sub-\/video stream has no video frames and is displayed as a placeholder on the mixing canvas.
\item 2\+: Black image. The sub-\/video stream is replaced by a black image. 
\end{DoxyItemize}