qcam: Fix logging of sequence number

The sequence number of captured frames is logged to the console with
padding to 6 characters to increase readability. The output is however
incorrect, as 123 is printed as 00012300000. This is caused by the
auto-space feature of QDebug, which inserts a space after every field.
This doesn't play well with stream format manipulation, as it ends up
padding the automatically inserted space the same way as the previous
argument.

This is a bug in Qt, work around it by formatting the sequence number
manually.

Fixes: 494da4467d ("qcam: Use Qt qInfo() and qWarning() logging facilities")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2020-04-29 22:27:41 +03:00
parent 80551b8754
commit bf01e04f29

View file

@ -531,8 +531,8 @@ void MainWindow::processCapture()
fps = lastBufferTime_ && fps ? 1000000000.0 / fps : 0.0;
lastBufferTime_ = metadata.timestamp;
qInfo() << "seq:" << qSetFieldWidth(6) << qSetPadChar('0')
<< metadata.sequence << reset
qInfo().noquote()
<< QString("seq: %1").arg(metadata.sequence, 6, 10, QLatin1Char('0'))
<< "bytesused:" << metadata.planes[0].bytesused
<< "timestamp:" << metadata.timestamp
<< "fps:" << fixed << qSetRealNumberPrecision(2) << fps;