Windows Error 0xe06d7363
出错代码:
AVIOContext *avio2 = avio_alloc_context(aviobuffer, 32768, 0, &fp_open, file_buffer, NULL, NULL);
错误代码:
//Callback
int read_buffer(void *opaque, uint8_t *buf, int buf_size) {
DeviceInfo deviceInfo = *((DeviceInfo *)opaque);
int null_count=0;
int display_count = 0;
while (1) {
RecStruct data_recv;
int ret;
memset(&data_recv, '0', sizeof(struct RecStruct));
ret = recv(deviceInfo.sockClient, (char *)&data_recv, sizeof(struct RecStruct), 0); //第二个参数使用强制类型,为一个数据包
if (ret == 0) // server调用了close
{
printf("server close");
break;
}
正确的:应该调用file_buffer,估计是指针强制转换出的错:
//Callback
int file_buffer(void *opaque, uint8_t *buf, int buf_size) {
FILE *fp_open = (FILE *)opaque;
if (!feof(fp_open)) {
int true_size = fread(buf, 1, buf_size, fp_open);
return true_size;
}
else {
printf("file read end\n");
return -1;
}
}