From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 0F50A4E243
	for <ffmpegdev@gitmailbox.com>; 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 <ffmpeg-devel@ffmpeg.org>; 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: <AS8P250MB07446D772D0C8628157692DB8FD62@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM>
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 <andreas.rheinhardt@outlook.com>
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 <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/AS8P250MB07446D772D0C8628157692DB8FD62@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

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".