\hypertarget{gsttensor__transform_8c}{}\doxysection{nnstreamer/elements/gsttensor\+\_\+transform.c File Reference}
\label{gsttensor__transform_8c}\index{nnstreamer/elements/gsttensor\_transform.c@{nnstreamer/elements/gsttensor\_transform.c}}


G\+Streamer plugin to transform tensor dimension or type.  


{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$math.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+log.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+util.\+h$>$}\newline
{\ttfamily \#include \char`\"{}gsttensor\+\_\+transform.\+h\char`\"{}}\newline
Include dependency graph for gsttensor\+\_\+transform.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a49606be7356624568932ec81c0d429f4}{D\+BG}}~(!filter-\/$>$silent)
\begin{DoxyCompactList}\small\item\em Macro for debug mode. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_adef911caed7c65a1643062817f4a59d7}{G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT}}~gst\+\_\+tensor\+\_\+transform\+\_\+debug
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_aa2d8b0bc5c1225ba8d7f84e235c1cf0d}{C\+A\+P\+S\+\_\+\+S\+T\+R\+I\+NG}}~\mbox{\hyperlink{tensor__typedef_8h_a284951c7aec77ea34d1c0279d5a5b4a0}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}} \char`\"{};\char`\"{} \mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}\{ static, flexible \}\char`\"{})
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_ad8ce4d00e7e20356322592eedff5741c}{R\+E\+G\+E\+X\+\_\+\+D\+I\+M\+C\+H\+G\+\_\+\+O\+P\+T\+I\+ON}}~\char`\"{}$^\wedge$(\mbox{[}0-\/9\mbox{]}$\vert$1\mbox{[}0-\/5\mbox{]})\+:(\mbox{[}0-\/9\mbox{]}$\vert$1\mbox{[}0-\/5\mbox{]})\$\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a20434909808879bd353be48f73d22aec}{R\+E\+G\+E\+X\+\_\+\+T\+Y\+P\+E\+C\+A\+S\+T\+\_\+\+O\+P\+T\+I\+ON}}~\char`\"{}($^\wedge$\mbox{[}u\mbox{]}?int(8$\vert$16$\vert$32$\vert$64)\$$\vert$$^\wedge$float(16$\vert$32$\vert$64)\$)\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a54ef4ff8740b84507c5a7874bf4d1f90}{R\+E\+G\+E\+X\+\_\+\+T\+R\+A\+N\+S\+P\+O\+S\+E\+\_\+\+O\+P\+T\+I\+ON}}~\char`\"{}$^\wedge$(?\+:(\mbox{[}0-\/2\mbox{]})\+:(?!.$\ast$\textbackslash{}\textbackslash{}1))\{3\}3\$\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a6c4c4036a09381a2a5a3fe20d6e612f8}{R\+E\+G\+E\+X\+\_\+\+S\+T\+A\+N\+D\+\_\+\+O\+P\+T\+I\+ON}}~\char`\"{}$^\wedge$(default$\vert$dc-\/average)(\+:(\mbox{[}u\mbox{]}?int(8$\vert$16$\vert$32$\vert$64)$\vert$float(16$\vert$32$\vert$64)))?(,per-\/channel\+:(true$\vert$false))?\$\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a784e0994103e1d0a06c1f3ee5b0395b3}{R\+E\+G\+E\+X\+\_\+\+C\+L\+A\+M\+P\+\_\+\+O\+P\+T\+I\+ON}}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_ab5f782b2c471aef5771b1ac8446dd4a4}{R\+E\+G\+E\+X\+\_\+\+P\+A\+D\+D\+I\+N\+G\+\_\+\+O\+P\+T\+I\+ON}}~\char`\"{}$^\wedge$((left$\vert$right$\vert$top$\vert$bottom$\vert$front$\vert$back)\+:(\textbackslash{}\textbackslash{}d)(,)?)+(layout\+:(N\+C\+HW$\vert$N\+H\+WC))?\$\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a77ba57ccbdb007af46d536984543eeb7}{R\+E\+G\+E\+X\+\_\+\+A\+R\+I\+T\+H\+\_\+\+O\+P\+T\+I\+ON}}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_ae5a789db4db12febffcb784435957ca0}{R\+E\+G\+E\+X\+\_\+\+A\+R\+I\+T\+H\+\_\+\+O\+P\+T\+I\+O\+N\+\_\+\+T\+Y\+P\+E\+C\+A\+ST}}~\char`\"{}(typecast\+:(\mbox{[}u\mbox{]}?int(8$\vert$16$\vert$32$\vert$64)$\vert$float(16$\vert$32$\vert$64)))\char`\"{}
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a278ce18c71aabc0d64ddd7d94f864e39}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+R\+A\+N\+S\+P\+O\+S\+E\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT}}~(4)
\begin{DoxyCompactList}\small\item\em The transpose rank is fixed to 4. This R\+A\+NK does not affect other/tensors(s)\textquotesingle{}s N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a358e6facb8e2490a71d2b4b670cfb405}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+P\+A\+D\+D\+I\+N\+G\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT}}~(3)
\begin{DoxyCompactList}\small\item\em The padding rank is fixed to 3. This R\+A\+NK does not affect other/tensors(s)\textquotesingle{}s N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_ab1530cd678f8f08a3a9d9e191360a0fb}{D\+E\+F\+A\+U\+L\+T\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+I\+ON}}~\mbox{\hyperlink{nnstreamer_8c_ac529551d78a5faa7079a3deaaadc3f5e}{F\+A\+L\+SE}}
\begin{DoxyCompactList}\small\item\em Flag to set orc acceleration. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a328a0c1519c9faf04348e8bd642fe833}{gst\+\_\+tensor\+\_\+transform\+\_\+parent\+\_\+class}}~parent\+\_\+class
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a2f2be86e54c5e291293f36a57d45a0a7}{G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+R\+A\+N\+S\+F\+O\+R\+M\+\_\+\+M\+O\+DE}}~(\mbox{\hyperlink{gsttensor__transform_8c_a8418735991073f29bd5dc53004282991}{gst\+\_\+tensor\+\_\+transform\+\_\+mode\+\_\+get\+\_\+type}} ())
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a3e9e30c6c9c54c4eac92e5c2fd12d033}{\+\_\+conv\+\_\+to\+\_\+f16}}(intype,  o,  i,  n)~do \{ \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (); \} \mbox{\hyperlink{tensor__data_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a6861723745c42736f38d9649fb709bb2}{\+\_\+conv\+\_\+from\+\_\+f16}}(otype,  o,  i,  n)~do \{ \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (); \} \mbox{\hyperlink{tensor__data_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_a80047811a95d25515ac723f219e272e3}{\+\_\+op\+\_\+float16}}(i,  n,  v,  op)~do \{ \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (); \} \mbox{\hyperlink{tensor__data_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)
\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_afd20ea26fb6889ad6a51c4fb05200f18}{handle\+\_\+operator}}(d,  v,  oper,  vtype)
\begin{DoxyCompactList}\small\item\em Macro for operator. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__transform_8c_ac9122b62a7176f71acddf1a82d8a4e51}{transposeloop}}(cl,  ck,  cj,  ci,  sl,  sk,  sj,  si,  typesize)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \newline
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53ac37dda0da1a44e10c0504afeeb863f3c}{P\+R\+O\+P\+\_\+0}}, 
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a707b785966c328fb5a6088b7879c7bb5}{P\+R\+O\+P\+\_\+\+S\+I\+L\+E\+NT}}, 
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a0b5a29cfd0fc43c914507e65e3aec94f}{P\+R\+O\+P\+\_\+\+M\+O\+DE}}, 
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a2fa038b9cab35cf5205ba382a7946964}{P\+R\+O\+P\+\_\+\+O\+P\+T\+I\+ON}}, 
\newline
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a1e11684e4c261b90456fbc87c44ce897}{P\+R\+O\+P\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+I\+ON}}, 
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a8bf24bfca0b21713b2ae44b88593bb07}{P\+R\+O\+P\+\_\+\+A\+P\+P\+LY}}, 
\mbox{\hyperlink{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a6bc935eea35ca398108b324584721c60}{P\+R\+O\+P\+\_\+\+T\+R\+A\+N\+S\+P\+O\+S\+E\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT}}
 \}
\begin{DoxyCompactList}\small\item\em tensor\+\_\+transform properties \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{gsttensor__transform_8c_a30731b01aff51c6222a3eb3b7f69f21e}{G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC}} (gst\+\_\+tensor\+\_\+transform\+\_\+debug)
\item 
\mbox{\hyperlink{gsttensor__transform_8c_aa3e90a8d527654f410df6fb91a3d1334}{G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}}, gst\+\_\+tensor\+\_\+transform, G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+A\+S\+E\+\_\+\+T\+R\+A\+N\+S\+F\+O\+RM)
\item 
static void \mbox{\hyperlink{gsttensor__transform_8c_a10b8e0ddaeb5c2a943207fd3327d43e6}{gst\+\_\+tensor\+\_\+transform\+\_\+set\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, const G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Set property (gst element vmethod) \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__transform_8c_a4505f6522fa80cdaef5626ca05e44182}{gst\+\_\+tensor\+\_\+transform\+\_\+get\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Get property (gst element vmethod) \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__transform_8c_a05486743ffdf59ec55a4415fbf24719e}{gst\+\_\+tensor\+\_\+transform\+\_\+finalize}} (G\+Object $\ast$object)
\begin{DoxyCompactList}\small\item\em Function to finalize instance (gst element vmethod) \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_a62b0bc350fe5cb4ffd98b7f715986e89}{gst\+\_\+tensor\+\_\+transform\+\_\+transform}} (Gst\+Base\+Transform $\ast$trans, Gst\+Buffer $\ast$inbuf, Gst\+Buffer $\ast$outbuf)
\begin{DoxyCompactList}\small\item\em non-\/ip transform. required vmethod for Base\+Transform class. \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__transform_8c_a3d9a2bdab86aa38dfdaae51f4e7d4794}{gst\+\_\+tensor\+\_\+transform\+\_\+transform\+\_\+caps}} (Gst\+Base\+Transform $\ast$trans, Gst\+Pad\+Direction direction, Gst\+Caps $\ast$caps, Gst\+Caps $\ast$filtercap)
\begin{DoxyCompactList}\small\item\em configure srcpad cap from \char`\"{}proposed\char`\"{} cap. (required vmethod for Base\+Transform) \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__transform_8c_a63f2eda7352b6b418de86aad429dcc8e}{gst\+\_\+tensor\+\_\+transform\+\_\+fixate\+\_\+caps}} (Gst\+Base\+Transform $\ast$trans, Gst\+Pad\+Direction direction, Gst\+Caps $\ast$caps, Gst\+Caps $\ast$othercaps)
\begin{DoxyCompactList}\small\item\em fixate caps. required vmethod of Base\+Transform \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__transform_8c_af1b4a0eec6d3713188c76c444f391ae4}{gst\+\_\+tensor\+\_\+transform\+\_\+set\+\_\+caps}} (Gst\+Base\+Transform $\ast$trans, Gst\+Caps $\ast$incaps, Gst\+Caps $\ast$outcaps)
\begin{DoxyCompactList}\small\item\em set caps. required vmethod of Base\+Transform \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__transform_8c_adee03ee948434d3537da7521854950f7}{gst\+\_\+tensor\+\_\+transform\+\_\+transform\+\_\+size}} (Gst\+Base\+Transform $\ast$trans, Gst\+Pad\+Direction direction, Gst\+Caps $\ast$caps, gsize size, Gst\+Caps $\ast$othercaps, gsize $\ast$othersize)
\begin{DoxyCompactList}\small\item\em Tell the framework the required size of buffer based on the info of the other side pad. Note that this is always the same with the input. optional vmethod of Base\+Transform. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__transform_8c_a5f42db36b04236558978465e7944dba6}{gst\+\_\+tensor\+\_\+transform\+\_\+convert\+\_\+dimension}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, Gst\+Pad\+Direction direction, guint idx, const \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info)
\begin{DoxyCompactList}\small\item\em Dimension conversion calculation. \end{DoxyCompactList}\item 
static G\+Type \mbox{\hyperlink{gsttensor__transform_8c_a8418735991073f29bd5dc53004282991}{gst\+\_\+tensor\+\_\+transform\+\_\+mode\+\_\+get\+\_\+type}} (void)
\begin{DoxyCompactList}\small\item\em A private function to register G\+Enum\+Value array for the \textquotesingle{}mode\textquotesingle{} property to a G\+Type and return it. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__transform_8c_a6245fc02100bd0c57a4f444ba87062d4}{gst\+\_\+tensor\+\_\+transform\+\_\+class\+\_\+init}} (\mbox{\hyperlink{gsttensor__transform_8h_a3256b542a7827c0edd3d9d2c6b6633fc}{Gst\+Tensor\+Transform\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em initialize the tensor\+\_\+transform\textquotesingle{}s class \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__transform_8c_aeb9f3fdcea02968185349189157ec745}{gst\+\_\+tensor\+\_\+transform\+\_\+init}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter)
\begin{DoxyCompactList}\small\item\em initialize the new element (G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE requires this) instantiate pads and add them to element set pad callback functions initialize instance structure \end{DoxyCompactList}\item 
static \mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66a}{tensor\+\_\+transform\+\_\+operator}} \mbox{\hyperlink{gsttensor__transform_8c_a92bd6ca257c6ada99d3572eb734abf7a}{gst\+\_\+tensor\+\_\+transform\+\_\+get\+\_\+operator}} (const gchar $\ast$str)
\begin{DoxyCompactList}\small\item\em Get the corresponding operator from the string value. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{gsttensor__transform_8h_a20a56c11c3ee08dceb451ac331e240ce}{tensor\+\_\+transform\+\_\+stand\+\_\+mode}} \mbox{\hyperlink{gsttensor__transform_8c_adc5bd93d7ec079839e4720a92fc5ed23}{gst\+\_\+tensor\+\_\+transform\+\_\+get\+\_\+stand\+\_\+mode}} (const gchar $\ast$str)
\begin{DoxyCompactList}\small\item\em Get the corresponding mode from the string value. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (void)
\begin{DoxyCompactList}\small\item\em Generate error if float16 is required. \end{DoxyCompactList}\item 
\mbox{\hyperlink{gsttensor__transform_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)
\item 
static gboolean \mbox{\hyperlink{gsttensor__transform_8c_a0a445e1c943537feb9eae294b2145961}{gst\+\_\+tensor\+\_\+transform\+\_\+set\+\_\+option\+\_\+data}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter)
\begin{DoxyCompactList}\small\item\em Setup internal data (data\+\_\+$\ast$ in Gst\+Tensor\+Transform) \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_a6072130c1da8d232c971528102cd5f9d}{gst\+\_\+tensor\+\_\+transform\+\_\+dimchg}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}dimchg\char`\"{} case. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_a1ac9bc048fc4203b676e4196f17db8db}{gst\+\_\+tensor\+\_\+transform\+\_\+typecast}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}typecast\char`\"{} case. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_a4f75c9e09d3dd8551609ed9c79786a80}{gst\+\_\+tensor\+\_\+transform\+\_\+arithmetic}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}arithmetic\char`\"{} case. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_ad993f84e831a5647d1a8d4372b5f7488}{gst\+\_\+tensor\+\_\+transform\+\_\+transpose}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}transpose\char`\"{} case. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_a69e2da0d608124c878c74a2f663f5687}{gst\+\_\+tensor\+\_\+transform\+\_\+stand}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}stand\char`\"{} case. \+: pixel = abs((pixel -\/ average(tensor))/(std(tensor) + val)) \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_ac9c02b04624115d05bd231bafc078b67}{gst\+\_\+tensor\+\_\+transform\+\_\+clamp}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}clamp\char`\"{} case. \+: pixel = if (pixel $>$ max) ? max \+: if (pixel $<$ min) ? min \+: pixel \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__transform_8c_ad2b8c3ae35483c21470780ba7fe7edd2}{gst\+\_\+tensor\+\_\+transform\+\_\+padding}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$in\+\_\+info, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$out\+\_\+info, const uint8\+\_\+t $\ast$inptr, uint8\+\_\+t $\ast$outptr)
\begin{DoxyCompactList}\small\item\em subrouting for tensor-\/transform, \char`\"{}padding\char`\"{} case. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__transform_8c_aa3f04ff78499078c9cb7b0dddb593ce7}{gst\+\_\+tensor\+\_\+transform\+\_\+read\+\_\+caps}} (\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$filter, const Gst\+Caps $\ast$caps, \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$config)
\begin{DoxyCompactList}\small\item\em Read cap, parse tensor configuration (dim/type) from the cap. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const gchar $\ast$ \mbox{\hyperlink{gsttensor__transform_8c_a5439a41cee24d4d871b4c818201e411c}{gst\+\_\+tensor\+\_\+transform\+\_\+stand\+\_\+string}} \mbox{[}$\,$\mbox{]}
\item 
static const gchar $\ast$ \mbox{\hyperlink{gsttensor__transform_8c_ac872690cf7ea8333706a2dd78b75efe0}{gst\+\_\+tensor\+\_\+transform\+\_\+operator\+\_\+string}} \mbox{[}$\,$\mbox{]}
\item 
static Gst\+Static\+Pad\+Template \mbox{\hyperlink{gsttensor__transform_8c_a7c3b88a6174b442587875b361d888720}{sink\+\_\+factory}}
\begin{DoxyCompactList}\small\item\em The capabilities of the inputs. \end{DoxyCompactList}\item 
static Gst\+Static\+Pad\+Template \mbox{\hyperlink{gsttensor__transform_8c_a506c90b87594a5e6111c8b5f6ca85473}{src\+\_\+factory}}
\begin{DoxyCompactList}\small\item\em The capabilities of the outputs. \end{DoxyCompactList}\item 
\mbox{\hyperlink{gsttensor__transform_8c_aa6b3f4e1b92d9d129efafd8e0d5407ba}{break}}
\begin{DoxyCompactList}\small\item\em vtype += (v)-\/$>$data.\+\_\+\#\#vtype; \textbackslash{} \end{DoxyCompactList}\item 
case \mbox{\hyperlink{gsttensor__transform_8c_a93d1e7178820d0a5e1685067ec8f2053}{G\+T\+T\+\_\+\+O\+P\+\_\+\+M\+UL}}
\item 
default \mbox{\hyperlink{gsttensor__transform_8c_ae879ed783eb0f33d27beb490059110d2}{\+\_\+\+\_\+pad0\+\_\+\+\_\+}}
\item 
default Unknown \mbox{\hyperlink{gsttensor__transform_8c_ad434634ea6e676d3c6cc1d2ee32c5558}{operator\%d\char`\"{}, oper)}}
\item 
return \mbox{\hyperlink{gsttensor__transform_8c_ac529551d78a5faa7079a3deaaadc3f5e}{F\+A\+L\+SE}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
G\+Streamer plugin to transform tensor dimension or type. 

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}
10 Jul 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__bug000068}{Bug}}]This is N\+YI.\end{DoxyRefDesc}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{gsttensor__transform_8c_a6861723745c42736f38d9649fb709bb2}\label{gsttensor__transform_8c_a6861723745c42736f38d9649fb709bb2}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!\_conv\_from\_f16@{\_conv\_from\_f16}}
\index{\_conv\_from\_f16@{\_conv\_from\_f16}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{\_conv\_from\_f16}{\_conv\_from\_f16}}
{\footnotesize\ttfamily \#define \+\_\+conv\+\_\+from\+\_\+f16(\begin{DoxyParamCaption}\item[{}]{otype,  }\item[{}]{o,  }\item[{}]{i,  }\item[{}]{n }\end{DoxyParamCaption})~do \{ \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (); \} \mbox{\hyperlink{tensor__data_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)}



Definition at line 465 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a3e9e30c6c9c54c4eac92e5c2fd12d033}\label{gsttensor__transform_8c_a3e9e30c6c9c54c4eac92e5c2fd12d033}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!\_conv\_to\_f16@{\_conv\_to\_f16}}
\index{\_conv\_to\_f16@{\_conv\_to\_f16}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{\_conv\_to\_f16}{\_conv\_to\_f16}}
{\footnotesize\ttfamily \#define \+\_\+conv\+\_\+to\+\_\+f16(\begin{DoxyParamCaption}\item[{}]{intype,  }\item[{}]{o,  }\item[{}]{i,  }\item[{}]{n }\end{DoxyParamCaption})~do \{ \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (); \} \mbox{\hyperlink{tensor__data_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)}



Definition at line 464 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a80047811a95d25515ac723f219e272e3}\label{gsttensor__transform_8c_a80047811a95d25515ac723f219e272e3}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!\_op\_float16@{\_op\_float16}}
\index{\_op\_float16@{\_op\_float16}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{\_op\_float16}{\_op\_float16}}
{\footnotesize\ttfamily \#define \+\_\+op\+\_\+float16(\begin{DoxyParamCaption}\item[{}]{i,  }\item[{}]{n,  }\item[{}]{v,  }\item[{}]{op }\end{DoxyParamCaption})~do \{ \mbox{\hyperlink{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}{float16\+\_\+not\+\_\+supported}} (); \} \mbox{\hyperlink{tensor__data_8c_a8ca9996595b367352d5665c3ee092ffa}{while}} (0)}



Definition at line 466 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_aa2d8b0bc5c1225ba8d7f84e235c1cf0d}\label{gsttensor__transform_8c_aa2d8b0bc5c1225ba8d7f84e235c1cf0d}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!CAPS\_STRING@{CAPS\_STRING}}
\index{CAPS\_STRING@{CAPS\_STRING}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{CAPS\_STRING}{CAPS\_STRING}}
{\footnotesize\ttfamily \#define C\+A\+P\+S\+\_\+\+S\+T\+R\+I\+NG~\mbox{\hyperlink{tensor__typedef_8h_a284951c7aec77ea34d1c0279d5a5b4a0}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}} \char`\"{};\char`\"{} \mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}\{ static, flexible \}\char`\"{})}



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

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



Macro for debug mode. 

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

A filter that transforms tensors dimension or type. The input and output is always in the format of other/tensor or other/tensors.

$<$refsect2$>$ $<$title$>$Example launch line$<$/title$>$ $\vert$\mbox{[} gst-\/launch -\/v -\/m fakesrc ! tensor\+\_\+converter ! tensor\+\_\+transform mode=dimchg option=0\+:2 ! fakesink silent=T\+R\+UE \mbox{]}$\vert$ $<$title$>$How to use dimchg$<$/title$>$ $\vert$\mbox{[} option=0\+:2 \# Move 0th dim to 2nd dim. I.\+e., \mbox{[}a\mbox{]}\mbox{[}H\mbox{]}\mbox{[}W\mbox{]}\mbox{[}C\mbox{]} ==$>$ \mbox{[}a\mbox{]}\mbox{[}C\mbox{]}\mbox{[}H\mbox{]}\mbox{[}W\mbox{]} \mbox{]}$\vert$ $<$/refsect2$>$ 

Definition at line 64 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ab1530cd678f8f08a3a9d9e191360a0fb}\label{gsttensor__transform_8c_ab1530cd678f8f08a3a9d9e191360a0fb}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!DEFAULT\_ACCELERATION@{DEFAULT\_ACCELERATION}}
\index{DEFAULT\_ACCELERATION@{DEFAULT\_ACCELERATION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_ACCELERATION}{DEFAULT\_ACCELERATION}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+I\+ON~\mbox{\hyperlink{nnstreamer_8c_ac529551d78a5faa7079a3deaaadc3f5e}{F\+A\+L\+SE}}}



Flag to set orc acceleration. 



Definition at line 115 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_adef911caed7c65a1643062817f4a59d7}\label{gsttensor__transform_8c_adef911caed7c65a1643062817f4a59d7}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}}
\index{GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}!gsttensor\_transform.c@{gsttensor\_transform.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\+\_\+transform\+\_\+debug}



Definition at line 68 of file gsttensor\+\_\+transform.\+c.

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



Definition at line 148 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a2f2be86e54c5e291293f36a57d45a0a7}\label{gsttensor__transform_8c_a2f2be86e54c5e291293f36a57d45a0a7}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!GST\_TYPE\_TENSOR\_TRANSFORM\_MODE@{GST\_TYPE\_TENSOR\_TRANSFORM\_MODE}}
\index{GST\_TYPE\_TENSOR\_TRANSFORM\_MODE@{GST\_TYPE\_TENSOR\_TRANSFORM\_MODE}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{GST\_TYPE\_TENSOR\_TRANSFORM\_MODE}{GST\_TYPE\_TENSOR\_TRANSFORM\_MODE}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+R\+A\+N\+S\+F\+O\+R\+M\+\_\+\+M\+O\+DE~(\mbox{\hyperlink{gsttensor__transform_8c_a8418735991073f29bd5dc53004282991}{gst\+\_\+tensor\+\_\+transform\+\_\+mode\+\_\+get\+\_\+type}} ())}



Definition at line 176 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_afd20ea26fb6889ad6a51c4fb05200f18}\label{gsttensor__transform_8c_afd20ea26fb6889ad6a51c4fb05200f18}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!handle\_operator@{handle\_operator}}
\index{handle\_operator@{handle\_operator}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{handle\_operator}{handle\_operator}}
{\footnotesize\ttfamily \#define handle\+\_\+operator(\begin{DoxyParamCaption}\item[{}]{d,  }\item[{}]{v,  }\item[{}]{oper,  }\item[{}]{vtype }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{keywordflow}{do} \{ \(\backslash\)}
\DoxyCodeLine{    switch (oper) \{ \(\backslash\)}
\DoxyCodeLine{      case \mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66aa75593a334a20d9b35437bdd98110d32d}{GTT\_OP\_ADD}}: \(\backslash\)}
\DoxyCodeLine{        (d)-\/>\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}}.\_}

\end{DoxyCode}


Macro for operator. 



Definition at line 573 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a358e6facb8e2490a71d2b4b670cfb405}\label{gsttensor__transform_8c_a358e6facb8e2490a71d2b4b670cfb405}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!NNS\_TENSOR\_PADDING\_RANK\_LIMIT@{NNS\_TENSOR\_PADDING\_RANK\_LIMIT}}
\index{NNS\_TENSOR\_PADDING\_RANK\_LIMIT@{NNS\_TENSOR\_PADDING\_RANK\_LIMIT}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_PADDING\_RANK\_LIMIT}{NNS\_TENSOR\_PADDING\_RANK\_LIMIT}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+P\+A\+D\+D\+I\+N\+G\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT~(3)}



The padding rank is fixed to 3. This R\+A\+NK does not affect other/tensors(s)\textquotesingle{}s N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT. 



Definition at line 93 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a278ce18c71aabc0d64ddd7d94f864e39}\label{gsttensor__transform_8c_a278ce18c71aabc0d64ddd7d94f864e39}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!NNS\_TENSOR\_TRANSPOSE\_RANK\_LIMIT@{NNS\_TENSOR\_TRANSPOSE\_RANK\_LIMIT}}
\index{NNS\_TENSOR\_TRANSPOSE\_RANK\_LIMIT@{NNS\_TENSOR\_TRANSPOSE\_RANK\_LIMIT}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_TRANSPOSE\_RANK\_LIMIT}{NNS\_TENSOR\_TRANSPOSE\_RANK\_LIMIT}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+R\+A\+N\+S\+P\+O\+S\+E\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT~(4)}



The transpose rank is fixed to 4. This R\+A\+NK does not affect other/tensors(s)\textquotesingle{}s N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT. 



Definition at line 87 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a77ba57ccbdb007af46d536984543eeb7}\label{gsttensor__transform_8c_a77ba57ccbdb007af46d536984543eeb7}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_ARITH\_OPTION@{REGEX\_ARITH\_OPTION}}
\index{REGEX\_ARITH\_OPTION@{REGEX\_ARITH\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_ARITH\_OPTION}{REGEX\_ARITH\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+A\+R\+I\+T\+H\+\_\+\+O\+P\+T\+I\+ON}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{stringliteral}{"\string^(typecast:([u]?int(8|16|32|64)|float(16|32|64)),)?"}\(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"(per-\/channel:(false|true@[0-\/9]+),)?"}\(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"(((add|mul|div)(:([-\/+]?[0-\/9]*\(\backslash\)\(\backslash\).?[0-\/9]+([eE][-\/+]?[0-\/9]+)?))+(@[0-\/9]+)?)(,|))+\$"}}

\end{DoxyCode}


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

\mbox{\Hypertarget{gsttensor__transform_8c_ae5a789db4db12febffcb784435957ca0}\label{gsttensor__transform_8c_ae5a789db4db12febffcb784435957ca0}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_ARITH\_OPTION\_TYPECAST@{REGEX\_ARITH\_OPTION\_TYPECAST}}
\index{REGEX\_ARITH\_OPTION\_TYPECAST@{REGEX\_ARITH\_OPTION\_TYPECAST}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_ARITH\_OPTION\_TYPECAST}{REGEX\_ARITH\_OPTION\_TYPECAST}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+A\+R\+I\+T\+H\+\_\+\+O\+P\+T\+I\+O\+N\+\_\+\+T\+Y\+P\+E\+C\+A\+ST~\char`\"{}(typecast\+:(\mbox{[}u\mbox{]}?int(8$\vert$16$\vert$32$\vert$64)$\vert$float(16$\vert$32$\vert$64)))\char`\"{}}



Definition at line 81 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a784e0994103e1d0a06c1f3ee5b0395b3}\label{gsttensor__transform_8c_a784e0994103e1d0a06c1f3ee5b0395b3}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_CLAMP\_OPTION@{REGEX\_CLAMP\_OPTION}}
\index{REGEX\_CLAMP\_OPTION@{REGEX\_CLAMP\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_CLAMP\_OPTION}{REGEX\_CLAMP\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+C\+L\+A\+M\+P\+\_\+\+O\+P\+T\+I\+ON}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{stringliteral}{"\string^((([-\/+]?[0-\/9]*\(\backslash\)\(\backslash\).?[0-\/9]+([eE][-\/+]?[0-\/9]+)?))):"}\(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"((([-\/+]?[0-\/9]*\(\backslash\)\(\backslash\).?[0-\/9]+([eE][-\/+]?[0-\/9]+)?)))\$"}}

\end{DoxyCode}


Definition at line 74 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ad8ce4d00e7e20356322592eedff5741c}\label{gsttensor__transform_8c_ad8ce4d00e7e20356322592eedff5741c}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_DIMCHG\_OPTION@{REGEX\_DIMCHG\_OPTION}}
\index{REGEX\_DIMCHG\_OPTION@{REGEX\_DIMCHG\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_DIMCHG\_OPTION}{REGEX\_DIMCHG\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+D\+I\+M\+C\+H\+G\+\_\+\+O\+P\+T\+I\+ON~\char`\"{}$^\wedge$(\mbox{[}0-\/9\mbox{]}$\vert$1\mbox{[}0-\/5\mbox{]})\+:(\mbox{[}0-\/9\mbox{]}$\vert$1\mbox{[}0-\/5\mbox{]})\$\char`\"{}}



Definition at line 70 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ab5f782b2c471aef5771b1ac8446dd4a4}\label{gsttensor__transform_8c_ab5f782b2c471aef5771b1ac8446dd4a4}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_PADDING\_OPTION@{REGEX\_PADDING\_OPTION}}
\index{REGEX\_PADDING\_OPTION@{REGEX\_PADDING\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_PADDING\_OPTION}{REGEX\_PADDING\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+P\+A\+D\+D\+I\+N\+G\+\_\+\+O\+P\+T\+I\+ON~\char`\"{}$^\wedge$((left$\vert$right$\vert$top$\vert$bottom$\vert$front$\vert$back)\+:(\textbackslash{}\textbackslash{}d)(,)?)+(layout\+:(N\+C\+HW$\vert$N\+H\+WC))?\$\char`\"{}}



Definition at line 76 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a6c4c4036a09381a2a5a3fe20d6e612f8}\label{gsttensor__transform_8c_a6c4c4036a09381a2a5a3fe20d6e612f8}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_STAND\_OPTION@{REGEX\_STAND\_OPTION}}
\index{REGEX\_STAND\_OPTION@{REGEX\_STAND\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_STAND\_OPTION}{REGEX\_STAND\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+S\+T\+A\+N\+D\+\_\+\+O\+P\+T\+I\+ON~\char`\"{}$^\wedge$(default$\vert$dc-\/average)(\+:(\mbox{[}u\mbox{]}?int(8$\vert$16$\vert$32$\vert$64)$\vert$float(16$\vert$32$\vert$64)))?(,per-\/channel\+:(true$\vert$false))?\$\char`\"{}}



Definition at line 73 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a54ef4ff8740b84507c5a7874bf4d1f90}\label{gsttensor__transform_8c_a54ef4ff8740b84507c5a7874bf4d1f90}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_TRANSPOSE\_OPTION@{REGEX\_TRANSPOSE\_OPTION}}
\index{REGEX\_TRANSPOSE\_OPTION@{REGEX\_TRANSPOSE\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_TRANSPOSE\_OPTION}{REGEX\_TRANSPOSE\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+T\+R\+A\+N\+S\+P\+O\+S\+E\+\_\+\+O\+P\+T\+I\+ON~\char`\"{}$^\wedge$(?\+:(\mbox{[}0-\/2\mbox{]})\+:(?!.$\ast$\textbackslash{}\textbackslash{}1))\{3\}3\$\char`\"{}}



Definition at line 72 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a20434909808879bd353be48f73d22aec}\label{gsttensor__transform_8c_a20434909808879bd353be48f73d22aec}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!REGEX\_TYPECAST\_OPTION@{REGEX\_TYPECAST\_OPTION}}
\index{REGEX\_TYPECAST\_OPTION@{REGEX\_TYPECAST\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{REGEX\_TYPECAST\_OPTION}{REGEX\_TYPECAST\_OPTION}}
{\footnotesize\ttfamily \#define R\+E\+G\+E\+X\+\_\+\+T\+Y\+P\+E\+C\+A\+S\+T\+\_\+\+O\+P\+T\+I\+ON~\char`\"{}($^\wedge$\mbox{[}u\mbox{]}?int(8$\vert$16$\vert$32$\vert$64)\$$\vert$$^\wedge$float(16$\vert$32$\vert$64)\$)\char`\"{}}



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

\mbox{\Hypertarget{gsttensor__transform_8c_ac9122b62a7176f71acddf1a82d8a4e51}\label{gsttensor__transform_8c_ac9122b62a7176f71acddf1a82d8a4e51}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!transposeloop@{transposeloop}}
\index{transposeloop@{transposeloop}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{transposeloop}{transposeloop}}
{\footnotesize\ttfamily \#define transposeloop(\begin{DoxyParamCaption}\item[{}]{cl,  }\item[{}]{ck,  }\item[{}]{cj,  }\item[{}]{ci,  }\item[{}]{sl,  }\item[{}]{sk,  }\item[{}]{sj,  }\item[{}]{si,  }\item[{}]{typesize }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{keywordflow}{do} \{ \(\backslash\)}
\DoxyCodeLine{    size\_t i, j, k, l;                                  \(\backslash\)}
\DoxyCodeLine{    int inidx = 0, outidx=0;                            \(\backslash\)}
\DoxyCodeLine{    for(cl=0;cl<sl;cl++)                      \(\backslash\)}
\DoxyCodeLine{      \textcolor{keywordflow}{for}(ci=0;ci<si;ci++)                    \(\backslash\)}
\DoxyCodeLine{        \textcolor{keywordflow}{for}(cj=0;cj<sj;cj++)                  \(\backslash\)}
\DoxyCodeLine{          \textcolor{keywordflow}{for}(ck=0;ck<sk;ck++)\{               \(\backslash\)}
\DoxyCodeLine{            const uint8\_t *\_in; \(\backslash\)}
\DoxyCodeLine{            uint8\_t *\_out; \(\backslash\)}
\DoxyCodeLine{            outidx = si*sj*sk*cl + sj*sk*ci + sk*cj + ck; \(\backslash\)}
\DoxyCodeLine{            inidx = SK*SJ*SI*l + SJ*SI*k + SI*j + i; \(\backslash\)}
\DoxyCodeLine{            \_in = inptr + inidx * typesize; \(\backslash\)}
\DoxyCodeLine{            \_out = outptr + outidx * typesize; \(\backslash\)}
\DoxyCodeLine{            nns\_memcpy(\_out, \_in, typesize); \(\backslash\)}
\DoxyCodeLine{      \}                                                      \(\backslash\)}
\DoxyCodeLine{  \} \textcolor{keywordflow}{while}(0);}

\end{DoxyCode}
Macro to run loop for various data types with transpose 

Definition at line 1506 of file gsttensor\+\_\+transform.\+c.



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



tensor\+\_\+transform properties 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_0@{PROP\_0}!gsttensor\_transform.c@{gsttensor\_transform.c}}\index{gsttensor\_transform.c@{gsttensor\_transform.c}!PROP\_0@{PROP\_0}}}\mbox{\Hypertarget{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53ac37dda0da1a44e10c0504afeeb863f3c}\label{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53ac37dda0da1a44e10c0504afeeb863f3c}} 
P\+R\+O\+P\+\_\+0&\\
\hline

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

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

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_OPTION@{PROP\_OPTION}!gsttensor\_transform.c@{gsttensor\_transform.c}}\index{gsttensor\_transform.c@{gsttensor\_transform.c}!PROP\_OPTION@{PROP\_OPTION}}}\mbox{\Hypertarget{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a2fa038b9cab35cf5205ba382a7946964}\label{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a2fa038b9cab35cf5205ba382a7946964}} 
P\+R\+O\+P\+\_\+\+O\+P\+T\+I\+ON&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_ACCELERATION@{PROP\_ACCELERATION}!gsttensor\_transform.c@{gsttensor\_transform.c}}\index{gsttensor\_transform.c@{gsttensor\_transform.c}!PROP\_ACCELERATION@{PROP\_ACCELERATION}}}\mbox{\Hypertarget{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a1e11684e4c261b90456fbc87c44ce897}\label{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a1e11684e4c261b90456fbc87c44ce897}} 
P\+R\+O\+P\+\_\+\+A\+C\+C\+E\+L\+E\+R\+A\+T\+I\+ON&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_APPLY@{PROP\_APPLY}!gsttensor\_transform.c@{gsttensor\_transform.c}}\index{gsttensor\_transform.c@{gsttensor\_transform.c}!PROP\_APPLY@{PROP\_APPLY}}}\mbox{\Hypertarget{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a8bf24bfca0b21713b2ae44b88593bb07}\label{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a8bf24bfca0b21713b2ae44b88593bb07}} 
P\+R\+O\+P\+\_\+\+A\+P\+P\+LY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_TRANSPOSE\_RANK\_LIMIT@{PROP\_TRANSPOSE\_RANK\_LIMIT}!gsttensor\_transform.c@{gsttensor\_transform.c}}\index{gsttensor\_transform.c@{gsttensor\_transform.c}!PROP\_TRANSPOSE\_RANK\_LIMIT@{PROP\_TRANSPOSE\_RANK\_LIMIT}}}\mbox{\Hypertarget{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a6bc935eea35ca398108b324584721c60}\label{gsttensor__transform_8c_ab48899087cc647f0f791ed0c459adc53a6bc935eea35ca398108b324584721c60}} 
P\+R\+O\+P\+\_\+\+T\+R\+A\+N\+S\+P\+O\+S\+E\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT&\\
\hline

\end{DoxyEnumFields}


Definition at line 98 of file gsttensor\+\_\+transform.\+c.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}\label{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!float16\_not\_supported@{float16\_not\_supported}}
\index{float16\_not\_supported@{float16\_not\_supported}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{float16\_not\_supported()}{float16\_not\_supported()}}
{\footnotesize\ttfamily static void float16\+\_\+not\+\_\+supported (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Generate error if float16 is required. 



Definition at line 348 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=299pt]{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=284pt]{gsttensor__transform_8c_a18c1e67d5a3867ebe9a5dbc6c1c774e7_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_aa3e90a8d527654f410df6fb91a3d1334}\label{gsttensor__transform_8c_aa3e90a8d527654f410df6fb91a3d1334}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}}
\index{G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}!gsttensor\_transform.c@{gsttensor\_transform.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__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}}}]{,  }\item[{gst\+\_\+tensor\+\_\+transform}]{,  }\item[{G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+A\+S\+E\+\_\+\+T\+R\+A\+N\+S\+F\+O\+RM}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__transform_8c_a30731b01aff51c6222a3eb3b7f69f21e}\label{gsttensor__transform_8c_a30731b01aff51c6222a3eb3b7f69f21e}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}}
\index{GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}!gsttensor\_transform.c@{gsttensor\_transform.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\+\_\+transform\+\_\+debug}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__transform_8c_a4f75c9e09d3dd8551609ed9c79786a80}\label{gsttensor__transform_8c_a4f75c9e09d3dd8551609ed9c79786a80}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_arithmetic@{gst\_tensor\_transform\_arithmetic}}
\index{gst\_tensor\_transform\_arithmetic@{gst\_tensor\_transform\_arithmetic}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_arithmetic()}{gst\_tensor\_transform\_arithmetic()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+arithmetic (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}arithmetic\char`\"{} case. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}
In case of 3\+:4\+:4\+:1, ch\+\_\+dim\+:0 -\/$>$ \#ch\+: 3, ch\+\_\+size\+: 1, ch\+\_\+offset\+: 3 ch\+\_\+dim\+:1 -\/$>$ \#ch\+: 4, ch\+\_\+size\+: 3, ch\+\_\+offset\+: 12 ch\+\_\+dim\+:2 -\/$>$ \#ch\+: 4, ch\+\_\+size\+: 12, ch\+\_\+offset\+: 48 ch\+\_\+dim\+:3 -\/$>$ \#ch\+: 1, ch\+\_\+size\+: 48, ch\+\_\+offset\+: 48 $\ast$ 4

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000037}{Todo}}]add more options \end{DoxyRefDesc}


Definition at line 1330 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a4f75c9e09d3dd8551609ed9c79786a80_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a4f75c9e09d3dd8551609ed9c79786a80_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_ac9c02b04624115d05bd231bafc078b67}\label{gsttensor__transform_8c_ac9c02b04624115d05bd231bafc078b67}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_clamp@{gst\_tensor\_transform\_clamp}}
\index{gst\_tensor\_transform\_clamp@{gst\_tensor\_transform\_clamp}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_clamp()}{gst\_tensor\_transform\_clamp()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+clamp (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}clamp\char`\"{} case. \+: pixel = if (pixel $>$ max) ? max \+: if (pixel $<$ min) ? min \+: pixel 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}


Definition at line 1725 of file gsttensor\+\_\+transform.\+c.

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



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



Definition at line 224 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a6245fc02100bd0c57a4f444ba87062d4_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a5f42db36b04236558978465e7944dba6}\label{gsttensor__transform_8c_a5f42db36b04236558978465e7944dba6}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_convert\_dimension@{gst\_tensor\_transform\_convert\_dimension}}
\index{gst\_tensor\_transform\_convert\_dimension@{gst\_tensor\_transform\_convert\_dimension}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_convert\_dimension()}{gst\_tensor\_transform\_convert\_dimension()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+transform\+\_\+convert\+\_\+dimension (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{Gst\+Pad\+Direction}]{direction,  }\item[{guint}]{idx,  }\item[{const \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Dimension conversion calculation. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em filter} & \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em direction} & G\+S\+T\+\_\+\+P\+A\+D\+\_\+\+S\+I\+NK if input-\/$>$output conv \\
\hline
\mbox{\texttt{ in}}  & {\em idx} & index of the input tensors \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & tensor info structure of source tensor (input if direction is S\+I\+NK) \\
\hline
\mbox{\texttt{ out}}  & {\em out\+\_\+info} & tensor info structure of destination tensor (output if direction is S\+I\+NK) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if success 
\end{DoxyReturn}
For both directions, dimension does not change

src = S\+I\+N\+K\+P\+AD / dest = S\+R\+C\+P\+AD

For both directions, dimension does not change

Definition at line 2005 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a5f42db36b04236558978465e7944dba6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a5f42db36b04236558978465e7944dba6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a6072130c1da8d232c971528102cd5f9d}\label{gsttensor__transform_8c_a6072130c1da8d232c971528102cd5f9d}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_dimchg@{gst\_tensor\_transform\_dimchg}}
\index{gst\_tensor\_transform\_dimchg@{gst\_tensor\_transform\_dimchg}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_dimchg()}{gst\_tensor\_transform\_dimchg()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+dimchg (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}dimchg\char`\"{} case. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}
Useless memcpy. Do not call this or \begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000034}{Todo}}]do \char`\"{}\+I\+P\char`\"{} operation \end{DoxyRefDesc}


Smaller-\/loop-\/ed a to larger-\/loop-\/ed b E.\+g., \mbox{[}N\mbox{]}\mbox{[}H\mbox{]}\mbox{[}W\mbox{]}\mbox{[}c\mbox{]} (c\+:\+W\+:H\+:N) -\/-\/$>$ \mbox{[}N\mbox{]}\mbox{[}c\mbox{]}\mbox{[}H\mbox{]}\mbox{[}W\mbox{]} (W\+:\+H\+:c\+:N)

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000035}{Todo}}]C\+R\+I\+T\+I\+C\+A\+L-\/\+T\+O\+DO\+: Optimize the performance! \end{DoxyRefDesc}


Larger-\/loop-\/ed a to smaller-\/loop-\/ed b E.\+g., \mbox{[}N\mbox{]}\mbox{[}c\mbox{]}\mbox{[}H\mbox{]}\mbox{[}W\mbox{]} (W\+:\+H\+:c\+:N) -\/-\/$>$ \mbox{[}N\mbox{]}\mbox{[}H\mbox{]}\mbox{[}W\mbox{]}\mbox{[}c\mbox{]} (c\+:\+W\+:H\+:N) \begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000036}{Todo}}]N\+YI \end{DoxyRefDesc}


Definition at line 1197 of file gsttensor\+\_\+transform.\+c.

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



Function to finalize instance (gst element vmethod) 



Definition at line 1163 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=284pt]{gsttensor__transform_8c_a05486743ffdf59ec55a4415fbf24719e_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a05486743ffdf59ec55a4415fbf24719e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a63f2eda7352b6b418de86aad429dcc8e}\label{gsttensor__transform_8c_a63f2eda7352b6b418de86aad429dcc8e}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_fixate\_caps@{gst\_tensor\_transform\_fixate\_caps}}
\index{gst\_tensor\_transform\_fixate\_caps@{gst\_tensor\_transform\_fixate\_caps}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_fixate\_caps()}{gst\_tensor\_transform\_fixate\_caps()}}
{\footnotesize\ttfamily static Gst\+Caps $\ast$ gst\+\_\+tensor\+\_\+transform\+\_\+fixate\+\_\+caps (\begin{DoxyParamCaption}\item[{Gst\+Base\+Transform $\ast$}]{trans,  }\item[{Gst\+Pad\+Direction}]{direction,  }\item[{Gst\+Caps $\ast$}]{caps,  }\item[{Gst\+Caps $\ast$}]{othercaps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



fixate caps. required vmethod of Base\+Transform 



Definition at line 2222 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a63f2eda7352b6b418de86aad429dcc8e_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a63f2eda7352b6b418de86aad429dcc8e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a92bd6ca257c6ada99d3572eb734abf7a}\label{gsttensor__transform_8c_a92bd6ca257c6ada99d3572eb734abf7a}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_get\_operator@{gst\_tensor\_transform\_get\_operator}}
\index{gst\_tensor\_transform\_get\_operator@{gst\_tensor\_transform\_get\_operator}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_get\_operator()}{gst\_tensor\_transform\_get\_operator()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66a}{tensor\+\_\+transform\+\_\+operator}} gst\+\_\+tensor\+\_\+transform\+\_\+get\+\_\+operator (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{str }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the corresponding operator from the string value. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em str} & The string value for the operator \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
corresponding operator for the string (G\+T\+T\+\_\+\+O\+P\+\_\+\+U\+N\+K\+N\+O\+WN for errors) 
\end{DoxyReturn}


Definition at line 319 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=318pt]{gsttensor__transform_8c_a92bd6ca257c6ada99d3572eb734abf7a_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a92bd6ca257c6ada99d3572eb734abf7a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a4505f6522fa80cdaef5626ca05e44182}\label{gsttensor__transform_8c_a4505f6522fa80cdaef5626ca05e44182}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_get\_property@{gst\_tensor\_transform\_get\_property}}
\index{gst\_tensor\_transform\_get\_property@{gst\_tensor\_transform\_get\_property}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_get\_property()}{gst\_tensor\_transform\_get\_property()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+transform\+\_\+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]}}



Get property (gst element vmethod) 



Definition at line 1107 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=345pt]{gsttensor__transform_8c_a4505f6522fa80cdaef5626ca05e44182_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a4505f6522fa80cdaef5626ca05e44182_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_adc5bd93d7ec079839e4720a92fc5ed23}\label{gsttensor__transform_8c_adc5bd93d7ec079839e4720a92fc5ed23}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_get\_stand\_mode@{gst\_tensor\_transform\_get\_stand\_mode}}
\index{gst\_tensor\_transform\_get\_stand\_mode@{gst\_tensor\_transform\_get\_stand\_mode}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_get\_stand\_mode()}{gst\_tensor\_transform\_get\_stand\_mode()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{gsttensor__transform_8h_a20a56c11c3ee08dceb451ac331e240ce}{tensor\+\_\+transform\+\_\+stand\+\_\+mode}} gst\+\_\+tensor\+\_\+transform\+\_\+get\+\_\+stand\+\_\+mode (\begin{DoxyParamCaption}\item[{const gchar $\ast$}]{str }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the corresponding mode from the string value. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em str} & The string value for the mode \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
corresponding mode for the string. S\+T\+A\+N\+D\+\_\+\+E\+ND for errors 
\end{DoxyReturn}


Definition at line 334 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=318pt]{gsttensor__transform_8c_adc5bd93d7ec079839e4720a92fc5ed23_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_adc5bd93d7ec079839e4720a92fc5ed23_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_aeb9f3fdcea02968185349189157ec745}\label{gsttensor__transform_8c_aeb9f3fdcea02968185349189157ec745}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_init@{gst\_tensor\_transform\_init}}
\index{gst\_tensor\_transform\_init@{gst\_tensor\_transform\_init}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_init()}{gst\_tensor\_transform\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+transform\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize the new element (G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE requires this) instantiate pads and add them to element set pad callback functions initialize instance structure 



Definition at line 299 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_aeb9f3fdcea02968185349189157ec745_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a8418735991073f29bd5dc53004282991}\label{gsttensor__transform_8c_a8418735991073f29bd5dc53004282991}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_mode\_get\_type@{gst\_tensor\_transform\_mode\_get\_type}}
\index{gst\_tensor\_transform\_mode\_get\_type@{gst\_tensor\_transform\_mode\_get\_type}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_mode\_get\_type()}{gst\_tensor\_transform\_mode\_get\_type()}}
{\footnotesize\ttfamily static G\+Type gst\+\_\+tensor\+\_\+transform\+\_\+mode\+\_\+get\+\_\+type (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



A private function to register G\+Enum\+Value array for the \textquotesingle{}mode\textquotesingle{} property to a G\+Type and return it. 



Definition at line 182 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ad2b8c3ae35483c21470780ba7fe7edd2}\label{gsttensor__transform_8c_ad2b8c3ae35483c21470780ba7fe7edd2}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_padding@{gst\_tensor\_transform\_padding}}
\index{gst\_tensor\_transform\_padding@{gst\_tensor\_transform\_padding}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_padding()}{gst\_tensor\_transform\_padding()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+padding (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}padding\char`\"{} case. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000038}{Todo}}]Add constant option instead of using zero padding value \end{DoxyRefDesc}


Definition at line 1762 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_ad2b8c3ae35483c21470780ba7fe7edd2_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_ad2b8c3ae35483c21470780ba7fe7edd2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_aa3f04ff78499078c9cb7b0dddb593ce7}\label{gsttensor__transform_8c_aa3f04ff78499078c9cb7b0dddb593ce7}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_read\_caps@{gst\_tensor\_transform\_read\_caps}}
\index{gst\_tensor\_transform\_read\_caps@{gst\_tensor\_transform\_read\_caps}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_read\_caps()}{gst\_tensor\_transform\_read\_caps()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+transform\+\_\+read\+\_\+caps (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{const Gst\+Caps $\ast$}]{caps,  }\item[{\mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}} $\ast$}]{config }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Read cap, parse tensor configuration (dim/type) from the cap. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em filter} & \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em caps} & The input caps to be read \\
\hline
\mbox{\texttt{ out}}  & {\em config} & configured tensor info \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if successful (both dim/type read). F\+A\+L\+SE if not. 
\end{DoxyReturn}


Definition at line 1978 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_aa3f04ff78499078c9cb7b0dddb593ce7_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_aa3f04ff78499078c9cb7b0dddb593ce7_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_af1b4a0eec6d3713188c76c444f391ae4}\label{gsttensor__transform_8c_af1b4a0eec6d3713188c76c444f391ae4}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_set\_caps@{gst\_tensor\_transform\_set\_caps}}
\index{gst\_tensor\_transform\_set\_caps@{gst\_tensor\_transform\_set\_caps}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_set\_caps()}{gst\_tensor\_transform\_set\_caps()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+transform\+\_\+set\+\_\+caps (\begin{DoxyParamCaption}\item[{Gst\+Base\+Transform $\ast$}]{trans,  }\item[{Gst\+Caps $\ast$}]{incaps,  }\item[{Gst\+Caps $\ast$}]{outcaps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



set caps. required vmethod of Base\+Transform 



Definition at line 2249 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_af1b4a0eec6d3713188c76c444f391ae4_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_af1b4a0eec6d3713188c76c444f391ae4_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a0a445e1c943537feb9eae294b2145961}\label{gsttensor__transform_8c_a0a445e1c943537feb9eae294b2145961}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_set\_option\_data@{gst\_tensor\_transform\_set\_option\_data}}
\index{gst\_tensor\_transform\_set\_option\_data@{gst\_tensor\_transform\_set\_option\_data}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_set\_option\_data()}{gst\_tensor\_transform\_set\_option\_data()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+transform\+\_\+set\+\_\+option\+\_\+data (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Setup internal data (data\+\_\+$\ast$ in Gst\+Tensor\+Transform) 


\begin{DoxyParams}{Parameters}
{\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer. mode \& option M\+U\+ST BE set already. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em T\+R\+UE} & if OK or operation-\/skipped, F\+A\+L\+SE if fatal-\/error. \\
\hline
\end{DoxyRetVals}


Definition at line 663 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a0a445e1c943537feb9eae294b2145961_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a0a445e1c943537feb9eae294b2145961_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a10b8e0ddaeb5c2a943207fd3327d43e6}\label{gsttensor__transform_8c_a10b8e0ddaeb5c2a943207fd3327d43e6}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_set\_property@{gst\_tensor\_transform\_set\_property}}
\index{gst\_tensor\_transform\_set\_property@{gst\_tensor\_transform\_set\_property}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_set\_property()}{gst\_tensor\_transform\_set\_property()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+transform\+\_\+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]}}



Set property (gst element vmethod) 



Definition at line 1040 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a10b8e0ddaeb5c2a943207fd3327d43e6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a10b8e0ddaeb5c2a943207fd3327d43e6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a69e2da0d608124c878c74a2f663f5687}\label{gsttensor__transform_8c_a69e2da0d608124c878c74a2f663f5687}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_stand@{gst\_tensor\_transform\_stand}}
\index{gst\_tensor\_transform\_stand@{gst\_tensor\_transform\_stand}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_stand()}{gst\_tensor\_transform\_stand()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+stand (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}stand\char`\"{} case. \+: pixel = abs((pixel -\/ average(tensor))/(std(tensor) + val)) 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}


Definition at line 1605 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a69e2da0d608124c878c74a2f663f5687_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a69e2da0d608124c878c74a2f663f5687_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a62b0bc350fe5cb4ffd98b7f715986e89}\label{gsttensor__transform_8c_a62b0bc350fe5cb4ffd98b7f715986e89}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_transform@{gst\_tensor\_transform\_transform}}
\index{gst\_tensor\_transform\_transform@{gst\_tensor\_transform\_transform}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_transform()}{gst\_tensor\_transform\_transform()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+transform (\begin{DoxyParamCaption}\item[{Gst\+Base\+Transform $\ast$}]{trans,  }\item[{Gst\+Buffer $\ast$}]{inbuf,  }\item[{Gst\+Buffer $\ast$}]{outbuf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



non-\/ip transform. required vmethod for Base\+Transform class. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & trans \char`\"{}super\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em inbuf} & The input gst buffer \\
\hline
\mbox{\texttt{ out}}  & {\em outbuf} & The output gst buffer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst Flow Status 
\end{DoxyReturn}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000039}{Todo}}]max rank supported in tensor-\/transform is 4 \end{DoxyRefDesc}


Definition at line 1815 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{gsttensor__transform_8c_a62b0bc350fe5cb4ffd98b7f715986e89_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a62b0bc350fe5cb4ffd98b7f715986e89_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a3d9a2bdab86aa38dfdaae51f4e7d4794}\label{gsttensor__transform_8c_a3d9a2bdab86aa38dfdaae51f4e7d4794}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_transform\_caps@{gst\_tensor\_transform\_transform\_caps}}
\index{gst\_tensor\_transform\_transform\_caps@{gst\_tensor\_transform\_transform\_caps}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_transform\_caps()}{gst\_tensor\_transform\_transform\_caps()}}
{\footnotesize\ttfamily static Gst\+Caps $\ast$ gst\+\_\+tensor\+\_\+transform\+\_\+transform\+\_\+caps (\begin{DoxyParamCaption}\item[{Gst\+Base\+Transform $\ast$}]{trans,  }\item[{Gst\+Pad\+Direction}]{direction,  }\item[{Gst\+Caps $\ast$}]{caps,  }\item[{Gst\+Caps $\ast$}]{filtercap }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



configure srcpad cap from \char`\"{}proposed\char`\"{} cap. (required vmethod for Base\+Transform) 


\begin{DoxyParams}{Parameters}
{\em trans} & (\char`\"{}this\char`\"{} pointer) \\
\hline
{\em direction} & (why do we need this?) \\
\hline
{\em caps} & sinkpad cap \\
\hline
{\em filtercap} & this element\textquotesingle{}s cap (don\textquotesingle{}t know specifically.)\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000040}{Todo}}]Get to know what the heck is @filtercap and use it! \end{DoxyRefDesc}


Definition at line 2139 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a3d9a2bdab86aa38dfdaae51f4e7d4794_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a3d9a2bdab86aa38dfdaae51f4e7d4794_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_adee03ee948434d3537da7521854950f7}\label{gsttensor__transform_8c_adee03ee948434d3537da7521854950f7}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_transform\_size@{gst\_tensor\_transform\_transform\_size}}
\index{gst\_tensor\_transform\_transform\_size@{gst\_tensor\_transform\_transform\_size}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_transform\_size()}{gst\_tensor\_transform\_transform\_size()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+transform\+\_\+transform\+\_\+size (\begin{DoxyParamCaption}\item[{Gst\+Base\+Transform $\ast$}]{trans,  }\item[{Gst\+Pad\+Direction}]{direction,  }\item[{Gst\+Caps $\ast$}]{caps,  }\item[{gsize}]{size,  }\item[{Gst\+Caps $\ast$}]{othercaps,  }\item[{gsize $\ast$}]{othersize }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Tell the framework the required size of buffer based on the info of the other side pad. Note that this is always the same with the input. optional vmethod of Base\+Transform. 

Consider multi-\/tensors. Set each memory block in transform()

Definition at line 2329 of file gsttensor\+\_\+transform.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_adee03ee948434d3537da7521854950f7_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_ad993f84e831a5647d1a8d4372b5f7488}\label{gsttensor__transform_8c_ad993f84e831a5647d1a8d4372b5f7488}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_transpose@{gst\_tensor\_transform\_transpose}}
\index{gst\_tensor\_transform\_transpose@{gst\_tensor\_transform\_transpose}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_transpose()}{gst\_tensor\_transform\_transpose()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+transpose (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}transpose\char`\"{} case. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}


Definition at line 1533 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_ad993f84e831a5647d1a8d4372b5f7488_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_ad993f84e831a5647d1a8d4372b5f7488_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a1ac9bc048fc4203b676e4196f17db8db}\label{gsttensor__transform_8c_a1ac9bc048fc4203b676e4196f17db8db}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_typecast@{gst\_tensor\_transform\_typecast}}
\index{gst\_tensor\_transform\_typecast@{gst\_tensor\_transform\_typecast}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_typecast()}{gst\_tensor\_transform\_typecast()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+transform\+\_\+typecast (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__transform_8h_a5dbaf5dd25dabe332370a6ba69bf8831}{Gst\+Tensor\+Transform}} $\ast$}]{filter,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{in\+\_\+info,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{out\+\_\+info,  }\item[{const uint8\+\_\+t $\ast$}]{inptr,  }\item[{uint8\+\_\+t $\ast$}]{outptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



subrouting for tensor-\/transform, \char`\"{}typecast\char`\"{} case. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}in/out\mbox{]}} & filter \char`\"{}this\char`\"{} pointer \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+info} & input tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+info} & output tensor info \\
\hline
\mbox{\texttt{ in}}  & {\em inptr} & input tensor \\
\hline
\mbox{\texttt{ out}}  & {\em outptr} & output tensor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Gst flow status 
\end{DoxyReturn}


Definition at line 1292 of file gsttensor\+\_\+transform.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a1ac9bc048fc4203b676e4196f17db8db_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__transform_8c_a1ac9bc048fc4203b676e4196f17db8db_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__transform_8c_a8ca9996595b367352d5665c3ee092ffa}\label{gsttensor__transform_8c_a8ca9996595b367352d5665c3ee092ffa}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!while@{while}}
\index{while@{while}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{while()}{while()}}
{\footnotesize\ttfamily while (\begin{DoxyParamCaption}\item[{0}]{ }\end{DoxyParamCaption})}



Definition at line 592 of file gsttensor\+\_\+transform.\+c.

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


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{gsttensor__transform_8c_ae879ed783eb0f33d27beb490059110d2}\label{gsttensor__transform_8c_ae879ed783eb0f33d27beb490059110d2}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!\_\_pad0\_\_@{\_\_pad0\_\_}}
\index{\_\_pad0\_\_@{\_\_pad0\_\_}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{\_\_pad0\_\_}{\_\_pad0\_\_}}
{\footnotesize\ttfamily default \+\_\+\+\_\+pad0\+\_\+\+\_\+}



Definition at line 589 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_aa6b3f4e1b92d9d129efafd8e0d5407ba}\label{gsttensor__transform_8c_aa6b3f4e1b92d9d129efafd8e0d5407ba}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!break@{break}}
\index{break@{break}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{break}{break}}
{\footnotesize\ttfamily d \mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}} \+\_\+ break}



vtype += (v)-\/$>$data.\+\_\+\#\#vtype; \textbackslash{} 

vtype /= (v)-\/$>$data.\+\_\+\#\#vtype; \textbackslash{} 

Definition at line 577 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ac529551d78a5faa7079a3deaaadc3f5e}\label{gsttensor__transform_8c_ac529551d78a5faa7079a3deaaadc3f5e}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!FALSE@{FALSE}}
\index{FALSE@{FALSE}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{FALSE}{FALSE}}
{\footnotesize\ttfamily return F\+A\+L\+SE}



Definition at line 590 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ac872690cf7ea8333706a2dd78b75efe0}\label{gsttensor__transform_8c_ac872690cf7ea8333706a2dd78b75efe0}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_operator\_string@{gst\_tensor\_transform\_operator\_string}}
\index{gst\_tensor\_transform\_operator\_string@{gst\_tensor\_transform\_operator\_string}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_operator\_string}{gst\_tensor\_transform\_operator\_string}}
{\footnotesize\ttfamily const gchar$\ast$ gst\+\_\+tensor\+\_\+transform\+\_\+operator\+\_\+string\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66aadcffebf574bc3a6528c6cf252783d70e}{GTT\_OP\_TYPECAST}}] = \textcolor{stringliteral}{"typecast"},}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66aa75593a334a20d9b35437bdd98110d32d}{GTT\_OP\_ADD}}] = \textcolor{stringliteral}{"add"},}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8c_a93d1e7178820d0a5e1685067ec8f2053}{GTT\_OP\_MUL}}] = \textcolor{stringliteral}{"mul"},}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66aab6bf43aa068725dd35f0099d2f508828}{GTT\_OP\_DIV}}] = \textcolor{stringliteral}{"div"},}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_ae6ded681aca88c190033514dd549f66aafb61bc07415c4bef68eadcd053c3c393}{GTT\_OP\_UNKNOWN}}] = NULL}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line 124 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a5439a41cee24d4d871b4c818201e411c}\label{gsttensor__transform_8c_a5439a41cee24d4d871b4c818201e411c}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!gst\_tensor\_transform\_stand\_string@{gst\_tensor\_transform\_stand\_string}}
\index{gst\_tensor\_transform\_stand\_string@{gst\_tensor\_transform\_stand\_string}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_transform\_stand\_string}{gst\_tensor\_transform\_stand\_string}}
{\footnotesize\ttfamily const gchar$\ast$ gst\+\_\+tensor\+\_\+transform\+\_\+stand\+\_\+string\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_a20a56c11c3ee08dceb451ac331e240cea78613cce7868257a8eea112eadcaec67}{STAND\_DEFAULT}}] = \textcolor{stringliteral}{"default"},}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_a20a56c11c3ee08dceb451ac331e240cea996990af43bf6e108b332b0d9a4cdc7c}{STAND\_DC\_AVERAGE}}] = \textcolor{stringliteral}{"dc-\/average"},}
\DoxyCodeLine{  [\mbox{\hyperlink{gsttensor__transform_8h_a20a56c11c3ee08dceb451ac331e240cea80e6335a745102547895b724e32a7502}{STAND\_END}}] = NULL}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line 118 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a93d1e7178820d0a5e1685067ec8f2053}\label{gsttensor__transform_8c_a93d1e7178820d0a5e1685067ec8f2053}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!GTT\_OP\_MUL@{GTT\_OP\_MUL}}
\index{GTT\_OP\_MUL@{GTT\_OP\_MUL}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{GTT\_OP\_MUL}{GTT\_OP\_MUL}}
{\footnotesize\ttfamily case G\+T\+T\+\_\+\+O\+P\+\_\+\+M\+UL}



Definition at line 584 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_ad434634ea6e676d3c6cc1d2ee32c5558}\label{gsttensor__transform_8c_ad434634ea6e676d3c6cc1d2ee32c5558}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!operator\%d\char`\"{}, oper)@{operator\%d"", oper)}}
\index{operator\%d\char`\"{}, oper)@{operator\%d"", oper)}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{operator\%d"", oper)}{operator\%d", oper)}}
{\footnotesize\ttfamily default Unknown operator\%d\char`\"{}, oper)}



Definition at line 589 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a7c3b88a6174b442587875b361d888720}\label{gsttensor__transform_8c_a7c3b88a6174b442587875b361d888720}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!sink\_factory@{sink\_factory}}
\index{sink\_factory@{sink\_factory}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{sink\_factory}{sink\_factory}}
{\footnotesize\ttfamily Gst\+Static\+Pad\+Template sink\+\_\+factory\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= GST\_STATIC\_PAD\_TEMPLATE (\textcolor{stringliteral}{"sink"},}
\DoxyCodeLine{    GST\_PAD\_SINK,}
\DoxyCodeLine{    GST\_PAD\_ALWAYS,}
\DoxyCodeLine{    GST\_STATIC\_CAPS (\mbox{\hyperlink{gsttensor__transform_8c_aa2d8b0bc5c1225ba8d7f84e235c1cf0d}{CAPS\_STRING}}))}

\end{DoxyCode}


The capabilities of the inputs. 



Definition at line 135 of file gsttensor\+\_\+transform.\+c.

\mbox{\Hypertarget{gsttensor__transform_8c_a506c90b87594a5e6111c8b5f6ca85473}\label{gsttensor__transform_8c_a506c90b87594a5e6111c8b5f6ca85473}} 
\index{gsttensor\_transform.c@{gsttensor\_transform.c}!src\_factory@{src\_factory}}
\index{src\_factory@{src\_factory}!gsttensor\_transform.c@{gsttensor\_transform.c}}
\doxysubsubsection{\texorpdfstring{src\_factory}{src\_factory}}
{\footnotesize\ttfamily Gst\+Static\+Pad\+Template src\+\_\+factory\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= GST\_STATIC\_PAD\_TEMPLATE (\textcolor{stringliteral}{"src"},}
\DoxyCodeLine{    GST\_PAD\_SRC,}
\DoxyCodeLine{    GST\_PAD\_ALWAYS,}
\DoxyCodeLine{    GST\_STATIC\_CAPS (\mbox{\hyperlink{gsttensor__transform_8c_aa2d8b0bc5c1225ba8d7f84e235c1cf0d}{CAPS\_STRING}}))}

\end{DoxyCode}


The capabilities of the outputs. 



Definition at line 143 of file gsttensor\+\_\+transform.\+c.

