first commit
This commit is contained in:
25
dsexample_lib/Makefile
Executable file
25
dsexample_lib/Makefile
Executable file
@@ -0,0 +1,25 @@
|
||||
################################################################################
|
||||
# Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
#################################################################################
|
||||
|
||||
all:
|
||||
gcc -ggdb -c -o dsexample_lib.o -fPIC dsexample_lib.c
|
||||
ar rcs libdsexample.a dsexample_lib.o
|
||||
94
dsexample_lib/dsexample_lib.c
Executable file
94
dsexample_lib/dsexample_lib.c
Executable file
@@ -0,0 +1,94 @@
|
||||
/**
|
||||
* Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "dsexample_lib.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
struct DsExampleCtx
|
||||
{
|
||||
DsExampleInitParams initParams;
|
||||
};
|
||||
|
||||
DsExampleCtx *
|
||||
DsExampleCtxInit (DsExampleInitParams * initParams)
|
||||
{
|
||||
DsExampleCtx *ctx = (DsExampleCtx *) calloc (1, sizeof (DsExampleCtx));
|
||||
ctx->initParams = *initParams;
|
||||
return ctx;
|
||||
}
|
||||
|
||||
// In case of an actual processing library, processing on data wil be completed
|
||||
// in this function and output will be returned
|
||||
DsExampleOutput *
|
||||
DsExampleProcess (DsExampleCtx * ctx, unsigned char *data)
|
||||
{
|
||||
DsExampleOutput *out =
|
||||
(DsExampleOutput*)calloc (1, sizeof (DsExampleOutput));
|
||||
|
||||
if (data != NULL)
|
||||
{
|
||||
// Process your data here
|
||||
}
|
||||
// Fill output structure using processed output
|
||||
// Here, we fake some detected objects and labels
|
||||
if (ctx->initParams.fullFrame)
|
||||
{
|
||||
out->numObjects = 2;
|
||||
out->object[0] = (DsExampleObject)
|
||||
{
|
||||
(float)(ctx->initParams.processingWidth) / 8,
|
||||
(float)(ctx->initParams.processingHeight) / 8,
|
||||
(float)(ctx->initParams.processingWidth) / 8,
|
||||
(float)(ctx->initParams.processingHeight) / 8, "Obj0"
|
||||
};
|
||||
|
||||
out->object[1] = (DsExampleObject)
|
||||
{
|
||||
(float)(ctx->initParams.processingWidth) / 2,
|
||||
(float)(ctx->initParams.processingHeight) / 2,
|
||||
(float)(ctx->initParams.processingWidth) / 8,
|
||||
(float)(ctx->initParams.processingHeight) / 8, "Obj1"
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
out->numObjects = 1;
|
||||
out->object[0] = (DsExampleObject)
|
||||
{
|
||||
(float)(ctx->initParams.processingWidth) / 8,
|
||||
(float)(ctx->initParams.processingHeight) / 8,
|
||||
(float)(ctx->initParams.processingWidth) / 8,
|
||||
(float)(ctx->initParams.processingHeight) / 8, ""
|
||||
};
|
||||
// Set the object label
|
||||
snprintf (out->object[0].label, 64, "Obj_label");
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
void
|
||||
DsExampleCtxDeinit (DsExampleCtx * ctx)
|
||||
{
|
||||
free (ctx);
|
||||
}
|
||||
74
dsexample_lib/dsexample_lib.h
Executable file
74
dsexample_lib/dsexample_lib.h
Executable file
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef __DSEXAMPLE_LIB__
|
||||
#define __DSEXAMPLE_LIB__
|
||||
|
||||
#define MAX_LABEL_SIZE 128
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct DsExampleCtx DsExampleCtx;
|
||||
|
||||
// Init parameters structure as input, required for instantiating dsexample_lib
|
||||
typedef struct
|
||||
{
|
||||
// Width at which frame/object will be scaled
|
||||
int processingWidth;
|
||||
// height at which frame/object will be scaled
|
||||
int processingHeight;
|
||||
// Flag to indicate whether operating on crops of full frame
|
||||
int fullFrame;
|
||||
} DsExampleInitParams;
|
||||
|
||||
// Detected/Labelled object structure, stores bounding box info along with label
|
||||
typedef struct
|
||||
{
|
||||
float left;
|
||||
float top;
|
||||
float width;
|
||||
float height;
|
||||
char label[MAX_LABEL_SIZE];
|
||||
} DsExampleObject;
|
||||
|
||||
// Output data returned after processing
|
||||
typedef struct
|
||||
{
|
||||
int numObjects;
|
||||
DsExampleObject object[4];
|
||||
} DsExampleOutput;
|
||||
|
||||
// Initialize library context
|
||||
DsExampleCtx * DsExampleCtxInit (DsExampleInitParams *init_params);
|
||||
|
||||
// Dequeue processed output
|
||||
DsExampleOutput *DsExampleProcess (DsExampleCtx *ctx, unsigned char *data);
|
||||
|
||||
// Deinitialize library context
|
||||
void DsExampleCtxDeinit (DsExampleCtx *ctx);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
BIN
dsexample_lib/dsexample_lib.o
Normal file
BIN
dsexample_lib/dsexample_lib.o
Normal file
Binary file not shown.
BIN
dsexample_lib/libdsexample.a
Normal file
BIN
dsexample_lib/libdsexample.a
Normal file
Binary file not shown.
Reference in New Issue
Block a user