Hi Luca, Luca Risolia wrote: >> You should not assume that a read() call will read a whole >> buffer at once. > > This is not correct. One read() should provide one frame exactly, In facts, > the V4L2 API states: > > "read() attempts to read up to count bytes from file descriptor fd into the > buffer starting at buf. [...] Regardless of the count value each read() call > will provide at most one frame (two fields) worth of data.
What I think this means is that the driver should return either count bytes or a full frames worth - whichever is smaller. Any value smaller again should also be valid. > [...] > read() never returns a "snapshot" of a buffer being filled. Using a single > buffer the driver will stop capturing when the application starts reading the > buffer until the read is finished. [...]" This means that a frame is guaranteed not to be overwritten by another frame as it's being read, so an application can take as long as it needs reading it. -Phil _______________________________________________ Linux-uvc-devel mailing list Linux-uvc-devel@lists.berlios.de https://lists.berlios.de/mailman/listinfo/linux-uvc-devel