\hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder}{}\doxysection{agora\+::rtc\+::I\+Extension\+Video\+Decoder Class Reference}
\label{classagora_1_1rtc_1_1_i_extension_video_decoder}\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
Inheritance diagram for agora\+::rtc\+::I\+Extension\+Video\+Decoder\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classagora_1_1rtc_1_1_i_extension_video_decoder}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_a93b215bf7c82bb511b3f2f5498779f27}{init\+Video\+Decoder}} (const \mbox{\hyperlink{classagora_1_1rtc_1_1_extension_video_codec_settings}{Extension\+Video\+Codec\+Settings}} \&codec\+\_\+settings)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_ab87cb5df4b83e6c352dbe791e8167e22}{decode}} (const \mbox{\hyperlink{classagora_1_1rtc_1_1_extension_encoded_image}{Extension\+Encoded\+Image}} \&data)=0
\item 
virtual int32\+\_\+t \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_ad9a17dfbf09ce165560ef9580cdf7edb}{register\+Decoder\+Callback}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_decoder_callback}{I\+Extension\+Decoder\+Callback}} $\ast$callback)=0
\item 
virtual int32\+\_\+t \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_a3ebf62f705e673f72a3314527477ff7c}{release\+Video\+Decoder}} ()=0
\item 
virtual void \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_afa4a7d2544f83a5b8f6e0d185d06b2e2}{query\+Support\+Codec\+Data\+Format}} (media\+::base\+::\+V\+I\+D\+E\+O\+\_\+\+P\+I\+X\+E\+L\+\_\+\+F\+O\+R\+M\+AT $\ast$data\+\_\+format, int \&size)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_aa70204df87ee86932a862219f4bba45d}{set\+Advanced\+Codec\+Property}} (const char $\ast$key, const char $\ast$json\+\_\+value)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder_a33178c731bed0b36745ea568cad74c60}{get\+Advanced\+Codec\+Property}} (const char $\ast$key, char $\ast$json\+\_\+value, int \&length) const =0
\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_a93b215bf7c82bb511b3f2f5498779f27}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_a93b215bf7c82bb511b3f2f5498779f27}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!initVideoDecoder@{initVideoDecoder}}
\index{initVideoDecoder@{initVideoDecoder}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{initVideoDecoder()}{initVideoDecoder()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::init\+Video\+Decoder (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classagora_1_1rtc_1_1_extension_video_codec_settings}{Extension\+Video\+Codec\+Settings}} \&}]{codec\+\_\+settings }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Initializes the video decoder with the specified codec settings. 
\begin{DoxyParams}{Parameters}
{\em codec\+\_\+settings} & The video codec settings that specify how the video should be decoded. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Initialization succeeded.
\item $<$ 0\+: Initialization failed, possibly due to invalid settings or internal errors. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_ab87cb5df4b83e6c352dbe791e8167e22}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_ab87cb5df4b83e6c352dbe791e8167e22}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!decode@{decode}}
\index{decode@{decode}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{decode()}{decode()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::decode (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classagora_1_1rtc_1_1_extension_encoded_image}{Extension\+Encoded\+Image}} \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Decodes a frame of encoded video data. 
\begin{DoxyParams}{Parameters}
{\em data} & The encoded video data to be decoded. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Decoding succeeded.
\item $<$ 0\+: Decoding failed, possibly due to unsupported data format or internal errors. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_ad9a17dfbf09ce165560ef9580cdf7edb}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_ad9a17dfbf09ce165560ef9580cdf7edb}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!registerDecoderCallback@{registerDecoderCallback}}
\index{registerDecoderCallback@{registerDecoderCallback}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{registerDecoderCallback()}{registerDecoderCallback()}}
{\footnotesize\ttfamily virtual int32\+\_\+t agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::register\+Decoder\+Callback (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_decoder_callback}{I\+Extension\+Decoder\+Callback}} $\ast$}]{callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Registers a callback function to handle decoded video frames. 
\begin{DoxyParams}{Parameters}
{\em callback} & A pointer to the decoder callback interface. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Registration succeeded.
\item $<$ 0\+: Registration failed, possibly due to an invalid callback pointer. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_a3ebf62f705e673f72a3314527477ff7c}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_a3ebf62f705e673f72a3314527477ff7c}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!releaseVideoDecoder@{releaseVideoDecoder}}
\index{releaseVideoDecoder@{releaseVideoDecoder}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{releaseVideoDecoder()}{releaseVideoDecoder()}}
{\footnotesize\ttfamily virtual int32\+\_\+t agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::release\+Video\+Decoder (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Releases the resources used by the video decoder. \begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Release succeeded.
\item $<$ 0\+: Release failed, possibly due to the decoder not being initialized or internal errors. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_afa4a7d2544f83a5b8f6e0d185d06b2e2}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_afa4a7d2544f83a5b8f6e0d185d06b2e2}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!querySupportCodecDataFormat@{querySupportCodecDataFormat}}
\index{querySupportCodecDataFormat@{querySupportCodecDataFormat}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{querySupportCodecDataFormat()}{querySupportCodecDataFormat()}}
{\footnotesize\ttfamily virtual void agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::query\+Support\+Codec\+Data\+Format (\begin{DoxyParamCaption}\item[{media\+::base\+::\+V\+I\+D\+E\+O\+\_\+\+P\+I\+X\+E\+L\+\_\+\+F\+O\+R\+M\+AT $\ast$}]{data\+\_\+format,  }\item[{int \&}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Queries the supported codec data formats. 
\begin{DoxyParams}{Parameters}
{\em data\+\_\+format} & A pointer to an array where supported pixel formats will be filled. \\
\hline
{\em size} & An input/output parameter; initially holds the size of the array, and will be updated with the actual number of formats filled. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_aa70204df87ee86932a862219f4bba45d}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_aa70204df87ee86932a862219f4bba45d}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!setAdvancedCodecProperty@{setAdvancedCodecProperty}}
\index{setAdvancedCodecProperty@{setAdvancedCodecProperty}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{setAdvancedCodecProperty()}{setAdvancedCodecProperty()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::set\+Advanced\+Codec\+Property (\begin{DoxyParamCaption}\item[{const char $\ast$}]{key,  }\item[{const char $\ast$}]{json\+\_\+value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Sets a advanced codec property in the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder}{I\+Extension\+Video\+Decoder}}} class.


\begin{DoxyParams}{Parameters}
{\em key} & The pointer to the property name. \\
\hline
{\em buf} & The pointer to the buffer of this private property. \\
\hline
{\em buf\+\_\+size} & The buffer size of this private property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The actual size of the private property, if the method call succeeds.
\item -\/1, if the method call fails. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_extension_video_decoder_a33178c731bed0b36745ea568cad74c60}\label{classagora_1_1rtc_1_1_i_extension_video_decoder_a33178c731bed0b36745ea568cad74c60}} 
\index{agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}!getAdvancedCodecProperty@{getAdvancedCodecProperty}}
\index{getAdvancedCodecProperty@{getAdvancedCodecProperty}!agora::rtc::IExtensionVideoDecoder@{agora::rtc::IExtensionVideoDecoder}}
\doxysubsubsection{\texorpdfstring{getAdvancedCodecProperty()}{getAdvancedCodecProperty()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+Extension\+Video\+Decoder\+::get\+Advanced\+Codec\+Property (\begin{DoxyParamCaption}\item[{const char $\ast$}]{key,  }\item[{char $\ast$}]{json\+\_\+value,  }\item[{int \&}]{length }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets a advanced codec property in the {\ttfamily \mbox{\hyperlink{classagora_1_1rtc_1_1_i_extension_video_decoder}{I\+Extension\+Video\+Decoder}}} class.


\begin{DoxyParams}{Parameters}
{\em name} & The pointer to the property name. \\
\hline
{\em buf} & The pointer to the buffer of this advanced codec property. \\
\hline
{\em buf\+\_\+size} & The buffer size of this advanced codec property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The actual size of the advanced codec property, if the method call succeeds.
\item -\/1, if the method call fails. 
\end{DoxyItemize}
\end{DoxyReturn}
