\hypertarget{gsttensor__converter_8c}{}\doxysection{nnstreamer/elements/gsttensor\+\_\+converter.c File Reference}
\label{gsttensor__converter_8c}\index{nnstreamer/elements/gsttensor\_converter.c@{nnstreamer/elements/gsttensor\_converter.c}}


G\+Streamer plugin to convert media types to tensors (as a filter for other general neural network filters)  


{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include \char`\"{}gsttensor\+\_\+converter.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}tensor\+\_\+meta.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}gsttensor\+\_\+converter\+\_\+media\+\_\+info\+\_\+video.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}gsttensor\+\_\+converter\+\_\+media\+\_\+info\+\_\+audio.\+h\char`\"{}}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+log.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+subplugin.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+util.\+h$>$}\newline
Include dependency graph for gsttensor\+\_\+converter.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a13fa1cedf83017ce43fec633bc6adbcf}{T\+E\+X\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR}}~\char`\"{}text/x-\/raw, format = (string) utf8\char`\"{}
\begin{DoxyCompactList}\small\item\em Caps string for text input. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a1f977ee64258e1689fcd4fe59f69522a}{append\+\_\+text\+\_\+caps\+\_\+template}}(caps)~gst\+\_\+caps\+\_\+append (caps, gst\+\_\+caps\+\_\+from\+\_\+string (\mbox{\hyperlink{gsttensor__converter_8c_a13fa1cedf83017ce43fec633bc6adbcf}{T\+E\+X\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR}}))
\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a37fd471cdeafac91a21f6f17ca3975e8}{O\+C\+T\+E\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR}}~\char`\"{}application/octet-\/stream\char`\"{}
\begin{DoxyCompactList}\small\item\em Caps string for binary stream. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_addd21b2717a865ea3158214e530528c8}{append\+\_\+octet\+\_\+caps\+\_\+template}}(caps)~gst\+\_\+caps\+\_\+append (caps, gst\+\_\+caps\+\_\+from\+\_\+string (\mbox{\hyperlink{gsttensor__converter_8c_a37fd471cdeafac91a21f6f17ca3975e8}{O\+C\+T\+E\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR}}))
\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a400809291788ece47fe415c4c1dc18cd}{append\+\_\+flex\+\_\+tensor\+\_\+caps\+\_\+template}}(caps)~gst\+\_\+caps\+\_\+append (caps, gst\+\_\+caps\+\_\+from\+\_\+string (\mbox{\hyperlink{tensor__typedef_8h_a71856faf2269f48f212cac74c553ed94}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+F\+L\+E\+X\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}}))
\begin{DoxyCompactList}\small\item\em Macro to append template caps for flexible tensor. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a49606be7356624568932ec81c0d429f4}{D\+BG}}~(!self-\/$>$silent)
\begin{DoxyCompactList}\small\item\em Macro for debug mode. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a6d80cbef34364c619b7722040078a304}{silent\+\_\+debug\+\_\+timestamp}}(self,  buf)
\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_adef911caed7c65a1643062817f4a59d7}{G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT}}~gst\+\_\+tensor\+\_\+converter\+\_\+debug
\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_ae7661df81019886af67cd4158eca7f20}{S\+T\+R\+I\+N\+G\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+M\+O\+DE}}(self)
\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a3ced511e59a6ff44c7cfc8e000af9f36}{D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+E\+T\+\_\+\+T\+I\+M\+E\+S\+T\+A\+MP}}~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}
\begin{DoxyCompactList}\small\item\em Flag to set timestamp when received a buffer with invalid timestamp. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a18d799dbbbb0fd0132807aa9bb7d9adf}{D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+I\+L\+E\+NT}}~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}
\begin{DoxyCompactList}\small\item\em Flag to print minimized log. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a064d362f3dc2e11b6ed400a6d69f2053}{D\+E\+F\+A\+U\+L\+T\+\_\+\+F\+R\+A\+M\+E\+S\+\_\+\+P\+E\+R\+\_\+\+T\+E\+N\+S\+OR}}~1
\begin{DoxyCompactList}\small\item\em Frames in output tensor. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__converter_8c_a9bde3fb9d39ea5e0efdac4c1e733c948}{gst\+\_\+tensor\+\_\+converter\+\_\+parent\+\_\+class}}~parent\+\_\+class
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \newline
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4dac37dda0da1a44e10c0504afeeb863f3c}{P\+R\+O\+P\+\_\+0}}, 
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da00f11c5c44a387d6b19d305b27591c8b}{P\+R\+O\+P\+\_\+\+I\+N\+P\+U\+T\+\_\+\+D\+I\+M\+E\+N\+S\+I\+ON}}, 
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4daeea5e8e376cee3f4566a3d2757b12551}{P\+R\+O\+P\+\_\+\+I\+N\+P\+U\+T\+\_\+\+T\+Y\+PE}}, 
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4daf9d3f7fd2695326dddba6d03b1352382}{P\+R\+O\+P\+\_\+\+F\+R\+A\+M\+E\+S\+\_\+\+P\+E\+R\+\_\+\+T\+E\+N\+S\+OR}}, 
\newline
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da2d6e140d873b16157bdd1e91f7862924}{P\+R\+O\+P\+\_\+\+S\+E\+T\+\_\+\+T\+I\+M\+E\+S\+T\+A\+MP}}, 
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4dac64687b09b2747b0d6079d424b41b8c2}{P\+R\+O\+P\+\_\+\+S\+U\+B\+P\+L\+U\+G\+I\+NS}}, 
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da707b785966c328fb5a6088b7879c7bb5}{P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT}}, 
\mbox{\hyperlink{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da0b5a29cfd0fc43c914507e65e3aec94f}{P\+R\+O\+P\+\_\+\+M\+O\+DE}}
 \}
\begin{DoxyCompactList}\small\item\em tensor\+\_\+converter properties \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{gsttensor__converter_8c_a425903e3498cfda8ecf8c33061f9d36d}{G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC}} (gst\+\_\+tensor\+\_\+converter\+\_\+debug)
\item 
\mbox{\hyperlink{gsttensor__converter_8c_af74a62a37fc2665fbfab1bc29074aeb9}{G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}}, gst\+\_\+tensor\+\_\+converter, G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+L\+E\+M\+E\+NT)
\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a3bd76c281f1c8aa42f8c2a843ef6aeaf}{gst\+\_\+tensor\+\_\+converter\+\_\+finalize}} (G\+Object $\ast$object)
\begin{DoxyCompactList}\small\item\em Function to finalize instance. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a48f520f00135c3cd3e54f73a2c64ae16}{gst\+\_\+tensor\+\_\+converter\+\_\+set\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, const G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Setter for tensor\+\_\+converter properties. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_adcd585f270e845bfc9baec50472b5bf6}{gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Getter for tensor\+\_\+converter properties. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a2cc092468bc1df6d1fb016f6063f1777}{gst\+\_\+tensor\+\_\+converter\+\_\+sink\+\_\+event}} (Gst\+Pad $\ast$pad, Gst\+Object $\ast$parent, Gst\+Event $\ast$event)
\begin{DoxyCompactList}\small\item\em This function handles sink event. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a2f7bc46d5f0431100ce41129d2237505}{gst\+\_\+tensor\+\_\+converter\+\_\+sink\+\_\+query}} (Gst\+Pad $\ast$pad, Gst\+Object $\ast$parent, Gst\+Query $\ast$query)
\begin{DoxyCompactList}\small\item\em This function handles sink pad query. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_aec7d72f1b695a251c9f00c28006e52cf}{gst\+\_\+tensor\+\_\+converter\+\_\+src\+\_\+query}} (Gst\+Pad $\ast$pad, Gst\+Object $\ast$parent, Gst\+Query $\ast$query)
\begin{DoxyCompactList}\small\item\em This function handles src pad query. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__converter_8c_ae1a5123e05473623cae251c467e19a30}{gst\+\_\+tensor\+\_\+converter\+\_\+chain}} (Gst\+Pad $\ast$pad, Gst\+Object $\ast$parent, Gst\+Buffer $\ast$buf)
\begin{DoxyCompactList}\small\item\em Chain function, this function does the actual processing. \end{DoxyCompactList}\item 
static Gst\+State\+Change\+Return \mbox{\hyperlink{gsttensor__converter_8c_af05f5cfae6c81e7bdf080b24bda3c4d6}{gst\+\_\+tensor\+\_\+converter\+\_\+change\+\_\+state}} (Gst\+Element $\ast$element, Gst\+State\+Change transition)
\begin{DoxyCompactList}\small\item\em Called to perform state change. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a255c7af36901b2ded1208488ec29b763}{gst\+\_\+tensor\+\_\+converter\+\_\+reset}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Clear and reset data. \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_a60cefa6bb66d81524439f35be66de728}{gst\+\_\+tensor\+\_\+converter\+\_\+query\+\_\+caps}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Pad $\ast$pad, Gst\+Caps $\ast$filter)
\begin{DoxyCompactList}\small\item\em Get pad caps for caps negotiation. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_acc906b3a93d079228eb22e6891d43590}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+caps}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, const Gst\+Caps $\ast$caps)
\begin{DoxyCompactList}\small\item\em Parse caps and set tensors info. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a0707850a6d2450fb2887c99001259c7a}{gst\+\_\+tensor\+\_\+converter\+\_\+update\+\_\+caps}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Update src pad caps from tensors config. \end{DoxyCompactList}\item 
static const \mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_a146a5ade695d2aeb357b66e137349f5d}{find\+External\+Converter}} (const char $\ast$\mbox{\hyperlink{tensor__typedef_8h_a179b411a3defbc62047b1f892ff41f82}{media\+\_\+type}})
\begin{DoxyCompactList}\small\item\em Internal static function to find registered subplugins. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a400b29a5573ed0c167935ff06553eff3}{gst\+\_\+tensor\+\_\+converter\+\_\+class\+\_\+init}} (\mbox{\hyperlink{gsttensor__converter_8h_add84cd49f3d1684cf135ad91b00dfa85}{Gst\+Tensor\+Converter\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Initialize the tensor\+\_\+converter\textquotesingle{}s class. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a370ad4480b1965cea585d972a884ef8b}{gst\+\_\+tensor\+\_\+converter\+\_\+init}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Initialize tensor\+\_\+converter element. \end{DoxyCompactList}\item 
static Gst\+Adapter $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_ad3a32039921cfe9f41f09c72c8263c99}{gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+adapter}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Buffer $\ast$buf)
\begin{DoxyCompactList}\small\item\em Internal function to get adapter. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_ada1881a7c5feb558c38319d5ea03cf22}{\+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+segment}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, gsize frame\+\_\+size)
\begin{DoxyCompactList}\small\item\em Chain function\textquotesingle{}s private routine. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_ad1acfc2eeca5087a656bc388ebc76136}{\+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+timestamp}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Buffer $\ast$inbuf, guint frames\+\_\+in)
\begin{DoxyCompactList}\small\item\em Chain function\textquotesingle{}s private routine. \end{DoxyCompactList}\item 
static Gst\+Buffer $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_a3a56b3fa8f0dde27a1062e3fe2d77818}{\+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+octet}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Buffer $\ast$buf)
\begin{DoxyCompactList}\small\item\em Chain function\textquotesingle{}s private routine to process octet stream. \end{DoxyCompactList}\item 
static Gst\+Buffer $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_aab4740014ba537cc6fe922263476e3f0}{\+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+flex\+\_\+tensor}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Buffer $\ast$buf)
\begin{DoxyCompactList}\small\item\em Chain function\textquotesingle{}s private routine to process flex tensor. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__converter_8c_af916ff3759557d4c8e5bf3f67958d0df}{\+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+push}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Buffer $\ast$buf)
\begin{DoxyCompactList}\small\item\em Chain function\textquotesingle{}s private routine to push buffer into src pad. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__converter_8c_ac675866d5a3674d8826ca6041f6d55c1}{\+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+chunk}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, Gst\+Buffer $\ast$inbuf, guint frames\+\_\+in, guint frames\+\_\+out, gsize frame\+\_\+size)
\begin{DoxyCompactList}\small\item\em Chain function\textquotesingle{}s private routine to push multiple buffers. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__converter_8c_a93805f836ded7677f9a5f1815390b8ce}{gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+format\+\_\+list}} (G\+Value $\ast$list,...)
\begin{DoxyCompactList}\small\item\em Get supported format list. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a9bb8ae198da01c18369c5dc471cbc46c}{gst\+\_\+tensor\+\_\+converter\+\_\+video\+\_\+stride}} (\mbox{\hyperlink{gsttensor__converter__media__no__video_8h_a3ce1669c0a6750341527c0657808a846}{Gst\+Video\+Format}} format, gint width)
\begin{DoxyCompactList}\small\item\em Determine if we need zero-\/padding. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a459991474b490e9f009df05ab0b48842}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+video}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, const Gst\+Caps $\ast$caps, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config)
\begin{DoxyCompactList}\small\item\em Set the tensors config structure from video info (internal static function) \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_af65884f25a0694ce04812b6ebeef6baa}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+audio}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, const Gst\+Caps $\ast$caps, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config)
\begin{DoxyCompactList}\small\item\em Set the tensors config structure from audio info (internal static function) \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_afbd0675761aa00b2098aadcffe993e9f}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+text}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config, const Gst\+Structure $\ast$structure)
\begin{DoxyCompactList}\small\item\em Set the tensors config structure from text info (internal static function) \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a9655cf6b84114280e85dd8939e5955ef}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+octet}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config, const Gst\+Structure $\ast$structure)
\begin{DoxyCompactList}\small\item\em Set the tensors configs structure from octet stream (internal static function) \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a2f3ff8d9a40a4cc1e2f7f2bf9f9c723b}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+tensor}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config, const Gst\+Structure $\ast$structure)
\begin{DoxyCompactList}\small\item\em Set the tensors configs structure from fliex tensor stream (internal static function) \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a64e56ffa876db5119fe89a5f2b8e101f}{gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+custom}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config, const Gst\+Caps $\ast$caps)
\begin{DoxyCompactList}\small\item\em Set the tensors config structure from caps (internal static function for custom mode) \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_ab3afa6512dd8161227070c9d1d92eed2}{gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+possible\+\_\+media\+\_\+caps}} (\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$self)
\begin{DoxyCompactList}\small\item\em Get possible media-\/caps from downstream element. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$ \mbox{\hyperlink{gsttensor__converter_8c_af15864613f51b14df5a7b0e8da55977b}{nnstreamer\+\_\+converter\+\_\+find}} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Find converter sub-\/plugin with the name. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__converter_8c_a0280999609807fd466a24172a8b1e0bb}{nnstreamer\+\_\+converter\+\_\+validate}} (const \mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$converter)
\begin{DoxyCompactList}\small\item\em Validate converter sub-\/plugin\textquotesingle{}s data. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{gsttensor__converter_8c_a73d54b17addf666be72484d4efb3b0b6}{register\+External\+Converter}} (\mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$ex)
\begin{DoxyCompactList}\small\item\em Converter\textquotesingle{}s external subplugins should call this at init. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{gsttensor__converter_8c_ac168ff55404de4ce752492c14a90ef33}{unregister\+External\+Converter}} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Converter\textquotesingle{}s external subplugins should call this at exit. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{gsttensor__converter_8c_a841a35feca3b853cf599235c5a4948a0}{nnstreamer\+\_\+converter\+\_\+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 converter sub-\/plugin \end{DoxyCompactList}\item 
int \mbox{\hyperlink{gsttensor__converter_8c_af29f7bbcd5f3b0b8ddc7ae773eb770dc}{nnstreamer\+\_\+converter\+\_\+custom\+\_\+register}} (const gchar $\ast$name, \mbox{\hyperlink{tensor__converter__custom_8h_a6e01cf896922b5c7412d99603566d619}{tensor\+\_\+converter\+\_\+custom}} func, void $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})
\begin{DoxyCompactList}\small\item\em Registers a callback for tensor\+\_\+converter custom condition. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{gsttensor__converter_8c_ad95aaba85ff633b94836e4968fd7f195}{nnstreamer\+\_\+converter\+\_\+custom\+\_\+unregister}} (const gchar $\ast$name)
\begin{DoxyCompactList}\small\item\em Unregisters a callback for tensor\+\_\+converter custom condition. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
G\+Streamer plugin to convert media types to tensors (as a filter for other general neural network filters) 

G\+Streamer Copyright (C) 2005 Thomas Vander Stichele \href{mailto:thomas@apestaart.org}{\texttt{ thomas@apestaart.\+org}} Copyright (C) 2005 Ronald S. Bultje \href{mailto:rbultje@ronald.bitfreak.net}{\texttt{ rbultje@ronald.\+bitfreak.\+net}} Copyright (C) 2018 Myung\+Joo Ham \href{mailto:myungjoo.ham@samsung.com}{\texttt{ myungjoo.\+ham@samsung.\+com}}

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

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

\begin{DoxyDate}{Date}
26 Mar 2018 
\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__bug000026}{Bug}}]No known bugs except for N\+YI items \end{DoxyRefDesc}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000011}{Todo}}]For flatbuffers, support other/tensors with properties 

Subplugins are not tested, yet. \end{DoxyRefDesc}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{gsttensor__converter_8c_a400809291788ece47fe415c4c1dc18cd}\label{gsttensor__converter_8c_a400809291788ece47fe415c4c1dc18cd}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!append\_flex\_tensor\_caps\_template@{append\_flex\_tensor\_caps\_template}}
\index{append\_flex\_tensor\_caps\_template@{append\_flex\_tensor\_caps\_template}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{append\_flex\_tensor\_caps\_template}{append\_flex\_tensor\_caps\_template}}
{\footnotesize\ttfamily \#define append\+\_\+flex\+\_\+tensor\+\_\+caps\+\_\+template(\begin{DoxyParamCaption}\item[{}]{caps }\end{DoxyParamCaption})~gst\+\_\+caps\+\_\+append (caps, gst\+\_\+caps\+\_\+from\+\_\+string (\mbox{\hyperlink{tensor__typedef_8h_a71856faf2269f48f212cac74c553ed94}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+F\+L\+E\+X\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}}))}



Macro to append template caps for flexible tensor. 



Definition at line 85 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_addd21b2717a865ea3158214e530528c8}\label{gsttensor__converter_8c_addd21b2717a865ea3158214e530528c8}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!append\_octet\_caps\_template@{append\_octet\_caps\_template}}
\index{append\_octet\_caps\_template@{append\_octet\_caps\_template}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{append\_octet\_caps\_template}{append\_octet\_caps\_template}}
{\footnotesize\ttfamily \#define append\+\_\+octet\+\_\+caps\+\_\+template(\begin{DoxyParamCaption}\item[{}]{caps }\end{DoxyParamCaption})~gst\+\_\+caps\+\_\+append (caps, gst\+\_\+caps\+\_\+from\+\_\+string (\mbox{\hyperlink{gsttensor__converter_8c_a37fd471cdeafac91a21f6f17ca3975e8}{O\+C\+T\+E\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR}}))}



Definition at line 79 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a1f977ee64258e1689fcd4fe59f69522a}\label{gsttensor__converter_8c_a1f977ee64258e1689fcd4fe59f69522a}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!append\_text\_caps\_template@{append\_text\_caps\_template}}
\index{append\_text\_caps\_template@{append\_text\_caps\_template}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{append\_text\_caps\_template}{append\_text\_caps\_template}}
{\footnotesize\ttfamily \#define append\+\_\+text\+\_\+caps\+\_\+template(\begin{DoxyParamCaption}\item[{}]{caps }\end{DoxyParamCaption})~gst\+\_\+caps\+\_\+append (caps, gst\+\_\+caps\+\_\+from\+\_\+string (\mbox{\hyperlink{gsttensor__converter_8c_a13fa1cedf83017ce43fec633bc6adbcf}{T\+E\+X\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR}}))}



Definition at line 71 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a49606be7356624568932ec81c0d429f4}\label{gsttensor__converter_8c_a49606be7356624568932ec81c0d429f4}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!DBG@{DBG}}
\index{DBG@{DBG}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{DBG}{DBG}}
{\footnotesize\ttfamily \#define D\+BG~(!self-\/$>$silent)}



Macro for debug mode. 



Definition at line 92 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a064d362f3dc2e11b6ed400a6d69f2053}\label{gsttensor__converter_8c_a064d362f3dc2e11b6ed400a6d69f2053}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!DEFAULT\_FRAMES\_PER\_TENSOR@{DEFAULT\_FRAMES\_PER\_TENSOR}}
\index{DEFAULT\_FRAMES\_PER\_TENSOR@{DEFAULT\_FRAMES\_PER\_TENSOR}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_FRAMES\_PER\_TENSOR}{DEFAULT\_FRAMES\_PER\_TENSOR}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+F\+R\+A\+M\+E\+S\+\_\+\+P\+E\+R\+\_\+\+T\+E\+N\+S\+OR~1}



Frames in output tensor. 



Definition at line 142 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a3ced511e59a6ff44c7cfc8e000af9f36}\label{gsttensor__converter_8c_a3ced511e59a6ff44c7cfc8e000af9f36}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!DEFAULT\_SET\_TIMESTAMP@{DEFAULT\_SET\_TIMESTAMP}}
\index{DEFAULT\_SET\_TIMESTAMP@{DEFAULT\_SET\_TIMESTAMP}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_SET\_TIMESTAMP}{DEFAULT\_SET\_TIMESTAMP}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+E\+T\+\_\+\+T\+I\+M\+E\+S\+T\+A\+MP~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}}



Flag to set timestamp when received a buffer with invalid timestamp. 



Definition at line 132 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a18d799dbbbb0fd0132807aa9bb7d9adf}\label{gsttensor__converter_8c_a18d799dbbbb0fd0132807aa9bb7d9adf}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!DEFAULT\_SILENT@{DEFAULT\_SILENT}}
\index{DEFAULT\_SILENT@{DEFAULT\_SILENT}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_SILENT}{DEFAULT\_SILENT}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+I\+L\+E\+NT~\mbox{\hyperlink{gsttensor__if_8c_a834713a9a17ec303f21e3dc4ecbe9161}{T\+R\+UE}}}



Flag to print minimized log. 



Definition at line 137 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_adef911caed7c65a1643062817f4a59d7}\label{gsttensor__converter_8c_adef911caed7c65a1643062817f4a59d7}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}}
\index{GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{GST\_CAT\_DEFAULT}{GST\_CAT\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT~gst\+\_\+tensor\+\_\+converter\+\_\+debug}



Definition at line 104 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a9bde3fb9d39ea5e0efdac4c1e733c948}\label{gsttensor__converter_8c_a9bde3fb9d39ea5e0efdac4c1e733c948}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parent\_class@{gst\_tensor\_converter\_parent\_class}}
\index{gst\_tensor\_converter\_parent\_class@{gst\_tensor\_converter\_parent\_class}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parent\_class}{gst\_tensor\_converter\_parent\_class}}
{\footnotesize\ttfamily \#define gst\+\_\+tensor\+\_\+converter\+\_\+parent\+\_\+class~parent\+\_\+class}



Definition at line 144 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a37fd471cdeafac91a21f6f17ca3975e8}\label{gsttensor__converter_8c_a37fd471cdeafac91a21f6f17ca3975e8}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!OCTET\_CAPS\_STR@{OCTET\_CAPS\_STR}}
\index{OCTET\_CAPS\_STR@{OCTET\_CAPS\_STR}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{OCTET\_CAPS\_STR}{OCTET\_CAPS\_STR}}
{\footnotesize\ttfamily \#define O\+C\+T\+E\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR~\char`\"{}application/octet-\/stream\char`\"{}}



Caps string for binary stream. 



Definition at line 77 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a6d80cbef34364c619b7722040078a304}\label{gsttensor__converter_8c_a6d80cbef34364c619b7722040078a304}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!silent\_debug\_timestamp@{silent\_debug\_timestamp}}
\index{silent\_debug\_timestamp@{silent\_debug\_timestamp}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{silent\_debug\_timestamp}{silent\_debug\_timestamp}}
{\footnotesize\ttfamily \#define silent\+\_\+debug\+\_\+timestamp(\begin{DoxyParamCaption}\item[{}]{self,  }\item[{}]{buf }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{  \textcolor{keywordflow}{do} \{ \(\backslash\)}
\DoxyCodeLine{  if (\mbox{\hyperlink{gsttensor__converter_8c_a49606be7356624568932ec81c0d429f4}{DBG}}) \{ \(\backslash\)}
\DoxyCodeLine{    GST\_DEBUG\_OBJECT (\textcolor{keyword}{self}, \textcolor{stringliteral}{"pts = \%"} GST\_TIME\_FORMAT, GST\_TIME\_ARGS (GST\_BUFFER\_PTS (buf))); \(\backslash\)}
\DoxyCodeLine{    GST\_DEBUG\_OBJECT (\textcolor{keyword}{self}, \textcolor{stringliteral}{"dts = \%"} GST\_TIME\_FORMAT, GST\_TIME\_ARGS (GST\_BUFFER\_DTS (buf))); \(\backslash\)}
\DoxyCodeLine{    GST\_DEBUG\_OBJECT (\textcolor{keyword}{self}, \textcolor{stringliteral}{"duration = \%"} GST\_TIME\_FORMAT \textcolor{stringliteral}{"\(\backslash\)n"}, GST\_TIME\_ARGS (GST\_BUFFER\_DURATION (buf))); \(\backslash\)}
\DoxyCodeLine{  \} \(\backslash\)}
\DoxyCodeLine{\} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line 95 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_ae7661df81019886af67cd4158eca7f20}\label{gsttensor__converter_8c_ae7661df81019886af67cd4158eca7f20}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!STRING\_CUSTOM\_MODE@{STRING\_CUSTOM\_MODE}}
\index{STRING\_CUSTOM\_MODE@{STRING\_CUSTOM\_MODE}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{STRING\_CUSTOM\_MODE}{STRING\_CUSTOM\_MODE}}
{\footnotesize\ttfamily \#define S\+T\+R\+I\+N\+G\+\_\+\+C\+U\+S\+T\+O\+M\+\_\+\+M\+O\+DE(\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    (((\textcolor{keyword}{self})-\/>mode == \mbox{\hyperlink{gsttensor__converter_8h_ad196141233d1dd6dd663c0947049474eaacebb82823db5aa6c07d38a63eb9fcea}{\_CONVERTER\_MODE\_CUSTOM\_CODE}}) ? \(\backslash\)}
\DoxyCodeLine{        \textcolor{stringliteral}{"custom\_code (function)"} : \(\backslash\)}
\DoxyCodeLine{        (((\textcolor{keyword}{self})-\/>mode == \mbox{\hyperlink{gsttensor__converter_8h_ad196141233d1dd6dd663c0947049474ead9389dbe0f613e7138dac1fee84014c3}{\_CONVERTER\_MODE\_CUSTOM\_SCRIPT}}) ? \(\backslash\)}
\DoxyCodeLine{            \textcolor{stringliteral}{"custom\_script (py)"} : \(\backslash\)}
\DoxyCodeLine{            \textcolor{stringliteral}{"unknown custom mode (internal error!)"}))}

\end{DoxyCode}


Definition at line 106 of file gsttensor\+\_\+converter.\+c.

\mbox{\Hypertarget{gsttensor__converter_8c_a13fa1cedf83017ce43fec633bc6adbcf}\label{gsttensor__converter_8c_a13fa1cedf83017ce43fec633bc6adbcf}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!TEXT\_CAPS\_STR@{TEXT\_CAPS\_STR}}
\index{TEXT\_CAPS\_STR@{TEXT\_CAPS\_STR}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{TEXT\_CAPS\_STR}{TEXT\_CAPS\_STR}}
{\footnotesize\ttfamily \#define T\+E\+X\+T\+\_\+\+C\+A\+P\+S\+\_\+\+S\+TR~\char`\"{}text/x-\/raw, format = (string) utf8\char`\"{}}



Caps string for text input. 

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

A filter that converts media stream to tensor stream for NN frameworks. The output is always in the format of other/tensor or other/tensors.

$<$refsect2$>$ $<$title$>$Example launch line$<$/title$>$ $\vert$\mbox{[} gst-\/launch-\/1.\+0 videotestsrc ! video/x-\/raw,format=R\+GB,width=640,height=480 ! tensor\+\_\+converter ! tensor\+\_\+sink \mbox{]}$\vert$ $<$/refsect2$>$ 

Definition at line 69 of file gsttensor\+\_\+converter.\+c.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4d}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4d}} 
\doxysubsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}



tensor\+\_\+converter properties 

\begin{DoxyRefDesc}{Todo}
\item[\textbf{ Todo}]For flatbuffers, support other/tensors. \end{DoxyRefDesc}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_0@{PROP\_0}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_0@{PROP\_0}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4dac37dda0da1a44e10c0504afeeb863f3c}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4dac37dda0da1a44e10c0504afeeb863f3c}} 
P\+R\+O\+P\+\_\+0&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_INPUT\_DIMENSION@{PROP\_INPUT\_DIMENSION}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_INPUT\_DIMENSION@{PROP\_INPUT\_DIMENSION}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da00f11c5c44a387d6b19d305b27591c8b}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da00f11c5c44a387d6b19d305b27591c8b}} 
P\+R\+O\+P\+\_\+\+I\+N\+P\+U\+T\+\_\+\+D\+I\+M\+E\+N\+S\+I\+ON&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_INPUT\_TYPE@{PROP\_INPUT\_TYPE}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_INPUT\_TYPE@{PROP\_INPUT\_TYPE}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4daeea5e8e376cee3f4566a3d2757b12551}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4daeea5e8e376cee3f4566a3d2757b12551}} 
P\+R\+O\+P\+\_\+\+I\+N\+P\+U\+T\+\_\+\+T\+Y\+PE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_FRAMES\_PER\_TENSOR@{PROP\_FRAMES\_PER\_TENSOR}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_FRAMES\_PER\_TENSOR@{PROP\_FRAMES\_PER\_TENSOR}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4daf9d3f7fd2695326dddba6d03b1352382}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4daf9d3f7fd2695326dddba6d03b1352382}} 
P\+R\+O\+P\+\_\+\+F\+R\+A\+M\+E\+S\+\_\+\+P\+E\+R\+\_\+\+T\+E\+N\+S\+OR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_SET\_TIMESTAMP@{PROP\_SET\_TIMESTAMP}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_SET\_TIMESTAMP@{PROP\_SET\_TIMESTAMP}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da2d6e140d873b16157bdd1e91f7862924}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da2d6e140d873b16157bdd1e91f7862924}} 
P\+R\+O\+P\+\_\+\+S\+E\+T\+\_\+\+T\+I\+M\+E\+S\+T\+A\+MP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_SUBPLUGINS@{PROP\_SUBPLUGINS}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_SUBPLUGINS@{PROP\_SUBPLUGINS}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4dac64687b09b2747b0d6079d424b41b8c2}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4dac64687b09b2747b0d6079d424b41b8c2}} 
P\+R\+O\+P\+\_\+\+S\+U\+B\+P\+L\+U\+G\+I\+NS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_SILENT@{PROP\_SILENT}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_SILENT@{PROP\_SILENT}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da707b785966c328fb5a6088b7879c7bb5}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da707b785966c328fb5a6088b7879c7bb5}} 
P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_MODE@{PROP\_MODE}!gsttensor\_converter.c@{gsttensor\_converter.c}}\index{gsttensor\_converter.c@{gsttensor\_converter.c}!PROP\_MODE@{PROP\_MODE}}}\mbox{\Hypertarget{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da0b5a29cfd0fc43c914507e65e3aec94f}\label{gsttensor__converter_8c_a16af7b253440dadd46a80a4b9fddba4da0b5a29cfd0fc43c914507e65e3aec94f}} 
P\+R\+O\+P\+\_\+\+M\+O\+DE&\\
\hline

\end{DoxyEnumFields}


Definition at line 117 of file gsttensor\+\_\+converter.\+c.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{gsttensor__converter_8c_ac675866d5a3674d8826ca6041f6d55c1}\label{gsttensor__converter_8c_ac675866d5a3674d8826ca6041f6d55c1}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!\_gst\_tensor\_converter\_chain\_chunk@{\_gst\_tensor\_converter\_chain\_chunk}}
\index{\_gst\_tensor\_converter\_chain\_chunk@{\_gst\_tensor\_converter\_chain\_chunk}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{\_gst\_tensor\_converter\_chain\_chunk()}{\_gst\_tensor\_converter\_chain\_chunk()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return \+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+chunk (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Buffer $\ast$}]{inbuf,  }\item[{guint}]{frames\+\_\+in,  }\item[{guint}]{frames\+\_\+out,  }\item[{gsize}]{frame\+\_\+size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function\textquotesingle{}s private routine to push multiple buffers. 

supposed same duration for incoming buffer

Update timestamp. If frames-\/in is larger then frames-\/out, the same timestamp (pts and dts) would be returned.

set timestamp

Definition at line 959 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ac675866d5a3674d8826ca6041f6d55c1_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ac675866d5a3674d8826ca6041f6d55c1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_aab4740014ba537cc6fe922263476e3f0}\label{gsttensor__converter_8c_aab4740014ba537cc6fe922263476e3f0}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!\_gst\_tensor\_converter\_chain\_flex\_tensor@{\_gst\_tensor\_converter\_chain\_flex\_tensor}}
\index{\_gst\_tensor\_converter\_chain\_flex\_tensor@{\_gst\_tensor\_converter\_chain\_flex\_tensor}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{\_gst\_tensor\_converter\_chain\_flex\_tensor()}{\_gst\_tensor\_converter\_chain\_flex\_tensor()}}
{\footnotesize\ttfamily static Gst\+Buffer$\ast$ \+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+flex\+\_\+tensor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Buffer $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function\textquotesingle{}s private routine to process flex tensor. 



Definition at line 893 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_aab4740014ba537cc6fe922263476e3f0_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_aab4740014ba537cc6fe922263476e3f0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a3a56b3fa8f0dde27a1062e3fe2d77818}\label{gsttensor__converter_8c_a3a56b3fa8f0dde27a1062e3fe2d77818}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!\_gst\_tensor\_converter\_chain\_octet@{\_gst\_tensor\_converter\_chain\_octet}}
\index{\_gst\_tensor\_converter\_chain\_octet@{\_gst\_tensor\_converter\_chain\_octet}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{\_gst\_tensor\_converter\_chain\_octet()}{\_gst\_tensor\_converter\_chain\_octet()}}
{\footnotesize\ttfamily static Gst\+Buffer$\ast$ \+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+octet (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Buffer $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function\textquotesingle{}s private routine to process octet stream. 



Definition at line 847 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a3a56b3fa8f0dde27a1062e3fe2d77818_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a3a56b3fa8f0dde27a1062e3fe2d77818_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_af916ff3759557d4c8e5bf3f67958d0df}\label{gsttensor__converter_8c_af916ff3759557d4c8e5bf3f67958d0df}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!\_gst\_tensor\_converter\_chain\_push@{\_gst\_tensor\_converter\_chain\_push}}
\index{\_gst\_tensor\_converter\_chain\_push@{\_gst\_tensor\_converter\_chain\_push}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{\_gst\_tensor\_converter\_chain\_push()}{\_gst\_tensor\_converter\_chain\_push()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return \+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+push (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Buffer $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function\textquotesingle{}s private routine to push buffer into src pad. 



Definition at line 938 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af916ff3759557d4c8e5bf3f67958d0df_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af916ff3759557d4c8e5bf3f67958d0df_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_ada1881a7c5feb558c38319d5ea03cf22}\label{gsttensor__converter_8c_ada1881a7c5feb558c38319d5ea03cf22}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!\_gst\_tensor\_converter\_chain\_segment@{\_gst\_tensor\_converter\_chain\_segment}}
\index{\_gst\_tensor\_converter\_chain\_segment@{\_gst\_tensor\_converter\_chain\_segment}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{\_gst\_tensor\_converter\_chain\_segment()}{\_gst\_tensor\_converter\_chain\_segment()}}
{\footnotesize\ttfamily static void \+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+segment (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{gsize}]{frame\+\_\+size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function\textquotesingle{}s private routine. 

This is an internal logic error.

Definition at line 754 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=299pt]{gsttensor__converter_8c_ada1881a7c5feb558c38319d5ea03cf22_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ada1881a7c5feb558c38319d5ea03cf22_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_ad1acfc2eeca5087a656bc388ebc76136}\label{gsttensor__converter_8c_ad1acfc2eeca5087a656bc388ebc76136}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!\_gst\_tensor\_converter\_chain\_timestamp@{\_gst\_tensor\_converter\_chain\_timestamp}}
\index{\_gst\_tensor\_converter\_chain\_timestamp@{\_gst\_tensor\_converter\_chain\_timestamp}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{\_gst\_tensor\_converter\_chain\_timestamp()}{\_gst\_tensor\_converter\_chain\_timestamp()}}
{\footnotesize\ttfamily static void \+\_\+gst\+\_\+tensor\+\_\+converter\+\_\+chain\+\_\+timestamp (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Buffer $\ast$}]{inbuf,  }\item[{guint}]{frames\+\_\+in }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function\textquotesingle{}s private routine. 



Definition at line 787 of file gsttensor\+\_\+converter.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ad1acfc2eeca5087a656bc388ebc76136_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a146a5ade695d2aeb357b66e137349f5d}\label{gsttensor__converter_8c_a146a5ade695d2aeb357b66e137349f5d}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!findExternalConverter@{findExternalConverter}}
\index{findExternalConverter@{findExternalConverter}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{findExternalConverter()}{findExternalConverter()}}
{\footnotesize\ttfamily static const \mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$ find\+External\+Converter (\begin{DoxyParamCaption}\item[{const char $\ast$}]{media\+\_\+type\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Internal static function to find registered subplugins. 



Definition at line 2408 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a146a5ade695d2aeb357b66e137349f5d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a146a5ade695d2aeb357b66e137349f5d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_af74a62a37fc2665fbfab1bc29074aeb9}\label{gsttensor__converter_8c_af74a62a37fc2665fbfab1bc29074aeb9}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}}
\index{G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{G\_DEFINE\_TYPE()}{G\_DEFINE\_TYPE()}}
{\footnotesize\ttfamily G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}}}]{,  }\item[{gst\+\_\+tensor\+\_\+converter}]{,  }\item[{G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+L\+E\+M\+E\+NT}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__converter_8c_a425903e3498cfda8ecf8c33061f9d36d}\label{gsttensor__converter_8c_a425903e3498cfda8ecf8c33061f9d36d}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}}
\index{GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{GST\_DEBUG\_CATEGORY\_STATIC()}{GST\_DEBUG\_CATEGORY\_STATIC()}}
{\footnotesize\ttfamily G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC (\begin{DoxyParamCaption}\item[{gst\+\_\+tensor\+\_\+converter\+\_\+debug}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__converter_8c_ae1a5123e05473623cae251c467e19a30}\label{gsttensor__converter_8c_ae1a5123e05473623cae251c467e19a30}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_chain@{gst\_tensor\_converter\_chain}}
\index{gst\_tensor\_converter\_chain@{gst\_tensor\_converter\_chain}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_chain()}{gst\_tensor\_converter\_chain()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+converter\+\_\+chain (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{pad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Buffer $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function, this function does the actual processing. 

This is an internal logic error.

Supposed 1 frame in buffer (default). Update frame size for each media type.

type $\ast$ colorspace $\ast$ width $\ast$ height

supposed 1 frame in buffer

Refer\+: \href{https://gstreamer.freedesktop.org/documentation/design/mediatype-video-raw.html}{\texttt{ https\+://gstreamer.\+freedesktop.\+org/documentation/design/mediatype-\/video-\/raw.\+html}}

Internal logic error!

copy timestamps

copy timestamps

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000014}{Todo}}]need rewrite. do not use assert \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000015}{Todo}}]expand mem if given property is larger than mem size. Now compare same size, later we should modify mem block if developer sets different dimension. \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000016}{Todo}}]identify and printout the given input stream caps. \end{DoxyRefDesc}


convert format (bytes $>$ time) and push segment event. It will push event if needed (self-\/$>$need\+\_\+segment is true).

configures timestamp if required (self-\/$>$set\+\_\+timestamp is true)

do nothing, push the incoming buffer

Definition at line 1028 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ae1a5123e05473623cae251c467e19a30_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ae1a5123e05473623cae251c467e19a30_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_af05f5cfae6c81e7bdf080b24bda3c4d6}\label{gsttensor__converter_8c_af05f5cfae6c81e7bdf080b24bda3c4d6}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_change\_state@{gst\_tensor\_converter\_change\_state}}
\index{gst\_tensor\_converter\_change\_state@{gst\_tensor\_converter\_change\_state}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_change\_state()}{gst\_tensor\_converter\_change\_state()}}
{\footnotesize\ttfamily static Gst\+State\+Change\+Return gst\+\_\+tensor\+\_\+converter\+\_\+change\+\_\+state (\begin{DoxyParamCaption}\item[{Gst\+Element $\ast$}]{element,  }\item[{Gst\+State\+Change}]{transition }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Called to perform state change. 



Definition at line 1336 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af05f5cfae6c81e7bdf080b24bda3c4d6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af05f5cfae6c81e7bdf080b24bda3c4d6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a400b29a5573ed0c167935ff06553eff3}\label{gsttensor__converter_8c_a400b29a5573ed0c167935ff06553eff3}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_class\_init@{gst\_tensor\_converter\_class\_init}}
\index{gst\_tensor\_converter\_class\_init@{gst\_tensor\_converter\_class\_init}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_class\_init()}{gst\_tensor\_converter\_class\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+converter\+\_\+class\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_add84cd49f3d1684cf135ad91b00dfa85}{Gst\+Tensor\+Converter\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Initialize the tensor\+\_\+converter\textquotesingle{}s class. 

Gst\+Tensor\+Converter\+::input-\/dim\+:

Input tensor dimension from inner array. Generally this property is used to set tensor configuration for byte-\/stream (application/octet-\/stream). When setting this property and input media type is video or audio stream, Gst\+Tensor\+Converter will compare the media info with this. (If it is different, it will be failed.)

Gst\+Tensor\+Converter\+::input-\/type\+:

Type of each element of the input tensor. Generally this property is used to set tensor configuration for byte-\/stream (application/octet-\/stream). When setting this property and input media type is video or audio stream, Gst\+Tensor\+Converter will compare the media info with this. (If it is different, it will be failed.)

Gst\+Tensor\+Converter\+::frames-\/per-\/tensor\+:

The number of frames in outgoing buffer. (buffer is a single tensor instance) Gst\+Tensor\+Converter can push a buffer with multiple media frames.

Gst\+Tensor\+Converter\+::set-\/timestamp\+:

The flag to set timestamp when received a buffer with invalid timestamp.

Gst\+Tensor\+Converter\+::sub-\/plugins\+:

Registrable sub-\/plugins list of tensor-\/converter.

\mbox{\hyperlink{struct__GstTensorConverter_aa1bf3259eedb1c6c10378cfe14586ac2}{Gst\+Tensor\+Converter\+::silent}}\+:

The flag to enable/disable debugging messages.

\mbox{\hyperlink{struct__GstTensorConverter_a828ce2840ae0f11a63d64afb6e03b3c1}{Gst\+Tensor\+Converter\+::mode}}\+:

Generally this property is used to set tensor converter custom mode.

Definition at line 178 of file gsttensor\+\_\+converter.\+c.

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



Function to finalize instance. 



Definition at line 381 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a3bd76c281f1c8aa42f8c2a843ef6aeaf_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a3bd76c281f1c8aa42f8c2a843ef6aeaf_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_ad3a32039921cfe9f41f09c72c8263c99}\label{gsttensor__converter_8c_ad3a32039921cfe9f41f09c72c8263c99}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_get\_adapter@{gst\_tensor\_converter\_get\_adapter}}
\index{gst\_tensor\_converter\_get\_adapter@{gst\_tensor\_converter\_get\_adapter}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_get\_adapter()}{gst\_tensor\_converter\_get\_adapter()}}
{\footnotesize\ttfamily static Gst\+Adapter$\ast$ gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+adapter (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Buffer $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Internal function to get adapter. 



Definition at line 706 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ad3a32039921cfe9f41f09c72c8263c99_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ad3a32039921cfe9f41f09c72c8263c99_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a93805f836ded7677f9a5f1815390b8ce}\label{gsttensor__converter_8c_a93805f836ded7677f9a5f1815390b8ce}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_get\_format\_list@{gst\_tensor\_converter\_get\_format\_list}}
\index{gst\_tensor\_converter\_get\_format\_list@{gst\_tensor\_converter\_get\_format\_list}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_get\_format\_list()}{gst\_tensor\_converter\_get\_format\_list()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+format\+\_\+list (\begin{DoxyParamCaption}\item[{G\+Value $\ast$}]{list,  }\item[{}]{... }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get supported format list. 



Definition at line 1385 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=343pt]{gsttensor__converter_8c_a93805f836ded7677f9a5f1815390b8ce_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a93805f836ded7677f9a5f1815390b8ce_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_ab3afa6512dd8161227070c9d1d92eed2}\label{gsttensor__converter_8c_ab3afa6512dd8161227070c9d1d92eed2}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_get\_possible\_media\_caps@{gst\_tensor\_converter\_get\_possible\_media\_caps}}
\index{gst\_tensor\_converter\_get\_possible\_media\_caps@{gst\_tensor\_converter\_get\_possible\_media\_caps}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_get\_possible\_media\_caps()}{gst\_tensor\_converter\_get\_possible\_media\_caps()}}
{\footnotesize\ttfamily static Gst\+Caps$\ast$ gst\+\_\+tensor\+\_\+converter\+\_\+get\+\_\+possible\+\_\+media\+\_\+caps (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get possible media-\/caps from downstream element. 



Definition at line 1972 of file gsttensor\+\_\+converter.\+c.

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



Getter for tensor\+\_\+converter properties. 



Definition at line 514 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_adcd585f270e845bfc9baec50472b5bf6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_adcd585f270e845bfc9baec50472b5bf6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a370ad4480b1965cea585d972a884ef8b}\label{gsttensor__converter_8c_a370ad4480b1965cea585d972a884ef8b}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_init@{gst\_tensor\_converter\_init}}
\index{gst\_tensor\_converter\_init@{gst\_tensor\_converter\_init}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_init()}{gst\_tensor\_converter\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+converter\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Initialize tensor\+\_\+converter element. 

setup sink pad

setup src pad

init properties

Definition at line 331 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a370ad4480b1965cea585d972a884ef8b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_af65884f25a0694ce04812b6ebeef6baa}\label{gsttensor__converter_8c_af65884f25a0694ce04812b6ebeef6baa}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_audio@{gst\_tensor\_converter\_parse\_audio}}
\index{gst\_tensor\_converter\_parse\_audio@{gst\_tensor\_converter\_parse\_audio}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_audio()}{gst\_tensor\_converter\_parse\_audio()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+audio (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{const Gst\+Caps $\ast$}]{caps,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the tensors config structure from audio info (internal static function) 


\begin{DoxyParams}{Parameters}
{\em self} & this pointer to Gst\+Tensor\+Converter \\
\hline
{\em caps} & caps for media stream \\
\hline
{\em config} & tensors config structure to be filled \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Change dimension if tensor contains N frames. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
T\+R\+UE if supported type 
\end{DoxyReturn}
Refer\+: \href{https://www.tensorflow.org/api_docs/python/tf/summary/audio}{\texttt{ https\+://www.\+tensorflow.\+org/api\+\_\+docs/python/tf/summary/audio}} A 3-\/D float32 Tensor of shape \mbox{[}batch\+\_\+size, frames, channels\mbox{]} or a 2-\/D float32 Tensor of shape \mbox{[}batch\+\_\+size, frames\mbox{]}.

Definition at line 1582 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af65884f25a0694ce04812b6ebeef6baa_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af65884f25a0694ce04812b6ebeef6baa_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_acc906b3a93d079228eb22e6891d43590}\label{gsttensor__converter_8c_acc906b3a93d079228eb22e6891d43590}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_caps@{gst\_tensor\_converter\_parse\_caps}}
\index{gst\_tensor\_converter\_parse\_caps@{gst\_tensor\_converter\_parse\_caps}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_caps()}{gst\_tensor\_converter\_parse\_caps()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+caps (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{const Gst\+Caps $\ast$}]{caps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Parse caps and set tensors info. 

dimension index of frames in configured tensors

set the number of frames in dimension

not fully configured. the resulting config is weird.

compare tensor info

Definition at line 2190 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_acc906b3a93d079228eb22e6891d43590_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_acc906b3a93d079228eb22e6891d43590_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a64e56ffa876db5119fe89a5f2b8e101f}\label{gsttensor__converter_8c_a64e56ffa876db5119fe89a5f2b8e101f}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_custom@{gst\_tensor\_converter\_parse\_custom}}
\index{gst\_tensor\_converter\_parse\_custom@{gst\_tensor\_converter\_parse\_custom}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_custom()}{gst\_tensor\_converter\_parse\_custom()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+custom (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config,  }\item[{const Gst\+Caps $\ast$}]{caps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the tensors config structure from caps (internal static function for custom mode) 


\begin{DoxyParams}{Parameters}
{\em self} & this pointer to Gst\+Tensor\+Converter \\
\hline
{\em config} & tensors config structure to be filled \\
\hline
{\em caps} & incoming caps \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if supported type 
\end{DoxyReturn}


Definition at line 1889 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a64e56ffa876db5119fe89a5f2b8e101f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a64e56ffa876db5119fe89a5f2b8e101f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a9655cf6b84114280e85dd8939e5955ef}\label{gsttensor__converter_8c_a9655cf6b84114280e85dd8939e5955ef}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_octet@{gst\_tensor\_converter\_parse\_octet}}
\index{gst\_tensor\_converter\_parse\_octet@{gst\_tensor\_converter\_parse\_octet}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_octet()}{gst\_tensor\_converter\_parse\_octet()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+octet (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config,  }\item[{const Gst\+Structure $\ast$}]{structure }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the tensors configs structure from octet stream (internal static function) 


\begin{DoxyParams}{Parameters}
{\em self} & this pointer to Gst\+Tensor\+Converter \\
\hline
{\em config} & tensors config structure to be filled \\
\hline
{\em structure} & caps structure \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Change tensors dimension and type. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
T\+R\+UE if supported type 
\end{DoxyReturn}
Failure case when octet-\/stream has multi tensors and multi frames.

Raw byte-\/stream (application/octet-\/stream) We cannot get the exact tensors info from caps. All tensors info should be updated. If output is flexible, dimension should be updated in chain function with buffer size. (data format for tensor\+: \mbox{[}size\mbox{]})

Definition at line 1741 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a9655cf6b84114280e85dd8939e5955ef_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a9655cf6b84114280e85dd8939e5955ef_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a2f3ff8d9a40a4cc1e2f7f2bf9f9c723b}\label{gsttensor__converter_8c_a2f3ff8d9a40a4cc1e2f7f2bf9f9c723b}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_tensor@{gst\_tensor\_converter\_parse\_tensor}}
\index{gst\_tensor\_converter\_parse\_tensor@{gst\_tensor\_converter\_parse\_tensor}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_tensor()}{gst\_tensor\_converter\_parse\_tensor()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+tensor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config,  }\item[{const Gst\+Structure $\ast$}]{structure }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the tensors configs structure from fliex tensor stream (internal static function) 


\begin{DoxyParams}{Parameters}
{\em self} & this pointer to Gst\+Tensor\+Converter \\
\hline
{\em config} & tensors config structure to be filled \\
\hline
{\em structure} & caps structure \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Change tensors dimension and type. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
T\+R\+UE if supported type 
\end{DoxyReturn}
We cannot get the exact tensors info from caps. All tensors info should be updated in chain function. (data format for tensor\+: \mbox{[}size\mbox{]})

Definition at line 1834 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a2f3ff8d9a40a4cc1e2f7f2bf9f9c723b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a2f3ff8d9a40a4cc1e2f7f2bf9f9c723b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_afbd0675761aa00b2098aadcffe993e9f}\label{gsttensor__converter_8c_afbd0675761aa00b2098aadcffe993e9f}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_text@{gst\_tensor\_converter\_parse\_text}}
\index{gst\_tensor\_converter\_parse\_text@{gst\_tensor\_converter\_parse\_text}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_text()}{gst\_tensor\_converter\_parse\_text()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+text (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config,  }\item[{const Gst\+Structure $\ast$}]{structure }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the tensors config structure from text info (internal static function) 


\begin{DoxyParams}{Parameters}
{\em self} & this pointer to Gst\+Tensor\+Converter \\
\hline
{\em config} & tensors config structure to be filled \\
\hline
{\em structure} & caps structure \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Change dimension if tensors contains N frames. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
T\+R\+UE if supported type 
\end{DoxyReturn}
Refer\+: \href{https://www.tensorflow.org/api_docs/python/tf/summary/text}{\texttt{ https\+://www.\+tensorflow.\+org/api\+\_\+docs/python/tf/summary/text}} A string-\/type Tensor

Definition at line 1670 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_afbd0675761aa00b2098aadcffe993e9f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_afbd0675761aa00b2098aadcffe993e9f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a459991474b490e9f009df05ab0b48842}\label{gsttensor__converter_8c_a459991474b490e9f009df05ab0b48842}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_parse\_video@{gst\_tensor\_converter\_parse\_video}}
\index{gst\_tensor\_converter\_parse\_video@{gst\_tensor\_converter\_parse\_video}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_parse\_video()}{gst\_tensor\_converter\_parse\_video()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+parse\+\_\+video (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{const Gst\+Caps $\ast$}]{caps,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Set the tensors config structure from video info (internal static function) 


\begin{DoxyParams}{Parameters}
{\em self} & this pointer to Gst\+Tensor\+Converter \\
\hline
{\em caps} & caps for media stream \\
\hline
{\em config} & tensors config structure to be filled \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Change dimension if tensor contains N frames. 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
T\+R\+UE if supported type 
\end{DoxyReturn}
Refer\+: \href{https://www.tensorflow.org/api_docs/python/tf/summary/image}{\texttt{ https\+://www.\+tensorflow.\+org/api\+\_\+docs/python/tf/summary/image}} A 4-\/D uint8 or float32 Tensor of shape \mbox{[}batch\+\_\+size, height, width, channels\mbox{]} where channels is 1, 3, or 4.

Emit Warning if R\+S\+T\+R\+I\+DE = R\+U4 (3B\+PP) \&\& Width \% 4 $>$ 0 \begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000018}{Todo}}]Add more conditions! \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000019}{Todo}}]need rewrite. \end{DoxyRefDesc}


Definition at line 1444 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a459991474b490e9f009df05ab0b48842_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a459991474b490e9f009df05ab0b48842_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a60cefa6bb66d81524439f35be66de728}\label{gsttensor__converter_8c_a60cefa6bb66d81524439f35be66de728}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_query\_caps@{gst\_tensor\_converter\_query\_caps}}
\index{gst\_tensor\_converter\_query\_caps@{gst\_tensor\_converter\_query\_caps}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_query\_caps()}{gst\_tensor\_converter\_query\_caps()}}
{\footnotesize\ttfamily static Gst\+Caps $\ast$ gst\+\_\+tensor\+\_\+converter\+\_\+query\+\_\+caps (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self,  }\item[{Gst\+Pad $\ast$}]{pad,  }\item[{Gst\+Caps $\ast$}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get pad caps for caps negotiation. 



Definition at line 2144 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a60cefa6bb66d81524439f35be66de728_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a60cefa6bb66d81524439f35be66de728_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a255c7af36901b2ded1208488ec29b763}\label{gsttensor__converter_8c_a255c7af36901b2ded1208488ec29b763}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_reset@{gst\_tensor\_converter\_reset}}
\index{gst\_tensor\_converter\_reset@{gst\_tensor\_converter\_reset}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_reset()}{gst\_tensor\_converter\_reset()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+converter\+\_\+reset (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Clear and reset data. 



Definition at line 1369 of file gsttensor\+\_\+converter.\+c.

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



Setter for tensor\+\_\+converter properties. 

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000013}{Todo}}]detects framework based on the script extension \end{DoxyRefDesc}


Definition at line 406 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a48f520f00135c3cd3e54f73a2c64ae16_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a48f520f00135c3cd3e54f73a2c64ae16_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a2cc092468bc1df6d1fb016f6063f1777}\label{gsttensor__converter_8c_a2cc092468bc1df6d1fb016f6063f1777}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_sink\_event@{gst\_tensor\_converter\_sink\_event}}
\index{gst\_tensor\_converter\_sink\_event@{gst\_tensor\_converter\_sink\_event}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_sink\_event()}{gst\_tensor\_converter\_sink\_event()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+sink\+\_\+event (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{pad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Event $\ast$}]{event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



This function handles sink event. 



Definition at line 586 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a2cc092468bc1df6d1fb016f6063f1777_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a2cc092468bc1df6d1fb016f6063f1777_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a2f7bc46d5f0431100ce41129d2237505}\label{gsttensor__converter_8c_a2f7bc46d5f0431100ce41129d2237505}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_sink\_query@{gst\_tensor\_converter\_sink\_query}}
\index{gst\_tensor\_converter\_sink\_query@{gst\_tensor\_converter\_sink\_query}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_sink\_query()}{gst\_tensor\_converter\_sink\_query()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+sink\+\_\+query (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{pad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Query $\ast$}]{query }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



This function handles sink pad query. 



Definition at line 654 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a2f7bc46d5f0431100ce41129d2237505_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a2f7bc46d5f0431100ce41129d2237505_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_aec7d72f1b695a251c9f00c28006e52cf}\label{gsttensor__converter_8c_aec7d72f1b695a251c9f00c28006e52cf}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_src\_query@{gst\_tensor\_converter\_src\_query}}
\index{gst\_tensor\_converter\_src\_query@{gst\_tensor\_converter\_src\_query}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_src\_query()}{gst\_tensor\_converter\_src\_query()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+src\+\_\+query (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{pad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Query $\ast$}]{query }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



This function handles src pad query. 



Definition at line 722 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_aec7d72f1b695a251c9f00c28006e52cf_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_aec7d72f1b695a251c9f00c28006e52cf_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a0707850a6d2450fb2887c99001259c7a}\label{gsttensor__converter_8c_a0707850a6d2450fb2887c99001259c7a}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_update\_caps@{gst\_tensor\_converter\_update\_caps}}
\index{gst\_tensor\_converter\_update\_caps@{gst\_tensor\_converter\_update\_caps}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_update\_caps()}{gst\_tensor\_converter\_update\_caps()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+converter\+\_\+update\+\_\+caps (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter_8h_a8d7627f8d4f5a9f181bd714c89b285a2}{Gst\+Tensor\+Converter}} $\ast$}]{self }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Update src pad caps from tensors config. 



Definition at line 2333 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a0707850a6d2450fb2887c99001259c7a_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a0707850a6d2450fb2887c99001259c7a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a9bb8ae198da01c18369c5dc471cbc46c}\label{gsttensor__converter_8c_a9bb8ae198da01c18369c5dc471cbc46c}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!gst\_tensor\_converter\_video\_stride@{gst\_tensor\_converter\_video\_stride}}
\index{gst\_tensor\_converter\_video\_stride@{gst\_tensor\_converter\_video\_stride}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_converter\_video\_stride()}{gst\_tensor\_converter\_video\_stride()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+converter\+\_\+video\+\_\+stride (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__converter__media__no__video_8h_a3ce1669c0a6750341527c0657808a846}{Gst\+Video\+Format}}}]{format,  }\item[{gint}]{width }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Determine if we need zero-\/padding. 

\begin{DoxyReturn}{Returns}
T\+R\+UE if we need to add (or remove) stride per row from the stream data. 
\end{DoxyReturn}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000017}{Todo}}]The actual list is much longer, fill them. (read \href{https://gstreamer.freedesktop.org/documentation/design/mediatype-video-raw.html}{\texttt{ https\+://gstreamer.\+freedesktop.\+org/documentation/design/mediatype-\/video-\/raw.\+html}}) \end{DoxyRefDesc}


Definition at line 1409 of file gsttensor\+\_\+converter.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a9bb8ae198da01c18369c5dc471cbc46c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_af29f7bbcd5f3b0b8ddc7ae773eb770dc}\label{gsttensor__converter_8c_af29f7bbcd5f3b0b8ddc7ae773eb770dc}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!nnstreamer\_converter\_custom\_register@{nnstreamer\_converter\_custom\_register}}
\index{nnstreamer\_converter\_custom\_register@{nnstreamer\_converter\_custom\_register}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_converter\_custom\_register()}{nnstreamer\_converter\_custom\_register()}}
{\footnotesize\ttfamily int nnstreamer\+\_\+converter\+\_\+custom\+\_\+register (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{name,  }\item[{\mbox{\hyperlink{tensor__converter__custom_8h_a6e01cf896922b5c7412d99603566d619}{tensor\+\_\+converter\+\_\+custom}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Registers a callback for tensor\+\_\+converter custom condition. 

Register the custom callback function.

\begin{DoxyReturn}{Returns}
0 if success. -\/E\+R\+R\+NO if error. 
\end{DoxyReturn}


Definition at line 2473 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af29f7bbcd5f3b0b8ddc7ae773eb770dc_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_ad95aaba85ff633b94836e4968fd7f195}\label{gsttensor__converter_8c_ad95aaba85ff633b94836e4968fd7f195}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!nnstreamer\_converter\_custom\_unregister@{nnstreamer\_converter\_custom\_unregister}}
\index{nnstreamer\_converter\_custom\_unregister@{nnstreamer\_converter\_custom\_unregister}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_converter\_custom\_unregister()}{nnstreamer\_converter\_custom\_unregister()}}
{\footnotesize\ttfamily int nnstreamer\+\_\+converter\+\_\+custom\+\_\+unregister (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{name }\end{DoxyParamCaption})}



Unregisters a callback for tensor\+\_\+converter custom condition. 

Unregister the custom callback function.

\begin{DoxyReturn}{Returns}
0 if success. -\/E\+R\+R\+NO if error. 
\end{DoxyReturn}


Definition at line 2500 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_ad95aaba85ff633b94836e4968fd7f195_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_af15864613f51b14df5a7b0e8da55977b}\label{gsttensor__converter_8c_af15864613f51b14df5a7b0e8da55977b}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!nnstreamer\_converter\_find@{nnstreamer\_converter\_find}}
\index{nnstreamer\_converter\_find@{nnstreamer\_converter\_find}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_converter\_find()}{nnstreamer\_converter\_find()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}}$\ast$ nnstreamer\+\_\+converter\+\_\+find (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Find converter sub-\/plugin with the name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & The name of converter 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 2360 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af15864613f51b14df5a7b0e8da55977b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_af15864613f51b14df5a7b0e8da55977b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a841a35feca3b853cf599235c5a4948a0}\label{gsttensor__converter_8c_a841a35feca3b853cf599235c5a4948a0}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!nnstreamer\_converter\_set\_custom\_property\_desc@{nnstreamer\_converter\_set\_custom\_property\_desc}}
\index{nnstreamer\_converter\_set\_custom\_property\_desc@{nnstreamer\_converter\_set\_custom\_property\_desc}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_converter\_set\_custom\_property\_desc()}{nnstreamer\_converter\_set\_custom\_property\_desc()}}
{\footnotesize\ttfamily void nnstreamer\+\_\+converter\+\_\+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 converter sub-\/plugin 



Definition at line 2457 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a841a35feca3b853cf599235c5a4948a0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a0280999609807fd466a24172a8b1e0bb}\label{gsttensor__converter_8c_a0280999609807fd466a24172a8b1e0bb}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!nnstreamer\_converter\_validate@{nnstreamer\_converter\_validate}}
\index{nnstreamer\_converter\_validate@{nnstreamer\_converter\_validate}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_converter\_validate()}{nnstreamer\_converter\_validate()}}
{\footnotesize\ttfamily static gboolean nnstreamer\+\_\+converter\+\_\+validate (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$}]{converter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Validate converter sub-\/plugin\textquotesingle{}s data. 



Definition at line 2369 of file gsttensor\+\_\+converter.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a0280999609807fd466a24172a8b1e0bb_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_a73d54b17addf666be72484d4efb3b0b6}\label{gsttensor__converter_8c_a73d54b17addf666be72484d4efb3b0b6}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!registerExternalConverter@{registerExternalConverter}}
\index{registerExternalConverter@{registerExternalConverter}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{registerExternalConverter()}{registerExternalConverter()}}
{\footnotesize\ttfamily int register\+External\+Converter (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{nnstreamer__plugin__api__converter_8h_a52c66a5e49ab9fef29c094e061d14330}{N\+N\+Streamer\+External\+Converter}} $\ast$}]{ex }\end{DoxyParamCaption})}



Converter\textquotesingle{}s external subplugins should call this at init. 

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

Definition at line 2389 of file gsttensor\+\_\+converter.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__converter_8c_a73d54b17addf666be72484d4efb3b0b6_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__converter_8c_ac168ff55404de4ce752492c14a90ef33}\label{gsttensor__converter_8c_ac168ff55404de4ce752492c14a90ef33}} 
\index{gsttensor\_converter.c@{gsttensor\_converter.c}!unregisterExternalConverter@{unregisterExternalConverter}}
\index{unregisterExternalConverter@{unregisterExternalConverter}!gsttensor\_converter.c@{gsttensor\_converter.c}}
\doxysubsubsection{\texorpdfstring{unregisterExternalConverter()}{unregisterExternalConverter()}}
{\footnotesize\ttfamily void unregister\+External\+Converter (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Converter\textquotesingle{}s external subplugins should call this at exit. 

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

Definition at line 2399 of file gsttensor\+\_\+converter.\+c.

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