例:
module msg {
typedef octet ImgData[40000];
#pragma DCPS_DATA_TYPE "msg::Message"
#pragma DCPS_DATA_KEY "msg::Message subject_id"
struct Message {
long subject_id;
ImgData img;
};
};
这里的40000根据具体的需求而定,我测试的480*640分辨率视频YUV(存储计算:原RGB=480x640x3,YUV=480x640x3/2)压缩H264裸流,每一帧数据在5000-35000之间
数据填入(Publisher):
msg::Message msg_test;
msg_test.subject_id=1;
unsigned char* data_buf= (unsigned char*)malloc(40000);
memcpy(msg_test.img, data_buf, 40000);
message_writer->write(msg_test, DDS::HANDLE_NIL);//(message_writer是前面自定义的数据写入器)
free(data_buf);//最后别忘了