zhangmeng
2023-02-03 35a85de7b7495878ae4dcb73449f18c28131496c
shmparser/shmparser.c
@@ -113,26 +113,25 @@
    ptr[7] = (uint8_t) (u);
}
struct stimg make_image_ref(const uint64_t id, const unsigned char* data, const uint32_t size,
struct stimg* make_image_ref(const uint64_t id, const unsigned char* data, const uint32_t size,
                            const uint32_t width, const uint32_t height,
                            const char* timestamp, const uint32_t ts_size,
                            const char* camera_id, const uint32_t cid_size,
                            const char* camera_name,const uint32_t cname_size)
{
    struct stimg img;
    memset(&img, 0, sizeof(img));
    struct stimg* img = (struct stimg*)calloc(1, sizeof(struct stimg));
    img.data = (unsigned char*)data;
    img.data_size = size;
    img.width = width;
    img.height = height;
    img.id = id;
    img.timestamp = (char*)timestamp;
    img.timestamp_size = ts_size;
    img.camera_id = (char*)camera_id;
    img.camera_id_size = cid_size;
    img.camera_name = (char*)camera_name;
    img.camera_name_size = cname_size;
    img->data = (unsigned char*)data;
    img->data_size = size;
    img->width = width;
    img->height = height;
    img->id = id;
    img->timestamp = (char*)timestamp;
    img->timestamp_size = ts_size;
    img->camera_id = (char*)camera_id;
    img->camera_id_size = cid_size;
    img->camera_name = (char*)camera_name;
    img->camera_name_size = cname_size;
    return img;
}
@@ -551,12 +550,12 @@
///////////////////////////////////////////////////////////////
// go need function
void goimage2shm(void* shm, void* img){
void goImage2Shm(void* shm, void* img){
    struct stimg* cimg = (struct stimg*)img;
    image2shm(shm, cimg);
}
void goimageinfo(void* img, void** data, uint64_t* size,
void goImageGet(void* img, void** data, uint64_t* size,
                void** ts, uint32_t* tss,
                void** cid, uint32_t* cids,
                void** cname, uint32_t* cnames,
@@ -580,19 +579,19 @@
    *h = cimg->height;
}
void gotargetsdel(void* tgts){
void goTargetsDel(void* tgts){
    if (tgts) {
        struct sttgt* t = (struct sttgt*)tgts;
        free(t);
    }
}
void* gotargetsnew(const uint32_t size){
void* goTargetsNew(const uint32_t size){
    struct sttgt* t = (struct sttgt*)calloc(size, sizeof(struct sttgt));
    return t;
}
void gotargetsadd(void* tgts, int idx, uint64_t id, char* type, uint32_t tsize, int32_t confidence,
void goTargetAdd(void* tgts, int idx, uint64_t id, char* type, uint32_t tsize, int32_t confidence,
                    int left, int top, int right, int bottom,
                    unsigned char* feat, uint32_t featsize,
                    unsigned char* attr, uint32_t attrsize)
@@ -617,7 +616,7 @@
    ts[idx] = t;
}
void goruleaddsdk(void* shm, void* tgts, uint32_t tgtcnt,
void goSdkPut(void* shm, void* tgts, uint32_t tgtcnt,
                    char* type, uint32_t tsize,
                    char* timestamp, uint32_t tmsize)
{
@@ -649,29 +648,31 @@
//////////////////// unserialize
void gorulehandletrack(void* rule, void** data, uint32_t* size){
void goHandletrackGet(void* rule, void** data, uint32_t* size){
    struct strule* r = (struct strule*)rule;
    *data = r->handletrack;
    *size = r->handletrack_size;
}
void goruledatatype(void* rule, void** data, uint32_t* size){
void goDatatypeGet(void* rule, void** data, uint32_t* size){
    struct strule* r = (struct strule*)rule;
    *data = r->datatype;
    *size = r->datatype_size;
}
void gorulesdk(void* rule, void** data, uint32_t* size){
void goSdkArrayGet(void* rule, void** data, uint32_t* size){
    struct strule* r = (struct strule*)rule;
    *data = r->sdk;
    *size = r->sdk_count;
}
void gorulesdkinfo(void* sdk, int idx, void** t, uint32_t* ts,
void goSdkGet(void* sdk, int idx, void** t, uint32_t* ts,
                    void** i, uint32_t* is, void** n, uint32_t* ns,
                    void** tm, uint32_t* tms, void** data, uint32_t* size)
{
    struct stsdk* s = (struct stsdk*)sdk;
    struct stsdk* ss = (struct stsdk*)sdk;
    struct stsdk* s = &ss[idx];
    *t = s->sdktype;
    *ts = s->sdktype_size;
@@ -687,12 +688,14 @@
    *size = s->tgt_count;
}
void gorulesdktargetinfo(void* tgt, int idx, uint64_t* id, int32_t* c,
void goTargetGet(void* tgt, int idx, uint64_t* id, int32_t* c,
                        int32_t* l,int32_t* t,int32_t* r,int32_t* b,
                        void** tp, uint32_t* tps,
                        void** feat, uint32_t* fs, void** attr, uint32_t* attrs)
{
    struct sttgt* tt = (struct sttgt*)tgt;
    struct sttgt* ta = (struct sttgt*)tgt;
    struct sttgt* tt = &ta[idx];
    *id = tt->id;
    *c = tt->confidence;
    *l = tt->rect.left;