I am working on a class library that uses V4L2 to capture video from available video inputs. I've written functions to list the available devices, and I've been able to write a function that opens the device and sets the format, but, when trying to read a frame from the V4L2 device, I get a EINVAL error. The V4L2 docs say that this is because the device does not support read caps, but I have already checked the device (in another function) with the QUERYCAPS call checking for the READWRITE flag to be set. So, according to the query, I can read, but when I try to read, it says it can't. Anyone know why this is? Please see my source code for the open function below...