I replaced the misuse of VIDIOCs on driver side with a dedicated ioctl interface:
VCAM_OUTPUT_IOC_QUERY
VCAM_OUTPUT_IOC_SET_FORMAT
VCAM_OUTPUT_IOC_ALLOC_FRAMES
VCAM_OUTPUT_IOC_IMPORT_DMABUF
VCAM_OUTPUT_IOC_QUEUE
VCAM_OUTPUT_IOC_DEQUEUE
VCAM_OUTPUT_IOC_FREE_FRAMES
This is accessed through output_fd. In addition vma_ioc_new returns control_fd, which is read/poll interface for the streaming status.
With these two interfaces it should be possible to implement drivers for streaming sources such as smartphones.
I feel that this project is going to really awesome direction :-)
#linux #kernel #video