The following diff fixes the overrun issues I have been seing with isoc transfers when using video(1). Doesn't mean video(1) works now :)
OK? Index: xhci.c =================================================================== RCS file: /cvs/src/sys/dev/usb/xhci.c,v retrieving revision 1.77 diff -u -p -u -p -r1.77 xhci.c --- xhci.c 8 Sep 2017 10:25:19 -0000 1.77 +++ xhci.c 6 Nov 2017 18:51:50 -0000 @@ -2758,7 +2758,7 @@ xhci_device_isoc_start(struct usbd_xfer /* We'll do the first TRB once we're finished with the chain. */ trb0 = xhci_xfer_get_trb(sc, xfer, &toggle0, (ntrb == 1)); - remain = xfer->length; + remain = xfer->length - len0; offs = len0; paddr = DMAADDR(&xfer->dmabuf, offs);