From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E72E2450A6 for ; Thu, 5 Jan 2023 08:46:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7849E68BCB0; Thu, 5 Jan 2023 10:46:48 +0200 (EET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B881468B766 for ; Thu, 5 Jan 2023 10:46:41 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672908406; x=1704444406; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=sMh0TcSiU2nexuuEWmJqKdMnYeUAmFKRgQBrsJndwiM=; b=H7mmOW6FrdRZiL8LvmhblZCGudJ0+vgUrjO0qOfLOIyCagOjBW4WtZWQ dhgwmAifVDK+HtkUZEQwsRE7j3Vgs7gv0AqTzDOfSHkXajd1cseAzpFbu DzLnVf5v0bAnL0znxxt6AFSIiqgzrNu9GM78wSNCFSPyYl8vEEg/w2VmV yrj7T8aG7qCo6MYTtCIl01RUhTmXF+agu6bI44RWVCawXv4YkIH13M3L7 YB5eOiBBwLQeNTKIWzMfZvX0Ik+ah5XWSscwNd/hK3t5pe2JeRoNRH7Xi cdMmx/9wpjGxYrtaPQ6IGl+jiST72z6rMc7U0X8GOBEHuTf9p8gwos0Jd w==; X-IronPort-AV: E=McAfee;i="6500,9779,10580"; a="319859608" X-IronPort-AV: E=Sophos;i="5.96,302,1665471600"; d="scan'208";a="319859608" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2023 00:46:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10580"; a="687834244" X-IronPort-AV: E=Sophos;i="5.96,302,1665471600"; d="scan'208";a="687834244" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga001.jf.intel.com with ESMTP; 05 Jan 2023 00:46:38 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 5 Jan 2023 00:46:38 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 5 Jan 2023 00:46:37 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Thu, 5 Jan 2023 00:46:37 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Thu, 5 Jan 2023 00:46:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KOhKRuwKyBPEbEAkVx+xf/4fINg99+yRNTl9WL3ioY59muxu6HG0IeJ+7qmsX9aVK11bfpPytN2dmnugxe/iI4GY8ufALbNhQ0qLR5vGs2CyEwPoJKT6RFtzjsegBlvoWCJ8ny55w7+c7Htq+160y4c6G0kfEAKSuH3vux2hjMRS3EpIQ9bsNFYPwFAMc+6+cpsKfIkkN4iakalYozzbJe+RSfpDYORgGTqnYvKMLZGGU6fi6B696u87Ah9ZxDNixk+fXAsZKdUCi3iuojtprweGygoRsbYwuSOQbjQcPp8Rd6CzqNzoYSjR2Q/0VfriVwFLLBNasWi+6qYn6WN70Q== 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=sMh0TcSiU2nexuuEWmJqKdMnYeUAmFKRgQBrsJndwiM=; b=L+buM8/xivX3R4X7Gm+BbpkadOiruqWL67q3wPnQfQTa/f2VC0Bk5PXi42fZgPggvuuXcVbR6ocaYd32alaZ4gdXZN7tPnoTECdyssL9VsgRufZREdDIR0qkrZDLvWfKm+2XmAW3zMgWhMrjDpqgQ4Qh5Y88K4Y/zpT12tJR4aNonRwrsNwPrhDyvug96ESyOKwb3c8nMN2dh0VP+Vdd5b44QZKgApHTgbytTMpIyh6A5HUwRis5vzEcuIZzvoU52tMNjn/ScOhm+Pq6XxJNN5Si3DASCTW7uJRjkxaWDEuI13jghPAO+bWLfqzegbADyxvrCWd3JkP9GYUGQACXIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by SA2PR11MB4889.namprd11.prod.outlook.com (2603:10b6:806:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 08:46:35 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::e3ef:177c:4008:7ee9]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::e3ef:177c:4008:7ee9%5]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 08:46:35 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH] avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI Thread-Index: AQHZHuEKl2SJltKNgEKiYzJ6N9a3oK6PhqkA Date: Thu, 5 Jan 2023 08:46:35 +0000 Message-ID: <53441fbf22f9bdeca14a7dd07dad78574d9a68cc.camel@intel.com> References: In-Reply-To: Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5515:EE_|SA2PR11MB4889:EE_ x-ms-office365-filtering-correlation-id: 03d704ae-b76b-41bb-507d-08daeef95a19 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Zg83iZ6JELe9kEap9cAVn7ozJOSGiXUjmCWMYWhWYbc85GuvR1qg85CgfISrBfEebquTx4CQ0gnnbvt2rj9dPmY5/F4C6BfFUPYYdAG3qsFMsgcjHdHl2DQhgNrwza5vLFQI2a3NKt01NQjlUldZ/n7lnYBaENNsW0CvSK/acGkafeQJZa2reGsy663ptBriLfwPe1KfuRPe/Tcg0bRN0431Jo8QKMw3Ko7ViZDbG/2bH05/vp90CgR6f4a7Trm7bNw2bGuFSFT8AiTky+Rx/DF/+K8voIT1EGJy03Goyjs80pHLTHqd7kflje7k3dsHjApqsNy+++I+DvDC+BqviLS1cGt0IJIf6fFdW17UIkI0DbbuzqiHnTuBI3Dr9/3ZdIifcQ1cCWG3c1Td+ufpIpgwThJ5pTpgb2h8sO+nE89+3SL1k86pAgPSR1vSR++t3+XptWZ0Sh7uDnMeIxlR3JM4yJRt1jEhp/j4lD40dJpT0D85WTdCwUNbWjvEU5MEYev3eFzPSpQ9lZvveTCIPOnf7eo0frBC4meWNb6zR+yneJwNSYsSs8VncU7fqn9yBDvG2h9kODI7Ksu+9JRNFLMU4EY967QjpEwZ07byahVNLgPSCpbsO/l2JvfmPbM7EFZ3kQa7WLuT1rVP4q7zhnfKY8PVwf6yVsa5COCVYnM9+S5MVFxBxrlW6R36t9Ok3im2zf2/rHTXUyAiTPCXWYBYbw1FVjHraGjQ5m0Nje4NFB5Jxpa2tlPIfVt1VubgN6YRPWNiH5urqXucbhDJQQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(136003)(376002)(366004)(346002)(396003)(39860400002)(451199015)(6506007)(478600001)(36756003)(86362001)(82960400001)(122000001)(38070700005)(38100700002)(6512007)(966005)(2616005)(186003)(26005)(83380400001)(6486002)(71200400001)(66946007)(8676002)(5660300002)(76116006)(64756008)(91956017)(8936002)(66446008)(66556008)(4326008)(66476007)(316002)(2906002)(41300700001)(6916009)(19627235002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MG94VUhQWG5HS1ZGUll5TVh5dEdIZkdjVFpSYVI2NVJBZWYwMHkydmtCclpZ?= =?utf-8?B?bFZpSWpwRVh6UlIrODJ5NVZEUXF1bTRsNmMvSklpMTFFVXpnRDhsNFVvWGhi?= =?utf-8?B?QzdpWThueWZwQ2haeVRjTndjZ3hQSGxFcEdnYTIrbU9CM0xwcmVzQlFpdHJv?= =?utf-8?B?SExNZzBWd2lTV1NneEdQUHMzZGdtK081UzdXS2RmdjJ6QWpGWEhtWGkyeVNS?= =?utf-8?B?clJDV1o4YUtqblRuak5DRGN6b2VZNnNzL2MzWVNVTS9jdWFDeE5hallXb2FT?= =?utf-8?B?OGxKT2puSnQ1bEVLNnFTc0RCNXB6ZzFaVGdjcDJXdE5sZTVNZXhDTWpEMVNH?= =?utf-8?B?TWhpK2VJRndxQUsyZ1RGRCtxVWg2Y01QWVNXMU02WDJCTlduYisrTEFsMFZQ?= =?utf-8?B?NFJuWXJtajZaVzF0amRYNmlnNHVEMEhQbkZLb20zN0tvRkhNV3FUc2RrYWhk?= =?utf-8?B?d1BKaHJyaGpnU2VJRVpzYmhYcXMyY0trRzNBZm0vUVVmRFBVYXhEVE00M0F2?= =?utf-8?B?cFNQTnd1TXFndVRHZU1LYkp3OEtUeU5SV1ZGdDZyOGdVVlphK243ZGlaaDQy?= =?utf-8?B?NjI5YkxZdWMraGJrT1JOZGJHaHB4dHpVYWhCYjhPTG1KVmVxeUVlUVZwTG9w?= =?utf-8?B?ZDQzZzVEYkNYYWF3REZ6Sk03M1VCZndhWWM5d1Irb2hyZlh0NlpzcmJvVEdU?= =?utf-8?B?anVrL1hJUUh5OHNWVW1ZdDR0YmVXanVkZHNiMkd5SjBqQnpGZnRvdHVKTEhP?= =?utf-8?B?ODRLUDlkaDN3SStJaDZLbStLUTVtNzRKd1VwbVpBM3gxdnl3TGd0cnIzaDdQ?= =?utf-8?B?emlsUXhxelZicmxGRFpoS3ZUK1BhM0lnTUhEdmFaWGFHK0M1UThURURjZXFC?= =?utf-8?B?VlpGM0ZxRnFZNWNxZ0R3TEVMN3JGUXNJeUdGNXFXaENjalcrYXU4WVZJQnl1?= =?utf-8?B?ZktUdlJwVUdWZDJYSDA4ZStGZWxVNms5QjU2T3JRZ3FuWVRZZVhCVDN4a0FJ?= =?utf-8?B?amJNcEdLaFc5MUp0NDBTN3VCUFhmVlphRHM1emVyRkw2UXFYLzdVZ29FU2E4?= =?utf-8?B?UzI4WUtWNHVqQjhYYVFPT0JMWElURVFWUXFlUzhFOERnZ2hMbHFOUUhoalNx?= =?utf-8?B?SXc0WnRiZy9qbzcwU0dTVUZPT0l2cGxnU2k3SCtwenIyc2dSQXBKcEExWTNu?= =?utf-8?B?SnBKQis1Q29Oc21RclJCaDVTRTMxRW5QelJMR3hTT0hTbE45VGNhd1cxSFJj?= =?utf-8?B?dTRMZDZ3RFdZa1YyWFZJU2oyRFNFTGtpNXR6NGxmRmVqZU5SOVA0SXJ5SGV2?= =?utf-8?B?anlVQTAyV0lNVzNGeUtqOENYZUVQQ21hcWJKdDdabWRXUkc1d2VIMlFCV1hW?= =?utf-8?B?SmlYaCtJeUlyZldQV2FRY2Q0K2tOcmowMEhMNXZiUGdCMG9GVHhkRGpOWkZn?= =?utf-8?B?S2M2enVRRFVyVWp2R3BxV1dxQXRlOWYzMzBJclhia3dxbUppRklrejhRNE1w?= =?utf-8?B?eEQ1N0RWcllzSE5PbDNQQWdseExxa2kwOFF1R3o2MVVsNEJSdmt2MjVnSm5o?= =?utf-8?B?emZUYWI1MmhuZzNnSmEydTBSSXd2R2xsVHF1R1VvTHRhb3hWYUVYUysvNGdG?= =?utf-8?B?Szl0RWRvZlVkV1NiK1FZRjI5UnRVSHkrSHViOVU5a2tLRVlWalNneHdhZXJG?= =?utf-8?B?a25jQTJCWU9VdWZZSDN4L2tBTWxTMjBaYlRFZnNJOTF1aXVGdmdWeWdyUWZH?= =?utf-8?B?a1ZzYWtYOFhxcWs4U1V4U3JmS1hVWXVlSmpZZEllUWVVaTB3SjY2WmtvZWpy?= =?utf-8?B?MWw1L2piaHJuTnV5ajBWWENoNjJjRitsNzV4V2hHRnl2VHA0blFSMzlDSkdn?= =?utf-8?B?UzB2VDY5MHZVUzgyVU5zM3VxSHE5YnJZUDc3akR2S3VYc3ZmbU9lbXF3aGFN?= =?utf-8?B?Wm53RDVyS1RiMHdRU3Rhc3dDenNkUDgwWFhFa25yV1ZwMW1hZWR6OXcwQUpG?= =?utf-8?B?RnkvZjdWTGJLRkh5bzd1U1lPK0xQWlltVVBSV0ZyZXZVbTJqYktFSmlEdlpy?= =?utf-8?B?RGMxTkd6L0g1ZUR5Sy91TGxNdzMwcWZOb2hQQjhYd3kxMnFXZk1aOHRTRmY3?= =?utf-8?B?V1BkVGpxNG9EaHVxSG5zaG8zckxkelAyQUxXS0Z6N1YrclZvbU5TcGVGZkRV?= =?utf-8?B?Z0E9PQ==?= Content-ID: <7A69D412577EE34094AFF6256BF8FDEB@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03d704ae-b76b-41bb-507d-08daeef95a19 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 08:46:35.2066 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: X+e7ADjn6KIxWA2FAPKoTzlRYBkr+OU3XpgTITTIB/OKGGVDUxDXKR2vf2NTeBSjb0Mzw5iVPkKvWbyvaB5W8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB4889 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI 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 Cc: "aman@tmm1.net" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On Ma, 2023-01-02 at 19:32 +0000, Aman Karmani wrote: > From: Aman Karmani > > Signed-off-by: Aman Karmani > --- > avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI > > Published-As: > https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-46%2Ftmm1%2Fvaapi-a53cc-v1 > Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging- > 46/tmm1/vaapi-a53cc-v1 > Pull-Request: https://github.com/ffstaging/FFmpeg/pull/46 > > libavcodec/vaapi_encode_h264.c | 27 ++++++++++++++++++++++++++- > libavcodec/vaapi_encode_h265.c | 27 ++++++++++++++++++++++++++- > 2 files changed, 52 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c > index b1b503b2a6..d22b38ab38 100644 > --- a/libavcodec/vaapi_encode_h264.c > +++ b/libavcodec/vaapi_encode_h264.c > @@ -26,6 +26,7 @@ > #include "libavutil/internal.h" > #include "libavutil/opt.h" > > +#include "atsc_a53.h" > #include "avcodec.h" > #include "cbs.h" > #include "cbs_h264.h" > @@ -40,6 +41,7 @@ enum { > SEI_TIMING = 0x01, > SEI_IDENTIFIER = 0x02, > SEI_RECOVERY_POINT = 0x04, > + SEI_A53_CC = 0x08, > }; > > // Random (version 4) ISO 11578 UUID. > @@ -98,6 +100,8 @@ typedef struct VAAPIEncodeH264Context { > H264RawSEIRecoveryPoint sei_recovery_point; > SEIRawUserDataUnregistered sei_identifier; > char *sei_identifier_string; > + SEIRawUserDataRegistered sei_a53cc; > + void *sei_a53cc_data; > > int aud_needed; > int sei_needed; > @@ -248,6 +252,13 @@ static int > vaapi_encode_h264_write_extra_header(AVCodecContext *avctx, > if (err < 0) > goto fail; > } > + if (priv->sei_needed & SEI_A53_CC) { > + err = ff_cbs_sei_add_message(priv->cbc, au, 1, > + SEI_TYPE_USER_DATA_REGISTERED_ITU_T_ > T35, > + &priv->sei_a53cc, NULL); > + if (err < 0) > + goto fail; > + } > > priv->sei_needed = 0; > > @@ -607,7 +618,8 @@ static int > vaapi_encode_h264_init_picture_params(AVCodecContext *avctx, > VAAPIEncodePicture *prev = pic->prev; > VAAPIEncodeH264Picture *hprev = prev ? prev->priv_data : NULL; > VAEncPictureParameterBufferH264 *vpic = pic->codec_picture_params; > - int i; > + int i, err; > + size_t sei_a53cc_len; > > if (pic->type == PICTURE_TYPE_IDR) { > av_assert0(pic->display_order == pic->encode_order); > @@ -681,6 +693,18 @@ static int > vaapi_encode_h264_init_picture_params(AVCodecContext *avctx, > priv->sei_needed |= SEI_RECOVERY_POINT; > } > > + av_freep(&priv->sei_a53cc_data); > + err = ff_alloc_a53_sei(pic->input_image, 0, &priv->sei_a53cc_data, > &sei_a53cc_len); > + if (err < 0) > + return err; > + if (priv->sei_a53cc_data != NULL) { > + priv->sei_a53cc.itu_t_t35_country_code = 181; > + priv->sei_a53cc.data = (uint8_t *)priv->sei_a53cc_data + 1; > + priv->sei_a53cc.data_length = sei_a53cc_len - 1; > + > + priv->sei_needed |= SEI_A53_CC; > + } > + > vpic->CurrPic = (VAPictureH264) { > .picture_id = pic->recon_surface, > .frame_idx = hpic->frame_num, > @@ -1226,6 +1250,7 @@ static av_cold int > vaapi_encode_h264_close(AVCodecContext *avctx) > ff_cbs_fragment_free(&priv->current_access_unit); > ff_cbs_close(&priv->cbc); > av_freep(&priv->sei_identifier_string); > + av_freep(&priv->sei_a53cc_data); > > return ff_vaapi_encode_close(avctx); > } > diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c > index 94b56c6578..3611bd6147 100644 > --- a/libavcodec/vaapi_encode_h265.c > +++ b/libavcodec/vaapi_encode_h265.c > @@ -27,6 +27,7 @@ > #include "libavutil/opt.h" > #include "libavutil/mastering_display_metadata.h" > > +#include "atsc_a53.h" > #include "avcodec.h" > #include "cbs.h" > #include "cbs_h265.h" > @@ -40,6 +41,7 @@ > enum { > SEI_MASTERING_DISPLAY = 0x08, > SEI_CONTENT_LIGHT_LEVEL = 0x10, > + SEI_A53_CC = 0x20, > }; > > typedef struct VAAPIEncodeH265Picture { > @@ -84,6 +86,8 @@ typedef struct VAAPIEncodeH265Context { > > SEIRawMasteringDisplayColourVolume sei_mastering_display; > SEIRawContentLightLevelInfo sei_content_light_level; > + SEIRawUserDataRegistered sei_a53cc; > + void *sei_a53cc_data; > > CodedBitstreamContext *cbc; > CodedBitstreamFragment current_access_unit; > @@ -226,6 +230,13 @@ static int > vaapi_encode_h265_write_extra_header(AVCodecContext *avctx, > if (err < 0) > goto fail; > } > + if (priv->sei_needed & SEI_A53_CC) { > + err = ff_cbs_sei_add_message(priv->cbc, au, 1, > + SEI_TYPE_USER_DATA_REGISTERED_ITU_T_ > T35, > + &priv->sei_a53cc, NULL); > + if (err < 0) > + goto fail; > + } > > priv->sei_needed = 0; > > @@ -759,7 +770,8 @@ static int > vaapi_encode_h265_init_picture_params(AVCodecContext *avctx, > VAAPIEncodePicture *prev = pic->prev; > VAAPIEncodeH265Picture *hprev = prev ? prev->priv_data : NULL; > VAEncPictureParameterBufferHEVC *vpic = pic->codec_picture_params; > - int i; > + int i, err; > + size_t sei_a53cc_len; > > if (pic->type == PICTURE_TYPE_IDR) { > av_assert0(pic->display_order == pic->encode_order); > @@ -888,6 +900,18 @@ static int > vaapi_encode_h265_init_picture_params(AVCodecContext *avctx, > } > } > > + av_freep(&priv->sei_a53cc_data); > + err = ff_alloc_a53_sei(pic->input_image, 0, &priv->sei_a53cc_data, > &sei_a53cc_len); > + if (err < 0) > + return err; > + if (priv->sei_a53cc_data != NULL) { > + priv->sei_a53cc.itu_t_t35_country_code = 181; > + priv->sei_a53cc.data = (uint8_t *)priv->sei_a53cc_data + 1; > + priv->sei_a53cc.data_length = sei_a53cc_len - 1; > + > + priv->sei_needed |= SEI_A53_CC; > + } > + > vpic->decoded_curr_pic = (VAPictureHEVC) { > .picture_id = pic->recon_surface, > .pic_order_cnt = hpic->pic_order_cnt, > @@ -1355,6 +1379,7 @@ static av_cold int > vaapi_encode_h265_close(AVCodecContext *avctx) > > ff_cbs_fragment_free(&priv->current_access_unit); > ff_cbs_close(&priv->cbc); > + av_freep(&priv->sei_a53cc_data); > > return ff_vaapi_encode_close(avctx); > } May we use sei option to control whether a53 CC data is inserted into the coded stream ? The default value of sei can be changed to SEI_IDENTIFIER | SEI_TIMING | SEI_RECOVERY_POINT | SEI_A53_CC for h264 and SEI_MASTERING_DISPLAY | SEI_CONTENT_LIGHT_LEVEL | SEI_A53_CC for h265. Thanks Haihao > > base-commit: 3bcec58535d395945a390bdc7af4048a7abc60eb _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".