\hypertarget{tensor__filter__single_8c}{}\doxysection{nnstreamer/tensor\+\_\+filter/tensor\+\_\+filter\+\_\+single.c File Reference}
\label{tensor__filter__single_8c}\index{nnstreamer/tensor\_filter/tensor\_filter\_single.c@{nnstreamer/tensor\_filter/tensor\_filter\_single.c}}


Element to use general neural network framework directly without gstreamer pipeline.  


{\ttfamily \#include $<$glib.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include \char`\"{}nnstreamer\+\_\+log.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tensor\+\_\+filter\+\_\+common.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tensor\+\_\+filter\+\_\+single.\+h\char`\"{}}\newline
Include dependency graph for tensor\+\_\+filter\+\_\+single.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__GTensorFilterSinglePrivate}{\+\_\+\+G\+Tensor\+Filter\+Single\+Private}}
\begin{DoxyCompactList}\small\item\em Private data struct for tensor-\/filter single class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{tensor__filter__single_8c_a4e1036431afc1175b2a10eb58420273d}{G\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+S\+I\+N\+G\+L\+E\+\_\+\+P\+R\+IV}}(obj)~((\mbox{\hyperlink{tensor__filter__single_8c_af0390010b869cf1ea34e10c8ef0d5ba0}{G\+Tensor\+Filter\+Single\+Private}} $\ast$) (obj)-\/$>$priv)
\item 
\#define \mbox{\hyperlink{tensor__filter__single_8c_aebc99bdbd8404e7dbabc19c671464317}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+parent\+\_\+class}}~parent\+\_\+class
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{struct__GTensorFilterSinglePrivate}{\+\_\+\+G\+Tensor\+Filter\+Single\+Private}} \mbox{\hyperlink{tensor__filter__single_8c_af0390010b869cf1ea34e10c8ef0d5ba0}{G\+Tensor\+Filter\+Single\+Private}}
\begin{DoxyCompactList}\small\item\em Private data struct for tensor-\/filter single class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{tensor__filter__single_8c_ab185454bb862e00f8bd954ceb81e2604}{G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+W\+I\+T\+H\+\_\+\+P\+R\+I\+V\+A\+TE}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}}, g\+\_\+tensor\+\_\+filter\+\_\+single, G\+\_\+\+T\+Y\+P\+E\+\_\+\+O\+B\+J\+E\+CT)
\item 
static void \mbox{\hyperlink{tensor__filter__single_8c_a5068c6749007e77c3b8824be760b5918}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+finalize}} (G\+Object $\ast$object)
\begin{DoxyCompactList}\small\item\em Function to finalize instance. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{tensor__filter__single_8c_a014619e9b41ff56ce259cbd57c9dd044}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+set\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, const G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Setter for tensor\+\_\+filter\+\_\+single properties. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{tensor__filter__single_8c_ae495cbeb317f1462e9384d3592fbf1cc}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+get\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Getter for tensor\+\_\+filter\+\_\+single properties. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{tensor__filter__single_8c_a9e5dbd493477db146f453358f9bf1802}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+invoke}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self, const \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$input, \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$output, gboolean allocate)
\begin{DoxyCompactList}\small\item\em Called when an input supposed to be invoked. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{tensor__filter__single_8c_a4c20aff9d44503164ac7b2d60ee800c4}{g\+\_\+tensor\+\_\+filter\+\_\+input\+\_\+configured}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Determine if input is configured (both input and output tensor) \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{tensor__filter__single_8c_a71c61179a9ae8ebae870377a9ca8bf6f}{g\+\_\+tensor\+\_\+filter\+\_\+output\+\_\+configured}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Determine if output is configured (both input and output tensor) \end{DoxyCompactList}\item 
static gint \mbox{\hyperlink{tensor__filter__single_8c_af20a8092bcdbb7d1247958690b40d0e3}{g\+\_\+tensor\+\_\+filter\+\_\+set\+\_\+input\+\_\+info}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self, const \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$out\+\_\+info)
\begin{DoxyCompactList}\small\item\em Set input tensor information in the framework. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{tensor__filter__single_8c_ab714bd80548513ad3a7a4ce0e3772940}{g\+\_\+tensor\+\_\+filter\+\_\+destroy\+\_\+notify}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self, \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$mem)
\begin{DoxyCompactList}\small\item\em Called to notify the framework to destroy the allocated memory. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{tensor__filter__single_8c_abe1d539bb787d0a0460d0025c085ecb1}{g\+\_\+tensor\+\_\+filter\+\_\+allocate\+\_\+in\+\_\+invoke}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Determine if this filter framework supports allocation in invoke. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{tensor__filter__single_8c_a5a6aa499568a27a5ab18348458f02d02}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+start}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Called when the element starts processing, if fw not loaded. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{tensor__filter__single_8c_a12323ea5fffcd44f4393a48ea1c5119d}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+stop}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Called when the element stops processing, if fw loaded. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{tensor__filter__single_8c_a63d6dea992bff9627d1a5939448351fd}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+class\+\_\+init}} (\mbox{\hyperlink{tensor__filter__single_8h_a721792e9af9509d07b8b04356a08a270}{G\+Tensor\+Filter\+Single\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em initialize the tensor\+\_\+filter\textquotesingle{}s class \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{tensor__filter__single_8c_ae69670cde47b6bb67cec99b7b440aa6e}{g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+init}} (\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$self)
\begin{DoxyCompactList}\small\item\em initialize the new element \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Element to use general neural network framework directly without gstreamer pipeline. 

Copyright (C) 2019 Parichay Kapoor \href{mailto:pk.kapoor@samsung.com}{\texttt{ pk.\+kapoor@samsung.\+com}}

This library is free software; you can redistribute it and/or modify it under the terms of the G\+NU Library General Public License as published by the Free Software Foundation; version 2.\+1 of the License.

This library is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Library General Public License for more details.

\begin{DoxyDate}{Date}
28 Aug 2019 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{http://github.com/nnstreamer/nnstreamer}{\texttt{ http\+://github.\+com/nnstreamer/nnstreamer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Parichay Kapoor \href{mailto:pk.kapoor@samsung.com}{\texttt{ pk.\+kapoor@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000109}{Bug}}]No known bugs except for N\+YI items\end{DoxyRefDesc}


This is the main element for per-\/\+N\+N-\/framework plugins. Specific implementations for each NN framework must be written in each framework specific files; e.\+g., tensor\+\_\+filter\+\_\+tensorflow\+\_\+lite.\+c 

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{tensor__filter__single_8c_aebc99bdbd8404e7dbabc19c671464317}\label{tensor__filter__single_8c_aebc99bdbd8404e7dbabc19c671464317}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_parent\_class@{g\_tensor\_filter\_single\_parent\_class}}
\index{g\_tensor\_filter\_single\_parent\_class@{g\_tensor\_filter\_single\_parent\_class}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_parent\_class}{g\_tensor\_filter\_single\_parent\_class}}
{\footnotesize\ttfamily \#define g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+parent\+\_\+class~parent\+\_\+class}



Definition at line 61 of file tensor\+\_\+filter\+\_\+single.\+c.

\mbox{\Hypertarget{tensor__filter__single_8c_a4e1036431afc1175b2a10eb58420273d}\label{tensor__filter__single_8c_a4e1036431afc1175b2a10eb58420273d}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!G\_TENSOR\_FILTER\_SINGLE\_PRIV@{G\_TENSOR\_FILTER\_SINGLE\_PRIV}}
\index{G\_TENSOR\_FILTER\_SINGLE\_PRIV@{G\_TENSOR\_FILTER\_SINGLE\_PRIV}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{G\_TENSOR\_FILTER\_SINGLE\_PRIV}{G\_TENSOR\_FILTER\_SINGLE\_PRIV}}
{\footnotesize\ttfamily \#define G\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+S\+I\+N\+G\+L\+E\+\_\+\+P\+R\+IV(\begin{DoxyParamCaption}\item[{}]{obj }\end{DoxyParamCaption})~((\mbox{\hyperlink{tensor__filter__single_8c_af0390010b869cf1ea34e10c8ef0d5ba0}{G\+Tensor\+Filter\+Single\+Private}} $\ast$) (obj)-\/$>$priv)}



Definition at line 59 of file tensor\+\_\+filter\+\_\+single.\+c.



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{tensor__filter__single_8c_af0390010b869cf1ea34e10c8ef0d5ba0}\label{tensor__filter__single_8c_af0390010b869cf1ea34e10c8ef0d5ba0}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!GTensorFilterSinglePrivate@{GTensorFilterSinglePrivate}}
\index{GTensorFilterSinglePrivate@{GTensorFilterSinglePrivate}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{GTensorFilterSinglePrivate}{GTensorFilterSinglePrivate}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__GTensorFilterSinglePrivate}{\+\_\+\+G\+Tensor\+Filter\+Single\+Private}} \mbox{\hyperlink{tensor__filter__single_8c_af0390010b869cf1ea34e10c8ef0d5ba0}{G\+Tensor\+Filter\+Single\+Private}}}



Private data struct for tensor-\/filter single class. 

S\+E\+C\+T\+I\+ON\+:element-\/tensor\+\_\+filter\+\_\+single

An element that invokes neural network models and their framework or an independent shared object implementing \mbox{\hyperlink{tensor__filter__custom_8h}{tensor\+\_\+filter\+\_\+custom.\+h}}. The input and output are always in the format of other/tensor or other/tensors. This element is going to be the basis of single shot api. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{tensor__filter__single_8c_ab185454bb862e00f8bd954ceb81e2604}\label{tensor__filter__single_8c_ab185454bb862e00f8bd954ceb81e2604}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!G\_DEFINE\_TYPE\_WITH\_PRIVATE@{G\_DEFINE\_TYPE\_WITH\_PRIVATE}}
\index{G\_DEFINE\_TYPE\_WITH\_PRIVATE@{G\_DEFINE\_TYPE\_WITH\_PRIVATE}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{G\_DEFINE\_TYPE\_WITH\_PRIVATE()}{G\_DEFINE\_TYPE\_WITH\_PRIVATE()}}
{\footnotesize\ttfamily G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+W\+I\+T\+H\+\_\+\+P\+R\+I\+V\+A\+TE (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}}}]{,  }\item[{g\+\_\+tensor\+\_\+filter\+\_\+single}]{,  }\item[{G\+\_\+\+T\+Y\+P\+E\+\_\+\+O\+B\+J\+E\+CT}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{tensor__filter__single_8c_abe1d539bb787d0a0460d0025c085ecb1}\label{tensor__filter__single_8c_abe1d539bb787d0a0460d0025c085ecb1}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_allocate\_in\_invoke@{g\_tensor\_filter\_allocate\_in\_invoke}}
\index{g\_tensor\_filter\_allocate\_in\_invoke@{g\_tensor\_filter\_allocate\_in\_invoke}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_allocate\_in\_invoke()}{g\_tensor\_filter\_allocate\_in\_invoke()}}
{\footnotesize\ttfamily static gboolean g\+\_\+tensor\+\_\+filter\+\_\+allocate\+\_\+in\+\_\+invoke (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Determine if this filter framework supports allocation in invoke. 



Definition at line 231 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_abe1d539bb787d0a0460d0025c085ecb1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_ab714bd80548513ad3a7a4ce0e3772940}\label{tensor__filter__single_8c_ab714bd80548513ad3a7a4ce0e3772940}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_destroy\_notify@{g\_tensor\_filter\_destroy\_notify}}
\index{g\_tensor\_filter\_destroy\_notify@{g\_tensor\_filter\_destroy\_notify}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_destroy\_notify()}{g\_tensor\_filter\_destroy\_notify()}}
{\footnotesize\ttfamily static void g\+\_\+tensor\+\_\+filter\+\_\+destroy\+\_\+notify (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self,  }\item[{\mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$}]{mem }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Called to notify the framework to destroy the allocated memory. 


\begin{DoxyParams}{Parameters}
{\em self} & \char`\"{}this\char`\"{} pointer \\
\hline
{\em mem} & Memory wrapper for the allocated memory by the filter \\
\hline
\end{DoxyParams}


Definition at line 296 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_ab714bd80548513ad3a7a4ce0e3772940_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_ab714bd80548513ad3a7a4ce0e3772940_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a4c20aff9d44503164ac7b2d60ee800c4}\label{tensor__filter__single_8c_a4c20aff9d44503164ac7b2d60ee800c4}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_input\_configured@{g\_tensor\_filter\_input\_configured}}
\index{g\_tensor\_filter\_input\_configured@{g\_tensor\_filter\_input\_configured}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_input\_configured()}{g\_tensor\_filter\_input\_configured()}}
{\footnotesize\ttfamily static gboolean g\+\_\+tensor\+\_\+filter\+\_\+input\+\_\+configured (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Determine if input is configured (both input and output tensor) 



Definition at line 200 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a4c20aff9d44503164ac7b2d60ee800c4_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a71c61179a9ae8ebae870377a9ca8bf6f}\label{tensor__filter__single_8c_a71c61179a9ae8ebae870377a9ca8bf6f}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_output\_configured@{g\_tensor\_filter\_output\_configured}}
\index{g\_tensor\_filter\_output\_configured@{g\_tensor\_filter\_output\_configured}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_output\_configured()}{g\_tensor\_filter\_output\_configured()}}
{\footnotesize\ttfamily static gboolean g\+\_\+tensor\+\_\+filter\+\_\+output\+\_\+configured (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Determine if output is configured (both input and output tensor) 



Definition at line 216 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a71c61179a9ae8ebae870377a9ca8bf6f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_af20a8092bcdbb7d1247958690b40d0e3}\label{tensor__filter__single_8c_af20a8092bcdbb7d1247958690b40d0e3}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_set\_input\_info@{g\_tensor\_filter\_set\_input\_info}}
\index{g\_tensor\_filter\_set\_input\_info@{g\_tensor\_filter\_set\_input\_info}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_set\_input\_info()}{g\_tensor\_filter\_set\_input\_info()}}
{\footnotesize\ttfamily static gint g\+\_\+tensor\+\_\+filter\+\_\+set\+\_\+input\+\_\+info (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self,  }\item[{const \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$}]{out\+\_\+info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set input tensor information in the framework. 


\begin{DoxyParams}{Parameters}
{\em self} & \char`\"{}this\char`\"{} pointer \\
\hline
{\em in\+\_\+info} & information on the input tensor \\
\hline
{\em out\+\_\+info} & updated information on the output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 for success, -\/errno for failure. 
\end{DoxyReturn}


Definition at line 400 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_af20a8092bcdbb7d1247958690b40d0e3_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=344pt]{tensor__filter__single_8c_af20a8092bcdbb7d1247958690b40d0e3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a63d6dea992bff9627d1a5939448351fd}\label{tensor__filter__single_8c_a63d6dea992bff9627d1a5939448351fd}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_class\_init@{g\_tensor\_filter\_single\_class\_init}}
\index{g\_tensor\_filter\_single\_class\_init@{g\_tensor\_filter\_single\_class\_init}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_class\_init()}{g\_tensor\_filter\_single\_class\_init()}}
{\footnotesize\ttfamily static void g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+class\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a721792e9af9509d07b8b04356a08a270}{G\+Tensor\+Filter\+Single\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize the tensor\+\_\+filter\textquotesingle{}s class 



Definition at line 89 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a63d6dea992bff9627d1a5939448351fd_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a5068c6749007e77c3b8824be760b5918}\label{tensor__filter__single_8c_a5068c6749007e77c3b8824be760b5918}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_finalize@{g\_tensor\_filter\_single\_finalize}}
\index{g\_tensor\_filter\_single\_finalize@{g\_tensor\_filter\_single\_finalize}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_finalize()}{g\_tensor\_filter\_single\_finalize()}}
{\footnotesize\ttfamily static void g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+finalize (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Function to finalize instance. 

stop if not already stopped

Definition at line 133 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a5068c6749007e77c3b8824be760b5918_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a5068c6749007e77c3b8824be760b5918_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_ae495cbeb317f1462e9384d3592fbf1cc}\label{tensor__filter__single_8c_ae495cbeb317f1462e9384d3592fbf1cc}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_get\_property@{g\_tensor\_filter\_single\_get\_property}}
\index{g\_tensor\_filter\_single\_get\_property@{g\_tensor\_filter\_single\_get\_property}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_get\_property()}{g\_tensor\_filter\_single\_get\_property()}}
{\footnotesize\ttfamily static void g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+get\+\_\+property (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object,  }\item[{guint}]{prop\+\_\+id,  }\item[{G\+Value $\ast$}]{value,  }\item[{G\+Param\+Spec $\ast$}]{pspec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Getter for tensor\+\_\+filter\+\_\+single properties. 



Definition at line 178 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_ae495cbeb317f1462e9384d3592fbf1cc_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_ae495cbeb317f1462e9384d3592fbf1cc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_ae69670cde47b6bb67cec99b7b440aa6e}\label{tensor__filter__single_8c_ae69670cde47b6bb67cec99b7b440aa6e}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_init@{g\_tensor\_filter\_single\_init}}
\index{g\_tensor\_filter\_single\_init@{g\_tensor\_filter\_single\_init}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_init()}{g\_tensor\_filter\_single\_init()}}
{\footnotesize\ttfamily static void g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize the new element 



Definition at line 115 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_ae69670cde47b6bb67cec99b7b440aa6e_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a9e5dbd493477db146f453358f9bf1802}\label{tensor__filter__single_8c_a9e5dbd493477db146f453358f9bf1802}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_invoke@{g\_tensor\_filter\_single\_invoke}}
\index{g\_tensor\_filter\_single\_invoke@{g\_tensor\_filter\_single\_invoke}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_invoke()}{g\_tensor\_filter\_single\_invoke()}}
{\footnotesize\ttfamily static gboolean g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+invoke (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self,  }\item[{const \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$}]{input,  }\item[{\mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$}]{output,  }\item[{gboolean}]{allocate }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Called when an input supposed to be invoked. 


\begin{DoxyParams}{Parameters}
{\em self} & \char`\"{}this\char`\"{} pointer \\
\hline
{\em input} & memory containing input data to run processing on \\
\hline
{\em output} & memory to put output data into after processing \\
\hline
{\em allocate} & true to allocate output data (false means tensor data is already allocated) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if there is no error. 
\end{DoxyReturn}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000064}{Todo}}]refactor this local variable \end{DoxyRefDesc}


start if not already started

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000065}{Todo}}]how can we remove memcpy if output data is already allocated single-\/shot should fill the output data, but sub-\/plugin allocates new memory. \end{DoxyRefDesc}


Definition at line 321 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a9e5dbd493477db146f453358f9bf1802_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a9e5dbd493477db146f453358f9bf1802_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a014619e9b41ff56ce259cbd57c9dd044}\label{tensor__filter__single_8c_a014619e9b41ff56ce259cbd57c9dd044}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_set\_property@{g\_tensor\_filter\_single\_set\_property}}
\index{g\_tensor\_filter\_single\_set\_property@{g\_tensor\_filter\_single\_set\_property}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_set\_property()}{g\_tensor\_filter\_single\_set\_property()}}
{\footnotesize\ttfamily static void g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+set\+\_\+property (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object,  }\item[{guint}]{prop\+\_\+id,  }\item[{const G\+Value $\ast$}]{value,  }\item[{G\+Param\+Spec $\ast$}]{pspec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Setter for tensor\+\_\+filter\+\_\+single properties. 



Definition at line 157 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a014619e9b41ff56ce259cbd57c9dd044_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a014619e9b41ff56ce259cbd57c9dd044_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a5a6aa499568a27a5ab18348458f02d02}\label{tensor__filter__single_8c_a5a6aa499568a27a5ab18348458f02d02}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_start@{g\_tensor\_filter\_single\_start}}
\index{g\_tensor\_filter\_single\_start@{g\_tensor\_filter\_single\_start}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_start()}{g\_tensor\_filter\_single\_start()}}
{\footnotesize\ttfamily static gboolean g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Called when the element starts processing, if fw not loaded. 


\begin{DoxyParams}{Parameters}
{\em self} & \char`\"{}this\char`\"{} pointer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if there is no error. 
\end{DoxyReturn}
open framework, load model

Definition at line 246 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a5a6aa499568a27a5ab18348458f02d02_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a5a6aa499568a27a5ab18348458f02d02_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{tensor__filter__single_8c_a12323ea5fffcd44f4393a48ea1c5119d}\label{tensor__filter__single_8c_a12323ea5fffcd44f4393a48ea1c5119d}} 
\index{tensor\_filter\_single.c@{tensor\_filter\_single.c}!g\_tensor\_filter\_single\_stop@{g\_tensor\_filter\_single\_stop}}
\index{g\_tensor\_filter\_single\_stop@{g\_tensor\_filter\_single\_stop}!tensor\_filter\_single.c@{tensor\_filter\_single.c}}
\doxysubsubsection{\texorpdfstring{g\_tensor\_filter\_single\_stop()}{g\_tensor\_filter\_single\_stop()}}
{\footnotesize\ttfamily static gboolean g\+\_\+tensor\+\_\+filter\+\_\+single\+\_\+stop (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{tensor__filter__single_8h_a695792224df505bec5aef3d649336d42}{G\+Tensor\+Filter\+Single}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Called when the element stops processing, if fw loaded. 


\begin{DoxyParams}{Parameters}
{\em self} & \char`\"{}this\char`\"{} pointer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if there is no error. 
\end{DoxyReturn}
close framework, unload model

Definition at line 277 of file tensor\+\_\+filter\+\_\+single.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a12323ea5fffcd44f4393a48ea1c5119d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__filter__single_8c_a12323ea5fffcd44f4393a48ea1c5119d_icgraph}
\end{center}
\end{figure}
