{"id":602,"url":"https://patchwork.libcamera.org/api/patches/602/?format=json","web_url":"https://patchwork.libcamera.org/patch/602/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190220235939.25147-4-niklas.soderlund@ragnatech.se>","date":"2019-02-20T23:59:38","name":"[libcamera-devel,3/4] libcamera: pipeline: vimc: enforce stream configuration","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"92d95ff4d6b15af26726a03076475dec1412a7d5","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/602/mbox/","series":[{"id":188,"url":"https://patchwork.libcamera.org/api/series/188/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=188","date":"2019-02-20T23:59:35","name":"libcamera: enforce stream configuration","version":1,"mbox":"https://patchwork.libcamera.org/series/188/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/602/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/602/checks/","tags":{},"headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from bin-mail-out-06.binero.net (bin-mail-out-06.binero.net\n\t[195.74.38.229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 71419601E4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Feb 2019 00:59:54 +0100 (CET)","from bismarck.berto.se (unknown [89.233.230.99])\n\tby bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid 9c1aa7d2-356b-11e9-b530-005056917a89;\n\tThu, 21 Feb 2019 00:59:51 +0100 (CET)"],"X-Halon-ID":"9c1aa7d2-356b-11e9-b530-005056917a89","Authorized-sender":"niklas@soderlund.pp.se","From":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","To":"libcamera-devel@lists.libcamera.org","Date":"Thu, 21 Feb 2019 00:59:38 +0100","Message-Id":"<20190220235939.25147-4-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.20.1","In-Reply-To":"<20190220235939.25147-1-niklas.soderlund@ragnatech.se>","References":"<20190220235939.25147-1-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 3/4] libcamera: pipeline: vimc: enforce\n\tstream configuration","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Wed, 20 Feb 2019 23:59:54 -0000"},"content":"The format requested by configureStreams() should exactly match what\nprogrammed on the video device it self. If they do not match the call\nshould fail as the application in that case will not know what\nconfiguration actually was programmed.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n---\n src/libcamera/pipeline/vimc.cpp | 12 +++++++++++-\n 1 file changed, 11 insertions(+), 1 deletion(-)","diff":"diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\nindex a93a7589643834c6..812777cffbb3e618 100644\n--- a/src/libcamera/pipeline/vimc.cpp\n+++ b/src/libcamera/pipeline/vimc.cpp\n@@ -83,6 +83,7 @@ int PipelineHandlerVimc::configureStreams(Camera *camera,\n \t\t\t\t      std::map<Stream *, StreamConfiguration> &config)\n {\n \tStreamConfiguration *cfg = &config[&stream_];\n+\tint ret;\n \n \tLOG(VIMC, Debug) << \"Configure the camera for resolution \"\n \t\t\t << cfg->width << \"x\" << cfg->height;\n@@ -92,7 +93,16 @@ int PipelineHandlerVimc::configureStreams(Camera *camera,\n \tformat.height = cfg->height;\n \tformat.fourcc = cfg->pixelFormat;\n \n-\treturn video_->setFormat(&format);\n+\tret = video_->setFormat(&format);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tif (format.width != cfg->width ||\n+\t    format.height != cfg->height ||\n+\t    format.fourcc != cfg->pixelFormat)\n+\t\treturn -EINVAL;\n+\n+\treturn 0;\n }\n \n int PipelineHandlerVimc::allocateBuffers(Camera *camera, Stream *stream)\n","prefixes":["libcamera-devel","3/4"]}