diff --git a/spa/plugins/v4l2/v4l2-utils.c b/spa/plugins/v4l2/v4l2-utils.c index 3dcc6f293..ab9d3aec9 100644 --- a/spa/plugins/v4l2/v4l2-utils.c +++ b/spa/plugins/v4l2/v4l2-utils.c @@ -1369,6 +1369,11 @@ static int mmap_read(struct impl *this) if (xioctl(dev->fd, VIDIOC_DQBUF, &buf) < 0) return -errno; + /* Drop the first frame in order to work around common firmware + * timestamp issues */ + if (buf.sequence == 0) + return 0; + pts = SPA_TIMEVAL_TO_NSEC(&buf.timestamp); spa_log_trace(this->log, "v4l2 %p: have output %d", this, buf.index);