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 ESMTPS id 0F50A4E243 for ; Mon, 10 Mar 2025 07:13:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2424168E471; Mon, 10 Mar 2025 09:13:49 +0200 (EET) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02olkn2015.outbound.protection.outlook.com [40.92.48.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BA1D268E428 for ; Mon, 10 Mar 2025 09:13:42 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fkL9H4hNOFRfhtROZVzTCqYiO4PP4U5+wNDEGhFXf5ePxXcUxpt2ASKDsypXIMoga2JRmXbvEGxCt8dh+B7lR0CuDbzexTG9F5tih3L1qOhhB8gAs25mqU9Ad0DoPAmibh3gdpv2vdq3BvM7qc39RqaNC5H7Y/TxhY8R+k+0rTqM9kIOpsqasyKaVQli270llhlbe5lyrBthJXTPaVjHcP9CLe8Ql5r8B2AkTajctHMu5auNDfolLxT9IOysM1uPpinBXLEb7cZE/sk+nqC9RIkhsFmJUf2zWpubzdowCrqv2/fLcQ881t79tbFVoZX6H2Dy5icfVCkm7ZiYk8Cvig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=S0ure6QFvtgPNAnwDq0zP9W42hps2i2ku2yRH9ZoBWA=; b=jVAIFsHvq9OjCpOt89305TUDytxBSXqqJALP6NumooyGQTggAzkQrbtz+m39qycvKeQcpVXMwIBI9CxAewe9Va1vTNaV7RU+HwXrVvVdyYM6el3W0/VogLCH8WWwNHHScjjARElOVgj9tfUB0pIbysD9xf7GCB2vzIUvIKz9ElWb9tq1HpgucWSfb9Q+oj/iac8FLoB/1qq06GnG3z98a5J5WWbPK3qDqApA9m0/a1ZIazjVB6EFHPzPGYMcQZTf3Vyp/ymZrAXOFzs4qkXcTVgmsclSNssORZgn6Bzg9BS+mdxCWA57SWJXZjjksAP78dXTPFSqh+WyZaf7CNct2Q== 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=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S0ure6QFvtgPNAnwDq0zP9W42hps2i2ku2yRH9ZoBWA=; b=U5RRR/OSD9/Sp2ZWqh8c7w7iNSDv9l7NKs3mJh1FBq6IHOQr7LJL+lmKHzAdODmn/TGTcePUTavzHhNpYR1bN+LwerZRBSYVa7Wf+mj5ckPGiC+r+nbsfmuDIUl3MYMiFLS1RS+Cgh+c15HZSGwMckW+8hSNuUQaj8LCbxpkILLmmgWAMGuikm0bKiEjpXrNHvwz3qnwRElHqSHq90aWiNivOcG++1B6zDQf8yb+mDVUXIdiQmIFnEQIpwEt82rOcZB1v2eyENsxGdELlxD+Pz/fkkP4pVkgY47o35lKYTtvcSEGplkcbAtYmMkUXrYAv9LU9HQQgbQnjaPfdfL6pA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0383.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:2b6::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20; Mon, 10 Mar 2025 07:13:41 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%5]) with mapi id 15.20.8534.018; Mon, 10 Mar 2025 07:13:41 +0000 Message-ID: Date: Mon, 10 Mar 2025 08:13:39 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250225220121.98449-1-romain.beauxis@gmail.com> <20250225220121.98449-2-romain.beauxis@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250225220121.98449-2-romain.beauxis@gmail.com> X-ClientProxiedBy: ZR0P278CA0007.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::17) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <00138722-110d-443c-82c4-e059bc38d2e1@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0383:EE_ X-MS-Office365-Filtering-Correlation-Id: 30b7f3b2-40d5-4e47-9814-08dd5fa315ca X-Microsoft-Antispam: BCL:0; ARA:14566002|15080799006|7092599003|5072599009|461199028|6090799003|8060799006|19110799003|3412199025|440099028|41001999003|12071999003|12091999003|20061999003|21061999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c0lPenVzNEJWYUYxRXB1ZC9rTTRzZURwOXpVcmNUenZ4aFZCZWdOZ0VjR1E0?= =?utf-8?B?c3FuVjhTck1tamMvNEUxWGEvcHJYUDNYV0c5bkVOTlNBRGdTakxXQ1EvWUky?= =?utf-8?B?cHpSak1RU0NGVkUxWjRteEpFUWRucFQwWkJzOElubWNaN1pidmt2RTZJOUZq?= =?utf-8?B?bVhYUDFoN3NNL0hBRlBkLzdDNllrWGFya2d2Y2plZTNPYm0vUXU1WVNCSHp0?= =?utf-8?B?Unl5aEVseUd3d2hLMnVjS1Bicm9YYUNxdkJ0dWF0NmVkeUJvdU96c1U2RUZi?= =?utf-8?B?RE9hTHVMd2N5cmR1M1kvUTBPSDhrMVNyT010NUcwYkN2RVh6ayt4UE1MZVlZ?= =?utf-8?B?Uml1b3RzajduSVlnbmZhL3NnZkhRNGdQaDBOTHdxaVlTM3ZYeE5nMXlEYmtv?= =?utf-8?B?LzR0SHZDbWNQN1N1a2MxK01Pc1lCNHlCMGlWT3VybWNRSzRsZlo5S2FWNDZk?= =?utf-8?B?THBCL0NHcVU2dnJVMW5PZEtZajBSRXlpd213RWxtbTRsSms2bGYyL2JMSWI4?= =?utf-8?B?aTdLWHR0NXFMcFl6dzJRU3RoWDRtRlkxODdZZmNxYzRLTEhjYnpTRTJqS1kz?= =?utf-8?B?M1o5a0QyYlBOZEVueDFvaGJZM09LVFVMbFJQaFNMRUlmZm9TeGVBU1M0QVR3?= =?utf-8?B?VzRHQ3JmNS9BUlFhTjlvVWpkakRiYzF0MFhuYnVLWlJld0p5N2xLcDdNQmJj?= =?utf-8?B?MUgxeUtqU3I4VXRERE0raHlCcFR6emVCR0tISk1LNmlISVZQNW53V29uTHkw?= =?utf-8?B?SW5icFVteVhNcGlxZnQrdjZBUm0zRjMyWTVxRHhPeEdkblh5OFFNR01GY0E3?= =?utf-8?B?MFJYQTdzR0J6akU3WEpJY0hrN3dodm5WR2N0ODRUYTFEQ3h2Y2RxVUpQdVZE?= =?utf-8?B?QVF4dlhaNDR4ZFRyMFJtZkJNNFN1SGcvVFZ5RGJKeUVhTXd4VHZ4WEZpSjlP?= =?utf-8?B?WnpPYTllOE51Zm9xNGpXakx0RzF1ODhsaVIwTVR0YzBRbHJ6M2poOXRvQ0c4?= =?utf-8?B?cisyWnFrQ0x4WHhJRmNsLzJVdWlnSE92LzF2aGp6S1VVOHluZjFmeFpRek5k?= =?utf-8?B?WVltUXQ1NGQxS1haTnJJN0pSVmttb2Q2WXlMbXlDWXcwR1hQRENHeWRvNDVF?= =?utf-8?B?RGR4cmRGajlnOVF4ajB5VDVsZ01hTWlWckEvMFVMOXJFakVrb2ZQQTJoa3R2?= =?utf-8?B?S3g2K3JUUFZVMXd6U044R0pvWkN3QVhEZE9Jc2wydEdVOVZGRDFjeHg1a01a?= =?utf-8?B?Q1MzMkhLeTNQc2FhTG1RYkN4N1VKNWJ3ZkF2M0F6RkdxK0FyWnlpRXBJK2dD?= =?utf-8?B?aG8vMFIvWmZpNWo0Y1lFMFdoVmlWb2xzMkxrUTNrbnhlQ2VEQ1lpeSs1M3R5?= =?utf-8?B?bDU2MllDYjExM2NUVjN6bEZmaEQxdDlXL25OVzlrVjNXelRFVGwwSU5UZk5P?= =?utf-8?B?SkF4K0ZSY2ttekZZVWlkKzhaaUxRWXBVK0dGVGVkdnI0UVI1SmNRSFNkZnZ6?= =?utf-8?B?eVRsMEMrT0pUK3FBdFp5dExsY0lVMFBwbnV6eUo1QTM5bXc1TG50TzFpL0tu?= =?utf-8?B?a2Mxd3ZrMUsvdnFoMW5KK3VjKzZZY0pVR1lCYU5oTGhSczFHcGdmb25CTmsr?= =?utf-8?B?a2xOTHZWUFo1dmxiMU5meWIwVTFtK0ZyRTF0L1VQaS8vRTJtZkg2OEQxNkVW?= =?utf-8?B?TjV2QjBwQ2dINU4xT3hITVpPZlExYTJZQUY0WHBtRFhnNGtnZTRnSFJ3PT0=?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a2pYd0kxNlZyTHdzaTY3RkpmSGhnWUd2aXMvRWdYbVRMcTBnaklCQnB2Rjk5?= =?utf-8?B?YSt3SWxKZCs4VlZSV0JoZVJIZGZUZDdOTFFSKy9yNVZ0eXZyYlJ3bDZvVnFk?= =?utf-8?B?NVBWOW15L25hRGllZTRFSVRHTC9DR3VuWVkveVBNYUtESjBVMCszaGw3T2x2?= =?utf-8?B?dFIyQ3YxQ0dNby9UMWpzWG8venZwZW5zRDhSMGpTeUU2UHZmZWN5aTJMcms3?= =?utf-8?B?UHZON1ZzMEF6Mk0zeDVUU0ZYY3dFWVYyMG1oSlR0UDd1cEtFUThSekxkcUE4?= =?utf-8?B?UC9pK2doa29rUjVzdFE5RUlIUFhrR1ZtemQ4eHhyZGsveU43NlQ0RUJDb054?= =?utf-8?B?d3NrdWdiY0gwaUFYQzJmKy9TNFI1MGt2Mm5CaGdTNENZWjdYaDhKcXROTWhU?= =?utf-8?B?OWlwNkdrRUNmc1QzWWsyVUhYRDg0NzZSaEhrSmVkRmltb3QrTkErYnFJQ0dv?= =?utf-8?B?VjFjZlRhVUp1N1lwU2NpamJHUllobHpJY3lzMFJjVGNXVnhKdzRvN0NLeEF4?= =?utf-8?B?aWZuN3RrK3pNNlhONUFVb2xONms4R2JWcVIvOWVuWTJFLzdObm9TQ1ZoMWRB?= =?utf-8?B?bHZ0UjExOXovWlBnTUdOSFhGZURIRzhKNFZVK3lNV0ZUVnJsbHIydjRoTnBK?= =?utf-8?B?NjNLUjFOQkxQVXMyWGJDKzV6cTVzd3hqVmNWM1hMTkhoV3IzQjdvUlp0Ujdr?= =?utf-8?B?RENBN0owa1d5YklqNVc3Z3Z6Q2VUbTgrTGxPM0JvZ1FBS21SQzhBWktGL0RD?= =?utf-8?B?ak5WV2kySFRWSU1xU1JqeXY5WG1wWTJuc0xZYWZOQU1oNDgyNEJyL0p3YnFl?= =?utf-8?B?S0FJQ1I5TzZvbHpCSVVPTUhSKzZoSGhDMyt1UU1yV0hxVEZqRnRNRWQ5ZXlX?= =?utf-8?B?QTdudnNXVERpOTltS0pzUWpROEtsR29PLy83UEFSUzVTa1RlNmMyUk1hWkhn?= =?utf-8?B?UCtIeGlTUkJLT0pqWVRCK0FEaFdJejZoOG1GbUViaHB3alpFLzVQOFJZUzRw?= =?utf-8?B?QXZ2amZESVAyNkpMZ05GYXdOUUFhMno3S3lEVkdlN1RBaTl4ZXVCUnVUYlhl?= =?utf-8?B?WlI5UVRTOFhhL04zdzdhamtReG5PM1p1VTEraHRuMHB1SkNLZG9hTmVwWDV6?= =?utf-8?B?VExJM1R1VndDOERnNTNtSVZjT21ETGxtSzZvanY3OVhOTm9DYUNOcVdPZnhI?= =?utf-8?B?NFpyRUZ4UVAxQTVKVThBOW5rSjVLOEY0L1JBWm1MNlk2RkE0ejhKdWdjWG9T?= =?utf-8?B?ekU5cURXc0w2UzF0aVVUNjBoRFZ4UTVaRzNoYzJXRjcwZmJDdWRDM0xwQlI3?= =?utf-8?B?c2JybGxpTjZTeURiZjhtZmFJdHc0a3k4aGZTY2lMRURGWk9KeHp0SVVaRW1O?= =?utf-8?B?eTR2c05OdWoyaTgvODdxUWVZcEE5aE9PREtCcHVHR3o1UWNCaURUMEl6NkIy?= =?utf-8?B?MFMrclU2UkQyVnNmZ1ZxYXE3eGNCQWltSVhVaEZRVmxPTnIyRTBkbkV1a2Zp?= =?utf-8?B?OGUrUURBM0c4dC9pRUMzODZPTEcrZDJkN3hFb3diWGVGN0NtWTRMVkhPekN6?= =?utf-8?B?alJURU00cWxkOUNXRXorbm55dmdieDlhOGp6b1dYb1BxMCs5ODFsZ0pwczg2?= =?utf-8?B?WlFQVmQweG55Z1V1VTJLTStEK0Q1T05hZmZoM3BmM0taNnVFRUNhM2RkVHA3?= =?utf-8?B?Zys0ZGdFeXFyWjVCQ3BVc2JYc0FBYWJ4RFFMMlk3RWlRRnBrQk5LTW1nPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30b7f3b2-40d5-4e47-9814-08dd5fa315ca X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 07:13:41.1965 (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: DU2P250MB0383 Subject: Re: [FFmpeg-devel] [PATCH v7 1/8] Add generic metadata injection using AV_PKT_DATA_METADATA_UPDATE 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 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: Romain Beauxis: > libavcodec/decode.c: intercept `AV_PKT_DATA_METADATA_UPDATE` packet > extra data, attach them to the next decoded frame. > > --- > libavcodec/decode.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/libavcodec/decode.c b/libavcodec/decode.c > index cac7e620d2..96e2f0ce95 100644 > --- a/libavcodec/decode.c > +++ b/libavcodec/decode.c > @@ -97,6 +97,8 @@ typedef struct DecodeContext { > int lcevc_frame; > int width; > int height; > + > + AVDictionary *pending_metadata; > } DecodeContext; > > static DecodeContext *decode_ctx(AVCodecInternal *avci) > @@ -729,6 +731,8 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke > { > AVCodecInternal *avci = avctx->internal; > DecodeContext *dc = decode_ctx(avci); > + const uint8_t *side_metadata; > + size_t size; > int ret; > > if (!avcodec_is_open(avctx) || !av_codec_is_decoder(avctx->codec)) > @@ -746,6 +750,14 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke > ret = av_packet_ref(avci->buffer_pkt, avpkt); > if (ret < 0) > return ret; > + > + side_metadata = av_packet_get_side_data(avpkt, AV_PKT_DATA_METADATA_UPDATE, &size); > + if (side_metadata) { > + av_dict_free(&dc->pending_metadata); > + ret = av_packet_unpack_dictionary(side_metadata, size, &dc->pending_metadata); > + if (ret < 0) > + return ret; > + } > } else > dc->draining_started = 1; > > @@ -815,6 +827,7 @@ fail: > int ff_decode_receive_frame(AVCodecContext *avctx, AVFrame *frame) > { > AVCodecInternal *avci = avctx->internal; > + DecodeContext *dc = decode_ctx(avci); > int ret; > > if (!avcodec_is_open(avctx) || !av_codec_is_decoder(avctx->codec)) > @@ -887,6 +900,12 @@ int ff_decode_receive_frame(AVCodecContext *avctx, AVFrame *frame) > } > } > #endif > + > + if (dc->pending_metadata) { > + av_dict_copy(&frame->metadata, dc->pending_metadata, AV_DICT_APPEND); > + av_dict_free(&dc->pending_metadata); > + } > + > return 0; > fail: > av_frame_unref(frame); > @@ -2314,4 +2333,5 @@ void ff_decode_internal_uninit(AVCodecContext *avctx) > DecodeContext *dc = decode_ctx(avci); > > av_refstruct_unref(&dc->lcevc); > + av_dict_free(&dc->pending_metadata); > } Why is this not in ff_decode_frame_props_from_pkt() (in add_metadata_from_side_data())? - Andreas _______________________________________________ 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".