From patchwork Mon Nov 29 18:51:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soft Works X-Patchwork-Id: 31795 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp6577082iob; Mon, 29 Nov 2021 10:51:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxmHudlW2SAr/TuJzBItvX1vNY7Bzinj7G0PDoBR62TIh+Kod85aFwi3aXp04PSnShzryyI X-Received: by 2002:a17:907:7ba2:: with SMTP id ne34mr60413792ejc.236.1638211916336; Mon, 29 Nov 2021 10:51:56 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dm19si32974854ejc.144.2021.11.29.10.51.55; Mon, 29 Nov 2021 10:51:56 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@hotmail.com header.s=selector1 header.b=QDnQikDT; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hotmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B99DA68A948; Mon, 29 Nov 2021 20:51:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11olkn2036.outbound.protection.outlook.com [40.92.19.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E4EDD6806C7 for ; Mon, 29 Nov 2021 20:51:44 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RVpAwI8YQv8rRX7TFANSn1ulRtUx7uBE3+VsJSbZUajynFgqoN+8k3QK99c75iPN93H+TWBpin34HG7bkbMqOE4aF/Z9+p9+0mkIT5k/OYqJ5jzOUMKa1/JF5+VrkJ3gifFtHrepXWYm0CC8MxeG75FukUNLNae4uQuuF71oYaXJ87BDp73Aq94Y+S2T6bYgpm+mtmQ869pTlvCr65g3mQ6ORN9Fgaj2aVjiDsxJcYlprWkFkoj3sXCgShj1BfmtQo6qorzAgj6Y9meTZSA31mXgpc4wwzVwq0c6MYhN1Zr4sSyQ8EJ7uQWW22m0L/p5reQkR951AhSbzgVXv9JBAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=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; bh=ROR3sbGIjJwgSb0LguTafJk6DeINuTRGU94059bj1qQ=; b=JulP0Ovg3aDwhTXtQCWXpMjSTb+vqrQpXoUHVzZU8geZ9Hq24P+ldO2rRJ5Fs9OZ8s6wNbNMjsHjoweaU2RFXv2iYxmZ26FqFeO+n0qjkoNHUjcQdW3mPoCCPuM61v9DgJ826isEOMhzscnO8d8HGu4rFzKBqTlx3xTmAtJ/mquGBVsrocaLnXauun8eVshC7g6TS2CN+tvEhpcAOYhqJgYKWatmigeTAR78jZfSBSckwbYEYhi0CFwEGHAg9DJuy8moVcWC4VvGtGUxjWrBk0QggV8ARGORLgJFX6CnzMJU7MdJ2Fk2nJOJpJ5wpEI5N2JUPuFfn1LYNq2smsIfSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ROR3sbGIjJwgSb0LguTafJk6DeINuTRGU94059bj1qQ=; b=QDnQikDT+FgEAcjUGVWfRFc069vanL1x4vqESLE0dkFJRAOG5yk136dCC4it9Q3x1I66uGMw9zQDL6Y/44GN+YgN08bJsxDi2jbTbj30Oh8fHF7BQw0+vietMCEtwV6+crAhHXiplUQOG5iUHx2fHQoJKJFw8aMP49t8BwQjPGagzVyxsoCOkpiMd8iqe3WN/FYD102MivZAnkNta8DAdt8iZuJGaTYpYNFq6lsmbPOna7OAMZwM983eIx3Ec6A42pzGW2ibFjLPHvXTttTRJIP9YAnxGKT95Au0MNiqXAcnRhFQWlTziRGxuTIonoK0dgAh6qOe+yJ2Y25g6jMyVg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DM8P223MB0125.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Mon, 29 Nov 2021 18:51:42 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::9c8d:fc63:9488:9775]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::9c8d:fc63:9488:9775%5]) with mapi id 15.20.4734.024; Mon, 29 Nov 2021 18:51:42 +0000 From: Soft Works To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH 0/5] Implement SEI parsing for QSV decoders Thread-Index: AQIEoD95rP0Zb3SnhsJV47ehDs4oLw== Date: Mon, 29 Nov 2021 18:51:42 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [xVniWS+gS9mAiTgIT7Nz9pQsFInl3ELG] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dd5d13eb-22c5-49f1-b587-08d9b36948fd x-ms-traffictypediagnostic: DM8P223MB0125: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nbo2W4nxToNLRfJktb6nGvzjYkvYY4ufgCSD9SW67tPo1tsMvemOcUMcW8TwplS6FxHNYCuHlsZbdygD+cPtVyHrLZ9xIvrhwmuyYp+p+ilOmtPD2QXw8MTn+oO3WRuurRgapNAAC2l6RIZctA4hw/tsHa/BqXCHot+L4+R8uZ5wL5Qk4/Ls3IT84vFrdqMQ0x1gC0TUwQuPaepIJWgvme8xf+w+bDDOFqSFf5e3ITHqhxVHJG+CJrclUQyd4UPD7J9VLFgOAQzevik4x/9jHnON5/wQ5lvsKqJGlJfb6OifMOKV80yl+MLUigavPwKaXDxNMxeAodW5TmF56jQJt21Jh1Ehyq3PUPSy25pNqgJ9bWnGqpekixsl0I0KtTPzWt1ijdPG45jOZQQlUcHm4B7Ae/i14qLMQzYADi9kBkY3z4hePRDiJOV9lvPGtocHQSC7OKvKvTJfrCD9o1Yu6HFSW9QOq2nH0PyHiIX7znVMjSP1gDBnSGxmXGaAnmpK+oJOcvkcX1t/uaoUEqrr7pEGanjNNV0/nb1cUL4cg3lYwqGl/8pM3xBCKB1q9kJtEiscKZYDkWhCWe/evNYf5A== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: tUqJTvgjhO8N5adFJa4OM4WfiZNOKRVD7OGPDyuXrYqzU5/+SmdFCRPi08wt72/OD/k0GhhpSQywcjszEf+/81dAuc08C3ZAeejFJK01vGpdxhb++xzvETV/5DwWaQmFwICtfm+JCRq6sriEI5/FFZI/ZwmuVOoVZHFMyJqFusmd1eOTl9873Pbt34j0bnpnvmrnRz3nJR7xFz1HPKW6GcFz+IRkkFsy89sEDbG/fXoHbRMhzHE+FNe/QEwmjWp9GHjxb1ccinn2Vc84XwABdrLLvrMV/XnsPFMEUE9648X0rIHRTp6bWZWJ8XaMD/Nsp3jFb+UzBvDr5ilmktQqNnJ3eABkIfMLuUJ2Hy5wfR9a1tncdzeY+N4vWRf/4fyaATcsNytyIUF0mkZkLju3GlLXHu3yIIFUlow++0b/39RorUJGFvuug601V8LKZXDPyVmabL7w3jwTRrqMCeZ9Vw6cD2iupY70F/Y7rl1PpBh2uTn6uJBQdJGIvc647rA+6+d1MrMRsDeODtys3dxNZo0P1bTSLbZvAh1XmH/lMUfdfSv6j06FAn50IbIroKC65UtL7N6RpRsjx6nWBv0kwbC4Bvt4b2ZXqacFcHITsf/cOVRxip7Tzmaq5w5X0YvG1d16vyY9MtlLZiKFshQh9YrpSJUsQq/dYxgrhTN/tv5KXtjZKOcMmqmJyUg4yKtTddyLM/Rr66lc/pONEn8BwQ== MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-3912-16-msonline-outlook-1fc6d.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: dd5d13eb-22c5-49f1-b587-08d9b36948fd X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2021 18:51:42.5965 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8P223MB0125 Subject: [FFmpeg-devel] [PATCH 0/5] Implement SEI parsing for QSV decoders X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GkcdLjjEamu5 Missing SEI information has always been a major drawback when using the QSV decoders. I used to think that there's no chance to get at the data without explicit implementation from the MSDK side (or doing something weird like parsing in parallel). It turned out that there's a hardly known api method that provides access to all SEI (h264/hevc) or user data (mpeg2video). This allows to get things like closed captions, frame packing, display orientation, HDR data (mastering display, content light level, etc.) softworkz (5): avcodec/mpeg12dec: make mpeg_decode_user_data() accessible avcodec/hevcdec: make set_side_data() accessible avcodec/h264dec: make h264_export_frame_props() accessible avcodec/qsvdec: Implement SEI parsing for QSV decoders avcodec/qsvenc: Ensure payload array is initialized when using enc_ctrl libavcodec/h264_slice.c | 98 ++++++++++--------- libavcodec/h264dec.h | 2 + libavcodec/hevcdec.c | 112 +++++++++++---------- libavcodec/hevcdec.h | 2 + libavcodec/mpeg12.h | 25 +++++ libavcodec/mpeg12dec.c | 36 +------ libavcodec/qsvdec.c | 210 ++++++++++++++++++++++++++++++++++++++++ libavcodec/qsvenc.c | 11 ++- 8 files changed, 359 insertions(+), 137 deletions(-)