\hypertarget{classagora_1_1rtc_1_1_i_media_node_factory}{}\doxysection{agora\+::rtc\+::I\+Media\+Node\+Factory Class Reference}
\label{classagora_1_1rtc_1_1_i_media_node_factory}\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}


{\ttfamily \#include $<$N\+G\+I\+Agora\+Media\+Node\+Factory.\+h$>$}

Inheritance diagram for agora\+::rtc\+::I\+Media\+Node\+Factory\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classagora_1_1rtc_1_1_i_media_node_factory}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_pcm_data_sender}{I\+Audio\+Pcm\+Data\+Sender}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_aa6b8aa23b839f89801ca90d5228d712d}{create\+Audio\+Pcm\+Data\+Sender}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_sender}{I\+Audio\+Encoded\+Frame\+Sender}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a8723328a619ac7786ff9f96a644d5db5}{create\+Audio\+Encoded\+Frame\+Sender}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_camera_capturer}{I\+Camera\+Capturer}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a20eb23fcdd313834aa8341b371f9d9a8}{create\+Camera\+Capturer}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_screen_capturer}{I\+Screen\+Capturer}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a2672904f21ec2caeac7ad09b45033f2e}{create\+Screen\+Capturer}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_mixer_source}{I\+Video\+Mixer\+Source}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_abbd5ec1fb15d35020c1b8e4bbe658bcc}{create\+Video\+Mixer}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_transceiver}{I\+Video\+Frame\+Transceiver}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a0e0d68543951f52e775ca45475181dda}{create\+Video\+Frame\+Transceiver}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_sender}{I\+Video\+Frame\+Sender}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_ae5c627b7b2671942a75f577dc64a22f7}{create\+Video\+Frame\+Sender}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_encoded_image_sender}{I\+Video\+Encoded\+Image\+Sender}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a5313c5f02951817b9a7f41c156db0338}{create\+Video\+Encoded\+Image\+Sender}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_renderer}{I\+Video\+Renderer}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_ad7a3f17dfc04f9879a355e4636bd2aef}{create\+Video\+Renderer}} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_filter}{I\+Audio\+Filter}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a02057168bd37ff4fe31c451b66627980}{create\+Audio\+Filter}} (const char $\ast$provider\+\_\+name, const char $\ast$extension\+\_\+name)=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_filter}{I\+Video\+Filter}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a03c005d548bbeb94d1e0b068d0e0bb5b}{create\+Video\+Filter}} (const char $\ast$provider\+\_\+name, const char $\ast$extension\+\_\+name)=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_sink_base}{I\+Video\+Sink\+Base}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_ae55c473276612653e882aee8a13c9ba0}{create\+Video\+Sink}} (const char $\ast$provider\+\_\+name, const char $\ast$extension\+\_\+name)=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_player_source}{I\+Media\+Player\+Source}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a7f42abf3ad8f948023d6b9de193073f4}{create\+Media\+Player\+Source}} (media\+::base\+::\+M\+E\+D\+I\+A\+\_\+\+P\+L\+A\+Y\+E\+R\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+T\+Y\+PE type=agora\+::media\+::base\+::\+M\+E\+D\+I\+A\+\_\+\+P\+L\+A\+Y\+E\+R\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+LT)=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_streaming_source}{I\+Media\+Streaming\+Source}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a7d9c2c0864a32290b1f6e1a9d094585e}{create\+Media\+Streaming\+Source}} ()=0
\begin{DoxyCompactList}\small\item\em Creates a media streaming source object and returns the pointer. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_sender}{I\+Media\+Packet\+Sender}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a6032341d4048c3906a371eea66d2dc8e}{create\+Media\+Packet\+Sender}} ()=0
\item 
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_aa5e40a0117d995b736d378db96250f19}\label{classagora_1_1rtc_1_1_i_media_node_factory_aa5e40a0117d995b736d378db96250f19}} 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_recorder2}{I\+Media\+Recorder2}} $>$ {\bfseries create\+Media\+Recorder} ()=0
\item 
virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_screen_capturer}{I\+Screen\+Capturer}} $>$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory_a620deb3d56729f233077720c603d86f2}{create\+Screen\+Capturer}} (const char $\ast$provider\+\_\+name, const char $\ast$extension\+\_\+name)=0
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_node_factory}{I\+Media\+Node\+Factory}}} class. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_aa6b8aa23b839f89801ca90d5228d712d}\label{classagora_1_1rtc_1_1_i_media_node_factory_aa6b8aa23b839f89801ca90d5228d712d}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createAudioPcmDataSender@{createAudioPcmDataSender}}
\index{createAudioPcmDataSender@{createAudioPcmDataSender}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createAudioPcmDataSender()}{createAudioPcmDataSender()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_pcm_data_sender}{I\+Audio\+Pcm\+Data\+Sender}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Audio\+Pcm\+Data\+Sender (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a P\+CM audio data sender.

This method creates an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_pcm_data_sender}{I\+Audio\+Pcm\+Data\+Sender}}} object, which can be used by \mbox{\hyperlink{classagora_1_1base_1_1_i_agora_service_ab267caa07c4614e8bf27da38527150de}{agora\+::base\+::\+I\+Agora\+Service\+::create\+Custom\+Audio\+Track}}(agora\+\_\+refptr$<$ rtc\+::\+I\+Audio\+Pcm\+Data\+Sender $>$ audio\+Source) \char`\"{}create\+Custom\+Audio\+Track\char`\"{} to send P\+CM audio data.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_pcm_data_sender}{I\+Audio\+Pcm\+Data\+Sender}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a8723328a619ac7786ff9f96a644d5db5}\label{classagora_1_1rtc_1_1_i_media_node_factory_a8723328a619ac7786ff9f96a644d5db5}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createAudioEncodedFrameSender@{createAudioEncodedFrameSender}}
\index{createAudioEncodedFrameSender@{createAudioEncodedFrameSender}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createAudioEncodedFrameSender()}{createAudioEncodedFrameSender()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_sender}{I\+Audio\+Encoded\+Frame\+Sender}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Audio\+Encoded\+Frame\+Sender (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates an encoded audio data sender.

This method creates an \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_sender}{I\+Audio\+Encoded\+Frame\+Sender}} object, which can be used by \mbox{\hyperlink{classagora_1_1base_1_1_i_agora_service_ab267caa07c4614e8bf27da38527150de}{agora\+::base\+::\+I\+Agora\+Service\+::create\+Custom\+Audio\+Track}}(\mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$ \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_sender}{rtc\+::\+I\+Audio\+Encoded\+Frame\+Sender}} \begin{quote}
audio\+Source, T\+Mix\+Mode mix\+Mode) \char`\"{}create\+Custom\+Audio\+Track\char`\"{} to send encoded audio data. \end{quote}


\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_encoded_frame_sender}{I\+Audio\+Encoded\+Frame\+Sender}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a20eb23fcdd313834aa8341b371f9d9a8}\label{classagora_1_1rtc_1_1_i_media_node_factory_a20eb23fcdd313834aa8341b371f9d9a8}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createCameraCapturer@{createCameraCapturer}}
\index{createCameraCapturer@{createCameraCapturer}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createCameraCapturer()}{createCameraCapturer()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_camera_capturer}{I\+Camera\+Capturer}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Camera\+Capturer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a camera capturer.

Once a camera capturer object is created, you can use the video data captured by the camera as the custom video source.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_camera_capturer}{I\+Camera\+Capturer}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a2672904f21ec2caeac7ad09b45033f2e}\label{classagora_1_1rtc_1_1_i_media_node_factory_a2672904f21ec2caeac7ad09b45033f2e}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createScreenCapturer@{createScreenCapturer}}
\index{createScreenCapturer@{createScreenCapturer}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createScreenCapturer()}{createScreenCapturer()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_screen_capturer}{I\+Screen\+Capturer}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Screen\+Capturer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a screen capturer.

Once a screen capturer object is created, you can use the screen video data as the custom video source.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_screen_capturer}{I\+Screen\+Capturer}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_abbd5ec1fb15d35020c1b8e4bbe658bcc}\label{classagora_1_1rtc_1_1_i_media_node_factory_abbd5ec1fb15d35020c1b8e4bbe658bcc}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoMixer@{createVideoMixer}}
\index{createVideoMixer@{createVideoMixer}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoMixer()}{createVideoMixer()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_mixer_source}{I\+Video\+Mixer\+Source}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Mixer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a video mixer.

Once a video mixer object is created, you can use the video mixer data as the custom video source.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_mixer_source}{I\+Video\+Mixer\+Source}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a0e0d68543951f52e775ca45475181dda}\label{classagora_1_1rtc_1_1_i_media_node_factory_a0e0d68543951f52e775ca45475181dda}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoFrameTransceiver@{createVideoFrameTransceiver}}
\index{createVideoFrameTransceiver@{createVideoFrameTransceiver}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoFrameTransceiver()}{createVideoFrameTransceiver()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_transceiver}{I\+Video\+Frame\+Transceiver}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Frame\+Transceiver (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a video transceiver.

Once a video transceiver object is created, you can use the video transceiver data as the custom video source.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_transceiver}{I\+Video\+Frame\+Transceiver}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_ae5c627b7b2671942a75f577dc64a22f7}\label{classagora_1_1rtc_1_1_i_media_node_factory_ae5c627b7b2671942a75f577dc64a22f7}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoFrameSender@{createVideoFrameSender}}
\index{createVideoFrameSender@{createVideoFrameSender}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoFrameSender()}{createVideoFrameSender()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_sender}{I\+Video\+Frame\+Sender}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Frame\+Sender (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a video frame sender.

This method creates an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_sender}{I\+Video\+Frame\+Sender}}} object, which can be used by \mbox{\hyperlink{classagora_1_1base_1_1_i_agora_service_aaefc87859c82a4266947f0a4ebd07c51}{agora\+::base\+::\+I\+Agora\+Service\+::create\+Custom\+Video\+Track}}(agora\+\_\+refptr$<$rtc\+::\+I\+Video\+Frame\+Sender$>$ video\+Source) \char`\"{}create\+Custom\+Video\+Track\char`\"{} to send the custom video data.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_frame_sender}{I\+Video\+Frame\+Sender}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a5313c5f02951817b9a7f41c156db0338}\label{classagora_1_1rtc_1_1_i_media_node_factory_a5313c5f02951817b9a7f41c156db0338}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoEncodedImageSender@{createVideoEncodedImageSender}}
\index{createVideoEncodedImageSender@{createVideoEncodedImageSender}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoEncodedImageSender()}{createVideoEncodedImageSender()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_encoded_image_sender}{I\+Video\+Encoded\+Image\+Sender}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Encoded\+Image\+Sender (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates an encoded video image sender.

This method creates an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_encoded_image_sender}{I\+Video\+Encoded\+Image\+Sender}}} object, which can be used by \mbox{\hyperlink{classagora_1_1base_1_1_i_agora_service_aaefc87859c82a4266947f0a4ebd07c51}{agora\+::base\+::\+I\+Agora\+Service\+::create\+Custom\+Video\+Track}}(agora\+\_\+refptr$<$rtc\+::\+I\+Video\+Encoded\+Image\+Sender$>$ video\+Source, \mbox{\hyperlink{structagora_1_1rtc_1_1_sender_options}{Sender\+Options}}\& options) \char`\"{}create\+Custom\+Video\+Track\char`\"{} to send the encoded video data.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_encoded_image_sender}{I\+Video\+Encoded\+Image\+Sender}}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_ad7a3f17dfc04f9879a355e4636bd2aef}\label{classagora_1_1rtc_1_1_i_media_node_factory_ad7a3f17dfc04f9879a355e4636bd2aef}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoRenderer@{createVideoRenderer}}
\index{createVideoRenderer@{createVideoRenderer}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoRenderer()}{createVideoRenderer()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_renderer}{I\+Video\+Renderer}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Renderer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a built-\/in video renderer.


\begin{DoxyParams}{Parameters}
{\em view} & The video window view. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_renderer}{I\+Video\+Renderer}}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a02057168bd37ff4fe31c451b66627980}\label{classagora_1_1rtc_1_1_i_media_node_factory_a02057168bd37ff4fe31c451b66627980}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createAudioFilter@{createAudioFilter}}
\index{createAudioFilter@{createAudioFilter}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createAudioFilter()}{createAudioFilter()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_filter}{I\+Audio\+Filter}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Audio\+Filter (\begin{DoxyParamCaption}\item[{const char $\ast$}]{provider\+\_\+name,  }\item[{const char $\ast$}]{extension\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates an audio filter for the extension.

This method creates an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_filter}{I\+Audio\+Filter}}} object, which can be used to filter the audio data from the inside extension.


\begin{DoxyParams}{Parameters}
{\em provider\+\_\+name} & provider name string. \\
\hline
{\em extension\+\_\+name} & extension name string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_audio_filter}{I\+Audio\+Filter}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a03c005d548bbeb94d1e0b068d0e0bb5b}\label{classagora_1_1rtc_1_1_i_media_node_factory_a03c005d548bbeb94d1e0b068d0e0bb5b}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoFilter@{createVideoFilter}}
\index{createVideoFilter@{createVideoFilter}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoFilter()}{createVideoFilter()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_filter}{I\+Video\+Filter}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Filter (\begin{DoxyParamCaption}\item[{const char $\ast$}]{provider\+\_\+name,  }\item[{const char $\ast$}]{extension\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a video filter for the extension.

This method creates an {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_filter}{I\+Video\+Filter}}} object, which can be used to filter the video from inside extension.


\begin{DoxyParams}{Parameters}
{\em provider\+\_\+name} & provider name string. \\
\hline
{\em extension\+\_\+name} & extension name string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_filter}{I\+Video\+Filter}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_ae55c473276612653e882aee8a13c9ba0}\label{classagora_1_1rtc_1_1_i_media_node_factory_ae55c473276612653e882aee8a13c9ba0}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createVideoSink@{createVideoSink}}
\index{createVideoSink@{createVideoSink}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createVideoSink()}{createVideoSink()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_sink_base}{I\+Video\+Sink\+Base}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Video\+Sink (\begin{DoxyParamCaption}\item[{const char $\ast$}]{provider\+\_\+name,  }\item[{const char $\ast$}]{extension\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a video sink for the extension.

This method creates an \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_sink_base}{I\+Video\+Sink\+Base}} object, which can be used to receive the video from the inside extension.


\begin{DoxyParams}{Parameters}
{\em provider\+\_\+name} & provider name string. \\
\hline
{\em extension\+\_\+name} & extension name string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_sink_base}{I\+Video\+Sink\+Base}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a7f42abf3ad8f948023d6b9de193073f4}\label{classagora_1_1rtc_1_1_i_media_node_factory_a7f42abf3ad8f948023d6b9de193073f4}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createMediaPlayerSource@{createMediaPlayerSource}}
\index{createMediaPlayerSource@{createMediaPlayerSource}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createMediaPlayerSource()}{createMediaPlayerSource()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_player_source}{I\+Media\+Player\+Source}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Media\+Player\+Source (\begin{DoxyParamCaption}\item[{media\+::base\+::\+M\+E\+D\+I\+A\+\_\+\+P\+L\+A\+Y\+E\+R\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+T\+Y\+PE}]{type = {\ttfamily agora\+:\+:media\+:\+:base\+:\+:MEDIA\+\_\+PLAYER\+\_\+SOURCE\+\_\+DEFAULT} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a media player source object and returns the pointer.


\begin{DoxyParams}{Parameters}
{\em type} & The type of media player source you want to create.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_player_source}{I\+Media\+Player\+Source}}, if the method call succeeds.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a7d9c2c0864a32290b1f6e1a9d094585e}\label{classagora_1_1rtc_1_1_i_media_node_factory_a7d9c2c0864a32290b1f6e1a9d094585e}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createMediaStreamingSource@{createMediaStreamingSource}}
\index{createMediaStreamingSource@{createMediaStreamingSource}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createMediaStreamingSource()}{createMediaStreamingSource()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_streaming_source}{I\+Media\+Streaming\+Source}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Media\+Streaming\+Source (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Creates a media streaming source object and returns the pointer. 


\begin{DoxyParams}{Parameters}
{\em type} & The type of media streaming source you want to create.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_streaming_source}{I\+Media\+Streaming\+Source}}, if the method call succeeds.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a6032341d4048c3906a371eea66d2dc8e}\label{classagora_1_1rtc_1_1_i_media_node_factory_a6032341d4048c3906a371eea66d2dc8e}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createMediaPacketSender@{createMediaPacketSender}}
\index{createMediaPacketSender@{createMediaPacketSender}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createMediaPacketSender()}{createMediaPacketSender()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_sender}{I\+Media\+Packet\+Sender}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Media\+Packet\+Sender (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates a media packet sender object and returns the pointer.

\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_media_packet_sender}{I\+Media\+Packet\+Sender}}, if the method call succeeds.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_media_node_factory_a620deb3d56729f233077720c603d86f2}\label{classagora_1_1rtc_1_1_i_media_node_factory_a620deb3d56729f233077720c603d86f2}} 
\index{agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}!createScreenCapturer@{createScreenCapturer}}
\index{createScreenCapturer@{createScreenCapturer}!agora::rtc::IMediaNodeFactory@{agora::rtc::IMediaNodeFactory}}
\doxysubsubsection{\texorpdfstring{createScreenCapturer()}{createScreenCapturer()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classagora_1_1agora__refptr}{agora\+\_\+refptr}}$<$\mbox{\hyperlink{classagora_1_1rtc_1_1_i_screen_capturer}{I\+Screen\+Capturer}}$>$ agora\+::rtc\+::\+I\+Media\+Node\+Factory\+::create\+Screen\+Capturer (\begin{DoxyParamCaption}\item[{const char $\ast$}]{provider\+\_\+name,  }\item[{const char $\ast$}]{extension\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Creates screen capture source extension with given provider\&extension names 
\begin{DoxyParams}{Parameters}
{\em provider\+\_\+name} & provider name string. \\
\hline
{\em extension\+\_\+name} & extension name string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The pointer to \mbox{\hyperlink{classagora_1_1rtc_1_1_i_screen_capturer}{I\+Screen\+Capturer}}\+: Success.
\item A null pointer\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
