Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/22960/?format=api
{ "id": 22960, "url": "https://patchwork.libcamera.org/api/1.1/covers/22960/?format=api", "web_url": "https://patchwork.libcamera.org/cover/22960/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20250314202943.112109-1-mzamazal@redhat.com>", "date": "2025-03-14T20:29:28", "name": "[RFC,0/7] Support different outputs for cam streams", "submitter": { "id": 177, "url": "https://patchwork.libcamera.org/api/1.1/people/177/?format=api", "name": "Milan Zamazal", "email": "mzamazal@redhat.com" }, "mbox": "https://patchwork.libcamera.org/cover/22960/mbox/", "series": [ { "id": 5062, "url": "https://patchwork.libcamera.org/api/1.1/series/5062/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5062", "date": "2025-03-14T20:29:28", "name": "Support different outputs for cam streams", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5062/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/22960/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 A088CC32F7\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 14 Mar 2025 20:30:07 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4562F68777;\n\tFri, 14 Mar 2025 21:30:06 +0100 (CET)", "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7B3DF6052C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 14 Mar 2025 21:30:02 +0100 (CET)", "from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-27-H7TLuJecMkukaCdJKiA6Aw-1;\n\tFri, 14 Mar 2025 16:29:59 -0400", "from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.40])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 81B9C19560B6; Fri, 14 Mar 2025 20:29:57 +0000 (UTC)", "from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.32.19])\n\tby mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 275641954B32; Fri, 14 Mar 2025 20:29:54 +0000 (UTC)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"eRgPmSlC\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1741984201;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding;\n\tbh=5NECn+RS53amMJbuDehxxJwwkT9kl9PtHPS+Sezo5pQ=;\n\tb=eRgPmSlChO89RYmUzw5iPvk0vMgQg9psg9hqfXHTRLZ3SigLw8o4dE5Y9j28hVyFuAoGHN\n\tQ3E/e59wR8+47x9Sp1bSNNXpydqWL8/TASmVzp7ZlRjZaseMYggQE63sQ8CPCRIpgFb6HC\n\twF/CNr5DaDKAlQJmOPtia24zgNo6YQk=", "X-MC-Unique": "H7TLuJecMkukaCdJKiA6Aw-1", "X-Mimecast-MFC-AGG-ID": "H7TLuJecMkukaCdJKiA6Aw_1741984197", "From": "Milan Zamazal <mzamazal@redhat.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>", "Subject": "[RFC PATCH 0/7] Support different outputs for cam streams", "Date": "Fri, 14 Mar 2025 21:29:28 +0100", "Message-ID": "<20250314202943.112109-1-mzamazal@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.40", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "EobVgn1BZu1Pqar_S1UXiubysdaMV_9fKdDV7zGm4aE_1741984197", "X-Mimecast-Originator": "redhat.com", "Content-Type": "text/plain; charset=UTF-8", "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": "cam application supports multiple streams but only a single kind of\noutput for all of them at the same time. It would be helpful if it was\npossible to support different outputs for different streams, for example if a processed stream could be sent to display while a raw stream to files or if a processed stream would be written to PPM files while a raw stream to raw files.\n\nThis patch series implements this (besides some janitorial patches).\nThere are multiple options how to do it. The selected way is to keep\nthe current output command line options, so that things don’t get\nunnecessarily more complicated for the users, and adding new --stream\nchild options specifying the output. To keep the implementation\nsimpler, it’s not possible to combine the current output options with\nthe newly introduced stream child options.\n\nExamples of newly introduced command line options:\n\n cam ... -s role=viewfinder,... --stream-display \\\n -s role=raw,... --stream-file=raw#\n\nor\n\n cam ... -s role=viewfinder,... --stream-file=processed#.ppm \\\n -s role=raw,... --stream-file=raw#\n\nMilan Zamazal (7):\n apps: common: Fix flipped error condition\n apps: cam: Formatting fixes\n apps: cam: Remove unused imports\n apps: cam: Add support for multiple sinks\n apps: cam: Report error on multiple default sinks\n apps: cam: Track sink streams\n apps: cam: Add command line options for stream specific outputs\n\n src/apps/cam/camera_session.cpp | 140 ++++++++++++++++++++++++++------\n src/apps/cam/camera_session.h | 2 +-\n src/apps/cam/file_sink.cpp | 3 +-\n src/apps/cam/frame_sink.cpp | 14 ++++\n src/apps/cam/frame_sink.h | 26 ++++++\n src/apps/cam/kms_sink.cpp | 16 ++--\n src/apps/cam/main.cpp | 27 ++++--\n src/apps/cam/main.h | 3 +\n src/apps/cam/sdl_sink.cpp | 19 ++---\n src/apps/common/options.cpp | 2 +-\n 10 files changed, 202 insertions(+), 50 deletions(-)" }