Add camera_decoder
This commit is contained in:
@ -85,6 +85,10 @@ retry:
|
||||
E_LOG_INFO(buf_list, "Adapting size to 32x32 block: %dx%d vs %dx%d", orig_width, orig_height, width, height);
|
||||
}
|
||||
|
||||
if (format == V4L2_PIX_FMT_H264) {
|
||||
bytesperline = 0;
|
||||
}
|
||||
|
||||
if (buf_list->do_mplanes) {
|
||||
fmt->fmt.pix_mp.colorspace = V4L2_COLORSPACE_JPEG;
|
||||
fmt->fmt.pix_mp.width = width;
|
||||
|
@ -30,11 +30,7 @@ bool buffer_consumed(buffer_t *buf)
|
||||
}
|
||||
|
||||
pthread_mutex_lock(&buffer_lock);
|
||||
if (buf->mmap_reflinks > 0) {
|
||||
buf->mmap_reflinks--;
|
||||
}
|
||||
|
||||
if (!buf->enqueued && buf->mmap_reflinks == 0) {
|
||||
if (!buf->enqueued && buf->mmap_reflinks == 1) {
|
||||
// update used bytes
|
||||
if (buf->buf_list->do_mplanes) {
|
||||
buf->v4l2_plane.bytesused = buf->used;
|
||||
@ -48,6 +44,7 @@ bool buffer_consumed(buffer_t *buf)
|
||||
buf->enqueued_time_us = get_monotonic_time_us(NULL, &buf->v4l2_buffer.timestamp);
|
||||
E_XIOCTL(buf, buf->buf_list->device->fd, VIDIOC_QBUF, &buf->v4l2_buffer, "Can't queue buffer.");
|
||||
buf->enqueued = true;
|
||||
buf->mmap_reflinks--;
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&buffer_lock);
|
||||
@ -58,7 +55,6 @@ error:
|
||||
{
|
||||
buffer_t *mmap_source = buf->mmap_source;
|
||||
buf->mmap_source = NULL;
|
||||
|
||||
pthread_mutex_unlock(&buffer_lock);
|
||||
|
||||
if (mmap_source) {
|
||||
|
Reference in New Issue
Block a user