[{"id":20505,"web_url":"https://patchwork.libcamera.org/comment/20505/","msgid":"<CAO5uPHP2JCKLX_KpYP52MkAcfrawbuU-zFZ-sMVwgugj2d9CxA@mail.gmail.com>","date":"2021-10-26T07:24:38","subject":"Re: [libcamera-devel] [PATCH v8 6/7] android: post_processor: Drop\n\treturn value for process()","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Umang,\n\nOn Tue, Oct 26, 2021 at 4:22 PM Umang Jain <umang.jain@ideasonboard.com> wrote:\n>\n> PostProcessor::process() is invoked by CameraStream class\n> in case any post-processing is required for the camera stream.\n> The failure or success is checked via the value returned by\n> CameraStream::process().\n>\n> Now that the post-processor notifies about the post-processing\n> completion operation, we can drop the return value of\n> PostProcessor::process(). The status of post-processing is passed\n> to CameraDevice::streamProcessingComplete() by the\n> PostProcessor::processComplete signal's slot.\n>\n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Hirokazu Honda <hiroh@chromium.org>\n> ---\n>  src/android/camera_stream.cpp            |  4 +++-\n>  src/android/jpeg/post_processor_jpeg.cpp |  6 ++----\n>  src/android/jpeg/post_processor_jpeg.h   |  2 +-\n>  src/android/post_processor.h             |  2 +-\n>  src/android/yuv/post_processor_yuv.cpp   | 10 ++++------\n>  src/android/yuv/post_processor_yuv.h     |  2 +-\n>  6 files changed, 12 insertions(+), 14 deletions(-)\n>\n> diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> index dac216d6..fed99022 100644\n> --- a/src/android/camera_stream.cpp\n> +++ b/src/android/camera_stream.cpp\n> @@ -191,7 +191,9 @@ int CameraStream::process(Camera3RequestDescriptor::StreamBuffer *streamBuffer)\n>                 return -EINVAL;\n>         }\n>\n> -       return postProcessor_->process(streamBuffer);\n> +       postProcessor_->process(streamBuffer);\n> +\n> +       return 0;\n>  }\n>\n>  FrameBuffer *CameraStream::getBuffer()\n> diff --git a/src/android/jpeg/post_processor_jpeg.cpp b/src/android/jpeg/post_processor_jpeg.cpp\n> index 5e8c61fc..d72ebc3c 100644\n> --- a/src/android/jpeg/post_processor_jpeg.cpp\n> +++ b/src/android/jpeg/post_processor_jpeg.cpp\n> @@ -98,7 +98,7 @@ void PostProcessorJpeg::generateThumbnail(const FrameBuffer &source,\n>         }\n>  }\n>\n> -int PostProcessorJpeg::process(Camera3RequestDescriptor::StreamBuffer *streamBuffer)\n> +void PostProcessorJpeg::process(Camera3RequestDescriptor::StreamBuffer *streamBuffer)\n>  {\n>         ASSERT(encoder_);\n>\n> @@ -199,7 +199,7 @@ int PostProcessorJpeg::process(Camera3RequestDescriptor::StreamBuffer *streamBuf\n>         if (jpeg_size < 0) {\n>                 LOG(JPEG, Error) << \"Failed to encode stream image\";\n>                 processComplete.emit(streamBuffer, PostProcessor::Status::Error);\n> -               return jpeg_size;\n> +               return;\n>         }\n>\n>         /* Fill in the JPEG blob header. */\n> @@ -213,6 +213,4 @@ int PostProcessorJpeg::process(Camera3RequestDescriptor::StreamBuffer *streamBuf\n>         /* Update the JPEG result Metadata. */\n>         resultMetadata->addEntry(ANDROID_JPEG_SIZE, jpeg_size);\n>         processComplete.emit(streamBuffer, PostProcessor::Status::Success);\n> -\n> -       return 0;\n>  }\n> diff --git a/src/android/jpeg/post_processor_jpeg.h b/src/android/jpeg/post_processor_jpeg.h\n> index 92385548..43fcbe60 100644\n> --- a/src/android/jpeg/post_processor_jpeg.h\n> +++ b/src/android/jpeg/post_processor_jpeg.h\n> @@ -22,7 +22,7 @@ public:\n>\n>         int configure(const libcamera::StreamConfiguration &incfg,\n>                       const libcamera::StreamConfiguration &outcfg) override;\n> -       int process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) override;\n> +       void process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) override;\n>\n>  private:\n>         void generateThumbnail(const libcamera::FrameBuffer &source,\n> diff --git a/src/android/post_processor.h b/src/android/post_processor.h\n> index 4ac74fcf..5ec71c93 100644\n> --- a/src/android/post_processor.h\n> +++ b/src/android/post_processor.h\n> @@ -27,7 +27,7 @@ public:\n>\n>         virtual int configure(const libcamera::StreamConfiguration &inCfg,\n>                               const libcamera::StreamConfiguration &outCfg) = 0;\n> -       virtual int process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) = 0;\n> +       virtual void process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) = 0;\n>\n>         libcamera::Signal<Camera3RequestDescriptor::StreamBuffer *, Status> processComplete;\n>  };\n> diff --git a/src/android/yuv/post_processor_yuv.cpp b/src/android/yuv/post_processor_yuv.cpp\n> index 05c4f1cf..9f883924 100644\n> --- a/src/android/yuv/post_processor_yuv.cpp\n> +++ b/src/android/yuv/post_processor_yuv.cpp\n> @@ -49,21 +49,21 @@ int PostProcessorYuv::configure(const StreamConfiguration &inCfg,\n>         return 0;\n>  }\n>\n> -int PostProcessorYuv::process(Camera3RequestDescriptor::StreamBuffer *streamBuffer)\n> +void PostProcessorYuv::process(Camera3RequestDescriptor::StreamBuffer *streamBuffer)\n>  {\n>         const FrameBuffer &source = *streamBuffer->srcBuffer;\n>         CameraBuffer *destination = streamBuffer->dstBuffer.get();\n>\n>         if (!isValidBuffers(source, *destination)) {\n>                 processComplete.emit(streamBuffer, PostProcessor::Status::Error);\n> -               return -EINVAL;\n> +               return;\n>         }\n>\n>         const MappedFrameBuffer sourceMapped(&source, MappedFrameBuffer::MapFlag::Read);\n>         if (!sourceMapped.isValid()) {\n>                 LOG(YUV, Error) << \"Failed to mmap camera frame buffer\";\n>                 processComplete.emit(streamBuffer, PostProcessor::Status::Error);\n> -               return -EINVAL;\n> +               return;\n>         }\n>\n>         int ret = libyuv::NV12Scale(sourceMapped.planes()[0].data(),\n> @@ -81,12 +81,10 @@ int PostProcessorYuv::process(Camera3RequestDescriptor::StreamBuffer *streamBuff\n>         if (ret) {\n>                 LOG(YUV, Error) << \"Failed NV12 scaling: \" << ret;\n>                 processComplete.emit(streamBuffer, PostProcessor::Status::Error);\n> -               return -EINVAL;\n> +               return;\n>         }\n>\n>         processComplete.emit(streamBuffer, PostProcessor::Status::Success);\n> -\n> -       return 0;\n>  }\n>\n>  bool PostProcessorYuv::isValidBuffers(const FrameBuffer &source,\n> diff --git a/src/android/yuv/post_processor_yuv.h b/src/android/yuv/post_processor_yuv.h\n> index 5954e11b..39ec7994 100644\n> --- a/src/android/yuv/post_processor_yuv.h\n> +++ b/src/android/yuv/post_processor_yuv.h\n> @@ -18,7 +18,7 @@ public:\n>\n>         int configure(const libcamera::StreamConfiguration &incfg,\n>                       const libcamera::StreamConfiguration &outcfg) override;\n> -       int process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) override;\n> +       void process(Camera3RequestDescriptor::StreamBuffer *streamBuffer) override;\n>\n>  private:\n>         bool isValidBuffers(const libcamera::FrameBuffer &source,\n> --\n> 2.31.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B1B22BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Oct 2021 07:24:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1D89C64874;\n\tTue, 26 Oct 2021 09:24:52 +0200 (CEST)","from mail-ed1-x529.google.com (mail-ed1-x529.google.com\n\t[IPv6:2a00:1450:4864:20::529])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 15AE460123\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Oct 2021 09:24:50 +0200 (CEST)","by mail-ed1-x529.google.com with SMTP id y12so10446716eda.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Oct 2021 00:24:50 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"bLRXmUbK\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=X4Gi56Ga6hu8Q70361ydGr2+CvYUh4ZXdwxFE9bzoI4=;\n\tb=bLRXmUbKC0qOdq7q+0snRKEDhPrzVTaCKM5kQpVi/YWUYfrF9+rVlzbblzVt12q75W\n\tyMYJEw5RIsSJjYYt9ivxScuvIMXiLsbaBvKBp8GiprFfKacZyVJJUBSLpqn/jiMmRe70\n\tjvM/K4UEDzG6/bxVeYo5Uf3HTcTwTj6WhumyI=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=X4Gi56Ga6hu8Q70361ydGr2+CvYUh4ZXdwxFE9bzoI4=;\n\tb=xHy29ztoOrScYuGJYh3TlHOH3D1wm4kAngwhRbmVsncoOtNNj/voYEjNTErgkKOcj7\n\tIT9YGpshigB0fkhLbaetFffMDIqJRJhpNDArU929wdAokNNmKvv4HvHSBbLgl/twLZVm\n\t07FW/AcstWQ/0/gXEgahJyM24WpxvHuPXftXWWsmdUFG79Al2IYuuS11gaJz2NCi/yI7\n\tQaPeLBq7qouI8FqwSj79MIcE5NuAE24oe1yMWG85eCh9rRkdGPAgfmJB/RJW8ZohPPtb\n\t5Rsd7SU7eE84xc+/t8RIeYnOYHKzO9xU71+LQWW4ZNdLaaJ/oQQ7BoMRcoFI3+Ni5PgV\n\trhOA==","X-Gm-Message-State":"AOAM531GW6IsRzBKjVCPMP8blFTtF2AQro+IR3Ui/A/yXDO73M+s7+li\n\tAaiVNTMW+fLgbg1sN9rU/1e3cWCzctf3IL4bsoyekBKHQsk=","X-Google-Smtp-Source":"ABdhPJy/VLW2Ofta5atCn/zHIB6meOdQ//T6D8eaXBLZHWAX8/3UGqdUQdONF4OjB7mP0+05sRRHfhFxIf06PxcPgFQ=","X-Received":"by 2002:a17:906:26ce:: with SMTP id\n\tu14mr28690804ejc.559.1635233089518; \n\tTue, 26 Oct 2021 00:24:49 -0700 (PDT)","MIME-Version":"1.0","References":"<20211026072148.164831-1-umang.jain@ideasonboard.com>\n\t<20211026072148.164831-7-umang.jain@ideasonboard.com>","In-Reply-To":"<20211026072148.164831-7-umang.jain@ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Tue, 26 Oct 2021 16:24:38 +0900","Message-ID":"<CAO5uPHP2JCKLX_KpYP52MkAcfrawbuU-zFZ-sMVwgugj2d9CxA@mail.gmail.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v8 6/7] android: post_processor: Drop\n\treturn value for process()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]