用ioctl去获取ring或line buffer地址的时候,buffer的大小为什么是0.
用6440所配的dvd中三星的参考代码测试时也这样。
请求解答。
// get input buffer address in ring buffer mode
// When below ioctl function is called for the first time, It returns double buffer size.
// So, Input buffer will be filled as 2 part unit size
get_buf_addr.in_usr_data = (int)addr;
printf("get ring buffer address before\n");
ioctl(mfc_fd, IOCTL_MFC_GET_RING_BUF_ADDR, &get_buf_addr);
printf("input buffer address : 0x%X\n", get_buf_addr.out_buf_addr);
printf("input buffer size : %d\n", get_buf_addr.out_buf_size);
printf("input buffer return code : %d\n", get_buf_addr.ret_code);
运行的结果是:
input buffer address : 0x40238B60
input buffer size : 0
input buffer return code : 34492