native_handle_t早期版本中是overlay_handle_t;struct overlay_data_context_t {
struct overlay_data_device_t device;
/* our private state goes below here */
int ctl_fd;
int shared_fd;
..........
}
最后面那俩fd是干吗的?google也没有个注释 真叫人费解!
求大虾告知,或者告知哪里有相关资料查阅也可以
struct overlay_data_device_t device;
/* our private state goes below here */
int ctl_fd;
int shared_fd;
..........
}
最后面那俩fd是干吗的?google也没有个注释 真叫人费解!
求大虾告知,或者告知哪里有相关资料查阅也可以
struct overlay_data_device_t device;
/* our private state goes below here */
int control_shared_fd;//all overlay instances share the same control
int control_shared_size;
int data_shared_fd;
int data_shared_size;
int width;
int height;
int32_t format;
int num_buffer;//Number of buffers for overlay
int queue_threshold;
int buf_size;
int buf_queued;
OverlayAllocator *allocator;
OVERLAY_BUFFER *overlay_buffer;
overlay_control_shared_t *control_shared;
overlay_data_shared_t *data_shared;
};
control_shared_fd和data_shared_fd应该对应于lz的那两个fd,
从其注释和代码来看,应该是控制fd和数据fd。号称所有的overlay实例用滴是相同的控制fd和数据fd。如有不对的地方,还请多多指教。
我贴的是freescale的代码,哈哈。完全同意ls滴观点。另外,偶在看 韩超, 梁泉的《Android系统原理及开发要点详解》,就是书使用的Android版本有些低,先老扫扫盲,有需要的时候再看看代码,必要的时候再来论坛上请教下大虾。
struct overlay_data_context_t {
struct overlay_data_device_t device;
/* our private state goes below here */
int ctl_fd;
int shared_fd;
data_shared_fd是从ashmem_create_region("overlay_data", size)创建的,也应该是相同的。
这些都是硬件相关的代码,各个板子会有不同。
我这个代码是freescael imx51 evk开发板的代码,你那里自然不会有。