summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/v4l2/v4l2_camera_proxy.cpp77
-rw-r--r--src/v4l2/v4l2_camera_proxy.h7
-rw-r--r--src/v4l2/v4l2_compat_manager.cpp5
3 files changed, 56 insertions, 33 deletions
diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index c9b91967..ec6daac6 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -46,7 +46,8 @@ V4L2CameraProxy::V4L2CameraProxy(unsigned int index,
int V4L2CameraProxy::open(V4L2CameraFile *file)
{
- LOG(V4L2Compat, Debug) << "Servicing open fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
MutexLocker locker(proxyMutex_);
@@ -80,7 +81,8 @@ int V4L2CameraProxy::open(V4L2CameraFile *file)
void V4L2CameraProxy::close(V4L2CameraFile *file)
{
- LOG(V4L2Compat, Debug) << "Servicing close fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
MutexLocker locker(proxyMutex_);
@@ -94,10 +96,11 @@ void V4L2CameraProxy::close(V4L2CameraFile *file)
vcam_->close();
}
-void *V4L2CameraProxy::mmap(void *addr, size_t length, int prot, int flags,
- off64_t offset)
+void *V4L2CameraProxy::mmap(V4L2CameraFile *file, void *addr, size_t length,
+ int prot, int flags, off64_t offset)
{
- LOG(V4L2Compat, Debug) << "Servicing mmap";
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
MutexLocker locker(proxyMutex_);
@@ -131,9 +134,10 @@ void *V4L2CameraProxy::mmap(void *addr, size_t length, int prot, int flags,
return map;
}
-int V4L2CameraProxy::munmap(void *addr, size_t length)
+int V4L2CameraProxy::munmap(V4L2CameraFile *file, void *addr, size_t length)
{
- LOG(V4L2Compat, Debug) << "Servicing munmap";
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
MutexLocker locker(proxyMutex_);
@@ -233,9 +237,10 @@ void V4L2CameraProxy::updateBuffers()
}
}
-int V4L2CameraProxy::vidioc_querycap(struct v4l2_capability *arg)
+int V4L2CameraProxy::vidioc_querycap(V4L2CameraFile *file, struct v4l2_capability *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_querycap";
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
*arg = capabilities_;
@@ -244,7 +249,8 @@ int V4L2CameraProxy::vidioc_querycap(struct v4l2_capability *arg)
int V4L2CameraProxy::vidioc_enum_framesizes(V4L2CameraFile *file, struct v4l2_frmsizeenum *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_enum_framesizes fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
V4L2PixelFormat v4l2Format = V4L2PixelFormat(arg->pixel_format);
PixelFormat format = v4l2Format.toPixelFormat();
@@ -267,7 +273,8 @@ int V4L2CameraProxy::vidioc_enum_framesizes(V4L2CameraFile *file, struct v4l2_fr
int V4L2CameraProxy::vidioc_enum_fmt(V4L2CameraFile *file, struct v4l2_fmtdesc *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_enum_fmt fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!validateBufferType(arg->type) ||
arg->index >= streamConfig_.formats().pixelformats().size())
@@ -288,7 +295,8 @@ int V4L2CameraProxy::vidioc_enum_fmt(V4L2CameraFile *file, struct v4l2_fmtdesc *
int V4L2CameraProxy::vidioc_g_fmt(V4L2CameraFile *file, struct v4l2_format *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_g_fmt fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!validateBufferType(arg->type))
return -EINVAL;
@@ -331,7 +339,8 @@ int V4L2CameraProxy::tryFormat(struct v4l2_format *arg)
int V4L2CameraProxy::vidioc_s_fmt(V4L2CameraFile *file, struct v4l2_format *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_s_fmt fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!validateBufferType(arg->type))
return -EINVAL;
@@ -361,7 +370,8 @@ int V4L2CameraProxy::vidioc_s_fmt(V4L2CameraFile *file, struct v4l2_format *arg)
int V4L2CameraProxy::vidioc_try_fmt(V4L2CameraFile *file, struct v4l2_format *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_try_fmt fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!validateBufferType(arg->type))
return -EINVAL;
@@ -384,7 +394,8 @@ enum v4l2_priority V4L2CameraProxy::maxPriority()
int V4L2CameraProxy::vidioc_g_priority(V4L2CameraFile *file, enum v4l2_priority *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_g_priority fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
*arg = maxPriority();
@@ -394,7 +405,7 @@ int V4L2CameraProxy::vidioc_g_priority(V4L2CameraFile *file, enum v4l2_priority
int V4L2CameraProxy::vidioc_s_priority(V4L2CameraFile *file, enum v4l2_priority *arg)
{
LOG(V4L2Compat, Debug)
- << "Servicing vidioc_s_priority fd = " << file->efd();
+ << "[" << file->description() << "] " << __func__ << "()";
if (*arg > V4L2_PRIORITY_RECORD)
return -EINVAL;
@@ -409,7 +420,8 @@ int V4L2CameraProxy::vidioc_s_priority(V4L2CameraFile *file, enum v4l2_priority
int V4L2CameraProxy::vidioc_enuminput(V4L2CameraFile *file, struct v4l2_input *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_enuminput fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (arg->index != 0)
return -EINVAL;
@@ -426,7 +438,8 @@ int V4L2CameraProxy::vidioc_enuminput(V4L2CameraFile *file, struct v4l2_input *a
int V4L2CameraProxy::vidioc_g_input(V4L2CameraFile *file, int *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_g_input fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
*arg = 0;
@@ -435,7 +448,8 @@ int V4L2CameraProxy::vidioc_g_input(V4L2CameraFile *file, int *arg)
int V4L2CameraProxy::vidioc_s_input(V4L2CameraFile *file, int *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_s_input fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (*arg != 0)
return -EINVAL;
@@ -452,7 +466,8 @@ void V4L2CameraProxy::freeBuffers()
int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuffers *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_reqbufs fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!validateBufferType(arg->type) ||
!validateMemoryType(arg->memory))
@@ -527,7 +542,8 @@ int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuf
int V4L2CameraProxy::vidioc_querybuf(V4L2CameraFile *file, struct v4l2_buffer *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_querybuf fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (arg->index >= bufferCount_)
return -EINVAL;
@@ -545,8 +561,9 @@ int V4L2CameraProxy::vidioc_querybuf(V4L2CameraFile *file, struct v4l2_buffer *a
int V4L2CameraProxy::vidioc_qbuf(V4L2CameraFile *file, struct v4l2_buffer *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_qbuf, index = "
- << arg->index << " fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__
+ << "(index=" << arg->index << ")";
if (arg->index >= bufferCount_)
return -EINVAL;
@@ -576,7 +593,8 @@ int V4L2CameraProxy::vidioc_qbuf(V4L2CameraFile *file, struct v4l2_buffer *arg)
int V4L2CameraProxy::vidioc_dqbuf(V4L2CameraFile *file, struct v4l2_buffer *arg,
Mutex *lock)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_dqbuf fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (arg->index >= bufferCount_)
return -EINVAL;
@@ -625,7 +643,8 @@ int V4L2CameraProxy::vidioc_dqbuf(V4L2CameraFile *file, struct v4l2_buffer *arg,
int V4L2CameraProxy::vidioc_expbuf(V4L2CameraFile *file, struct v4l2_exportbuffer *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_expbuf fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!hasOwnership(file))
return -EBUSY;
@@ -651,7 +670,8 @@ int V4L2CameraProxy::vidioc_expbuf(V4L2CameraFile *file, struct v4l2_exportbuffe
int V4L2CameraProxy::vidioc_streamon(V4L2CameraFile *file, int *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_streamon fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (bufferCount_ == 0)
return -EINVAL;
@@ -675,7 +695,8 @@ int V4L2CameraProxy::vidioc_streamon(V4L2CameraFile *file, int *arg)
int V4L2CameraProxy::vidioc_streamoff(V4L2CameraFile *file, int *arg)
{
- LOG(V4L2Compat, Debug) << "Servicing vidioc_streamoff fd = " << file->efd();
+ LOG(V4L2Compat, Debug)
+ << "[" << file->description() << "] " << __func__ << "()";
if (!validateBufferType(*arg))
return -EINVAL;
@@ -737,7 +758,7 @@ int V4L2CameraProxy::ioctl(V4L2CameraFile *file, unsigned long request, void *ar
int ret;
switch (request) {
case VIDIOC_QUERYCAP:
- ret = vidioc_querycap(static_cast<struct v4l2_capability *>(arg));
+ ret = vidioc_querycap(file, static_cast<struct v4l2_capability *>(arg));
break;
case VIDIOC_ENUM_FRAMESIZES:
ret = vidioc_enum_framesizes(file, static_cast<struct v4l2_frmsizeenum *>(arg));
diff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h
index 14e027c3..a38b28c7 100644
--- a/src/v4l2/v4l2_camera_proxy.h
+++ b/src/v4l2/v4l2_camera_proxy.h
@@ -29,8 +29,9 @@ public:
int open(V4L2CameraFile *file);
void close(V4L2CameraFile *file);
- void *mmap(void *addr, size_t length, int prot, int flags, off64_t offset);
- int munmap(void *addr, size_t length);
+ void *mmap(V4L2CameraFile *file, void *addr, size_t length, int prot,
+ int flags, off64_t offset);
+ int munmap(V4L2CameraFile *file, void *addr, size_t length);
int ioctl(V4L2CameraFile *file, unsigned long request, void *arg);
@@ -44,7 +45,7 @@ private:
void updateBuffers();
void freeBuffers();
- int vidioc_querycap(struct v4l2_capability *arg);
+ int vidioc_querycap(V4L2CameraFile *file, struct v4l2_capability *arg);
int vidioc_enum_framesizes(V4L2CameraFile *file, struct v4l2_frmsizeenum *arg);
int vidioc_enum_fmt(V4L2CameraFile *file, struct v4l2_fmtdesc *arg);
int vidioc_g_fmt(V4L2CameraFile *file, struct v4l2_format *arg);
diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
index ded568be..0f7575c5 100644
--- a/src/v4l2/v4l2_compat_manager.cpp
+++ b/src/v4l2/v4l2_compat_manager.cpp
@@ -194,7 +194,8 @@ void *V4L2CompatManager::mmap(void *addr, size_t length, int prot, int flags,
if (!file)
return fops_.mmap(addr, length, prot, flags, fd, offset);
- void *map = file->proxy()->mmap(addr, length, prot, flags, offset);
+ void *map = file->proxy()->mmap(file.get(), addr, length, prot, flags,
+ offset);
if (map == MAP_FAILED)
return map;
@@ -210,7 +211,7 @@ int V4L2CompatManager::munmap(void *addr, size_t length)
V4L2CameraFile *file = device->second.get();
- int ret = file->proxy()->munmap(addr, length);
+ int ret = file->proxy()->munmap(file, addr, length);
if (ret < 0)
return ret;