\hypertarget{nnstreamer__internal_8h}{}\doxysection{nnstreamer/nnstreamer\+\_\+internal.h File Reference}
\label{nnstreamer__internal_8h}\index{nnstreamer/nnstreamer\_internal.h@{nnstreamer/nnstreamer\_internal.h}}


Internal header for N\+N\+Streamer plugins and native single-\/shot A\+P\+Is.  


{\ttfamily \#include $<$glib.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+plugin\+\_\+api\+\_\+filter.\+h$>$}\newline
Include dependency graph for nnstreamer\+\_\+internal.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=270pt]{nnstreamer__internal_8h__incl}
\end{center}
\end{figure}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
G\+\_\+\+B\+E\+G\+I\+N\+\_\+\+D\+E\+C\+LS gchar $\ast$ \mbox{\hyperlink{nnstreamer__internal_8h_a54abdb5eadcb73d10a0ac94cd34ec89e}{nnsconf\+\_\+get\+\_\+custom\+\_\+value\+\_\+string}} (const gchar $\ast$group, const gchar $\ast$key)
\begin{DoxyCompactList}\small\item\em Get the custom configuration value from .ini and envvar. @detail For predefined configurations defined in this header, use the given enum for faster configuration processing. For custom configurations not defined in this header, you may use this A\+PI to access your own custom configurations. Configuration values may be loaded only once during runtime, thus, if the values are changed in run-\/time, the changes are not guaranteed to be reflected. The E\+N\+V\+V\+AR is supposed to be N\+N\+S\+T\+R\+E\+A\+M\+E\+R\+\_\+\$\{group\}\+\_\+\$\{key\}, which has higher priority than the .ini configuration. Be careful not to use special characters in group name (\mbox{[}, \mbox{]}, \+\_\+). \end{DoxyCompactList}\item 
gboolean \mbox{\hyperlink{nnstreamer__internal_8h_a164ae561a7fa7608be1b924aa88f0817}{nnsconf\+\_\+get\+\_\+custom\+\_\+value\+\_\+bool}} (const gchar $\ast$group, const gchar $\ast$key, gboolean def)
\begin{DoxyCompactList}\small\item\em Get the custom configuration value from .ini and envvar. @detail For predefined configurations defined in this header, use the given enum for faster configuration processing. For custom configurations not defined in this header, you may use this A\+PI to access your own custom configurations. Configuration values may be loaded only once during runtime, thus, if the values are changed in run-\/time, the changes are not guaranteed to be reflected. The E\+N\+V\+V\+AR is supposed to be N\+N\+S\+T\+R\+E\+A\+M\+E\+R\+\_\+\$\{group\}\+\_\+\$\{key\}, which has higher priority than the .ini configuration. Be careful not to use special characters in group name (\mbox{[}, \mbox{]}, \+\_\+). \end{DoxyCompactList}\item 
gchar $\ast$ \mbox{\hyperlink{nnstreamer__internal_8h_a52ed536a0097da1ad36e7ba269c1c0f4}{gst\+\_\+tensor\+\_\+filter\+\_\+detect\+\_\+framework}} (const gchar $\ast$const $\ast$model\+\_\+files, const guint num\+\_\+models, const gboolean load\+\_\+conf)
\begin{DoxyCompactList}\small\item\em Get neural network framework name from given model file. This does not guarantee the framework is available on the target device. \end{DoxyCompactList}\item 
gboolean \mbox{\hyperlink{nnstreamer__internal_8h_abd17b98aee63a6d95af4078e94db4054}{gst\+\_\+tensor\+\_\+filter\+\_\+check\+\_\+hw\+\_\+availability}} (const gchar $\ast$name, const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}} hw, const char $\ast$custom)
\begin{DoxyCompactList}\small\item\em Check if the given hw is supported by the framework. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Internal header for N\+N\+Streamer plugins and native single-\/shot A\+P\+Is. 

Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved.

\begin{DoxyDate}{Date}
28 Jan 2021 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{http://github.com/nnstreamer/nnstreamer}{\texttt{ http\+://github.\+com/nnstreamer/nnstreamer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Jaeyun Jung \href{mailto:jy1210.jung@samsung.com}{\texttt{ jy1210.\+jung@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000089}{Bug}}]No known bugs except for N\+YI items \end{DoxyRefDesc}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{nnstreamer__internal_8h_abd17b98aee63a6d95af4078e94db4054}\label{nnstreamer__internal_8h_abd17b98aee63a6d95af4078e94db4054}} 
\index{nnstreamer\_internal.h@{nnstreamer\_internal.h}!gst\_tensor\_filter\_check\_hw\_availability@{gst\_tensor\_filter\_check\_hw\_availability}}
\index{gst\_tensor\_filter\_check\_hw\_availability@{gst\_tensor\_filter\_check\_hw\_availability}!nnstreamer\_internal.h@{nnstreamer\_internal.h}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_filter\_check\_hw\_availability()}{gst\_tensor\_filter\_check\_hw\_availability()}}
{\footnotesize\ttfamily gboolean gst\+\_\+tensor\+\_\+filter\+\_\+check\+\_\+hw\+\_\+availability (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{name,  }\item[{const \mbox{\hyperlink{nnstreamer__plugin__api__filter_8h_a9aeeff91a7314001f4011dbdcb7500f8}{accl\+\_\+hw}}}]{hw,  }\item[{const char $\ast$}]{custom }\end{DoxyParamCaption})}



Check if the given hw is supported by the framework. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & The name of filter sub-\/plugin. \\
\hline
\mbox{\texttt{ in}}  & {\em hw} & Backend accelerator hardware. \\
\hline
\mbox{\texttt{ in}}  & {\em custom} & User-\/defined string to handle detailed hardware option. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if given hw is available.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function is included in nnstreamer internal header for native A\+P\+Is. When changing the declaration, you should update the internal header (\mbox{\hyperlink{nnstreamer__internal_8h}{nnstreamer\+\_\+internal.\+h}}). 
\end{DoxyNote}
Only check for specific HW, D\+E\+F\+A\+U\+L\+T/\+A\+U\+TO are always supported

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

\mbox{\Hypertarget{nnstreamer__internal_8h_a52ed536a0097da1ad36e7ba269c1c0f4}\label{nnstreamer__internal_8h_a52ed536a0097da1ad36e7ba269c1c0f4}} 
\index{nnstreamer\_internal.h@{nnstreamer\_internal.h}!gst\_tensor\_filter\_detect\_framework@{gst\_tensor\_filter\_detect\_framework}}
\index{gst\_tensor\_filter\_detect\_framework@{gst\_tensor\_filter\_detect\_framework}!nnstreamer\_internal.h@{nnstreamer\_internal.h}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_filter\_detect\_framework()}{gst\_tensor\_filter\_detect\_framework()}}
{\footnotesize\ttfamily gchar$\ast$ gst\+\_\+tensor\+\_\+filter\+\_\+detect\+\_\+framework (\begin{DoxyParamCaption}\item[{const gchar $\ast$const $\ast$}]{model\+\_\+files,  }\item[{const guint}]{num\+\_\+models,  }\item[{const gboolean}]{load\+\_\+conf }\end{DoxyParamCaption})}



Get neural network framework name from given model file. This does not guarantee the framework is available on the target device. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em model\+\_\+files} & the prediction model paths \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+models} & the number of model files \\
\hline
\mbox{\texttt{ in}}  & {\em load\+\_\+conf} & flag to load configuration for the priority of framework \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Possible framework name (N\+U\+LL if it fails to detect automatically). Caller should free returned value using \mbox{\hyperlink{gsttensor__decoder_8c_adfb1d2a9811131e9bced03a25b24e71c}{g\+\_\+free()}}.
\end{DoxyReturn}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em model\+\_\+files} & the prediction model paths \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+models} & the number of model files \\
\hline
\mbox{\texttt{ in}}  & {\em load\+\_\+conf} & flag to load configuration for the priority of framework \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Possible framework name (N\+U\+LL if it fails to detect automatically). Caller should free returned value using \mbox{\hyperlink{gsttensor__decoder_8c_adfb1d2a9811131e9bced03a25b24e71c}{g\+\_\+free()}}. 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function is included in nnstreamer internal header for native A\+P\+Is. When changing the declaration, you should update the internal header (\mbox{\hyperlink{nnstreamer__internal_8h}{nnstreamer\+\_\+internal.\+h}}). 
\end{DoxyNote}
\begin{DoxyNote}{Note}
When adding new file extension for auto fw detection, you should check the condition to validate model file -\/ ml\+\_\+validate\+\_\+model\+\_\+file() in M\+L-\/\+A\+PI.
\end{DoxyNote}


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

\mbox{\Hypertarget{nnstreamer__internal_8h_a164ae561a7fa7608be1b924aa88f0817}\label{nnstreamer__internal_8h_a164ae561a7fa7608be1b924aa88f0817}} 
\index{nnstreamer\_internal.h@{nnstreamer\_internal.h}!nnsconf\_get\_custom\_value\_bool@{nnsconf\_get\_custom\_value\_bool}}
\index{nnsconf\_get\_custom\_value\_bool@{nnsconf\_get\_custom\_value\_bool}!nnstreamer\_internal.h@{nnstreamer\_internal.h}}
\doxysubsubsection{\texorpdfstring{nnsconf\_get\_custom\_value\_bool()}{nnsconf\_get\_custom\_value\_bool()}}
{\footnotesize\ttfamily gboolean nnsconf\+\_\+get\+\_\+custom\+\_\+value\+\_\+bool (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{group,  }\item[{const gchar $\ast$}]{key,  }\item[{gboolean}]{def }\end{DoxyParamCaption})}



Get the custom configuration value from .ini and envvar. @detail For predefined configurations defined in this header, use the given enum for faster configuration processing. For custom configurations not defined in this header, you may use this A\+PI to access your own custom configurations. Configuration values may be loaded only once during runtime, thus, if the values are changed in run-\/time, the changes are not guaranteed to be reflected. The E\+N\+V\+V\+AR is supposed to be N\+N\+S\+T\+R\+E\+A\+M\+E\+R\+\_\+\$\{group\}\+\_\+\$\{key\}, which has higher priority than the .ini configuration. Be careful not to use special characters in group name (\mbox{[}, \mbox{]}, \+\_\+). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em group} & The group name, \mbox{[}group\mbox{]}, in .ini file. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The key name, key = value, in .ini file. \\
\hline
\mbox{\texttt{ in}}  & {\em def} & The default return value in case there is no value available. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The value interpreted as T\+R\+U\+E/\+F\+A\+L\+SE.
\end{DoxyReturn}
Get the custom configuration value from .ini and envvar. @detail For predefined configurations defined in this header, use the given enum for faster configuration processing. For custom configurations not defined in this header, you may use this A\+PI to access your own custom configurations. Configuration values may be loaded only once during runtime, thus, if the values are changed in run-\/time, the changes are not guaranteed to be reflected. The E\+N\+V\+V\+AR is supposed to be N\+N\+S\+T\+R\+E\+A\+M\+E\+R\+\_\+\$\{group\}\+\_\+\$\{key\}, which has higher priority than the .ini configuration. Be careful not to use special characters in group name (\mbox{[}, \mbox{]}, \+\_\+).

\begin{DoxyNote}{Note}
This function is included in nnstreamer internal header for native A\+P\+Is. When changing the declaration, you should update the internal header (\mbox{\hyperlink{nnstreamer__internal_8h}{nnstreamer\+\_\+internal.\+h}}). 
\end{DoxyNote}


Definition at line 609 of file nnstreamer\+\_\+conf.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{nnstreamer__internal_8h_a164ae561a7fa7608be1b924aa88f0817_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{nnstreamer__internal_8h_a54abdb5eadcb73d10a0ac94cd34ec89e}\label{nnstreamer__internal_8h_a54abdb5eadcb73d10a0ac94cd34ec89e}} 
\index{nnstreamer\_internal.h@{nnstreamer\_internal.h}!nnsconf\_get\_custom\_value\_string@{nnsconf\_get\_custom\_value\_string}}
\index{nnsconf\_get\_custom\_value\_string@{nnsconf\_get\_custom\_value\_string}!nnstreamer\_internal.h@{nnstreamer\_internal.h}}
\doxysubsubsection{\texorpdfstring{nnsconf\_get\_custom\_value\_string()}{nnsconf\_get\_custom\_value\_string()}}
{\footnotesize\ttfamily G\+\_\+\+B\+E\+G\+I\+N\+\_\+\+D\+E\+C\+LS gchar$\ast$ nnsconf\+\_\+get\+\_\+custom\+\_\+value\+\_\+string (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{group,  }\item[{const gchar $\ast$}]{key }\end{DoxyParamCaption})}



Get the custom configuration value from .ini and envvar. @detail For predefined configurations defined in this header, use the given enum for faster configuration processing. For custom configurations not defined in this header, you may use this A\+PI to access your own custom configurations. Configuration values may be loaded only once during runtime, thus, if the values are changed in run-\/time, the changes are not guaranteed to be reflected. The E\+N\+V\+V\+AR is supposed to be N\+N\+S\+T\+R\+E\+A\+M\+E\+R\+\_\+\$\{group\}\+\_\+\$\{key\}, which has higher priority than the .ini configuration. Be careful not to use special characters in group name (\mbox{[}, \mbox{]}, \+\_\+). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em group} & The group name, \mbox{[}group\mbox{]}, in .ini file. \\
\hline
\mbox{\texttt{ in}}  & {\em key} & The key name, key = value, in .ini file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The newly allocated string. A caller must free it. N\+U\+LL if it\textquotesingle{}s not available.
\end{DoxyReturn}
Get the custom configuration value from .ini and envvar. @detail For predefined configurations defined in this header, use the given enum for faster configuration processing. For custom configurations not defined in this header, you may use this A\+PI to access your own custom configurations. Configuration values may be loaded only once during runtime, thus, if the values are changed in run-\/time, the changes are not guaranteed to be reflected. The E\+N\+V\+V\+AR is supposed to be N\+N\+S\+T\+R\+E\+A\+M\+E\+R\+\_\+\$\{group\}\+\_\+\$\{key\}, which has higher priority than the .ini configuration. Be careful not to use special characters in group name (\mbox{[}, \mbox{]}, \+\_\+).

\begin{DoxyNote}{Note}
This function is included in nnstreamer internal header for native A\+P\+Is. When changing the declaration, you should update the internal header (\mbox{\hyperlink{nnstreamer__internal_8h}{nnstreamer\+\_\+internal.\+h}}). 
\end{DoxyNote}
Internal lib error? out-\/of-\/memory?

Definition at line 557 of file nnstreamer\+\_\+conf.\+c.

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