{"id":22111,"url":"https://patchwork.libcamera.org/api/covers/22111/?format=json","web_url":"https://patchwork.libcamera.org/cover/22111/","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":"<20241127092632.3145984-1-chenghaoyang@chromium.org>","date":"2024-11-27T09:25:50","name":"[v2,0/8] Signal metadataAvailable and Android partial result","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/?format=json","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"mbox":"https://patchwork.libcamera.org/cover/22111/mbox/","series":[{"id":4828,"url":"https://patchwork.libcamera.org/api/series/4828/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4828","date":"2024-11-27T09:25:50","name":"Signal metadataAvailable and Android partial result","version":2,"mbox":"https://patchwork.libcamera.org/series/4828/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/22111/comments/","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 D32ADC3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Nov 2024 09:26:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A1008660BA;\n\tWed, 27 Nov 2024 10:26:41 +0100 (CET)","from mail-pg1-x533.google.com (mail-pg1-x533.google.com\n\t[IPv6:2607:f8b0:4864:20::533])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 207CA660AD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Nov 2024 10:26:40 +0100 (CET)","by mail-pg1-x533.google.com with SMTP id\n\t41be03b00d2f7-7fc8f0598cdso254953a12.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Nov 2024 01:26:39 -0800 (PST)","from chenghaoyang-low.c.googlers.com.com\n\t(27.247.221.35.bc.googleusercontent.com. [35.221.247.27])\n\tby smtp.gmail.com with ESMTPSA id\n\t41be03b00d2f7-7fbcbfc41f9sm8693027a12.8.2024.11.27.01.26.36\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 27 Nov 2024 01:26:37 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"ex0O+oU3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1732699597; x=1733304397;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=7tXtCY8bgASiCUiJ2cEOeEozx6u4HTw4RujPC9EsCY0=;\n\tb=ex0O+oU3La8UBcyks1MZwwkvM47Sv6hHKmzZmEO4uZFn+8LLLul4D8rig2thK4HpYf\n\tgNq8gOKzGJWDglcZM8UzAww7hWtaQlCGkTCS1yz2Fb8kn2NPxRB7kGwPZPnJK/VazqWg\n\t1zhV/ltFFuW5X2jUezU9toU/fYOS37ea2/q9Y=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1732699597; x=1733304397;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=7tXtCY8bgASiCUiJ2cEOeEozx6u4HTw4RujPC9EsCY0=;\n\tb=sUaQhoXaGrqcbEJIYpLBifbpmZEmHcnemxWfSljVsYUYXrKSxBHlH5O2gKcfKUfQBF\n\t/6djePTV6Ro3vpfPtJFzMkR43QBZ2E7FibAO3/pxDt8gYltwx692Z9xsary6zG39fUXa\n\tH+NsKSky/rkgghxzKMF285qFAHEGRSfsqxvUe801LuCCURkw1ByNdFqtq9e5ZtyT7QGO\n\ttwXCvG7nyxpyLVYT62mi4wHuOm3B4b5E64TrbvzO95CIA6amc7Pw1U/rVMwm27ldHjKI\n\t3vpsrYHzRl+LBXltmQCxw9LPxkt+zRTpavhP1IUVlB7hwppV5QNo1JFnoSqHSyycQtV3\n\tu+gQ==","X-Gm-Message-State":"AOJu0YzevWtZlRBbdUWf+fFKGOMy7S46vjtWxy95kQaxmLT9Be5Xt9lw\n\tMhyqZ1ICVnEhziNIvyfRJJw5XEAkLR85aBEDQL7s1TBleSpu58KM/QpH6EmSb0G1MvVW7xfFdnQ\n\t=","X-Gm-Gg":"ASbGncuxP9yUSDM957B0dKf+1GQgw6f0WOlGexUvtKXAwmEpg7QwpJUyxA7JNQlovKi\n\trSuK6CLghHqYsdYdr0zCH7a6RRyMSnW5GjmQE7ltQQSdR8QMZ7FXiizulUPrHlm9Ye++P2SCfQ/\n\tjLQAzukHvPVxldhn0Q882NSHML9xvhKqvx9K0A6n1SKHQk7+fMpNswUvA3oo/mnkgnSmNDOvTxm\n\tQm8jsFKBLp5mFwrm+Ew6V/Ue4dNSr0juUKHxTMVINa1H/JWvhwSaUQikuEfFlHxVoNn2+OZ+AMj\n\tJMdzqe+UfVx22k+78yoWpop1NNvZgVzs8wozmb7jAJRULx5S2FYV0Q==","X-Google-Smtp-Source":"AGHT+IF9kpEa6441GPfo8Alg6QZ7DSZVvmCpMmpvMBBl3AKRLzCehg+TVmdatnHXEPVQMW+x9EPUXQ==","X-Received":"by 2002:a05:6a20:a109:b0:1d8:a67e:d323 with SMTP id\n\tadf61e73a8af0-1e0d676e36bmr7925704637.22.1732699597508; \n\tWed, 27 Nov 2024 01:26:37 -0800 (PST)","From":"Harvey Yang <chenghaoyang@chromium.org>","To":"libcamera-devel@lists.libcamera.org","Cc":"Harvey Yang <chenghaoyang@chromium.org>","Subject":"[PATCH v2 0/8] Signal metadataAvailable and Android partial result","Date":"Wed, 27 Nov 2024 09:25:50 +0000","Message-ID":"<20241127092632.3145984-1-chenghaoyang@chromium.org>","X-Mailer":"git-send-email 2.47.0.338.g60cca15819-goog","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hi folks,\n\nThis series of patches adds a new signal metadataAvailable in\nlibcamera::Camera, and supports partial result in Android adapter.\n\nAlthough Android allows a partial result to contain both buffers and\nmetadata, we probably don't need such a feature. Splitting them into\ndifferent partial results should fit both MediaTek's and Intel's\nrequirements.\n\nThis patch passed gitlab pipeline:\nhttps://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1317276\n\nThere are still some discussion of the new signal in the previous patch,\nwith Jacopo. I'll update the patch when we reach agreement.\n\nI understand that the last patch is a bit large, while I don't know how\nto split that furthermore. Let me know if there are some pieces that can\nbe standalone patches.\n\nBR,\nHarvey\n\n\nHan-Lin Chen (2):\n  libcamera: Camera: Add signals for completion of metadata as a partial\n    result\n  android: Add JpegExifMetadata to store tags setting into Exif\n\nHarvey Yang (7):\n  android: Move StreamBuffer out of Camera3RequestDescriptor\n  android: Set StreamBuffer::srcBuffer in\n    CameraDevice::processCaptureRequest\n  android: Migrate StreamBuffer::internalBuffer to\n    Camera3RequestDescriptor\n  android: Add CameraDevice::sendCaptureResult()\n  android: Cleanup CAMERA3_MSG_ERROR_REQUEST\n  android: Remove Camera3RequestDescriptor::streamsProcessMutex_\n  android: Support partial results\n\n include/libcamera/camera.h                    |   1 +\n include/libcamera/internal/pipeline_handler.h |   1 +\n include/libcamera/internal/request.h          |   4 +\n include/libcamera/request.h                   |   1 +\n src/android/camera_capabilities.cpp           |  11 +-\n src/android/camera_capabilities.h             |   2 +\n src/android/camera_device.cpp                 | 926 ++++++++++++------\n src/android/camera_device.h                   |  46 +-\n src/android/camera_request.cpp                |  94 +-\n src/android/camera_request.h                  |  96 +-\n src/android/camera_stream.cpp                 |  20 +-\n src/android/camera_stream.h                   |  10 +-\n src/android/jpeg/encoder.h                    |   2 +-\n src/android/jpeg/encoder_jea.cpp              |   2 +-\n src/android/jpeg/encoder_jea.h                |   2 +-\n src/android/jpeg/encoder_libjpeg.cpp          |   2 +-\n src/android/jpeg/encoder_libjpeg.h            |   2 +-\n src/android/jpeg/post_processor_jpeg.cpp      |  16 +-\n src/android/jpeg/post_processor_jpeg.h        |   2 +-\n src/android/post_processor.h                  |   4 +-\n src/android/yuv/post_processor_yuv.cpp        |   2 +-\n src/android/yuv/post_processor_yuv.h          |   2 +-\n src/libcamera/camera.cpp                      |   6 +\n src/libcamera/pipeline_handler.cpp            |  41 +\n src/libcamera/request.cpp                     |  21 +\n 25 files changed, 908 insertions(+), 408 deletions(-)"}