Update logs for V4L2

This commit is contained in:
twinaphex 2017-03-24 01:36:30 +01:00
parent a72cdb77ad
commit 24311af259
1 changed files with 26 additions and 26 deletions

View File

@ -89,15 +89,15 @@ static bool init_mmap(void *data)
if (xioctl(v4l->fd, (uint8_t)VIDIOC_REQBUFS, &req) == -1) if (xioctl(v4l->fd, (uint8_t)VIDIOC_REQBUFS, &req) == -1)
{ {
if (errno == EINVAL) if (errno == EINVAL)
RARCH_ERR("%s does not support memory mapping.\n", v4l->dev_name); RARCH_ERR("[V4L2]: %s does not support memory mapping.\n", v4l->dev_name);
else else
RARCH_ERR("xioctl of VIDIOC_REQBUFS failed.\n"); RARCH_ERR("[V4L2]: xioctl of VIDIOC_REQBUFS failed.\n");
return false; return false;
} }
if (req.count < 2) if (req.count < 2)
{ {
RARCH_ERR("Insufficient buffer memory on %s.\n", v4l->dev_name); RARCH_ERR("[V4L2]: Insufficient buffer memory on %s.\n", v4l->dev_name);
return false; return false;
} }
@ -105,7 +105,7 @@ static bool init_mmap(void *data)
if (!v4l->buffers) if (!v4l->buffers)
{ {
RARCH_ERR("Out of memory allocating V4L2 buffers.\n"); RARCH_ERR("[V4L2]: Out of memory allocating V4L2 buffers.\n");
return false; return false;
} }
@ -119,7 +119,7 @@ static bool init_mmap(void *data)
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYBUF, &buf) == -1) if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYBUF, &buf) == -1)
{ {
RARCH_ERR("Error - xioctl VIDIOC_QUERYBUF.\n"); RARCH_ERR("[V4L2]: Error - xioctl VIDIOC_QUERYBUF.\n");
return false; return false;
} }
@ -131,7 +131,7 @@ static bool init_mmap(void *data)
if (v4l->buffers[v4l->n_buffers].start == MAP_FAILED) if (v4l->buffers[v4l->n_buffers].start == MAP_FAILED)
{ {
RARCH_ERR("Error - mmap.\n"); RARCH_ERR("[V4L2]: Error - mmap.\n");
return false; return false;
} }
} }
@ -150,21 +150,21 @@ static bool init_device(void *data)
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYCAP, &cap) < 0) if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYCAP, &cap) < 0)
{ {
if (errno == EINVAL) if (errno == EINVAL)
RARCH_ERR("%s is no V4L2 device.\n", v4l->dev_name); RARCH_ERR("[V4L2]: %s is no V4L2 device.\n", v4l->dev_name);
else else
RARCH_ERR("Error - VIDIOC_QUERYCAP.\n"); RARCH_ERR("[V4L2]: Error - VIDIOC_QUERYCAP.\n");
return false; return false;
} }
if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE))
{ {
RARCH_ERR("%s is no video capture device.\n", v4l->dev_name); RARCH_ERR("[V4L2]: %s is no video capture device.\n", v4l->dev_name);
return false; return false;
} }
if (!(cap.capabilities & V4L2_CAP_STREAMING)) if (!(cap.capabilities & V4L2_CAP_STREAMING))
{ {
RARCH_ERR("%s does not support streaming I/O (V4L2_CAP_STREAMING).\n", RARCH_ERR("[V4L2]: %s does not support streaming I/O (V4L2_CAP_STREAMING).\n",
v4l->dev_name); v4l->dev_name);
return false; return false;
} }
@ -187,7 +187,7 @@ static bool init_device(void *data)
if (xioctl(v4l->fd, (uint8_t)VIDIOC_S_FMT, &fmt) < 0) if (xioctl(v4l->fd, (uint8_t)VIDIOC_S_FMT, &fmt) < 0)
{ {
RARCH_ERR("Error - VIDIOC_S_FMT\n"); RARCH_ERR("[V4L2]: Error - VIDIOC_S_FMT\n");
return false; return false;
} }
@ -202,18 +202,18 @@ static bool init_device(void *data)
*/ */
if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_YUYV) if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_YUYV)
{ {
RARCH_ERR("The V4L2 device doesn't support YUYV.\n"); RARCH_ERR("[V4L2]: The V4L2 device doesn't support YUYV.\n");
return false; return false;
} }
if (fmt.fmt.pix.field != V4L2_FIELD_NONE if (fmt.fmt.pix.field != V4L2_FIELD_NONE
&& fmt.fmt.pix.field != V4L2_FIELD_INTERLACED) && fmt.fmt.pix.field != V4L2_FIELD_INTERLACED)
{ {
RARCH_ERR("The V4L2 device doesn't support progressive nor interlaced video.\n"); RARCH_ERR("[V4L2]: The V4L2 device doesn't support progressive nor interlaced video.\n");
return false; return false;
} }
RARCH_LOG("V4L2 device: %u x %u.\n", v4l->width, v4l->height); RARCH_LOG("[V4L2]: device: %u x %u.\n", v4l->width, v4l->height);
return init_mmap(v4l); return init_mmap(v4l);
} }
@ -224,7 +224,7 @@ static void v4l_stop(void *data)
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (xioctl(v4l->fd, VIDIOC_STREAMOFF, &type) == -1) if (xioctl(v4l->fd, VIDIOC_STREAMOFF, &type) == -1)
RARCH_ERR("Error - VIDIOC_STREAMOFF.\n"); RARCH_ERR("[V4L2]: Error - VIDIOC_STREAMOFF.\n");
v4l->ready = false; v4l->ready = false;
} }
@ -245,7 +245,7 @@ static bool v4l_start(void *data)
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1) if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1)
{ {
RARCH_ERR("Error - VIDIOC_QBUF.\n"); RARCH_ERR("[V4L2]: Error - VIDIOC_QBUF.\n");
return false; return false;
} }
} }
@ -254,7 +254,7 @@ static bool v4l_start(void *data)
if (xioctl(v4l->fd, VIDIOC_STREAMON, &type) == -1) if (xioctl(v4l->fd, VIDIOC_STREAMON, &type) == -1)
{ {
RARCH_ERR("Error - VIDIOC_STREAMON.\n"); RARCH_ERR("[V4L2]: Error - VIDIOC_STREAMON.\n");
return false; return false;
} }
@ -270,7 +270,7 @@ static void v4l_free(void *data)
unsigned i; unsigned i;
for (i = 0; i < v4l->n_buffers; i++) for (i = 0; i < v4l->n_buffers; i++)
if (munmap(v4l->buffers[i].start, v4l->buffers[i].length) == -1) if (munmap(v4l->buffers[i].start, v4l->buffers[i].length) == -1)
RARCH_ERR("munmap failed.\n"); RARCH_ERR("[V4L2]: munmap failed.\n");
if (v4l->fd >= 0) if (v4l->fd >= 0)
close(v4l->fd); close(v4l->fd);
@ -287,7 +287,7 @@ static void *v4l_init(const char *device, uint64_t caps,
if ((caps & (UINT64_C(1) << RETRO_CAMERA_BUFFER_RAW_FRAMEBUFFER)) == 0) if ((caps & (UINT64_C(1) << RETRO_CAMERA_BUFFER_RAW_FRAMEBUFFER)) == 0)
{ {
RARCH_ERR("video4linux2 returns raw framebuffers.\n"); RARCH_ERR("[V4L2]: Returns raw framebuffers.\n");
return NULL; return NULL;
} }
@ -304,7 +304,7 @@ static void *v4l_init(const char *device, uint64_t caps,
if (!path_is_character_special(v4l->dev_name)) if (!path_is_character_special(v4l->dev_name))
{ {
RARCH_ERR("%s is no device.\n", v4l->dev_name); RARCH_ERR("[V4L2]: %s is no device.\n", v4l->dev_name);
goto error; goto error;
} }
@ -312,7 +312,7 @@ static void *v4l_init(const char *device, uint64_t caps,
if (v4l->fd == -1) if (v4l->fd == -1)
{ {
RARCH_ERR("Cannot open '%s': %d, %s\n", v4l->dev_name, RARCH_ERR("[V4L2]: Cannot open '%s': %d, %s\n", v4l->dev_name,
errno, strerror(errno)); errno, strerror(errno));
goto error; goto error;
} }
@ -325,7 +325,7 @@ static void *v4l_init(const char *device, uint64_t caps,
if (!v4l->buffer_output) if (!v4l->buffer_output)
{ {
RARCH_ERR("Failed to allocate output buffer.\n"); RARCH_ERR("[V4L2]: Failed to allocate output buffer.\n");
goto error; goto error;
} }
@ -338,14 +338,14 @@ static void *v4l_init(const char *device, uint64_t caps,
if (!scaler_ctx_gen_filter(&v4l->scaler)) if (!scaler_ctx_gen_filter(&v4l->scaler))
{ {
RARCH_ERR("Failed to create scaler.\n"); RARCH_ERR("[V4L2]: Failed to create scaler.\n");
goto error; goto error;
} }
return v4l; return v4l;
error: error:
RARCH_ERR("V4L2: Failed to initialize camera.\n"); RARCH_ERR("[V4L2]: Failed to initialize camera.\n");
v4l_free(v4l); v4l_free(v4l);
return NULL; return NULL;
} }
@ -365,7 +365,7 @@ static bool preprocess_image(void *data)
case EAGAIN: case EAGAIN:
break; break;
default: default:
RARCH_ERR("VIDIOC_DQBUF.\n"); RARCH_ERR("[V4L2]: VIDIOC_DQBUF.\n");
break; break;
} }
@ -377,7 +377,7 @@ static bool preprocess_image(void *data)
scaler_ctx_scale(&v4l->scaler, v4l->buffer_output, (const uint8_t*)v4l->buffers[buf.index].start); scaler_ctx_scale(&v4l->scaler, v4l->buffer_output, (const uint8_t*)v4l->buffers[buf.index].start);
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1) if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1)
RARCH_ERR("VIDIOC_QBUF\n"); RARCH_ERR("[V4L2]: VIDIOC_QBUF\n");
return true; return true;
} }