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 E81F7476F1 for ; Fri, 20 Oct 2023 14:34:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1BD5D68C159; Fri, 20 Oct 2023 17:34:07 +0300 (EEST) Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8FD4F68C159 for ; Fri, 20 Oct 2023 17:34:00 +0300 (EEST) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 58AAC240498 for ; Fri, 20 Oct 2023 16:34:00 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id BXtgJrNobqim for ; Fri, 20 Oct 2023 16:33:59 +0200 (CEST) Received: from lain.khirnov.net (lain.khirnov.net [IPv6:2001:67c:1138:4306::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "lain.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 9C5532400FF for ; Fri, 20 Oct 2023 16:33:59 +0200 (CEST) Received: by lain.khirnov.net (Postfix, from userid 1000) id 89DB91601B9; Fri, 20 Oct 2023 16:33:59 +0200 (CEST) From: Anton Khirnov To: FFmpeg development discussions and patches In-Reply-To: References: <20230501114456.13898-1-epirat07@gmail.com> <20230625104907.53071-1-epirat07@gmail.com> <7D4C10CB-A3F9-4ECD-916B-417F3F538913@gmail.com> <169778989751.30698.15022276759252509666@lain.khirnov.net> Mail-Followup-To: FFmpeg development discussions and patches Date: Fri, 20 Oct 2023 16:33:59 +0200 Message-ID: <169781243953.23937.14914348831533735500@lain.khirnov.net> User-Agent: alot/0.8.1 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH v2 1/3] avutil/dict: add av_dict_pop 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: Quoting Andreas Rheinhardt (2023-10-20 16:00:45) > Anton Khirnov: > > Quoting Andreas Rheinhardt (2023-07-03 20:02:25) > >> Marvin Scholz: > >>> I honestly can't think of a sensible API design for this, > >>> if you have any idea feel free to share. > >>> > >> > >> The only way I can think of that allows this is for the user to pass a > >> pointer to a (const) AVDictionaryEntry, namely the entry that the user > >> wishes to pop. This is of course cumbersome, because it would be two > >> function calls. > > > > We could start guaranteeing that entries with the same key are always > > returned in insertion order. Now that I think of it there's some code in > > ffmpeg CLI that relies on that. > > > > IIRC this is not true correctly, because removing an entry changes the > order of the remaining entries (we don't memmove the remaining entries > into the new position; instead we move the last entry to the now vacant > slot). I am aware - that code is strictly speaking incorrect. It happens to work because nothing ever gets removed from the option dicts. We could consider changing the internal representation somehow, so that all values for a key are grouped together. -- Anton Khirnov _______________________________________________ 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".