Message ID | 20190418141437.14014-4-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Hi Laurent, I've just noticed a small issue with this patch. On Thu, Apr 18, 2019 at 05:14:27PM +0300, Laurent Pinchart wrote: > The IPU3 pipeline handler logs the requested configuration in its > configureStreams() handler. This is useful for other pipeline handlers > as well, move it to the Camera class. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> > --- > src/libcamera/camera.cpp | 14 ++++++++++++++ > src/libcamera/pipeline/ipu3/ipu3.cpp | 6 ------ > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp > index 75a21008070b..bd381fa1cb56 100644 > --- a/src/libcamera/camera.cpp > +++ b/src/libcamera/camera.cpp > @@ -5,6 +5,8 @@ > * camera.cpp - Camera device > */ > > +#include <iomanip> > + > #include <libcamera/camera.h> > #include <libcamera/request.h> > #include <libcamera/stream.h> > @@ -595,11 +597,23 @@ int Camera::configureStreams(const CameraConfiguration &config) > return -EINVAL; > } > > + std::ostringstream msg("configuring streams:"); > + unsigned int index = 0; > + > for (Stream *stream : config) { > if (streams_.find(stream) == streams_.end()) > return -EINVAL; > + > + const StreamConfiguration &cfg = config[stream]; > + msg << " (" << index << ") " << cfg.width << "x" > + << cfg.height << "-0x" << std::hex << std::setfill('0') > + << std::setw(8) << cfg.pixelFormat; > + > + index++; When running with multiple streams I get: INFO Camera camera.cpp:615 (0) 640x480-0x3231564e (1) 140xa0-0x3231564e Stream (1) might seems like it is wrongly configured, but it is not, it is just printed out as hex... According to the std::hex function documentation, once it gets applied to a stream, it sets its basefield to hexadecimal, and all numerical values pushed to the stream will then be interepreted as hexadecimals. A 'msg << std::dec;' before assembling the format description string, fixes the issue for me. Thanks j > } > > + LOG(Camera, Info) << msg.str(); > + > ret = pipe_->configureStreams(this, config); > if (ret) > return ret; > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > index 924eb46c58d8..f2306efba3bf 100644 > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > @@ -244,12 +244,6 @@ int PipelineHandlerIPU3::configureStreams(Camera *camera, > ImgUDevice *imgu = data->imgu_; > int ret; > > - LOG(IPU3, Info) > - << "Requested image format " << cfg.width << "x" > - << cfg.height << "-0x" << std::hex << std::setfill('0') > - << std::setw(8) << cfg.pixelFormat << " on camera '" > - << camera->name() << "'"; > - > /* > * Verify that the requested size respects the IPU3 alignement > * requirements (the image width shall be a multiple of 8 pixels and > -- > Regards, > > Laurent Pinchart > > _______________________________________________ > libcamera-devel mailing list > libcamera-devel@lists.libcamera.org > https://lists.libcamera.org/listinfo/libcamera-devel
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index 75a21008070b..bd381fa1cb56 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -5,6 +5,8 @@ * camera.cpp - Camera device */ +#include <iomanip> + #include <libcamera/camera.h> #include <libcamera/request.h> #include <libcamera/stream.h> @@ -595,11 +597,23 @@ int Camera::configureStreams(const CameraConfiguration &config) return -EINVAL; } + std::ostringstream msg("configuring streams:"); + unsigned int index = 0; + for (Stream *stream : config) { if (streams_.find(stream) == streams_.end()) return -EINVAL; + + const StreamConfiguration &cfg = config[stream]; + msg << " (" << index << ") " << cfg.width << "x" + << cfg.height << "-0x" << std::hex << std::setfill('0') + << std::setw(8) << cfg.pixelFormat; + + index++; } + LOG(Camera, Info) << msg.str(); + ret = pipe_->configureStreams(this, config); if (ret) return ret; diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 924eb46c58d8..f2306efba3bf 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -244,12 +244,6 @@ int PipelineHandlerIPU3::configureStreams(Camera *camera, ImgUDevice *imgu = data->imgu_; int ret; - LOG(IPU3, Info) - << "Requested image format " << cfg.width << "x" - << cfg.height << "-0x" << std::hex << std::setfill('0') - << std::setw(8) << cfg.pixelFormat << " on camera '" - << camera->name() << "'"; - /* * Verify that the requested size respects the IPU3 alignement * requirements (the image width shall be a multiple of 8 pixels and