summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libcamera/include/v4l2_subdevice.h6
-rw-r--r--src/libcamera/v4l2_subdevice.cpp13
2 files changed, 14 insertions, 5 deletions
diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h
index eac699a0..669e79f9 100644
--- a/src/libcamera/include/v4l2_subdevice.h
+++ b/src/libcamera/include/v4l2_subdevice.h
@@ -9,6 +9,7 @@
#include <string>
+#include "log.h"
#include "media_object.h"
namespace libcamera {
@@ -21,7 +22,7 @@ struct V4L2SubdeviceFormat {
uint32_t height;
};
-class V4L2Subdevice
+class V4L2Subdevice : protected Loggable
{
public:
explicit V4L2Subdevice(const MediaEntity *entity);
@@ -41,6 +42,9 @@ public:
int getFormat(unsigned int pad, V4L2SubdeviceFormat *format);
int setFormat(unsigned int pad, V4L2SubdeviceFormat *format);
+protected:
+ std::string logPrefix() const;
+
private:
int setSelection(unsigned int pad, unsigned int target,
Rectangle *rect);
diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
index 143f281a..d7b61ba0 100644
--- a/src/libcamera/v4l2_subdevice.cpp
+++ b/src/libcamera/v4l2_subdevice.cpp
@@ -154,6 +154,11 @@ void V4L2Subdevice::close()
* \return The name of the media entity the subdevice is associated to
*/
+std::string V4L2Subdevice::logPrefix() const
+{
+ return "'" + deviceName() + "'";
+}
+
/**
* \brief Set a crop rectangle on one of the V4L2 subdevice pads
* \param[in] pad The 0-indexed pad number the rectangle is to be applied to
@@ -196,7 +201,7 @@ int V4L2Subdevice::getFormat(unsigned int pad, V4L2SubdeviceFormat *format)
ret = -errno;
LOG(V4L2Subdev, Error)
<< "Unable to get format on pad " << pad
- << " of " << deviceNode() << ": " << strerror(-ret);
+ << ": " << strerror(-ret);
return ret;
}
@@ -231,7 +236,8 @@ int V4L2Subdevice::setFormat(unsigned int pad, V4L2SubdeviceFormat *format)
if (ret) {
ret = -errno;
LOG(V4L2Subdev, Error)
- << "Unable to set format: " << strerror(-ret);
+ << "Unable to set format on pad " << pad
+ << ": " << strerror(-ret);
return ret;
}
@@ -262,8 +268,7 @@ int V4L2Subdevice::setSelection(unsigned int pad, unsigned int target,
ret = -errno;
LOG(V4L2Subdev, Error)
<< "Unable to set rectangle " << target << " on pad "
- << pad << " of " << deviceNode() << ": "
- << strerror(-ret);
+ << pad << ": " << strerror(-ret);
return ret;
}