\hypertarget{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer}{}\doxysection{io.\+agora.\+rtc2.\+video.\+I\+Video\+Encoded\+Frame\+Observer Interface Reference}
\label{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer}\index{io.agora.rtc2.video.IVideoEncodedFrameObserver@{io.agora.rtc2.video.IVideoEncodedFrameObserver}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
boolean \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer_aaedba0a40642234cf5312db65f197306}{on\+Encoded\+Video\+Frame\+Received}} (String channel\+Id, int remote\+Uid, Byte\+Buffer buffer, \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info}{Encoded\+Video\+Frame\+Info}} info)
\begin{DoxyCompactList}\small\item\em Reports that the receiver has received the to-\/be-\/decoded video frame sent by the remote end. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The \mbox{\hyperlink{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer}{I\+Video\+Encoded\+Frame\+Observer}} interface. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer_aaedba0a40642234cf5312db65f197306}\label{interfaceio_1_1agora_1_1rtc2_1_1video_1_1_i_video_encoded_frame_observer_aaedba0a40642234cf5312db65f197306}} 
\index{io.agora.rtc2.video.IVideoEncodedFrameObserver@{io.agora.rtc2.video.IVideoEncodedFrameObserver}!onEncodedVideoFrameReceived@{onEncodedVideoFrameReceived}}
\index{onEncodedVideoFrameReceived@{onEncodedVideoFrameReceived}!io.agora.rtc2.video.IVideoEncodedFrameObserver@{io.agora.rtc2.video.IVideoEncodedFrameObserver}}
\doxysubsubsection{\texorpdfstring{onEncodedVideoFrameReceived()}{onEncodedVideoFrameReceived()}}
{\footnotesize\ttfamily boolean io.\+agora.\+rtc2.\+video.\+I\+Video\+Encoded\+Frame\+Observer.\+on\+Encoded\+Video\+Frame\+Received (\begin{DoxyParamCaption}\item[{String}]{channel\+Id,  }\item[{int}]{remote\+Uid,  }\item[{Byte\+Buffer}]{buffer,  }\item[{\mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info}{Encoded\+Video\+Frame\+Info}}}]{info }\end{DoxyParamCaption})}



Reports that the receiver has received the to-\/be-\/decoded video frame sent by the remote end. 

If you call the {\ttfamily set\+Remote\+Video\+Subscription\+Options} method and set {\ttfamily encoded\+Frame\+Only} to {\ttfamily true}, the S\+DK triggers this callback locally to report the received encoded video frame information.

\begin{DoxySince}{Since}
4.\+6.\+0 
\end{DoxySince}

\begin{DoxyParams}{Parameters}
{\em channel\+Id} & The channel name. \\
\hline
{\em remote\+Uid} & The user id of the remote user. \\
\hline
{\em buffer} & The encoded video image buffer. \\
\hline
{\em info} & For the information of the encoded video frame, see {\ttfamily \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1video_1_1_encoded_video_frame_info}{Encoded\+Video\+Frame\+Info}}}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Without practical meaning. 
\end{DoxyReturn}
