{"id":9906,"url":"https://patchwork.libcamera.org/api/1.1/patches/9906/?format=json","web_url":"https://patchwork.libcamera.org/patch/9906/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20201002103416.53623-3-email@uajain.com>","date":"2020-10-02T10:34:15","name":"[libcamera-devel,v1,2/3,DNI] jpeg/thumbnailer: write thumbnail to file","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"7f1a9102bfb31182b6962b36051a833c8025bee3","submitter":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/people/1/?format=json","name":"Umang Jain","email":"email@uajain.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/9906/mbox/","series":[{"id":1346,"url":"https://patchwork.libcamera.org/api/1.1/series/1346/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1346","date":"2020-10-02T10:34:13","name":"Basic NV12 image thumbnailer","version":1,"mbox":"https://patchwork.libcamera.org/series/1346/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/9906/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/9906/checks/","tags":{},"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 544ABC3B5C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  2 Oct 2020 10:34:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 21A73622B5;\n\tFri,  2 Oct 2020 12:34:28 +0200 (CEST)","from mail.uajain.com (static.126.159.217.95.clients.your-server.de\n\t[95.217.159.126])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AE20E6035D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  2 Oct 2020 12:34:26 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=uajain.com header.i=@uajain.com\n\theader.b=\"Wr8z4r5A\"; dkim-atps=neutral","From":"Umang Jain <email@uajain.com>","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=uajain.com; s=mail;\n\tt=1601634866; bh=QiG603B0Vq6LSYuygYIgakiBlTEi43DvdgI2kP1ff0w=;\n\th=From:To:Cc:Subject:In-Reply-To:References;\n\tb=Wr8z4r5AxB15jle2CiZLeYPGJXxl+BJyFUXOmM42SfZR7zcEOPlrmK3+kyaYtGTL2\n\tEahrrZw0cKUpa3aqIxfCY/9XB//vlm4L22u3z5TImKWehnv2wKTQUWGTCzCD1giICD\n\tIXumbJdFtHD8Zxr4ib1WDvjE32NaThDMKfkd9p2etTCRwiLFl82TesqOPiecUSpvsF\n\tnD/+yUqHHsd9V1CjaQC7wdd3q4d7z6fCiUGVyOCdq4jINlJNnlojjPpmiqxbYcuztF\n\tNuVUK7qUXJLDdUo3WH0pCopMS4vHlz8eTAHA27GoohCBidsWr08ssX2fMnjcFz5OJU\n\taS+nEVudg/t3w==","To":"libcamera-devel@lists.libcamera.org","Date":"Fri,  2 Oct 2020 16:04:15 +0530","Message-Id":"<20201002103416.53623-3-email@uajain.com>","In-Reply-To":"<20201002103416.53623-1-email@uajain.com>","References":"<20201002103416.53623-1-email@uajain.com>","Mime-Version":"1.0","Subject":"[libcamera-devel] [PATCH v1 2/3] [DNI] jpeg/thumbnailer: write\n\tthumbnail to file","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>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Signed-off-by: Umang Jain <email@uajain.com>\n---\n src/android/jpeg/thumbnailer.cpp | 22 ++++++++++++++++++++++\n 1 file changed, 22 insertions(+)","diff":"diff --git a/src/android/jpeg/thumbnailer.cpp b/src/android/jpeg/thumbnailer.cpp\nindex d706ea6..d1dbdaf 100644\n--- a/src/android/jpeg/thumbnailer.cpp\n+++ b/src/android/jpeg/thumbnailer.cpp\n@@ -34,6 +34,22 @@ void Thumbnailer::configure(const Size &sourceSize, PixelFormat pixelFormat)\n \tvalidConfiguration_ = true;\n }\n \n+static std::string datetime()\n+{\n+\ttime_t rawtime;\n+\tstruct tm *timeinfo;\n+\tchar buffer[80];\n+\tstatic unsigned int milliseconds = 0;\n+\n+\ttime(&rawtime);\n+\ttimeinfo = localtime(&rawtime);\n+\n+\tstrftime(buffer, 80, \"%d-%m-%Y.%H-%M-%S.\", timeinfo);\n+\n+\t/* milliseconds is just a fast hack to ensure unique filenames */\n+\treturn std::string(buffer) + std::to_string(milliseconds++);\n+}\n+\n /* Compute a thumbnail size with same aspect ratio as source. */\n void Thumbnailer::computeThumbnailSize()\n {\n@@ -99,6 +115,12 @@ int Thumbnailer::scaleBuffer(const FrameBuffer *source, Span<uint8_t> &dest)\n \t\t}\n \t}\n \n+\t/* Helper code: Write the output pixels to a file so we can inspect */\n+\tFile file(\"/tmp/\" + datetime() + \".raw\");\n+\tint32_t ret = file.open(File::WriteOnly);\n+\tret = file.write({ destination, dstSize });\n+\tLOG(Thumbnailer, Info) << \"Wrote \" << ret << \" bytes: \" << targetSize_.width << \"x\" << targetSize_.height;\n+\n \t/* Write scaled pixels to dest */\n \tdest = { destination, dstSize };\n \n","prefixes":["libcamera-devel","v1","2/3","DNI"]}