/* Synchronize to the input stream by waiting for a header packet. */ if (buf->state != UVC_BUF_STATE_ACTIVE) { if (!is_header) {
uvc_dbg(stream->dev, FRAME, "Dropping packet (out of sync)\n"); return0;
}
for (i = 0; i < urb->number_of_packets; ++i) { if (urb->iso_frame_desc[i].status < 0) {
uvc_dbg(stream->dev, FRAME, "USB isochronous frame lost (%d)\n",
urb->iso_frame_desc[i].status);
}
/* *Decodethepayloadpacket. * *uvc_video_decodeisenteredtwicewhenaframetransition *hasbeendetectedbecausetheendofframecanonlybe *reliablydetectedwhenthefirstpacketofthenewframe *isprocessed.Thefirstpassdetectsthetransitionand *closesthepreviousframe'sbuffer,thesecondpass *processesthedataofthefirstpayloadofthenewframe.
*/ do {
ret = isight_decode(&stream->queue, buf,
urb->transfer_buffer +
urb->iso_frame_desc[i].offset,
urb->iso_frame_desc[i].actual_length);
if (buf == NULL) break;
if (buf->state == UVC_BUF_STATE_DONE ||
buf->state == UVC_BUF_STATE_ERROR)
buf = uvc_queue_next_buffer(&stream->queue,
buf);
} while (ret == -EAGAIN);
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.