Show a cover letter.

GET /api/1.1/covers/20199/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 20199,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/20199/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/20199/",
    "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": "<20240605074239.124473-1-alexander.gordeev@opensynergy.com>",
    "date": "2024-06-05T07:42:37",
    "name": "[v9,RESEND,0/1] Virtio video device specification",
    "submitter": {
        "id": 167,
        "url": "https://patchwork.libcamera.org/api/1.1/people/167/?format=api",
        "name": "Alexander Gordeev",
        "email": "Alexander.Gordeev@opensynergy.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/20199/mbox/",
    "series": [
        {
            "id": 4358,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4358/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4358",
            "date": "2024-06-05T07:42:37",
            "name": "Virtio video device specification",
            "version": 9,
            "mbox": "https://patchwork.libcamera.org/series/4358/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/20199/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 14E96BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Jun 2024 07:50:10 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2E622634DB;\n\tWed,  5 Jun 2024 09:50:09 +0200 (CEST)",
            "from repost01.tmes.trendmicro.eu (repost01.tmes.trendmicro.eu\n\t[18.185.115.110])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 41115634B5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Jun 2024 09:45:04 +0200 (CEST)",
            "from 104.47.11.168_.trendmicro.com (unknown [172.21.191.80])\n\tby repost01.tmes.trendmicro.eu (Postfix) with SMTP id 7F45F10001359; \n\tWed,  5 Jun 2024 07:45:03 +0000 (UTC)",
            "from DEU01-FR2-obe.outbound.protection.outlook.com (unknown\n\t[104.47.11.168])\n\tby repre01.tmes.trendmicro.eu (Trend Micro Email Security) with\n\tESMTPS id 83C731000030E; Wed,  5 Jun 2024 07:45:00 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=opensynergy.com header.i=@opensynergy.com\n\theader.b=\"upUN4XZV\"; dkim-atps=neutral",
        "X-TM-MAIL-RECEIVED-TIME": "1717573500.539000",
        "X-TM-MAIL-UUID": "a1eed563-f946-4527-beb3-a9b80fd9a6ef",
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n\tb=VTuVlZyqP5rb8+yWhVrku2tVa1CskqMsFAfX2+kRNrTyU6i4tlpiE6n6poss3kVlZRGEw9zJvszA/dl/E65RzGvcoahs1PiUxOob9DRdU33AHG7H4QtCmPVotJe9iDLbMz+lfGnsVxfR228Q43XC8MLcKf4efAfuAIbxLH04JbZtPESYiYhzqmvuILDtnY9NNU8SAieMBL+qUrf6z70Esg+B4eZ0SRLMRnti4vaqaLn2G9odHmJ2UKqWxBrfIsSCLg3n1wVcFWSgGlj4gMUcAL8lHQS8JVult8P87aaM49LOfTz284Z96p9Me0RKrZ7fbrIY02nN0ufxh9Fm+Byofw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector9901;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=druXbZzgAFwMTintMsbDQXyRuVhVfvUIMFny1/Izy+0=;\n\tb=WXGVBaSAI7kk5+i6soq/GqmoRhsfj6wBZwyTkMi8hsFuGaFFv9sm7erfGPF3gZId8eKqri9se7N7RIEJ2rIkcw8hRJo0AEC510V20GomWAnAdAwMsF3jEUMcXzb9pK5iGBNrDjGrZM8OFBhTg5ZElhufjv8l5IWTnZ+JSpDm600RfN7oBwSCeL51s0LELdLF3Ea4fX+eLN2oM83l9DcPLlcseUVn9+affvnxKxxoh35sSq+Pg/OkQAp8JJsAGR9jSDuIJqv/MRzIDVJNMa4Tj/N0wvwS3m7bu8Qbmo7UHMmjuYa7nsOkQxarAtDb7Pz1TDAHllM0GvRQxckU9XutIQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=fail (sender ip is\n\t213.61.166.92) smtp.rcpttodomain=chromium.org\n\tsmtp.mailfrom=opensynergy.com; \n\tdmarc=fail (p=reject sp=reject pct=100) action=oreject\n\theader.from=opensynergy.com; dkim=none (message not signed);\n\tarc=none (0)",
        "X-MS-Exchange-Authentication-Results": "spf=fail (sender IP is 213.61.166.92)\n\tsmtp.mailfrom=opensynergy.com;\n\tdkim=none (message not signed)\n\theader.d=none; dmarc=fail action=oreject header.from=opensynergy.com; ",
        "Received-SPF": "Fail (protection.outlook.com: domain of opensynergy.com does\n\tnot designate 213.61.166.92 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=213.61.166.92; helo=SR-MAIL-03.open-synergy.com;",
        "From": "Alexander Gordeev <alexander.gordeev@opensynergy.com>",
        "To": "virtio-comment@lists.linux.dev",
        "Cc": "Alexander Gordeev <alexander.gordeev@opensynergy.com>,\n\tAlbert Esteve <aesteve@redhat.com>,\n\tAlexandre Courbot <acourbot@chromium.org>, alex.bennee@linaro.org,\n\tAndrew Gazizov <andrew.gazizov@opensynergy.com>,\n\tAndrii Cherniavskyi <andrii.cherniavskyi@opensynergy.com>,\n\tCornelia Huck <cohuck@redhat.com>,\n\tDaniel Almeida <daniel.almeida@collabora.com>,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tEnric Balletbo i Serra <eballetb@redhat.com>,\n\tEnrico Granata <egranata@google.com>,\n\tGustavo Padovan <gustavo.padovan@collabora.com>,\n\tKeiichi Watanabe <keiichiw@chromium.org>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tMarcin Wojtas <mwojtas@google.com>,\n\t\"Michael S . Tsirkin\" <mst@redhat.com>, \n\tPeter Griffin <peter.griffin@linaro.org>,\n\tTomasz Figa <tfiga@chromium.org>, \n\tMatti.Moell@opensynergy.com, bag@semihalf.com, bgrzesik@google.com,\n\thmazur@google.com, mikrawczyk@google.com, srosek@google.com,\n\tzyta@google.com, linux-media@vger.kernel.org,\n\tlibcamera-devel@lists.libcamera.org",
        "Subject": "[PATCH v9 RESEND 0/1] Virtio video device specification",
        "Date": "Wed,  5 Jun 2024 09:42:37 +0200",
        "Message-ID": "<20240605074239.124473-1-alexander.gordeev@opensynergy.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "AMS0EPF00000191:EE_|FR3P281MB2032:EE_",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "d8239ffe-c624-4a58-6e93-08dc85336643",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n\tARA:13230031|7416005|36860700004|376005|1800799015|82310400017; ",
        "X-Microsoft-Antispam-Message-Info": "Tl84jAHqsME4BsXvhFHu6rb6bk1bJ2udMW9B1efnFOCEL2EWJU2e7XovyKsFXBqXHNOgVVZ57+UcWQBNasv76ph5QSekJSJUXZ9c5uy4NldBPTeBZh3yYFWK6u63KnOb68bWlIDT74A6GiAbjcXnKzZ4NTrvXEhW8r/3RlEiqZRto/tvKPt3JCg+qXEJ0JeI0cH8tb5Ragkm6CG3hoFLfyumyN7iTCM6VIeu79duVb+IjKez3bR9+QWnRIgd3yAnUyS+vrUlNdZtfpi+CmL7bLPzPLo6JlFKoPuhTunVRkwtS552b00B/Ct3HANcVmsh/vmpSma87cHEQ/rKeQiswLOOv5yHj5ctsu6amXJbRSJUpBwV/9feDSe2MrGOCVJ1VSHRC9M1j5zdFsi53FHCMGI5u46oyimNT+n2kZMVwYdTsHZ8xRk6fdomKTnAWjoti/SgcR+YYKwi1XC/ExWnf8MRCc1wYGWPvEKA9BZL6q3D6TwutDWnhLJXtKHTiGFMkBW33ZNEufRh3gve+nkwwYAWycqzqCcZCngD9vrFAMy2t6TNw4fwI2Hm9atYj+76SfOp3DZPSpXb4vkiPX4hDzzEBCCjzPwJHpnHJ13fE6nDnhMiIVnf0a80hRYqj078QLwHOYNweD/ZZDEegYTO5vwjR9yE6u7ilEZvSbTR1j07t5HSH+QD6a1BT7PzwVAEDPi0TZxOkgpoH7EpevGd5MbZHNy+XQUSFKZbNe+W9RJQMGKi8rYKujFSIi9foIuozGzSq3GH59z9HEheOIdFXHZWsGTwWm8KbcHL14XDs41+GJPYicu3sOV4jXvQJIdd3krKYMrW3KFlDcmJhWB7mGOc78gpPvN0RdQ9A/LB9ER4I25L/cCKsbVwSmcjVpY9EbTHyFq3Jj1NXizhDyz/shbQ0lYVQUraLW7OJuaH1vw9CzYReBohfEjd/SPksNP34r1wG0X5QY7fZPupuYby/6r4feWvtTjKgfmAef3orD6mFC/01TM0btlGHetrGpQ4UGGEd2JnpErp4eiekfjTCIiYPBjfYnuSXe46iIYD/1X0rjK/pjtxDmuRenaNM3K00MqUYtQYdvLDUJdMocZraJ5RGgxPCSpuP1t6Es6n8r45uVbUzR37vcwMSFMGxZA7ZhqAt8rQHeHqCI7KtHvQQXYjVqVbQPSus6aLEWEg40T+022/yhohfwuLP7AMtIkKBqYTKME5zTH0fJc0CxIdLygepO2Yurq8utE0dsi72KqoIixdWAN5iPBLB0xejXZ2YO8GLq63yS8mvW2eXxq0OS15h66kB8Fa2AfZ5DjEaIOOQ87FGnNg7Q0diATIUxHpLyK5mX6FTaUnspmENfqrCGMkS1I1EySiCsW2zyH3EkI=",
        "X-Forefront-Antispam-Report": "CIP:213.61.166.92; CTRY:DE; LANG:en; SCL:1; SRV:;\n\tIPV:CAL; SFV:NSPM; H:SR-MAIL-03.open-synergy.com;\n\tPTR:exchangeconnector.opensynergy.com; CAT:NONE;\n\tSFS:(13230031)(7416005)(36860700004)(376005)(1800799015)(82310400017);\n\tDIR:OUT; SFP:1102; ",
        "X-OriginatorOrg": "opensynergy.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "05 Jun 2024 07:44:58.4351\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "d8239ffe-c624-4a58-6e93-08dc85336643",
        "X-MS-Exchange-CrossTenant-Id": "800fae25-9b1b-4edc-993d-c939c4e84a64",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=800fae25-9b1b-4edc-993d-c939c4e84a64;\n\tIp=[213.61.166.92]; \n\tHelo=[SR-MAIL-03.open-synergy.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "AMS0EPF00000191.eurprd05.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "FR3P281MB2032",
        "X-TM-AS-ERS": "104.47.11.168-0.0.0.0",
        "X-TMASE-Version": "StarCloud-1.3-9.1.1023-28432.006",
        "X-TMASE-Result": "10--18.460000-4.000000",
        "X-TMASE-MatchedRID": "FQo/JhuHF01KqT77NMMyN9EZ3jNruZrPZK1SF2R3ediy2KcDnJPR2XoX\n\tWf28Kt1WdBjoMEPmPfi4mrHlZ16ONzQOHX12tkoi3OA9wrs0AD0+qCvrVHMYXpdigZi17dHqKEc\n\tMx3BrCStrYq2UPKuEJOM2l0V4Su7rvZyVfZrc6N0XS7bM7P8iGBwr5LLKUXeOAmBhgdYLTDl60T\n\tdQ4dbnIViHN7fEaLXimpAhENEYk4AUFGYAqJTuAN2crNR8miTUuFC97///te3wAvl+I1avDlx+v\n\tLNot6+N+jiazyZ0t6elhmaIAUBOfmApfV6+GEd91dB1lEL6QMWYTLT8orMAmvbVsYZL/jhxpxEL\n\t22llsI1xBRXqBjzwZexP6Kr0mf7VBFEtfDmPmh7qSee/BbggGouvcKpGSDPplueiTveeZGAQqh1\n\tsQnJrF6siUpUJTGC8qQZD6eM5ZgcvjfwOm5+mTyQptwyVJHc8iZ5bcWVVE8BlyOnJ/nFmK4jLwL\n\tOSKb1E9Rm8WOY/tYVFBMIZlJa6b94rBdptIjsnFvggL5qqxd3OKm7oAxeFFc8NEee6WY0AM/UMu\n\tPjMqqPgSyTPYV+ByUF2JfNJT/5/wBDfgAwffVNGDXkz8A7dj4M+VZimfMfO4KNHhzFHuJkMwqLs\n\t3yWGdlza06ypXO1yqonS1IlGcFZ93ocDP/yHSKqJbIe5fXLQn8cUfSHIwCASCDdzAMeX/fzilCV\n\tSnD5IkFhIDewwGPmN4P4XksxlVzv5gdvtdpzVWjsaYI4lh3UCpgETeT0ynA==",
        "X-TMASE-XGENCLOUD": "3c483fa2-fdd2-483f-8fdf-a8b7a412a736-0-0-200-0",
        "X-TM-Deliver-Signature": "CEE89DF92F06FA79E92AA590A8DBCFB6",
        "X-TM-Addin-Auth": "STjWwopncTBjGTlYBemdnQaSgsdTseMKAJKz8gu3B2j7zrn+RE3KBS0d3gB\n\tvVSrGWKvqHERhbzqVgbo1HTf6zXTY8CIewrTl2hj9vx0IO/flDgEisOxDxxmXAYjgSKmHMgyrXW\n\tvMki3FuKVuUsd/3UhRrvZ2k5Xx3ug7KV3KsSZ+MWoomLN7D5h2CqA5EYkHU0gj3Laps1Jz2bqK1\n\t+NiYSgU+u6jYCK3H0DgM9K0l6LgQfO5DE01G25sfY4tAqAX96vWg0mXcPPZrMTVx/GqU24awaRc\n\taCcHNCKTRPk3fmlL6UX24xdzQ6OQ3onc6mgR.EWROgy3lDY7Go3it1n4MvZ1Vsj4R+0Aza6dSGW\n\tKMNwMnUMOAyQ5Vsj6lWvVwb4OIyXd/3TdkSw5vsU1jFQZvE5fOEeLdZIEecVWArLCjej3nMRMB6\n\t4b8AS/jeugQTdaoYmuMQUb98WD0V/ZRYCbxTiBl2E4MF5up8GQpL5fPJ/zbn7ZV4ywCUl09cZld\n\tFxkcFPLgpesPRen0zyYFe+EV9fsKXgZ0x68TXmOl0OzSvM34WWT5xE5bwVpH82NZD5Kg80xu/xn\n\tlU9EpqiW7sx/Xbbr5SAw2mdKv2JTmT5q53JxsDlzgSTFTjDCoQ1aG1Go7JxdjjRLyU8zxfht9rW\n\tqnWQ==",
        "X-TM-Addin-ProductCode": "EMS",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com;\n\ts=TM-DKIM-20210503141657; t=1717573503;\n\tbh=t0XsweaRH70cEaR2TqwaEX3BX2CKzr+/7yoxLxLCSro=; l=4998;\n\th=From:To:Date;\n\tb=upUN4XZV3PNJDp3McAfH5bblngfipXVJxSozyQEk0iPz7WNZg6ErJpgJXbL9gdbdc\n\tt773VKPiPkVVra6VeATAa3yQ0L4Jeg5oFl0nqCMXbt2t+jaYiifbaSme18SAvraaos\n\tr55FNUgl+yCvNFClgBmaOWhHoFkFtA7VRbx51mpwCum2gEhkWLbifP8RiywlIz8W1+\n\tZAbRqA1vjBFmhMVlXqE9nkgJeZldT1KIC2fuG1SqYfnRp6vCtVLOd+iP3qGdeDUEyX\n\tzICSUbIjbH8BrU/+EZFeW3QYKZsWH/oX+TTjEN39E4Pk2g3TIe3zR5NBCuqcSEVQw/\n\tHEsUEf3Mqctng==",
        "X-Mailman-Approved-At": "Wed, 05 Jun 2024 09:50:07 +0200",
        "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,\n\nUpdate 05.06.2024:\nI'm resending the patch because now the virtio mailing lists seem to be\nfunctional again. This time without the RFC mark. I think it is already\ngood enough for merging. I'm working on updating the implementation. If\nthere are any minor changes necessary, we still have a lot of time\nbefore the next release to fix them.\n\nThis is the 9th version of virtio-video device patch. There are some\nmajor changes and now I think it is good enough conceptually, but may\nneed a few minor changes, when the driver gets updated. Sorry, it took\nway longer, than I expected. There are a lot of details to care about\nand also a lot of distractions. Please review.\n\nChangelog v8 -> v9:\n1. Chenged representation of device capabilities/parameters to\nType-Length-Value (TLV).\nTLV representation is already used in the kernel, see [1][2]. It is\nmentioned in the virtio sound device specification. It is also\ncompatible with struct v4l2_ext_control, that is used to set V4L2\ncontrols in batches. Here I'm trying to extend the approach onto many\nother things: device capabilities, formats, buffers/resources, crop\nsettings. This way it is possible to get all the device capabilities in\none call, then set all the parameters/controls in one call. For us this\nis important due to significant hypercall delays. I hope this might be\napplicable in the V4L2 core as well in the future, so I'm very\ninterested in comments from linux-media community.\n\n2. Changed back the representation of capabilities to pre v7 model.\nVideo decoders and encoders are basically converters between\nmultidimensional shapes of all supported encoded formats and all\nsupported raw formats. This was roughly the way the capabilities were\nrepresented in v1-v6 (excluding the controls), then in v7 and v8 I\ntried to do it closer to the V4L2 discovery process. Now I think this\nwas a mistake, the previously used method may look more complex, but it\nfits better. This approach is similar to the way the capabilities are\ndescribed in gstreamer (they don't seem to have explicit links between\nthe sets though).\n\n3. Replaced the internal device's per stream resource queues with\nvirtqueues.\nThe idea briefly: we had to avoid blocking the descriptors for a long\ntime, so I implemented delayed responses in v8. Then there is no\nnatural limit for the number of elements in the resource queues\nanymore. What to do if the queue becomes full? So there are a bunch of\nthings to define in the spec. I decided to replace these queues with\nvirtqueues, because the virtqueues are already defined well enough.\nThere are of course some upsides and downsides. I think upsides are\noverwhelming and I'd be happy to discuss this if anyone is interested.\n\n4. Renamed commandq to mainq since commands can be queued to per stream\nqueues as well.\n\n5. Renamed STREAM_CREATE -> STREAM_OPEN, STREAM_DESTROY -> STREAM_CLOSE.\nNow the per stream virtqueues are opened rather than created.\n\n6. Enabled RESET on the output queue too.\nI didn't know how to handle a VIDIOC_STREAMOFF on the capture queue\ncoming from guest user-space otherwise.\n\n7. Merged ATTACH_BACKING command into SET_PARAMS.\nI felt, that it really belongs to the parameters alongside the\nnum_resources, it allows the driver to see if the resources are detached\nafter a SET_PARAMS or not, also might be helpful during debugging. Still\nthere is an issue: SG lists can be quite large. If it is large and the\nresults are returned on the eventq, then this significantly increases\nthe eventq's descriptor sizes. Avoided this by adding a requirement for\nthe device to cap the TLV length to 8.\n\n8. Added DRM format modifiers.\n9. Added FWHT codec.\n10. Addressed review comments.\n11. The spec size went down from 24 pages to 19 pages.\n\nFull PDF: https://drive.google.com/file/d/1gj-kOBp1uvCB5IzrtOTjf-zunP3f-EFq/view?usp=sharing\nPDF with the video section only: https://drive.google.com/file/d/1fH8XaSYkwkb2beB9thS7FOvFysUM22Q5/view?usp=sharing\nPlease note, that external links are broken in the short version.\n\n[1] https://docs.kernel.org/userspace-api/netlink/intro.html?highlight=tlv\n[2] https://docs.kernel.org/sound/kernel-api/writing-an-alsa-driver.html?highlight=tlv\n[3] https://lore.kernel.org/linux-media/20230922100303.GF19112@pendragon.ideasonboard.com/\n\nAlexander Gordeev (1):\n  virtio-video: Add virtio video device specification\n\n conformance.tex                           |    4 +\n content.tex                               |    1 +\n device-types/video/description.tex        | 1607 +++++++++++++++++++++\n device-types/video/device-conformance.tex |   22 +\n device-types/video/driver-conformance.tex |   20 +\n introduction.tex                          |   21 +\n 6 files changed, 1675 insertions(+)\n create mode 100644 device-types/video/description.tex\n create mode 100644 device-types/video/device-conformance.tex\n create mode 100644 device-types/video/driver-conformance.tex"
}