return TRUE;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static int
bb_init (void **pdata)
{
}
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static void
bb_exit (void **pdata)
{
return TRUE;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static int
bb_setOption (void **pdata, int opNum, const char *param)
{
}
/**
- * @brief tensordec-plugin's TensorDecDef callback
+ * @brief tensordec-plugin's GstTensorDecoderDef callback
*
* [TF-Lite SSD Model]
* The first tensor is boxes. BOX_SIZE : 1 : #MaxDetection, ANY-TYPE
return caps;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static size_t
bb_getTransformSize (void **pdata, const GstTensorsConfig * config,
GstCaps * caps, size_t size, GstCaps * othercaps, GstPadDirection direction)
}
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static GstFlowReturn
bb_decode (void **pdata, const GstTensorsConfig * config,
const GstTensorMemory * input, GstBuffer * outbuf)
static gchar decoder_subplugin_bounding_box[] = "bounding_boxes";
-/** @brief Bounding box tensordec-plugin TensorDecDef instance */
-static TensorDecDef boundingBox = {
+/** @brief Bounding box tensordec-plugin GstTensorDecoderDef instance */
+static GstTensorDecoderDef boundingBox = {
.modename = decoder_subplugin_bounding_box,
.type = OUTPUT_VIDEO,
.init = bb_init,
void
init_bb (void)
{
- tensordec_probe (&boundingBox);
+ nnstreamer_decoder_probe (&boundingBox);
}
/** @brief Destruct this object for tensordec-plugin */
void
fini_bb (void)
{
- tensordec_exit (boundingBox.modename);
+ nnstreamer_decoder_exit (boundingBox.modename);
}
GST_VIDEO_CAPS_MAKE ("{ RGB, BGRx, GRAY8 }") \
", views = (int) 1, interlace-mode = (string) progressive"
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static int
dv_init (void **pdata)
{
return TRUE;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static void
dv_exit (void **pdata)
{
return;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static int
dv_setOption (void **pdata, int opNum, const char *param)
{
return TRUE;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static GstCaps *
dv_getOutCaps (void **pdata, const GstTensorsConfig * config)
{
return ((dim[0] * dim[1] - 1) / 4 + 1) * 4 * dim[2];
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static size_t
dv_getTransformSize (void **pdata, const GstTensorsConfig * config,
GstCaps * caps, size_t size, GstCaps * othercaps, GstPadDirection direction)
return 0; /** @todo NYI */
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static GstFlowReturn
dv_decode (void **pdata, const GstTensorsConfig * config,
const GstTensorMemory * input, GstBuffer * outbuf)
static gchar decoder_subplugin_direct_video[] = "direct_video";
-/** @brief Direct-Video tensordec-plugin TensorDecDef instance */
-static TensorDecDef directVideo = {
+/** @brief Direct-Video tensordec-plugin GstTensorDecoderDef instance */
+static GstTensorDecoderDef directVideo = {
.modename = decoder_subplugin_direct_video,
.type = OUTPUT_VIDEO,
.init = dv_init,
void
init_dv (void)
{
- tensordec_probe (&directVideo);
+ nnstreamer_decoder_probe (&directVideo);
}
/** @brief Destruct this object for tensordec-plugin */
void
fini_dv (void)
{
- tensordec_exit (directVideo.modename);
+ nnstreamer_decoder_exit (directVideo.modename);
}
guint max_word_length; /**< The max size of labels */
} ImageLabelData;
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static int
il_init (void **pdata)
{
return TRUE;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static void
il_exit (void **pdata)
{
return;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static int
il_setOption (void **pdata, int opNum, const char *param)
{
return TRUE;
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static GstCaps *
il_getOutCaps (void **pdata, const GstTensorsConfig * config)
{
return gst_caps_from_string (DECODER_IL_TEXT_CAPS_STR);
}
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static size_t
il_getTransformSize (void **pdata, const GstTensorsConfig * config,
GstCaps * caps, size_t size, GstCaps * othercaps, GstPadDirection direction)
break;
-/** @brief tensordec-plugin's TensorDecDef callback */
+/** @brief tensordec-plugin's GstTensorDecoderDef callback */
static GstFlowReturn
il_decode (void **pdata, const GstTensorsConfig * config,
const GstTensorMemory * input, GstBuffer * outbuf)
static gchar decoder_subplugin_image_labeling[] = "image_labeling";
-/** @brief Image Labeling tensordec-plugin TensorDecDef instance */
-static TensorDecDef imageLabeling = {
+/** @brief Image Labeling tensordec-plugin GstTensorDecoderDef instance */
+static GstTensorDecoderDef imageLabeling = {
.modename = decoder_subplugin_image_labeling,
.type = OUTPUT_TEXT,
.init = il_init,
void
init_il (void)
{
- tensordec_probe (&imageLabeling);
+ nnstreamer_decoder_probe (&imageLabeling);
}
/** @brief Destruct this object for tensordec-plugin */
void
fini_il (void)
{
- tensordec_exit (imageLabeling.modename);
+ nnstreamer_decoder_exit (imageLabeling.modename);
}
*
*/
/**
- * @file nnstreamer_plugin_api_filters.h
+ * @file nnstreamer_plugin_api_decoder.h
* @date 30 Jan 2019
* @brief Mandatory APIs for NNStreamer Decoder sub-plugins (Need Gst Devel)
* @see https://github.com/nnsuite/nnstreamer
* @brief Decoder definitions for different semantics of tensors
* This allows developers to create their own decoders.
*/
-typedef struct _TensorDecDef
+typedef struct _GstTensorDecoderDef
{
char *modename;
/**< Unique decoder name. GST users choose decoders with mode="modename". */
GstCaps *caps, size_t size, GstCaps *othercaps,
GstPadDirection direction);
/**< EXPERIMENTAL! @todo We are not ready to use this. This should be NULL or return 0 */
-} TensorDecDef;
+} GstTensorDecoderDef;
/* extern functions for subplugin management, exist in tensor_decoder.c */
/**
* @brief decoder's subplugins should call this function to register
* @param[in] decoder The decoder subplugin instance
*/
-extern gboolean tensordec_probe (TensorDecDef * decoder);
+extern gboolean
+nnstreamer_decoder_probe (GstTensorDecoderDef * decoder);
+
/**
* @brief decoder's subplugin may call this to unregister
* @param[in] name the name of decoder (modename)
*/
-extern void tensordec_exit (const gchar * name);
+extern void
+nnstreamer_decoder_exit (const gchar * name);
#endif /* __NNS_PLUGIN_API_DECODER_H__ */
* @param[in] decoder The decoder subplugin instance
*/
gboolean
-tensordec_probe (TensorDecDef * decoder)
+nnstreamer_decoder_probe (GstTensorDecoderDef * decoder)
{
return register_subplugin (NNS_SUBPLUGIN_DECODER, decoder->modename, decoder);
}
* @param[in] name the name of decoder (modename)
*/
void
-tensordec_exit (const gchar * name)
+nnstreamer_decoder_exit (const gchar * name)
{
unregister_subplugin (NNS_SUBPLUGIN_DECODER, name);
}
* @brief Find decoders subplugin with the name
* @param[in] name the name of decoder (modename)
*/
-static const TensorDecDef *
-tensordec_find (const gchar * name)
+static const GstTensorDecoderDef *
+nnstreamer_decoder_find (const gchar * name)
{
return get_subplugin (NNS_SUBPLUGIN_DECODER, name);
}
break;
case PROP_MODE:{
int i;
- const TensorDecDef *decoder;
+ const GstTensorDecoderDef *decoder;
gboolean retval = TRUE;
temp_string = g_value_dup_string (value);
- decoder = tensordec_find (temp_string);
+ decoder = nnstreamer_decoder_find (temp_string);
/* See if we are using "plugin" */
if (NULL != decoder) {
void (*cleanup_plugin_data)(void **pdata); /**< exit() of subplugin is registered here. If it's null, gfree(plugin_data) is used. */
GstTensorsConfig tensor_config; /**< configured tensor info @todo support tensors in the future */
- const TensorDecDef *decoder; /**< Plugin object */
+ const GstTensorDecoderDef *decoder; /**< Plugin object */
};
/**