| | |
| | | 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; |
| | | } |
| | |
| | | /////////////////////////////////////////////////////////////// |
| | | // 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, |
| | |
| | | *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) |
| | |
| | | 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) |
| | | { |
| | |
| | | |
| | | //////////////////// 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; |
| | | |
| | |
| | | *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; |