On Tue, Aug 02, 2011 at 01:44:54AM +0200, Laurent Pinchart wrote: > Hi Sebastian, > > On Monday 01 August 2011 18:57:14 Sebastian Andrzej Siewior wrote: > > * Laurent Pinchart | 2011-08-01 16:04:55 [+0200]: > > >> IIUC, there's no way to avoid copying the data since it has to > > >> processed before getting sent to userspace. > > > > > > Every UVC packet starts with a header that needs to be removed, so we > > > unfortunately can't get rid of all memcpy() calls. > > > > So we have something like that: > > +---------------+------------+-----------+ > > | hdr-to-remove | jpeg header| jpeg-data | > > +---------------+------------+-----------+ > > First of all, UVC devices don't stream MJPEG only. Uncompressed video formats > are very common. Would it help to have UVC use a scatter gather list for every isochronous frame? Then you would just need to allocate the header to remove as the first sg entry, and place the jpeg header and data into the second sg entry, which would avoid the memory copy. There's already scatter gather list support for bulk transfers, so I think it shouldn't be too hard to extend to isochronous transfers. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html