\hypertarget{nnstreamer__plugin__api__filter_8h}{}\doxysection{nnstreamer/include/nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.h File Reference}
\label{nnstreamer__plugin__api__filter_8h}\index{nnstreamer/include/nnstreamer\_plugin\_api\_filter.h@{nnstreamer/include/nnstreamer\_plugin\_api\_filter.h}}


Mandatory A\+P\+Is for N\+N\+Streamer Filter sub-\/plugins (No External Dependencies)  


{\ttfamily \#include \char`\"{}tensor\+\_\+typedef.\+h\char`\"{}}\newline
Include dependency graph for nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=211pt]{nnstreamer__plugin__api__filter_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__GstTensorFilterProperties}{\+\_\+\+Gst\+Tensor\+Filter\+Properties}}
\begin{DoxyCompactList}\small\item\em Gst\+Tensor\+Filter\textquotesingle{}s properties for NN framework (internal data structure) \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkStatistics}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Statistics}}
\begin{DoxyCompactList}\small\item\em Structure definition for tensor-\/filter framework statistics. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkInfo}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Info}}
\begin{DoxyCompactList}\small\item\em Tensor\+\_\+\+Filter Subplugin framework related information. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkEventData}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Event\+Data}}
\begin{DoxyCompactList}\small\item\em User data for the tensor\+\_\+tilter subplugin related events. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__GstTensorFilterFramework}{\+\_\+\+Gst\+Tensor\+Filter\+Framework}}
\begin{DoxyCompactList}\small\item\em Tensor\+\_\+\+Filter Subplugin definition. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structparse__accl__args}{parse\+\_\+accl\+\_\+args}}
\begin{DoxyCompactList}\small\item\em Accelerator related arguments for parsing. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a907727417433179493dbf49fcf052f27}{A\+C\+C\+L\+\_\+\+N\+O\+N\+E\+\_\+\+S\+TR}}~\char`\"{}none\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a85190ce1322b523afa4fd0e07d677eba}{A\+C\+C\+L\+\_\+\+D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+TR}}~\char`\"{}default\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a6676bbe8e9819d6044b3c747f8f98e0b}{A\+C\+C\+L\+\_\+\+A\+U\+T\+O\+\_\+\+S\+TR}}~\char`\"{}auto\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a50e2790639778f88f63828712cd47a6c}{A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+S\+TR}}~\char`\"{}cpu\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_af3f2869914f5090ba7782df878925db4}{A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+S\+I\+M\+D\+\_\+\+S\+TR}}~\char`\"{}cpu.\+simd\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a6cfca79f74fed6735fa41761d380495e}{A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+N\+E\+O\+N\+\_\+\+S\+TR}}~\char`\"{}cpu.\+neon\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2fea7477cf827826753a558cf9caf305}{A\+C\+C\+L\+\_\+\+G\+P\+U\+\_\+\+S\+TR}}~\char`\"{}gpu\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a5da0675d3e8814174a1afe33461a59cb}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+TR}}~\char`\"{}npu\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a3cd77496184a67e2b886fa0ac153ebd8}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+M\+O\+V\+I\+D\+I\+U\+S\+\_\+\+S\+TR}}~\char`\"{}npu.\+movidius\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ade3d52af3d7d79eb4cc6a774c4aebc2c}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+E\+D\+G\+E\+\_\+\+T\+P\+U\+\_\+\+S\+TR}}~\char`\"{}npu.\+edgetpu\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a02d0f0937b229e7abdc2bcf56289a902}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+V\+I\+V\+A\+N\+T\+E\+\_\+\+S\+TR}}~\char`\"{}npu.\+vivante\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a8b6827726f1770ee5e255d06290f0f22}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+R\+C\+N\+\_\+\+S\+TR}}~\char`\"{}npu.\+srcn\char`\"{} /$\ast$$\ast$ srcn hardware supported by nnfw $\ast$/
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afe00f62eaf00413b02c9d679a2cc049f}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+L\+S\+I\+\_\+\+S\+TR}}~\char`\"{}npu.\+slsi\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_aff9def33c9d9e83ad9e75ca644c99d72}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+R\+\_\+\+S\+TR}}~\char`\"{}npu.\+sr\char`\"{}
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}}~(0x\+D\+E\+A\+F\+D\+E\+A\+D00000000\+U\+LL)
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a269188cdae665ea429f6b9ccf82f71c4}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+V0}}~(\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}})
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a3911a067d16994f63e829cd8686e68f8}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+V1}}~(\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}} $\vert$ 0x10000\+U\+LL)
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a381f94c7046922f205e37f07b6187b9e}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+A\+P\+I\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+D\+E\+F\+I\+N\+ED}}~(1)
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a40af69b4bb60bc63caab201df8a781fb}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+A\+P\+I\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+IN}}~(0)	/$\ast$ The minimum A\+PI version supported (could be obsolete) $\ast$/
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a525c7c78fe76de30e3c9aca4eca05c80}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+A\+P\+I\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+AX}}~(1)	/$\ast$ The maximum A\+PI version supported (recommended) $\ast$/
\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a05c034d403396986aee9c7a8d7a293d9}{check\+Gst\+Tensor\+Filter\+Framework\+Version}}(value,  version)~((\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}} $\vert$ ((version) $<$$<$ 16)) == (value \& 0x\+F\+F\+F\+F\+F\+F\+F\+F\+F\+F\+F\+F0000\+U\+LL))
\begin{DoxyCompactList}\small\item\em Check the value of the version field of Gst\+Tensor\+Filter\+Framework. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a0194d295de1e7e9345c333efb83b9e72}{parse\+\_\+accl\+\_\+hw}}(...)~\mbox{\hyperlink{tensor__filter__common_8c_a7b23c24f2974bb92ccb346b9ca38ac18}{parse\+\_\+accl\+\_\+hw\+\_\+fill}}((\mbox{\hyperlink{structparse__accl__args}{parse\+\_\+accl\+\_\+args}})\{\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+\})
\begin{DoxyCompactList}\small\item\em workaround to provide default arguments \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef \mbox{\hyperlink{tensor__typedef_8h_abaf80ca39942c6a0b8ab019fb97c0716}{tensor\+\_\+layout}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a8ec299bf9d0c0d0598e05e03cc482ea1}{tensors\+\_\+layout}}\mbox{[}\mbox{\hyperlink{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT}}\mbox{]}
\item 
typedef struct \mbox{\hyperlink{struct__GstTensorFilterProperties}{\+\_\+\+Gst\+Tensor\+Filter\+Properties}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}}
\begin{DoxyCompactList}\small\item\em Gst\+Tensor\+Filter\textquotesingle{}s properties for NN framework (internal data structure) \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkStatistics}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Statistics}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a29e3d933ada7431e16e3b470c8786c05}{Gst\+Tensor\+Filter\+Framework\+Statistics}}
\begin{DoxyCompactList}\small\item\em Structure definition for tensor-\/filter framework statistics. \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkInfo}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Info}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a19a20fba4bcd858e99568b0a7f20df69}{Gst\+Tensor\+Filter\+Framework\+Info}}
\begin{DoxyCompactList}\small\item\em Tensor\+\_\+\+Filter Subplugin framework related information. \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkEventData}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Event\+Data}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}{Gst\+Tensor\+Filter\+Framework\+Event\+Data}}
\begin{DoxyCompactList}\small\item\em User data for the tensor\+\_\+tilter subplugin related events. \end{DoxyCompactList}\item 
typedef struct \mbox{\hyperlink{struct__GstTensorFilterFramework}{\+\_\+\+Gst\+Tensor\+Filter\+Framework}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} \{ \newline
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9085489eed853d3f01408dbc6b89b171}{A\+C\+C\+L\+\_\+\+N\+O\+NE}} = 0, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8aa3d26fd1baa95dce987e503d1695fb17}{A\+C\+C\+L\+\_\+\+A\+U\+TO}} = 0x1, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ac9763a32bafd75d72b4610df36f41341}{A\+C\+C\+L\+\_\+\+D\+E\+F\+A\+U\+LT}} = 0x2, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a35ec0bdf70c852cd2abc757216d050f2}{A\+C\+C\+L\+\_\+\+C\+PU}} = 0x1000, 
\newline
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a7a58a88784041da4cf0f1bd495854b28}{A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+S\+I\+MD}} = 0x1100, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a6cde55a8fc0eb9ef8507602e3d4fe8c9}{A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+N\+E\+ON}} = 0x1100, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a3d5efb2b36b7f7080aad02e5ca910d5a}{A\+C\+C\+L\+\_\+\+G\+PU}} = 0x2000, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a22566e0f166e243717507072208c0b27}{A\+C\+C\+L\+\_\+\+N\+PU}} = 0x4000, 
\newline
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9608696a9d258174681fd3589a6da29a}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+M\+O\+V\+I\+D\+I\+US}} = 0x4001, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8abde2e4d00d82ee579e4a4370fc99805d}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+E\+D\+G\+E\+\_\+\+T\+PU}} = 0x4002, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ab6afd5b4cd918ed097db459351022d8b}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+V\+I\+V\+A\+N\+TE}} = 0x4003, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a65d82cde9272bb05b9dd5d446c9d3a53}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+R\+CN}} = 0x4004, 
\newline
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ae0fce5a1a352a01b380518b4401cf979}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+L\+SI}} = 0x4005, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9a2287f2d6d2ea4c1460976b7e359290}{A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+SR}} = 0x4100
 \}
\begin{DoxyCompactList}\small\item\em acceleration hw properties. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}{event\+\_\+ops}} \{ \newline
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a21b6351e8bdd126712c6a184e626d8d5}{D\+E\+S\+T\+R\+O\+Y\+\_\+\+N\+O\+T\+I\+FY}}, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97ac921cd60d8aaa6496662269ba96bc314}{R\+E\+L\+O\+A\+D\+\_\+\+M\+O\+D\+EL}}, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a75657017527f8952cec487db83bc6f3d}{C\+U\+S\+T\+O\+M\+\_\+\+P\+R\+OP}}, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97ab563678579b8ac066949350fcee1b830}{S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+P\+R\+OP}}, 
\newline
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a9ea62d4004d24d0033960261bc5efe6d}{S\+E\+T\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+P\+R\+OP}}, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a24ccb0e505c0f8695128510b51ba7a19}{S\+E\+T\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+OR}}, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a6d33c41a13a066383d67b09a15c74676}{C\+H\+E\+C\+K\+\_\+\+H\+W\+\_\+\+A\+V\+A\+I\+L\+A\+B\+I\+L\+I\+TY}}
 \}
\begin{DoxyCompactList}\small\item\em Tensor\+\_\+\+Filter Subplugin related events. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9c}{model\+\_\+info\+\_\+ops}} \{ \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9ca285968cb58840342060647f86a83feb3}{G\+E\+T\+\_\+\+I\+N\+\_\+\+O\+U\+T\+\_\+\+I\+N\+FO}}, 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9ca47dadfce1f13751aff47346cba3dc336}{S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+I\+N\+FO}}
 \}
\begin{DoxyCompactList}\small\item\em Tensor\+\_\+\+Filter Subplugin\textquotesingle{}s model related info gathering operations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a5417c816d4c9dd6f526239e66d1d95d5}{nnstreamer\+\_\+filter\+\_\+probe}} (\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$tfsp)
\begin{DoxyCompactList}\small\item\em Filter\textquotesingle{}s sub-\/plugin should call this function to register itself. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a96433e7efd054be7c80c169eebf0d2d1}{nnstreamer\+\_\+filter\+\_\+exit}} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Filter\textquotesingle{}s sub-\/plugin may call this to unregister itself. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$ \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a5bff843e6dbca38f7784a5ba1412b69a}{nnstreamer\+\_\+filter\+\_\+find}} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Find filter sub-\/plugin with the name. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae735c6ecddc18e77ca8d396645a10187}{nnstreamer\+\_\+filter\+\_\+set\+\_\+custom\+\_\+property\+\_\+desc}} (const char $\ast$name, const char $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}},...)
\begin{DoxyCompactList}\small\item\em set custom property description for tensor filter sub-\/plugin \end{DoxyCompactList}\item 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a6d6b78d1ec7a8ed5241a9314f55e71e2}{get\+\_\+accl\+\_\+hw\+\_\+type}} (const char $\ast$str)
\begin{DoxyCompactList}\small\item\em return accl\+\_\+hw type from string \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ac372cb4e8a8e6f95069734d7dcfb752d}{get\+\_\+accl\+\_\+hw\+\_\+str}} (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} key)
\begin{DoxyCompactList}\small\item\em return string based on accl\+\_\+hw type \end{DoxyCompactList}\item 
\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7b23c24f2974bb92ccb346b9ca38ac18}{parse\+\_\+accl\+\_\+hw\+\_\+fill}} (\mbox{\hyperlink{structparse__accl__args}{parse\+\_\+accl\+\_\+args}} accl\+\_\+args)
\begin{DoxyCompactList}\small\item\em parse user given string to extract accelerator based on given regex filling in optional arguments \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4356a7d26206ff838386bf24c0b3f79d}{nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+get}} (void $\ast$instance, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Get the shared model representation that is already shared and has the same key. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a017e6c75d5b4192d07f39055e95ea877}{nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+insert\+\_\+and\+\_\+get}} (void $\ast$instance, char $\ast$key, void $\ast$interpreter)
\begin{DoxyCompactList}\small\item\em Insert the new shared model representation and get the value. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a5c43a0760c03a62a61998908cae04a98}{nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+remove}} (void $\ast$instance, const char $\ast$key, void($\ast$free\+\_\+callback)(void $\ast$))
\begin{DoxyCompactList}\small\item\em Remove the instance registered at the referred list of shared model table. If referred list is empty, {\ttfamily free\+\_\+callback} is executed. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9ffddc0580bc6813e5a714ad90b57b0b}{nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+replace}} (void $\ast$instance, const char $\ast$key, void $\ast$new\+\_\+interpreter, void($\ast$replace\+\_\+callback)(void $\ast$, void $\ast$), void($\ast$free\+\_\+callback)(void $\ast$))
\begin{DoxyCompactList}\small\item\em Helper to reload interpreter for instances that has shared key. {\ttfamily replace\+\_\+callback} is called iterating instances in referred list. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Mandatory A\+P\+Is for N\+N\+Streamer Filter sub-\/plugins (No External Dependencies) 

N\+N\+Streamer A\+PI for Tensor\+\_\+\+Filter Sub-\/\+Plugins Copyright (C) 2019 Myung\+Joo Ham \href{mailto:myungjoo.ham@samsung.com}{\texttt{ myungjoo.\+ham@samsung.\+com}}

\begin{DoxyDate}{Date}
30 Jan 2019 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{https://github.com/nnstreamer/nnstreamer}{\texttt{ https\+://github.\+com/nnstreamer/nnstreamer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Myung\+Joo Ham \href{mailto:myungjoo.ham@samsung.com}{\texttt{ myungjoo.\+ham@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000075}{Bug}}]No known bugs except for N\+YI items \end{DoxyRefDesc}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a6676bbe8e9819d6044b3c747f8f98e0b}\label{nnstreamer__plugin__api__filter_8h_a6676bbe8e9819d6044b3c747f8f98e0b}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_AUTO\_STR@{ACCL\_AUTO\_STR}}
\index{ACCL\_AUTO\_STR@{ACCL\_AUTO\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_AUTO\_STR}{ACCL\_AUTO\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+A\+U\+T\+O\+\_\+\+S\+TR~\char`\"{}auto\char`\"{}}



Definition at line 22 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a6cfca79f74fed6735fa41761d380495e}\label{nnstreamer__plugin__api__filter_8h_a6cfca79f74fed6735fa41761d380495e}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_CPU\_NEON\_STR@{ACCL\_CPU\_NEON\_STR}}
\index{ACCL\_CPU\_NEON\_STR@{ACCL\_CPU\_NEON\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_CPU\_NEON\_STR}{ACCL\_CPU\_NEON\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+N\+E\+O\+N\+\_\+\+S\+TR~\char`\"{}cpu.\+neon\char`\"{}}



Definition at line 25 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_af3f2869914f5090ba7782df878925db4}\label{nnstreamer__plugin__api__filter_8h_af3f2869914f5090ba7782df878925db4}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_CPU\_SIMD\_STR@{ACCL\_CPU\_SIMD\_STR}}
\index{ACCL\_CPU\_SIMD\_STR@{ACCL\_CPU\_SIMD\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_CPU\_SIMD\_STR}{ACCL\_CPU\_SIMD\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+S\+I\+M\+D\+\_\+\+S\+TR~\char`\"{}cpu.\+simd\char`\"{}}



Definition at line 24 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a50e2790639778f88f63828712cd47a6c}\label{nnstreamer__plugin__api__filter_8h_a50e2790639778f88f63828712cd47a6c}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_CPU\_STR@{ACCL\_CPU\_STR}}
\index{ACCL\_CPU\_STR@{ACCL\_CPU\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_CPU\_STR}{ACCL\_CPU\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+S\+TR~\char`\"{}cpu\char`\"{}}



Definition at line 23 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a85190ce1322b523afa4fd0e07d677eba}\label{nnstreamer__plugin__api__filter_8h_a85190ce1322b523afa4fd0e07d677eba}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_DEFAULT\_STR@{ACCL\_DEFAULT\_STR}}
\index{ACCL\_DEFAULT\_STR@{ACCL\_DEFAULT\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_DEFAULT\_STR}{ACCL\_DEFAULT\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+TR~\char`\"{}default\char`\"{}}



Definition at line 21 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a2fea7477cf827826753a558cf9caf305}\label{nnstreamer__plugin__api__filter_8h_a2fea7477cf827826753a558cf9caf305}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_GPU\_STR@{ACCL\_GPU\_STR}}
\index{ACCL\_GPU\_STR@{ACCL\_GPU\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_GPU\_STR}{ACCL\_GPU\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+G\+P\+U\+\_\+\+S\+TR~\char`\"{}gpu\char`\"{}}



Definition at line 26 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a907727417433179493dbf49fcf052f27}\label{nnstreamer__plugin__api__filter_8h_a907727417433179493dbf49fcf052f27}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NONE\_STR@{ACCL\_NONE\_STR}}
\index{ACCL\_NONE\_STR@{ACCL\_NONE\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NONE\_STR}{ACCL\_NONE\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+O\+N\+E\+\_\+\+S\+TR~\char`\"{}none\char`\"{}}

Macros for accelerator types 

Definition at line 20 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ade3d52af3d7d79eb4cc6a774c4aebc2c}\label{nnstreamer__plugin__api__filter_8h_ade3d52af3d7d79eb4cc6a774c4aebc2c}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_EDGE\_TPU\_STR@{ACCL\_NPU\_EDGE\_TPU\_STR}}
\index{ACCL\_NPU\_EDGE\_TPU\_STR@{ACCL\_NPU\_EDGE\_TPU\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_EDGE\_TPU\_STR}{ACCL\_NPU\_EDGE\_TPU\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+E\+D\+G\+E\+\_\+\+T\+P\+U\+\_\+\+S\+TR~\char`\"{}npu.\+edgetpu\char`\"{}}



Definition at line 30 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a3cd77496184a67e2b886fa0ac153ebd8}\label{nnstreamer__plugin__api__filter_8h_a3cd77496184a67e2b886fa0ac153ebd8}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_MOVIDIUS\_STR@{ACCL\_NPU\_MOVIDIUS\_STR}}
\index{ACCL\_NPU\_MOVIDIUS\_STR@{ACCL\_NPU\_MOVIDIUS\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_MOVIDIUS\_STR}{ACCL\_NPU\_MOVIDIUS\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+M\+O\+V\+I\+D\+I\+U\+S\+\_\+\+S\+TR~\char`\"{}npu.\+movidius\char`\"{}}



Definition at line 29 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_afe00f62eaf00413b02c9d679a2cc049f}\label{nnstreamer__plugin__api__filter_8h_afe00f62eaf00413b02c9d679a2cc049f}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_SLSI\_STR@{ACCL\_NPU\_SLSI\_STR}}
\index{ACCL\_NPU\_SLSI\_STR@{ACCL\_NPU\_SLSI\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_SLSI\_STR}{ACCL\_NPU\_SLSI\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+L\+S\+I\+\_\+\+S\+TR~\char`\"{}npu.\+slsi\char`\"{}}



Definition at line 33 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_aff9def33c9d9e83ad9e75ca644c99d72}\label{nnstreamer__plugin__api__filter_8h_aff9def33c9d9e83ad9e75ca644c99d72}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_SR\_STR@{ACCL\_NPU\_SR\_STR}}
\index{ACCL\_NPU\_SR\_STR@{ACCL\_NPU\_SR\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_SR\_STR}{ACCL\_NPU\_SR\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+R\+\_\+\+S\+TR~\char`\"{}npu.\+sr\char`\"{}}



Definition at line 34 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a8b6827726f1770ee5e255d06290f0f22}\label{nnstreamer__plugin__api__filter_8h_a8b6827726f1770ee5e255d06290f0f22}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_SRCN\_STR@{ACCL\_NPU\_SRCN\_STR}}
\index{ACCL\_NPU\_SRCN\_STR@{ACCL\_NPU\_SRCN\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_SRCN\_STR}{ACCL\_NPU\_SRCN\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+R\+C\+N\+\_\+\+S\+TR~\char`\"{}npu.\+srcn\char`\"{} /$\ast$$\ast$ srcn hardware supported by nnfw $\ast$/}



Definition at line 32 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a5da0675d3e8814174a1afe33461a59cb}\label{nnstreamer__plugin__api__filter_8h_a5da0675d3e8814174a1afe33461a59cb}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_STR@{ACCL\_NPU\_STR}}
\index{ACCL\_NPU\_STR@{ACCL\_NPU\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_STR}{ACCL\_NPU\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+TR~\char`\"{}npu\char`\"{}}

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000041}{Todo}}]Define A\+C\+C\+L\+\_\+\+D\+S\+P\+\_\+\+S\+TR \end{DoxyRefDesc}


Definition at line 28 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a02d0f0937b229e7abdc2bcf56289a902}\label{nnstreamer__plugin__api__filter_8h_a02d0f0937b229e7abdc2bcf56289a902}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_VIVANTE\_STR@{ACCL\_NPU\_VIVANTE\_STR}}
\index{ACCL\_NPU\_VIVANTE\_STR@{ACCL\_NPU\_VIVANTE\_STR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{ACCL\_NPU\_VIVANTE\_STR}{ACCL\_NPU\_VIVANTE\_STR}}
{\footnotesize\ttfamily \#define A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+V\+I\+V\+A\+N\+T\+E\+\_\+\+S\+TR~\char`\"{}npu.\+vivante\char`\"{}}



Definition at line 31 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a05c034d403396986aee9c7a8d7a293d9}\label{nnstreamer__plugin__api__filter_8h_a05c034d403396986aee9c7a8d7a293d9}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!checkGstTensorFilterFrameworkVersion@{checkGstTensorFilterFrameworkVersion}}
\index{checkGstTensorFilterFrameworkVersion@{checkGstTensorFilterFrameworkVersion}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{checkGstTensorFilterFrameworkVersion}{checkGstTensorFilterFrameworkVersion}}
{\footnotesize\ttfamily \#define check\+Gst\+Tensor\+Filter\+Framework\+Version(\begin{DoxyParamCaption}\item[{}]{value,  }\item[{}]{version }\end{DoxyParamCaption})~((\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}} $\vert$ ((version) $<$$<$ 16)) == (value \& 0x\+F\+F\+F\+F\+F\+F\+F\+F\+F\+F\+F\+F0000\+U\+LL))}



Check the value of the version field of Gst\+Tensor\+Filter\+Framework. 



Definition at line 47 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a381f94c7046922f205e37f07b6187b9e}\label{nnstreamer__plugin__api__filter_8h_a381f94c7046922f205e37f07b6187b9e}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GST\_TENSOR\_FILTER\_API\_VERSION\_DEFINED@{GST\_TENSOR\_FILTER\_API\_VERSION\_DEFINED}}
\index{GST\_TENSOR\_FILTER\_API\_VERSION\_DEFINED@{GST\_TENSOR\_FILTER\_API\_VERSION\_DEFINED}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FILTER\_API\_VERSION\_DEFINED}{GST\_TENSOR\_FILTER\_API\_VERSION\_DEFINED}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+A\+P\+I\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+D\+E\+F\+I\+N\+ED~(1)}



Definition at line 40 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a525c7c78fe76de30e3c9aca4eca05c80}\label{nnstreamer__plugin__api__filter_8h_a525c7c78fe76de30e3c9aca4eca05c80}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GST\_TENSOR\_FILTER\_API\_VERSION\_MAX@{GST\_TENSOR\_FILTER\_API\_VERSION\_MAX}}
\index{GST\_TENSOR\_FILTER\_API\_VERSION\_MAX@{GST\_TENSOR\_FILTER\_API\_VERSION\_MAX}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FILTER\_API\_VERSION\_MAX}{GST\_TENSOR\_FILTER\_API\_VERSION\_MAX}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+A\+P\+I\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+AX~(1)	/$\ast$ The maximum A\+PI version supported (recommended) $\ast$/}



Definition at line 42 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a40af69b4bb60bc63caab201df8a781fb}\label{nnstreamer__plugin__api__filter_8h_a40af69b4bb60bc63caab201df8a781fb}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GST\_TENSOR\_FILTER\_API\_VERSION\_MIN@{GST\_TENSOR\_FILTER\_API\_VERSION\_MIN}}
\index{GST\_TENSOR\_FILTER\_API\_VERSION\_MIN@{GST\_TENSOR\_FILTER\_API\_VERSION\_MIN}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FILTER\_API\_VERSION\_MIN}{GST\_TENSOR\_FILTER\_API\_VERSION\_MIN}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+A\+P\+I\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+IN~(0)	/$\ast$ The minimum A\+PI version supported (could be obsolete) $\ast$/}



Definition at line 41 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}\label{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GST\_TENSOR\_FILTER\_FRAMEWORK\_BASE@{GST\_TENSOR\_FILTER\_FRAMEWORK\_BASE}}
\index{GST\_TENSOR\_FILTER\_FRAMEWORK\_BASE@{GST\_TENSOR\_FILTER\_FRAMEWORK\_BASE}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FILTER\_FRAMEWORK\_BASE}{GST\_TENSOR\_FILTER\_FRAMEWORK\_BASE}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE~(0x\+D\+E\+A\+F\+D\+E\+A\+D00000000\+U\+LL)}



Definition at line 36 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a269188cdae665ea429f6b9ccf82f71c4}\label{nnstreamer__plugin__api__filter_8h_a269188cdae665ea429f6b9ccf82f71c4}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GST\_TENSOR\_FILTER\_FRAMEWORK\_V0@{GST\_TENSOR\_FILTER\_FRAMEWORK\_V0}}
\index{GST\_TENSOR\_FILTER\_FRAMEWORK\_V0@{GST\_TENSOR\_FILTER\_FRAMEWORK\_V0}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FILTER\_FRAMEWORK\_V0}{GST\_TENSOR\_FILTER\_FRAMEWORK\_V0}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+V0~(\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}})}



Definition at line 37 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a3911a067d16994f63e829cd8686e68f8}\label{nnstreamer__plugin__api__filter_8h_a3911a067d16994f63e829cd8686e68f8}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GST\_TENSOR\_FILTER\_FRAMEWORK\_V1@{GST\_TENSOR\_FILTER\_FRAMEWORK\_V1}}
\index{GST\_TENSOR\_FILTER\_FRAMEWORK\_V1@{GST\_TENSOR\_FILTER\_FRAMEWORK\_V1}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FILTER\_FRAMEWORK\_V1}{GST\_TENSOR\_FILTER\_FRAMEWORK\_V1}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+V1~(\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a126c16501c031fd88608a8cd5c81fb74}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+I\+L\+T\+E\+R\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\+\_\+\+B\+A\+SE}} $\vert$ 0x10000\+U\+LL)}



Definition at line 38 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a0194d295de1e7e9345c333efb83b9e72}\label{nnstreamer__plugin__api__filter_8h_a0194d295de1e7e9345c333efb83b9e72}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!parse\_accl\_hw@{parse\_accl\_hw}}
\index{parse\_accl\_hw@{parse\_accl\_hw}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{parse\_accl\_hw}{parse\_accl\_hw}}
{\footnotesize\ttfamily \#define parse\+\_\+accl\+\_\+hw(\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption})~\mbox{\hyperlink{tensor__filter__common_8c_a7b23c24f2974bb92ccb346b9ca38ac18}{parse\+\_\+accl\+\_\+hw\+\_\+fill}}((\mbox{\hyperlink{structparse__accl__args}{parse\+\_\+accl\+\_\+args}})\{\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+\})}



workaround to provide default arguments 



Definition at line 544 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}\label{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GstTensorFilterFramework@{GstTensorFilterFramework}}
\index{GstTensorFilterFramework@{GstTensorFilterFramework}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GstTensorFilterFramework}{GstTensorFilterFramework}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__GstTensorFilterFramework}{\+\_\+\+Gst\+Tensor\+Filter\+Framework}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}}}



Definition at line 240 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}\label{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GstTensorFilterFrameworkEventData@{GstTensorFilterFrameworkEventData}}
\index{GstTensorFilterFrameworkEventData@{GstTensorFilterFrameworkEventData}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GstTensorFilterFrameworkEventData}{GstTensorFilterFrameworkEventData}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkEventData}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Event\+Data}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}{Gst\+Tensor\+Filter\+Framework\+Event\+Data}}}



User data for the tensor\+\_\+tilter subplugin related events. 

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a19a20fba4bcd858e99568b0a7f20df69}\label{nnstreamer__plugin__api__filter_8h_a19a20fba4bcd858e99568b0a7f20df69}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GstTensorFilterFrameworkInfo@{GstTensorFilterFrameworkInfo}}
\index{GstTensorFilterFrameworkInfo@{GstTensorFilterFrameworkInfo}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GstTensorFilterFrameworkInfo}{GstTensorFilterFrameworkInfo}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkInfo}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Info}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a19a20fba4bcd858e99568b0a7f20df69}{Gst\+Tensor\+Filter\+Framework\+Info}}}



Tensor\+\_\+\+Filter Subplugin framework related information. 

All the information except the supported accelerator is provided statically. Accelerators can be provided based on static or dynamic check dependent on framework support. \mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a29e3d933ada7431e16e3b470c8786c05}\label{nnstreamer__plugin__api__filter_8h_a29e3d933ada7431e16e3b470c8786c05}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GstTensorFilterFrameworkStatistics@{GstTensorFilterFrameworkStatistics}}
\index{GstTensorFilterFrameworkStatistics@{GstTensorFilterFrameworkStatistics}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GstTensorFilterFrameworkStatistics}{GstTensorFilterFrameworkStatistics}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__GstTensorFilterFrameworkStatistics}{\+\_\+\+Gst\+Tensor\+Filter\+Framework\+Statistics}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a29e3d933ada7431e16e3b470c8786c05}{Gst\+Tensor\+Filter\+Framework\+Statistics}}}



Structure definition for tensor-\/filter framework statistics. 

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}\label{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GstTensorFilterProperties@{GstTensorFilterProperties}}
\index{GstTensorFilterProperties@{GstTensorFilterProperties}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{GstTensorFilterProperties}{GstTensorFilterProperties}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{struct__GstTensorFilterProperties}{\+\_\+\+Gst\+Tensor\+Filter\+Properties}} \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}}}



Gst\+Tensor\+Filter\textquotesingle{}s properties for NN framework (internal data structure) 

Because custom filters of tensor\+\_\+filter may need to access internal data of Gst\+Tensor\+Filter, we define this data structure here. \mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a8ec299bf9d0c0d0598e05e03cc482ea1}\label{nnstreamer__plugin__api__filter_8h_a8ec299bf9d0c0d0598e05e03cc482ea1}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!tensors\_layout@{tensors\_layout}}
\index{tensors\_layout@{tensors\_layout}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{tensors\_layout}{tensors\_layout}}
{\footnotesize\ttfamily typedef \mbox{\hyperlink{tensor__typedef_8h_abaf80ca39942c6a0b8ab019fb97c0716}{tensor\+\_\+layout}} tensors\+\_\+layout\mbox{[}\mbox{\hyperlink{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT}}\mbox{]}}



Definition at line 104 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!accl\_hw@{accl\_hw}}
\index{accl\_hw@{accl\_hw}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{accl\_hw}{accl\_hw}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}}}



acceleration hw properties. 

Enabling acceleration (choosing any accelerator hardware other A\+C\+C\+L\+\_\+\+N\+O\+NE) will enable acceleration for the framework dependent on the acceleration supported by the framework.

For example, enabling acceleration with tflite will enable N\+N\+A\+PI. However, with N\+N\+FW will enable G\+P\+U/\+N\+E\+ON etc.

Appropriate acceleration should be used with each framework. For example, A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+N\+E\+ON is supported with N\+N\+FW tensor filter. Using A\+C\+C\+L\+\_\+\+N\+E\+ON with pytorch would result in a warning message, and the accelerator would fallback on A\+C\+C\+L\+\_\+\+A\+U\+TO.

A\+C\+C\+L\+\_\+\+A\+U\+TO automatically chooses the accelerator based on the ones supported by the subplugin framework. However, A\+C\+C\+L\+\_\+\+D\+E\+F\+A\+U\+LT would use the accelerator set by the subplugin framework, if any.

\begin{DoxyNote}{Note}
Acceleration for a framework can be enabled/disabled in the build. If the acceleration for a framework was disabled in the build, setting the accelerator while use a tensor filter with that framework will have no effect.

Add definition of new accelerators to \mbox{\hyperlink{tensor__filter__common_8c_aeaa778bba1921ffca4f76fac9f741840}{accl\+\_\+hw\+\_\+get\+\_\+type()}} in \mbox{\hyperlink{tensor__filter__common_8c}{tensor\+\_\+filter\+\_\+common.\+c}} as well. 
\end{DoxyNote}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NONE@{ACCL\_NONE}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NONE@{ACCL\_NONE}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9085489eed853d3f01408dbc6b89b171}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9085489eed853d3f01408dbc6b89b171}} 
A\+C\+C\+L\+\_\+\+N\+O\+NE&no explicit acceleration no acceleration (defaults to C\+PU) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_AUTO@{ACCL\_AUTO}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_AUTO@{ACCL\_AUTO}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8aa3d26fd1baa95dce987e503d1695fb17}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8aa3d26fd1baa95dce987e503d1695fb17}} 
A\+C\+C\+L\+\_\+\+A\+U\+TO&If there is no default config, and device needs to be specified, fallback to A\+C\+C\+L\+\_\+\+A\+U\+TO choose optimized device automatically \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_DEFAULT@{ACCL\_DEFAULT}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_DEFAULT@{ACCL\_DEFAULT}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ac9763a32bafd75d72b4610df36f41341}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ac9763a32bafd75d72b4610df36f41341}} 
A\+C\+C\+L\+\_\+\+D\+E\+F\+A\+U\+LT&use default device configuration by the framework \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_CPU@{ACCL\_CPU}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_CPU@{ACCL\_CPU}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a35ec0bdf70c852cd2abc757216d050f2}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a35ec0bdf70c852cd2abc757216d050f2}} 
A\+C\+C\+L\+\_\+\+C\+PU&Enables acceleration, 0xn000 any version of that device, 0xnxxx\+: device \# xxx-\/1 specify device as C\+PU, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_CPU\_SIMD@{ACCL\_CPU\_SIMD}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_CPU\_SIMD@{ACCL\_CPU\_SIMD}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a7a58a88784041da4cf0f1bd495854b28}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a7a58a88784041da4cf0f1bd495854b28}} 
A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+S\+I\+MD&specify device as S\+I\+MD in cpu, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_CPU\_NEON@{ACCL\_CPU\_NEON}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_CPU\_NEON@{ACCL\_CPU\_NEON}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a6cde55a8fc0eb9ef8507602e3d4fe8c9}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a6cde55a8fc0eb9ef8507602e3d4fe8c9}} 
A\+C\+C\+L\+\_\+\+C\+P\+U\+\_\+\+N\+E\+ON&specify device as N\+E\+ON (alias for S\+I\+MD) in cpu, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_GPU@{ACCL\_GPU}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_GPU@{ACCL\_GPU}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a3d5efb2b36b7f7080aad02e5ca910d5a}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a3d5efb2b36b7f7080aad02e5ca910d5a}} 
A\+C\+C\+L\+\_\+\+G\+PU&specify device as G\+PU, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU@{ACCL\_NPU}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU@{ACCL\_NPU}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a22566e0f166e243717507072208c0b27}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a22566e0f166e243717507072208c0b27}} 
A\+C\+C\+L\+\_\+\+N\+PU&\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000042}{Todo}}]Define A\+C\+C\+L\+\_\+\+D\+SP \end{DoxyRefDesc}
specify device as any N\+PU, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU\_MOVIDIUS@{ACCL\_NPU\_MOVIDIUS}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_MOVIDIUS@{ACCL\_NPU\_MOVIDIUS}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9608696a9d258174681fd3589a6da29a}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9608696a9d258174681fd3589a6da29a}} 
A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+M\+O\+V\+I\+D\+I\+US&specify device as movidius, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU\_EDGE\_TPU@{ACCL\_NPU\_EDGE\_TPU}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_EDGE\_TPU@{ACCL\_NPU\_EDGE\_TPU}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8abde2e4d00d82ee579e4a4370fc99805d}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8abde2e4d00d82ee579e4a4370fc99805d}} 
A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+E\+D\+G\+E\+\_\+\+T\+PU&specify device as edge tpu, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU\_VIVANTE@{ACCL\_NPU\_VIVANTE}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_VIVANTE@{ACCL\_NPU\_VIVANTE}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ab6afd5b4cd918ed097db459351022d8b}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ab6afd5b4cd918ed097db459351022d8b}} 
A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+V\+I\+V\+A\+N\+TE&specify device as vivante, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU\_SRCN@{ACCL\_NPU\_SRCN}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_SRCN@{ACCL\_NPU\_SRCN}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a65d82cde9272bb05b9dd5d446c9d3a53}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a65d82cde9272bb05b9dd5d446c9d3a53}} 
A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+R\+CN&specify device as srcn, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU\_SLSI@{ACCL\_NPU\_SLSI}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_SLSI@{ACCL\_NPU\_SLSI}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ae0fce5a1a352a01b380518b4401cf979}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8ae0fce5a1a352a01b380518b4401cf979}} 
A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+S\+L\+SI&specify device as S.\+L\+SI, if possible \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ACCL\_NPU\_SR@{ACCL\_NPU\_SR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!ACCL\_NPU\_SR@{ACCL\_NPU\_SR}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9a2287f2d6d2ea4c1460976b7e359290}\label{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8a9a2287f2d6d2ea4c1460976b7e359290}} 
A\+C\+C\+L\+\_\+\+N\+P\+U\+\_\+\+SR&specify device as any SR npu, if possible \\
\hline

\end{DoxyEnumFields}


Definition at line 80 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!event\_ops@{event\_ops}}
\index{event\_ops@{event\_ops}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{event\_ops}{event\_ops}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}{event\+\_\+ops}}}



Tensor\+\_\+\+Filter Subplugin related events. 

These are possible set of events that can be supported by the tensor filter subplugin. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{DESTROY\_NOTIFY@{DESTROY\_NOTIFY}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!DESTROY\_NOTIFY@{DESTROY\_NOTIFY}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a21b6351e8bdd126712c6a184e626d8d5}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a21b6351e8bdd126712c6a184e626d8d5}} 
D\+E\+S\+T\+R\+O\+Y\+\_\+\+N\+O\+T\+I\+FY&Free the data element allocated in the invoke callback \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RELOAD\_MODEL@{RELOAD\_MODEL}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!RELOAD\_MODEL@{RELOAD\_MODEL}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97ac921cd60d8aaa6496662269ba96bc314}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97ac921cd60d8aaa6496662269ba96bc314}} 
R\+E\+L\+O\+A\+D\+\_\+\+M\+O\+D\+EL&Reloads the subplugin with newly provided model \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{CUSTOM\_PROP@{CUSTOM\_PROP}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!CUSTOM\_PROP@{CUSTOM\_PROP}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a75657017527f8952cec487db83bc6f3d}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a75657017527f8952cec487db83bc6f3d}} 
C\+U\+S\+T\+O\+M\+\_\+\+P\+R\+OP&Update the custom properties for the framework \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SET\_INPUT\_PROP@{SET\_INPUT\_PROP}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!SET\_INPUT\_PROP@{SET\_INPUT\_PROP}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97ab563678579b8ac066949350fcee1b830}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97ab563678579b8ac066949350fcee1b830}} 
S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+P\+R\+OP&Update input tensor info and layout \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SET\_OUTPUT\_PROP@{SET\_OUTPUT\_PROP}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!SET\_OUTPUT\_PROP@{SET\_OUTPUT\_PROP}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a9ea62d4004d24d0033960261bc5efe6d}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a9ea62d4004d24d0033960261bc5efe6d}} 
S\+E\+T\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+P\+R\+OP&Update output tensor info and layout \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SET\_ACCELERATOR@{SET\_ACCELERATOR}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!SET\_ACCELERATOR@{SET\_ACCELERATOR}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a24ccb0e505c0f8695128510b51ba7a19}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a24ccb0e505c0f8695128510b51ba7a19}} 
S\+E\+T\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+OR&Update accelerator of the subplugin to be used as backend \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{CHECK\_HW\_AVAILABILITY@{CHECK\_HW\_AVAILABILITY}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!CHECK\_HW\_AVAILABILITY@{CHECK\_HW\_AVAILABILITY}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a6d33c41a13a066383d67b09a15c74676}\label{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97a6d33c41a13a066383d67b09a15c74676}} 
C\+H\+E\+C\+K\+\_\+\+H\+W\+\_\+\+A\+V\+A\+I\+L\+A\+B\+I\+L\+I\+TY&Check the hw availability with custom option \\
\hline

\end{DoxyEnumFields}


Definition at line 177 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9c}\label{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9c}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!model\_info\_ops@{model\_info\_ops}}
\index{model\_info\_ops@{model\_info\_ops}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{model\_info\_ops}{model\_info\_ops}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9c}{model\+\_\+info\+\_\+ops}}}



Tensor\+\_\+\+Filter Subplugin\textquotesingle{}s model related info gathering operations. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GET\_IN\_OUT\_INFO@{GET\_IN\_OUT\_INFO}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!GET\_IN\_OUT\_INFO@{GET\_IN\_OUT\_INFO}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9ca285968cb58840342060647f86a83feb3}\label{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9ca285968cb58840342060647f86a83feb3}} 
G\+E\+T\+\_\+\+I\+N\+\_\+\+O\+U\+T\+\_\+\+I\+N\+FO&Gets the input and output tensor info \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SET\_INPUT\_INFO@{SET\_INPUT\_INFO}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!SET\_INPUT\_INFO@{SET\_INPUT\_INFO}}}\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9ca47dadfce1f13751aff47346cba3dc336}\label{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9ca47dadfce1f13751aff47346cba3dc336}} 
S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+I\+N\+FO&Sets the provided input tensor info, and get updated output tensor info \\
\hline

\end{DoxyEnumFields}


Definition at line 191 of file nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ac372cb4e8a8e6f95069734d7dcfb752d}\label{nnstreamer__plugin__api__filter_8h_ac372cb4e8a8e6f95069734d7dcfb752d}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!get\_accl\_hw\_str@{get\_accl\_hw\_str}}
\index{get\_accl\_hw\_str@{get\_accl\_hw\_str}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{get\_accl\_hw\_str()}{get\_accl\_hw\_str()}}
{\footnotesize\ttfamily const char$\ast$ get\+\_\+accl\+\_\+hw\+\_\+str (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}}}]{key }\end{DoxyParamCaption})}



return string based on accl\+\_\+hw type 


\begin{DoxyParams}{Parameters}
{\em key} & The key enum value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Corresponding string. Returns A\+C\+C\+L\+\_\+\+N\+O\+N\+E\+\_\+\+S\+TR if not found. 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Do not free the returned char $\ast$ 
\end{DoxyNote}


Definition at line 2598 of file tensor\+\_\+filter\+\_\+common.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=315pt]{nnstreamer__plugin__api__filter_8h_ac372cb4e8a8e6f95069734d7dcfb752d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_ac372cb4e8a8e6f95069734d7dcfb752d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a6d6b78d1ec7a8ed5241a9314f55e71e2}\label{nnstreamer__plugin__api__filter_8h_a6d6b78d1ec7a8ed5241a9314f55e71e2}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!get\_accl\_hw\_type@{get\_accl\_hw\_type}}
\index{get\_accl\_hw\_type@{get\_accl\_hw\_type}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{get\_accl\_hw\_type()}{get\_accl\_hw\_type()}}
{\footnotesize\ttfamily \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} get\+\_\+accl\+\_\+hw\+\_\+type (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}



return accl\+\_\+hw type from string 

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a96433e7efd054be7c80c169eebf0d2d1}\label{nnstreamer__plugin__api__filter_8h_a96433e7efd054be7c80c169eebf0d2d1}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_exit@{nnstreamer\_filter\_exit}}
\index{nnstreamer\_filter\_exit@{nnstreamer\_filter\_exit}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_exit()}{nnstreamer\_filter\_exit()}}
{\footnotesize\ttfamily void nnstreamer\+\_\+filter\+\_\+exit (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Filter\textquotesingle{}s sub-\/plugin may call this to unregister itself. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & The name of filter sub-\/plugin. \\
\hline
\end{DoxyParams}


Definition at line 638 of file tensor\+\_\+filter\+\_\+common.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_a96433e7efd054be7c80c169eebf0d2d1_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_a96433e7efd054be7c80c169eebf0d2d1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a5bff843e6dbca38f7784a5ba1412b69a}\label{nnstreamer__plugin__api__filter_8h_a5bff843e6dbca38f7784a5ba1412b69a}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_find@{nnstreamer\_filter\_find}}
\index{nnstreamer\_filter\_find@{nnstreamer\_filter\_find}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_find()}{nnstreamer\_filter\_find()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}}$\ast$ nnstreamer\+\_\+filter\+\_\+find (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Find filter sub-\/plugin with the name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & The name of filter sub-\/plugin. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
N\+U\+LL if not found or the sub-\/plugin object has an error. 
\end{DoxyReturn}


Definition at line 697 of file tensor\+\_\+filter\+\_\+common.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_a5bff843e6dbca38f7784a5ba1412b69a_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_a5bff843e6dbca38f7784a5ba1412b69a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a5417c816d4c9dd6f526239e66d1d95d5}\label{nnstreamer__plugin__api__filter_8h_a5417c816d4c9dd6f526239e66d1d95d5}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_probe@{nnstreamer\_filter\_probe}}
\index{nnstreamer\_filter\_probe@{nnstreamer\_filter\_probe}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_probe()}{nnstreamer\_filter\_probe()}}
{\footnotesize\ttfamily int nnstreamer\+\_\+filter\+\_\+probe (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$}]{tfsp }\end{DoxyParamCaption})}



Filter\textquotesingle{}s sub-\/plugin should call this function to register itself. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em tfsp} & Tensor-\/\+Filter Sub-\/\+Plugin to be registered. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if registered. F\+A\+L\+SE is failed or duplicated.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Do not change the subplugins callbacks after probing the filter.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em tfsp} & Tensor-\/\+Filter Sub-\/\+Plugin to be registered. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if registered. F\+A\+L\+SE is failed or duplicated. 
\end{DoxyReturn}


Definition at line 611 of file tensor\+\_\+filter\+\_\+common.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_a5417c816d4c9dd6f526239e66d1d95d5_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_ae735c6ecddc18e77ca8d396645a10187}\label{nnstreamer__plugin__api__filter_8h_ae735c6ecddc18e77ca8d396645a10187}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_set\_custom\_property\_desc@{nnstreamer\_filter\_set\_custom\_property\_desc}}
\index{nnstreamer\_filter\_set\_custom\_property\_desc@{nnstreamer\_filter\_set\_custom\_property\_desc}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_set\_custom\_property\_desc()}{nnstreamer\_filter\_set\_custom\_property\_desc()}}
{\footnotesize\ttfamily void nnstreamer\+\_\+filter\+\_\+set\+\_\+custom\+\_\+property\+\_\+desc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name,  }\item[{const char $\ast$}]{prop,  }\item[{}]{... }\end{DoxyParamCaption})}



set custom property description for tensor filter sub-\/plugin 



Definition at line 647 of file tensor\+\_\+filter\+\_\+common.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__plugin__api__filter_8h_ae735c6ecddc18e77ca8d396645a10187_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a4356a7d26206ff838386bf24c0b3f79d}\label{nnstreamer__plugin__api__filter_8h_a4356a7d26206ff838386bf24c0b3f79d}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_shared\_model\_get@{nnstreamer\_filter\_shared\_model\_get}}
\index{nnstreamer\_filter\_shared\_model\_get@{nnstreamer\_filter\_shared\_model\_get}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_shared\_model\_get()}{nnstreamer\_filter\_shared\_model\_get()}}
{\footnotesize\ttfamily void$\ast$ nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+get (\begin{DoxyParamCaption}\item[{void $\ast$}]{instance,  }\item[{const char $\ast$}]{key }\end{DoxyParamCaption})}



Get the shared model representation that is already shared and has the same key. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em instance} & The instance that is sharing the model representation. It will be registered at the referred list. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The key to find the matched shared representation. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The model interpreter. N\+U\+LL if it does not exist. 
\end{DoxyReturn}


Definition at line 2993 of file tensor\+\_\+filter\+\_\+common.\+c.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a017e6c75d5b4192d07f39055e95ea877}\label{nnstreamer__plugin__api__filter_8h_a017e6c75d5b4192d07f39055e95ea877}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_shared\_model\_insert\_and\_get@{nnstreamer\_filter\_shared\_model\_insert\_and\_get}}
\index{nnstreamer\_filter\_shared\_model\_insert\_and\_get@{nnstreamer\_filter\_shared\_model\_insert\_and\_get}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_shared\_model\_insert\_and\_get()}{nnstreamer\_filter\_shared\_model\_insert\_and\_get()}}
{\footnotesize\ttfamily void$\ast$ nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+insert\+\_\+and\+\_\+get (\begin{DoxyParamCaption}\item[{void $\ast$}]{instance,  }\item[{char $\ast$}]{key,  }\item[{void $\ast$}]{interpreter }\end{DoxyParamCaption})}



Insert the new shared model representation and get the value. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em instance} & The instance that is sharing the model representation. It will be registered at the referred list. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The key for shared model. \\
\hline
\mbox{\texttt{ in}}  & {\em interpreter} & The interpreter to be shared. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The model interpreter inserted. N\+U\+LL if it is already inserted. 
\end{DoxyReturn}
Internal error case. The interpreter already exists in shared table, do not insert and return null.

Definition at line 3026 of file tensor\+\_\+filter\+\_\+common.\+c.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a5c43a0760c03a62a61998908cae04a98}\label{nnstreamer__plugin__api__filter_8h_a5c43a0760c03a62a61998908cae04a98}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_shared\_model\_remove@{nnstreamer\_filter\_shared\_model\_remove}}
\index{nnstreamer\_filter\_shared\_model\_remove@{nnstreamer\_filter\_shared\_model\_remove}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_shared\_model\_remove()}{nnstreamer\_filter\_shared\_model\_remove()}}
{\footnotesize\ttfamily int nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+remove (\begin{DoxyParamCaption}\item[{void $\ast$}]{instance,  }\item[{const char $\ast$}]{key,  }\item[{void($\ast$)(void $\ast$)}]{free\+\_\+callback }\end{DoxyParamCaption})}



Remove the instance registered at the referred list of shared model table. If referred list is empty, {\ttfamily free\+\_\+callback} is executed. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em instance} & The instance that should be removed from the referred list. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The key to find the shared model. \\
\hline
\mbox{\texttt{ in}}  & {\em free\+\_\+callback} & The callback function to destroy the interpreter, which takes the interpreter as arg. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if the instance is removed. F\+A\+L\+SE if failed to remove it. 
\end{DoxyReturn}


Definition at line 3081 of file tensor\+\_\+filter\+\_\+common.\+c.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a9ffddc0580bc6813e5a714ad90b57b0b}\label{nnstreamer__plugin__api__filter_8h_a9ffddc0580bc6813e5a714ad90b57b0b}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!nnstreamer\_filter\_shared\_model\_replace@{nnstreamer\_filter\_shared\_model\_replace}}
\index{nnstreamer\_filter\_shared\_model\_replace@{nnstreamer\_filter\_shared\_model\_replace}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_filter\_shared\_model\_replace()}{nnstreamer\_filter\_shared\_model\_replace()}}
{\footnotesize\ttfamily void nnstreamer\+\_\+filter\+\_\+shared\+\_\+model\+\_\+replace (\begin{DoxyParamCaption}\item[{void $\ast$}]{instance,  }\item[{const char $\ast$}]{key,  }\item[{void $\ast$}]{new\+\_\+interpreter,  }\item[{void($\ast$)(void $\ast$, void $\ast$)}]{replace\+\_\+callback,  }\item[{void($\ast$)(void $\ast$)}]{free\+\_\+callback }\end{DoxyParamCaption})}



Helper to reload interpreter for instances that has shared key. {\ttfamily replace\+\_\+callback} is called iterating instances in referred list. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em instance} & The instance that is sharing the model representation. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The key to find the shared model. \\
\hline
\mbox{\texttt{ in}}  & {\em interpreter} & The new interpreter to replace. \\
\hline
\mbox{\texttt{ in}}  & {\em replace\+\_\+callback} & The callback function to replace with new interpreter. \\
\hline
\mbox{\texttt{ in}}  & {\em free\+\_\+callback} & The callback function to destroy the old interpreter. \\
\hline
\end{DoxyParams}


Definition at line 3128 of file tensor\+\_\+filter\+\_\+common.\+c.

\mbox{\Hypertarget{nnstreamer__plugin__api__filter_8h_a7b23c24f2974bb92ccb346b9ca38ac18}\label{nnstreamer__plugin__api__filter_8h_a7b23c24f2974bb92ccb346b9ca38ac18}} 
\index{nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}!parse\_accl\_hw\_fill@{parse\_accl\_hw\_fill}}
\index{parse\_accl\_hw\_fill@{parse\_accl\_hw\_fill}!nnstreamer\_plugin\_api\_filter.h@{nnstreamer\_plugin\_api\_filter.h}}
\doxysubsubsection{\texorpdfstring{parse\_accl\_hw\_fill()}{parse\_accl\_hw\_fill()}}
{\footnotesize\ttfamily \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} parse\+\_\+accl\+\_\+hw\+\_\+fill (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structparse__accl__args}{parse\+\_\+accl\+\_\+args}}}]{accl\+\_\+args }\end{DoxyParamCaption})}



parse user given string to extract accelerator based on given regex filling in optional arguments 

\begin{DoxyNote}{Note}
The order of arguments for calling this function is\+:
\begin{DoxyItemize}
\item in\+\_\+accl\+: user provided input accelerator string
\item sup\+\_\+accl\+: list of supported accelerator
\item auto\+\_\+accl\+: auto accelerator (optional)
\item def\+\_\+accl\+: default accelerator (optional) 
\end{DoxyItemize}
\end{DoxyNote}
remove unsupported accelerators from this list based on runtime system

filtered supported accelerators can be empty

update default accelerator if it is not available at runtime

update auto accelerator if it is not available at runtime

Definition at line 2833 of file tensor\+\_\+filter\+\_\+common.\+c.

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