\hypertarget{struct__NNStreamer__custom__class}{}\doxysection{\+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class Struct Reference}
\label{struct__NNStreamer__custom__class}\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}


Custom Filter Class.  




{\ttfamily \#include $<$tensor\+\_\+filter\+\_\+custom.\+h$>$}



Collaboration diagram for \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=229pt]{struct__NNStreamer__custom__class__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_a95443516e7c3574923ec1e10fb4a2040}{N\+N\+S\+\_\+custom\+\_\+init\+\_\+func}} \mbox{\hyperlink{struct__NNStreamer__custom__class_ac29a6a80eb84f8a36899dedf00333cb1}{initfunc}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_a1f488616765bc59ae4894e03b9d05f07}{N\+N\+S\+\_\+custom\+\_\+exit\+\_\+func}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a2ce3aeb382d06831e808c8fa164859fd}{exitfunc}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_a48317b517d29eec847102fc94d790d3b}{N\+N\+S\+\_\+custom\+\_\+get\+\_\+input\+\_\+dimension}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a86ce5e91cd190749aece3bc5d841ce53}{get\+Input\+Dim}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_a13146dd2d2e8fd8ddf5b31a942999a45}{N\+N\+S\+\_\+custom\+\_\+get\+\_\+output\+\_\+dimension}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a4a745e29e5fae847b0f8507e0e8f6b67}{get\+Output\+Dim}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_ac186a60363675944e72982237e19bfe7}{N\+N\+S\+\_\+custom\+\_\+set\+\_\+input\+\_\+dimension}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a12766dac7360737fc60f35bb3efce274}{set\+Input\+Dim}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_a9598305bb440b4f8e1685f7da067500d}{N\+N\+S\+\_\+custom\+\_\+invoke}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a9c14cd6387fd2c4781850c988bf73332}{invoke}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_af15e4524591167a87dcd13e4d66e0377}{N\+N\+S\+\_\+custom\+\_\+allocate\+\_\+invoke}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a63ae0845d0e8903a0c45179b53bd9c55}{allocate\+\_\+invoke}}
\item 
\mbox{\hyperlink{tensor__filter__custom_8h_ab3375231241122649f9f44a237f8aff2}{N\+N\+S\+\_\+custom\+\_\+destroy\+\_\+notify}} \mbox{\hyperlink{struct__NNStreamer__custom__class_a94b20067dd64c5d74652279861467922}{destroy\+\_\+notify}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Custom Filter Class. 

Note that every function pointer is M\+A\+N\+D\+A\+T\+O\+R\+Y! 

Definition at line 125 of file tensor\+\_\+filter\+\_\+custom.\+h.



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{struct__NNStreamer__custom__class_a63ae0845d0e8903a0c45179b53bd9c55}\label{struct__NNStreamer__custom__class_a63ae0845d0e8903a0c45179b53bd9c55}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!allocate\_invoke@{allocate\_invoke}}
\index{allocate\_invoke@{allocate\_invoke}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{allocate\_invoke}{allocate\_invoke}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_af15e4524591167a87dcd13e4d66e0377}{N\+N\+S\+\_\+custom\+\_\+allocate\+\_\+invoke}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::allocate\+\_\+invoke}

the main function, \char`\"{}allocate \& invoke\char`\"{}, that transforms input to output. allocate\+\_\+invoke is supposed to allocate output buffer by itself. (invoke) X\+OR (allocate\+\_\+invoke) M\+U\+ST hold. 

Definition at line 133 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_a94b20067dd64c5d74652279861467922}\label{struct__NNStreamer__custom__class_a94b20067dd64c5d74652279861467922}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!destroy\_notify@{destroy\_notify}}
\index{destroy\_notify@{destroy\_notify}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{destroy\_notify}{destroy\_notify}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_ab3375231241122649f9f44a237f8aff2}{N\+N\+S\+\_\+custom\+\_\+destroy\+\_\+notify}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::destroy\+\_\+notify}

it handles the data pointer allocated in the custom framework. when the data pointer has been destroyed at the pipeline, this method will be called. the data pointer or an object including data pointer could be deleted safely with this function. this method is only used when allocate\+\_\+invoke is T\+R\+UE 

Definition at line 134 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_a2ce3aeb382d06831e808c8fa164859fd}\label{struct__NNStreamer__custom__class_a2ce3aeb382d06831e808c8fa164859fd}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!exitfunc@{exitfunc}}
\index{exitfunc@{exitfunc}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{exitfunc}{exitfunc}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_a1f488616765bc59ae4894e03b9d05f07}{N\+N\+S\+\_\+custom\+\_\+exit\+\_\+func}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::exitfunc}

will not call other callbacks after this call 

Definition at line 128 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_a86ce5e91cd190749aece3bc5d841ce53}\label{struct__NNStreamer__custom__class_a86ce5e91cd190749aece3bc5d841ce53}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!getInputDim@{getInputDim}}
\index{getInputDim@{getInputDim}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{getInputDim}{getInputDim}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_a48317b517d29eec847102fc94d790d3b}{N\+N\+S\+\_\+custom\+\_\+get\+\_\+input\+\_\+dimension}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::get\+Input\+Dim}

a custom filter is required to provide input tensor dimension unless set\+Inputdim is defined. 

Definition at line 129 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_a4a745e29e5fae847b0f8507e0e8f6b67}\label{struct__NNStreamer__custom__class_a4a745e29e5fae847b0f8507e0e8f6b67}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!getOutputDim@{getOutputDim}}
\index{getOutputDim@{getOutputDim}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{getOutputDim}{getOutputDim}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_a13146dd2d2e8fd8ddf5b31a942999a45}{N\+N\+S\+\_\+custom\+\_\+get\+\_\+output\+\_\+dimension}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::get\+Output\+Dim}

a custom filter is required to provide output tensor dimension unless set\+Input\+Dim is defined. 

Definition at line 130 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_ac29a6a80eb84f8a36899dedf00333cb1}\label{struct__NNStreamer__custom__class_ac29a6a80eb84f8a36899dedf00333cb1}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!initfunc@{initfunc}}
\index{initfunc@{initfunc}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{initfunc}{initfunc}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_a95443516e7c3574923ec1e10fb4a2040}{N\+N\+S\+\_\+custom\+\_\+init\+\_\+func}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::initfunc}

called before any other callbacks from \mbox{\hyperlink{tensor__filter__custom_8c}{tensor\+\_\+filter\+\_\+custom.\+c}} 

Definition at line 127 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_a9c14cd6387fd2c4781850c988bf73332}\label{struct__NNStreamer__custom__class_a9c14cd6387fd2c4781850c988bf73332}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!invoke@{invoke}}
\index{invoke@{invoke}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{invoke}{invoke}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_a9598305bb440b4f8e1685f7da067500d}{N\+N\+S\+\_\+custom\+\_\+invoke}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::invoke}

the main function, \char`\"{}invoke\char`\"{}, that transforms input to output. invoke is supposed to fill in the given output buffer. (invoke) X\+OR (allocate\+\_\+invoke) M\+U\+ST hold. 

Definition at line 132 of file tensor\+\_\+filter\+\_\+custom.\+h.

\mbox{\Hypertarget{struct__NNStreamer__custom__class_a12766dac7360737fc60f35bb3efce274}\label{struct__NNStreamer__custom__class_a12766dac7360737fc60f35bb3efce274}} 
\index{\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}!setInputDim@{setInputDim}}
\index{setInputDim@{setInputDim}!\_NNStreamer\_custom\_class@{\_NNStreamer\_custom\_class}}
\doxysubsubsection{\texorpdfstring{setInputDim}{setInputDim}}
{\footnotesize\ttfamily \mbox{\hyperlink{tensor__filter__custom_8h_ac186a60363675944e72982237e19bfe7}{N\+N\+S\+\_\+custom\+\_\+set\+\_\+input\+\_\+dimension}} \+\_\+\+N\+N\+Streamer\+\_\+custom\+\_\+class\+::set\+Input\+Dim}

without get\+I/\+O-\/\+Dim, this allows framework to set input dimension and get output dimension from the custom filter according to the input dimension 

Definition at line 131 of file tensor\+\_\+filter\+\_\+custom.\+h.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
nnstreamer/include/\mbox{\hyperlink{tensor__filter__custom_8h}{tensor\+\_\+filter\+\_\+custom.\+h}}\end{DoxyCompactItemize}
