\hypertarget{struct__GstTensorFilterFramework}{}\doxysection{\+\_\+\+Gst\+Tensor\+Filter\+Framework Struct Reference}
\label{struct__GstTensorFilterFramework}\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}


Tensor\+\_\+\+Filter Subplugin definition.  




{\ttfamily \#include $<$nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h$>$}



Collaboration diagram for \+\_\+\+Gst\+Tensor\+Filter\+Framework\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=229pt]{struct__GstTensorFilterFramework__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
uint64\+\_\+t \mbox{\hyperlink{struct__GstTensorFilterFramework_a7077b7a838707889698a42d294ef3488}{version}}
\item 
int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a1a33232b22e84285328432f61a8d6e9c}{open}} )(const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data)
\item 
void($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a10078a4537cefe8ea551fd4ad55f1481}{close}} )(const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data)
\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
union \{\\
\>struct \{\\
\>\>char $\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_ae973abc75f415987cf0616d32eea57ec}{name}}\\
\>\>int \mbox{\hyperlink{struct__GstTensorFilterFramework_ae7e8500b743ba3a0f8e5a7aa7773f5be}{allow\_in\_place}}\\
\>\>int \mbox{\hyperlink{struct__GstTensorFilterFramework_a1e8126ba810407767a3d5a7f4ac088db}{allocate\_in\_invoke}}\\
\>\>int \mbox{\hyperlink{struct__GstTensorFilterFramework_aae4b90bb42d3af809d949b4e5649e97d}{run\_without\_model}}\\
\>\>int \mbox{\hyperlink{struct__GstTensorFilterFramework_aeffa0eb01dab6510ddebec3811e21f79}{verify\_model\_path}}\\
\>\>const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a29e3d933ada7431e16e3b470c8786c05}{GstTensorFilterFrameworkStatistics}} $\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a41c904d282b040f144c78d96accc1df0}{statistics}}\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_aa0fa4a813f79f441db61e9a88d097d1a}{invoke\_NN}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\_data, \\
\>\>\>const \mbox{\hyperlink{structGstTensorMemory}{GstTensorMemory}} $\ast$input, \\
\>\>\>\mbox{\hyperlink{structGstTensorMemory}{GstTensorMemory}} $\ast$output)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a3b773c2f4e7050cfa3e476e1c19d7c35}{getInputDimension}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\_data, \\
\>\>\>\mbox{\hyperlink{structGstTensorsInfo}{GstTensorsInfo}} $\ast$info)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a30e9d93d46b51ae54e18440fcd62cb90}{getOutputDimension}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\_data, \\
\>\>\>\mbox{\hyperlink{structGstTensorsInfo}{GstTensorsInfo}} $\ast$info)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_aa82797c16bd2921b4e6536b6c5548154}{setInputDimension}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\_data, \\
\>\>\>const \mbox{\hyperlink{structGstTensorsInfo}{GstTensorsInfo}} $\ast$in\_info, \\
\>\>\>\mbox{\hyperlink{structGstTensorsInfo}{GstTensorsInfo}} $\ast$out\_info)\\
\>\>void($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_ad141a873621faa265caa6430ebb77593}{destroyNotify}} )(void $\ast$$\ast$private\_data, void $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a098f9c777020721c87d31c466390f85f}{reloadModel}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\_data)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a6301fd57fbe352c46d4652293f6104ed}{handleEvent}} )(\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}{event\_ops}} ops, \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}{GstTensorFilterFrameworkEventData}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_add2531694f9bf10cb86cbcd53e89e99b}{checkAvailability}} )(\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\_hw}} hw)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a109df3a83046f0a33dc026f129f68e13}{allocateInInvoke}} )(void $\ast$$\ast$private\_data)\\
\>\} \\
\>\>\>{\em Tensor\_Filter Subplugin definition Version 0. }\\
\>struct \{\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_ab1b5631f259001de0bc3a68a384baaf5}{invoke}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{GstTensorFilterFramework}} $\ast$self, \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\_data, \\
\>\>\>const \mbox{\hyperlink{structGstTensorMemory}{GstTensorMemory}} $\ast$input, \\
\>\>\>\mbox{\hyperlink{structGstTensorMemory}{GstTensorMemory}} $\ast$output)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_ac3ae9c52e06364b2724b4231ced3a732}{getFrameworkInfo}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{GstTensorFilterFramework}} $\ast$self, \\
\>\>\>const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\_data, \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a19a20fba4bcd858e99568b0a7f20df69}{GstTensorFilterFrameworkInfo}} \\
\>\>\>$\ast$fw\_info)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a58a8ff2e8443825c698e12346f23bb52}{getModelInfo}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{GstTensorFilterFramework}} $\ast$self, \\
\>\>\>const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\_data, \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9c}{model\_info\_ops}} ops, \\
\>\>\>\mbox{\hyperlink{structGstTensorsInfo}{GstTensorsInfo}} $\ast$in\_info, \\
\>\>\>\mbox{\hyperlink{structGstTensorsInfo}{GstTensorsInfo}} $\ast$out\_info)\\
\>\>int($\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a982215a44e1d1ab88a3e2323d441d12a}{eventHandler}} )(const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{GstTensorFilterFramework}} $\ast$self, \\
\>\>\>const \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{GstTensorFilterProperties}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\_data, \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}{event\_ops}} ops, \\
\>\>\>\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}{GstTensorFilterFrameworkEventData}} \\
\>\>\>$\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})\\
\>\>void $\ast$ \mbox{\hyperlink{struct__GstTensorFilterFramework_a9be6bdf8c7fe2ef2b9437db23b02cd4f}{subplugin\_data}}\\
\>\} \\
\>\>\>{\em Tensor\_Filter Subplugin definition Version 1. }\\
\}; \\

\end{tabbing}\begin{DoxyCompactList}\small\item\em Distinct elements between two versions of the subplugin interfaces. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Tensor\+\_\+\+Filter Subplugin definition. 

Common callback parameters\+: prop Filter properties. Read Only. private\+\_\+data Subplugin\textquotesingle{}s private data. Set this ($\ast$private\+\_\+data = X\+XX) if you want to change filter-\/$>$private\+\_\+data. 

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



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{struct__GstTensorFilterFramework_ae91b9ffd575683d66f61baa7a498c153}\label{struct__GstTensorFilterFramework_ae91b9ffd575683d66f61baa7a498c153}} 
\doxysubsubsection{\texorpdfstring{"@53}{@53}}
{\footnotesize\ttfamily union \{ ... \} }



Distinct elements between two versions of the subplugin interfaces. 

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a1e8126ba810407767a3d5a7f4ac088db}\label{struct__GstTensorFilterFramework_a1e8126ba810407767a3d5a7f4ac088db}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!allocate\_in\_invoke@{allocate\_in\_invoke}}
\index{allocate\_in\_invoke@{allocate\_in\_invoke}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{allocate\_in\_invoke}{allocate\_in\_invoke}}
{\footnotesize\ttfamily int \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::allocate\+\_\+in\+\_\+invoke}

T\+R\+U\+E(nonzero) if invoke\+\_\+\+NN is going to allocate output ptr by itself and return the address via output ptr. Do not change this value after cap negotiation is complete (or the stream has been started). 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a109df3a83046f0a33dc026f129f68e13}\label{struct__GstTensorFilterFramework_a109df3a83046f0a33dc026f129f68e13}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!allocateInInvoke@{allocateInInvoke}}
\index{allocateInInvoke@{allocateInInvoke}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{allocateInInvoke}{allocateInInvoke}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::allocate\+In\+Invoke) (void $\ast$$\ast$private\+\_\+data)}

Optional. Tensor-\/filter will call it when allocate\+\_\+in\+\_\+invoke is set to T\+R\+UE. This check if the provided model for the framework supports allocation at invoke or not. If this is not defined, then the value of allocate\+\_\+in\+\_\+invoke is assumed to be final for all models.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em private\+\_\+data} & A subplugin may save its internal private data here. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if supported. -\/errno if not supported. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_ae7e8500b743ba3a0f8e5a7aa7773f5be}\label{struct__GstTensorFilterFramework_ae7e8500b743ba3a0f8e5a7aa7773f5be}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!allow\_in\_place@{allow\_in\_place}}
\index{allow\_in\_place@{allow\_in\_place}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{allow\_in\_place}{allow\_in\_place}}
{\footnotesize\ttfamily int \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::allow\+\_\+in\+\_\+place}

T\+R\+U\+E(nonzero) if in-\/place transfer of input-\/to-\/output is allowed. Not supported in main, yet 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_add2531694f9bf10cb86cbcd53e89e99b}\label{struct__GstTensorFilterFramework_add2531694f9bf10cb86cbcd53e89e99b}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!checkAvailability@{checkAvailability}}
\index{checkAvailability@{checkAvailability}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{checkAvailability}{checkAvailability}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::check\+Availability) (\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} hw)}

Optional. Check if the provided hardware accelerator is supported. This check is static or dynamic based on framework support. Positive response of this check does not guarantee successful running of model with this accelerator. The static check can be performed without opening the framework.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em hw} & backend accelerator hardware \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if supported. -\/errno if not supported. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a10078a4537cefe8ea551fd4ad55f1481}\label{struct__GstTensorFilterFramework_a10078a4537cefe8ea551fd4ad55f1481}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!close@{close}}
\index{close@{close}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{close}{close}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::close) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data)}

Optional. Tensor-\/filter will not call other callbacks after calling close. Free-\/ing private\+\_\+data is this function\textquotesingle{}s responsibility. Set N\+U\+LL after that.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values. \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. Normally, \mbox{\hyperlink{struct__GstTensorFilterFramework_a10078a4537cefe8ea551fd4ad55f1481}{close()}} frees private\+\_\+data and set N\+U\+LL. \\
\hline
\end{DoxyParams}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_ad141a873621faa265caa6430ebb77593}\label{struct__GstTensorFilterFramework_ad141a873621faa265caa6430ebb77593}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!destroyNotify@{destroyNotify}}
\index{destroyNotify@{destroyNotify}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{destroyNotify}{destroyNotify}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::destroy\+Notify) (void $\ast$$\ast$private\+\_\+data, void $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})}

Optional. Tensor-\/filter will call it when \textquotesingle{}allocate\+\_\+in\+\_\+invoke\textquotesingle{} flag of the framework is T\+R\+UE and allocate\+In\+Invoke also return enabled. Basically, it is called when the data element is destroyed. If it\textquotesingle{}s set as N\+U\+LL, \mbox{\hyperlink{gsttensor__decoder_8c_adfb1d2a9811131e9bced03a25b24e71c}{g\+\_\+free()}} will be used as a default. It will be helpful when the data pointer is included as an object of a nnfw. For instance, if the data pointer is removed when the object is gone, it occurs error. In this case, the objects should be maintained for a while first and destroyed when the data pointer is destroyed. Those kinds of logic could be defined at this method.


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & the data element. \\
\hline
\end{DoxyParams}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a982215a44e1d1ab88a3e2323d441d12a}\label{struct__GstTensorFilterFramework_a982215a44e1d1ab88a3e2323d441d12a}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!eventHandler@{eventHandler}}
\index{eventHandler@{eventHandler}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{eventHandler}{eventHandler}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::event\+Handler) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$self, const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\+\_\+data, \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}{event\+\_\+ops}} ops, \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}{Gst\+Tensor\+Filter\+Framework\+Event\+Data}} $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})}

Mandatory callback. Runs the event corresponding to the passed operation. If ops == D\+E\+S\+T\+R\+O\+Y\+\_\+\+N\+O\+T\+I\+FY\+: Tensor-\/filter will call it when \textquotesingle{}allocate\+\_\+in\+\_\+invoke\textquotesingle{} property of the framework is T\+R\+UE. Basically, it is called when the data element is destroyed. If it\textquotesingle{}s set as N\+U\+LL, \mbox{\hyperlink{gsttensor__decoder_8c_adfb1d2a9811131e9bced03a25b24e71c}{g\+\_\+free()}} will be used as a default. It will be helpful when the data pointer is included as an object of a nnfw. For instance, if the data pointer is removed when the object is gone, it occurs error. In this case, the objects should be maintained for a while first and destroyed when the data pointer is destroyed. Those kinds of logic could be defined at this method. If ops == R\+E\+L\+O\+A\+D\+\_\+\+M\+O\+D\+EL\+: Tensor-\/filter will call it when a model property is newly configured. Also, \textquotesingle{}is-\/updatable\textquotesingle{} property of the framework should be T\+R\+UE. This function reloads a new model passed in as argument via data. Note that it requires extra memory size enough to temporarily hold both old and new models during this function to hide the reload overhead. If ops == C\+U\+S\+T\+O\+M\+\_\+\+P\+R\+OP\+: Tensor-\/filter will call to update the custom properties of the subplugin. If ops == S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+P\+R\+OP\+: Tensor-\/filter will call to update the property of the subplugin. This function will take tensor info and layout as the argument. This operation can update input tensor shape, type, name and layout. If ops == S\+E\+T\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+P\+R\+OP\+: Tensor-\/filter will call to update the property of the subplugin. This function will take tensor info and layout as the argument. This operation can update output tensor shape, type, name and layout. If ops == S\+E\+T\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+OR\+: Tensor-\/filter will call to update the property of the subplugin. This function will take accelerator list as the argument. This operation will update the backend to be used by the corresponding subplugin. List of operations to be supported are optional. Note\+: In these operations, the argument \textquotesingle{}prop\textquotesingle{} will not contain the updated information, but will be updated after the corresponding operation is succeeded.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. (can be N\+U\+LL) \\
\hline
\mbox{\texttt{ in}}  & {\em ops} & operation to be performed \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & data event data for the supported handlers (can be N\+U\+LL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. -\/E\+N\+O\+E\+NT if operation is not supported. -\/E\+I\+N\+V\+AL if operation is supported but provided arguments are invalid. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_ac3ae9c52e06364b2724b4231ced3a732}\label{struct__GstTensorFilterFramework_ac3ae9c52e06364b2724b4231ced3a732}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!getFrameworkInfo@{getFrameworkInfo}}
\index{getFrameworkInfo@{getFrameworkInfo}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{getFrameworkInfo}{getFrameworkInfo}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::get\+Framework\+Info) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$self, const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\+\_\+data, \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a19a20fba4bcd858e99568b0a7f20df69}{Gst\+Tensor\+Filter\+Framework\+Info}} $\ast$fw\+\_\+info)}

Mandatory callback. Get the frameworks statically determined info. Argument \textquotesingle{}private\+\_\+data\textquotesingle{} can be N\+U\+LL. If provided \textquotesingle{}private\+\_\+data\textquotesingle{} is not N\+U\+LL, then some info, such as \textquotesingle{}allocate\+\_\+in\+\_\+invoke\textquotesingle{}, can be updated based on the model being used (inferred from the \textquotesingle{}private\+\_\+data\textquotesingle{} provided). This updated info is useful for custom filter, as some custom filter\textquotesingle{}s ability to support \textquotesingle{}allocate\+\_\+in\+\_\+invoke\textquotesingle{} depends on the opened model.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
\mbox{\texttt{ in}}  & {\em private\+\_\+data} & A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. This parameter can be N\+U\+LL. \\
\hline
\mbox{\texttt{ out}}  & {\em fw\+\_\+info} & struct to hold frameworks info. Must be allocated by the caller (return value). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
C\+A\+U\+T\+I\+ON\+: private\+\_\+data can be N\+U\+LL if the framework is not yet opened by the caller. 
\end{DoxyNote}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a3b773c2f4e7050cfa3e476e1c19d7c35}\label{struct__GstTensorFilterFramework_a3b773c2f4e7050cfa3e476e1c19d7c35}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!getInputDimension@{getInputDimension}}
\index{getInputDimension@{getInputDimension}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{getInputDimension}{getInputDimension}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::get\+Input\+Dimension) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data, \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$info)}

Optional. Set N\+U\+LL if not supported. Get dimension of input tensor If get\+Input\+Dimension is N\+U\+LL, set\+Input\+Dimension must be defined. If get\+Input\+Dimension is defined, it is recommended to define get\+Output\+Dimension.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ out}}  & {\em info} & structure of tensor info (return value) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a58a8ff2e8443825c698e12346f23bb52}\label{struct__GstTensorFilterFramework_a58a8ff2e8443825c698e12346f23bb52}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!getModelInfo@{getModelInfo}}
\index{getModelInfo@{getModelInfo}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{getModelInfo}{getModelInfo}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::get\+Model\+Info) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$self, const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\+\_\+data, \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_afb43c204ad5b9ca1002ca79157c1aa9c}{model\+\_\+info\+\_\+ops}} ops, \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$out\+\_\+info)}

Mandatory callback. Gets the model related tensor info. If ops == G\+E\+T\+\_\+\+I\+N\+\_\+\+O\+U\+T\+\_\+\+I\+N\+FO, in\+\_\+info would contain the input tensor info, and out\+\_\+info would contain the output tensor info. If ops == S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+I\+N\+FO, in\+\_\+info would contain the provided input tensor info, and out\+\_\+info would contain the updated output tensor info. At least one of S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+I\+N\+FO and G\+E\+T\+\_\+\+I\+N\+\_\+\+O\+U\+T\+\_\+\+I\+N\+FO operations must be supported.

Note\+: Tensor\+\_\+\+Filter\+::main will configure input dimension from pad-\/cap in run-\/time for the sub-\/plugin. Then, the sub-\/plugin is required to return corresponding output dimension, and will call S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+I\+N\+FO operation.

Note\+: With S\+E\+T\+\_\+\+I\+N\+P\+U\+T\+\_\+\+I\+N\+FO operation, the caller must N\+OT allocate or fix internal data structure based on the return value until invoke is called. G\+Streamer may try different dimensions before settling down.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ in}}  & {\em ops} & operation to be performed \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & in\+\_\+info structure of input tensor info \\
\hline
\mbox{\texttt{ out}}  & {\em out\+\_\+info} & structure of output tensor info (return value) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. -\/E\+N\+O\+E\+NT is operation is not supported. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a30e9d93d46b51ae54e18440fcd62cb90}\label{struct__GstTensorFilterFramework_a30e9d93d46b51ae54e18440fcd62cb90}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!getOutputDimension@{getOutputDimension}}
\index{getOutputDimension@{getOutputDimension}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{getOutputDimension}{getOutputDimension}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::get\+Output\+Dimension) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data, \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$info)}

Optional. Set N\+U\+LL if not supported. Get dimension of output tensor If get\+Input\+Dimension is N\+U\+LL, set\+Input\+Dimension must be defined. If get\+Input\+Dimension is defined, it is recommended to define get\+Output\+Dimension.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ out}}  & {\em info} & structure of tensor info (return value) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a6301fd57fbe352c46d4652293f6104ed}\label{struct__GstTensorFilterFramework_a6301fd57fbe352c46d4652293f6104ed}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!handleEvent@{handleEvent}}
\index{handleEvent@{handleEvent}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{handleEvent}{handleEvent}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::handle\+Event) (\mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_ae9439bb1aad5af8d98f3b708f1301e97}{event\+\_\+ops}} ops, \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a4261938c628065c946cfcbcb917256d6}{Gst\+Tensor\+Filter\+Framework\+Event\+Data}} $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})}

Optional. Runs the event corresponding to the passed operation. If ops == C\+H\+E\+C\+K\+\_\+\+H\+W\+\_\+\+A\+V\+A\+I\+L\+A\+B\+I\+L\+I\+TY\+: tensor\+\_\+filter will call to check the hw availability with custom option. List of operations to be supported are optional.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ops} & operation to be performed \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & data event data for the supported handlers (can be N\+U\+LL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. -\/E\+N\+O\+E\+NT if operation is not supported. -\/E\+I\+N\+V\+AL if operation is supported but provided arguments are invalid. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_ab1b5631f259001de0bc3a68a384baaf5}\label{struct__GstTensorFilterFramework_ab1b5631f259001de0bc3a68a384baaf5}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!invoke@{invoke}}
\index{invoke@{invoke}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{invoke}{invoke}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::invoke) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a2aed82bb2c62b38fba28759423860e0c}{Gst\+Tensor\+Filter\+Framework}} $\ast$self, \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$private\+\_\+data, const \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$input, \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$output)}

Mandatory callback. Invoke the given network model.


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & prop property values. In the case of dynamic invoke, the output tensors info must be filled. \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ in}}  & {\em input} & The array of input tensors. Allocated and filled by tensor\+\_\+filter/main \\
\hline
\mbox{\texttt{ out}}  & {\em output} & The array of output tensors. Allocated by tensor\+\_\+filter/main and to be filled by invoke. If allocate\+\_\+in\+\_\+invoke is T\+R\+UE, sub-\/plugin should allocate the memory block for output tensor. (data in \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}}) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_aa0fa4a813f79f441db61e9a88d097d1a}\label{struct__GstTensorFilterFramework_aa0fa4a813f79f441db61e9a88d097d1a}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!invoke\_NN@{invoke\_NN}}
\index{invoke\_NN@{invoke\_NN}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{invoke\_NN}{invoke\_NN}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::invoke\+\_\+\+NN) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data, const \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$input, \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}} $\ast$output)}

Mandatory callback. Invoke the given network model.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ in}}  & {\em input} & The array of input tensors. Allocated and filled by tensor\+\_\+filter/main \\
\hline
\mbox{\texttt{ out}}  & {\em output} & The array of output tensors. Allocated by tensor\+\_\+filter/main and to be filled by invoke\+\_\+\+NN. If allocate\+\_\+in\+\_\+invoke is T\+R\+UE, sub-\/plugin should allocate the memory block for output tensor. (data in \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}}) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_ae973abc75f415987cf0616d32eea57ec}\label{struct__GstTensorFilterFramework_ae973abc75f415987cf0616d32eea57ec}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!name@{name}}
\index{name@{name}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{name}{name}}
{\footnotesize\ttfamily char$\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::name}

Name of the neural network framework, searchable by F\+R\+A\+M\+E\+W\+O\+RK property 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a1a33232b22e84285328432f61a8d6e9c}\label{struct__GstTensorFilterFramework_a1a33232b22e84285328432f61a8d6e9c}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!open@{open}}
\index{open@{open}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{open}{open}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::open) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data)}

Optional. Tensor-\/filter will call this before any of other callbacks and will call once before calling close.

Note\+: If \textquotesingle{}open\textquotesingle{} callback is not defined, then the private\+\_\+data passed in other callbacks will be N\+U\+LL.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values. \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. Normally, \mbox{\hyperlink{struct__GstTensorFilterFramework_a1a33232b22e84285328432f61a8d6e9c}{open()}} allocates memory for private\+\_\+data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if ok. $<$ 0 if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a098f9c777020721c87d31c466390f85f}\label{struct__GstTensorFilterFramework_a098f9c777020721c87d31c466390f85f}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!reloadModel@{reloadModel}}
\index{reloadModel@{reloadModel}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{reloadModel}{reloadModel}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::reload\+Model) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data)}

Optional. Tensor-\/filter will call it when a model property is newly configured. Also, \textquotesingle{}is-\/updatable\textquotesingle{} property of the framework should be T\+R\+UE. This function reloads a new model specified in the \textquotesingle{}prop\textquotesingle{} argument. Note that it requires extra memory size enough to temporarily hold both old and new models during this function to hide the reload overhead.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. Normally, \mbox{\hyperlink{struct__GstTensorFilterFramework_a10078a4537cefe8ea551fd4ad55f1481}{close()}} frees private\+\_\+data and set N\+U\+LL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if ok. $<$ 0 if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_aae4b90bb42d3af809d949b4e5649e97d}\label{struct__GstTensorFilterFramework_aae4b90bb42d3af809d949b4e5649e97d}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!run\_without\_model@{run\_without\_model}}
\index{run\_without\_model@{run\_without\_model}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{run\_without\_model}{run\_without\_model}}
{\footnotesize\ttfamily int \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::run\+\_\+without\+\_\+model}

T\+R\+U\+E(nonzero) when the neural network framework does not need a model file. Tensor-\/filter will run invoke\+\_\+\+NN without model. 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_aa82797c16bd2921b4e6536b6c5548154}\label{struct__GstTensorFilterFramework_aa82797c16bd2921b4e6536b6c5548154}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!setInputDimension@{setInputDimension}}
\index{setInputDimension@{setInputDimension}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{setInputDimension}{setInputDimension}}
{\footnotesize\ttfamily int($\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::set\+Input\+Dimension) (const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a7428acc2020e8d15a75cda36d49c1beb}{Gst\+Tensor\+Filter\+Properties}} $\ast$\mbox{\hyperlink{gsttensor__srciio_8c_ad143acf0919ab4b62947be3f2f168a91}{prop}}, void $\ast$$\ast$private\+\_\+data, const \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}} $\ast$out\+\_\+info)}

Optional. Set Null if not supported. Tensor\+\_\+\+Filter\+::main will configure input dimension from pad-\/cap in run-\/time for the sub-\/plugin. Then, the sub-\/plugin is required to return corresponding output dimension If this is N\+U\+LL, both get\+Input/\+Output\+Dimension must be non-\/\+N\+U\+LL.

When you use this, do N\+OT allocate or fix internal data structure based on it until invoke is called. G\+Streamer may try different dimensions before settling down.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em prop} & read-\/only property values \\
\hline
 & {\em \mbox{[}in/out\mbox{]}} & private\+\_\+data A subplugin may save its internal private data here. The subplugin is responsible for alloc/free of this pointer. \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & structure of input tensor info \\
\hline
\mbox{\texttt{ out}}  & {\em out\+\_\+info} & structure of output tensor info (return value) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK. non-\/zero if error. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a41c904d282b040f144c78d96accc1df0}\label{struct__GstTensorFilterFramework_a41c904d282b040f144c78d96accc1df0}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!statistics@{statistics}}
\index{statistics@{statistics}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{statistics}{statistics}}
{\footnotesize\ttfamily const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a29e3d933ada7431e16e3b470c8786c05}{Gst\+Tensor\+Filter\+Framework\+Statistics}}$\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::statistics}

usage statistics by the framework. This is shared across all opened instances of this framework. 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a9be6bdf8c7fe2ef2b9437db23b02cd4f}\label{struct__GstTensorFilterFramework_a9be6bdf8c7fe2ef2b9437db23b02cd4f}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!subplugin\_data@{subplugin\_data}}
\index{subplugin\_data@{subplugin\_data}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{subplugin\_data}{subplugin\_data}}
{\footnotesize\ttfamily void$\ast$ \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::subplugin\+\_\+data}

This is used by tensor\+\_\+filter infrastructure. Subplugin authors should N\+E\+V\+ER update this. Only the files in /gst/nnstreamer/tensor\+\_\+filter/ are allowed to access this. 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_aeffa0eb01dab6510ddebec3811e21f79}\label{struct__GstTensorFilterFramework_aeffa0eb01dab6510ddebec3811e21f79}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!verify\_model\_path@{verify\_model\_path}}
\index{verify\_model\_path@{verify\_model\_path}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{verify\_model\_path}{verify\_model\_path}}
{\footnotesize\ttfamily int \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::verify\+\_\+model\+\_\+path}

T\+R\+U\+E(nonzero) when the N\+NS framework, not the sub-\/plugin, should verify the path of model files. 

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

\mbox{\Hypertarget{struct__GstTensorFilterFramework_a7077b7a838707889698a42d294ef3488}\label{struct__GstTensorFilterFramework_a7077b7a838707889698a42d294ef3488}} 
\index{\_GstTensorFilterFramework@{\_GstTensorFilterFramework}!version@{version}}
\index{version@{version}!\_GstTensorFilterFramework@{\_GstTensorFilterFramework}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily uint64\+\_\+t \+\_\+\+Gst\+Tensor\+Filter\+Framework\+::version}

Version of the struct $\vert$ 32bit (validity check) $\vert$ 16bit (A\+PI version) $\vert$ 16bit (Subplugin\textquotesingle{}s internal version. Tensor-\/filter does not care.) $\vert$ A\+PI version will be 0x0 (earlier version (\+\_\+\+Gst\+Tensor\+Filter\+Framework\+\_\+v0)) or 0x1 (newer version (\+\_\+\+Gst\+Tensor\+Filter\+Framework\+\_\+v1)) 

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



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