libcamera: pipeline: simple: converter: Use StreamConfiguration for input configuration

Group the configuration parameters for the converter input in a
StreamConfiguration instance. This makes the configure() function
signature cleaner, and will allow passing additional parameters (such as
stride and buffer count).

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Phi-Bang Nguyen <pnguyen@baylibre.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2020-12-26 23:45:04 +02:00
parent cc8da6b8c2
commit ad12f09a62
3 changed files with 13 additions and 8 deletions
+7 -5
View File
@@ -148,15 +148,17 @@ SimpleConverter::strideAndFrameSize(const PixelFormat &pixelFormat,
return std::make_tuple(format.planes[0].bpl, format.planes[0].size);
}
int SimpleConverter::configure(PixelFormat inputFormat, const Size &inputSize,
int SimpleConverter::configure(const StreamConfiguration &inputCfg,
const StreamConfiguration &outputCfg)
{
V4L2DeviceFormat format;
int ret;
V4L2PixelFormat videoFormat = m2m_->output()->toV4L2PixelFormat(inputFormat);
V4L2PixelFormat videoFormat =
m2m_->output()->toV4L2PixelFormat(inputCfg.pixelFormat);
V4L2DeviceFormat format;
format.fourcc = videoFormat;
format.size = inputSize;
format.size = inputCfg.size;
ret = m2m_->output()->setFormat(&format);
if (ret < 0) {
@@ -165,7 +167,7 @@ int SimpleConverter::configure(PixelFormat inputFormat, const Size &inputSize,
return ret;
}
if (format.fourcc != videoFormat || format.size != inputSize) {
if (format.fourcc != videoFormat || format.size != inputCfg.size) {
LOG(SimplePipeline, Error)
<< "Input format not supported";
return -EINVAL;