From: Andrew Sayers <ffmpeg-devel@pileofstuff.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] lavu/opt: Mention that AVOptions is not reentrant Date: Thu, 6 Jun 2024 09:29:24 +0100 Message-ID: <ZmFzY9RxbuEHhu9V@andrews-2024-laptop.sayers> (raw) In-Reply-To: <20240605231748.GM2821752@pb2> On Thu, Jun 06, 2024 at 01:17:48AM +0200, Michael Niedermayer wrote: [...] > AVOption simply provides light weight access to the struct fields. > Calling AVOption non re-entrant in modifying a field you arent even allowed > to modify from 2 threads is confusing I think you're saying there's already a rule about modifying AVOptions from 2 threads. Could you explain that in more detail? > If you want to modify a field from 2 threads that field could be some sort > of atomic type. This can then easily be added to AVOption Doing that for a single option would involve publicly guaranteeing its representation for at least one major version. At that point, you might as well just tell people to access it as a member of a public struct. To be clear - this isn't a programming problem, it's a design problem. The interface currently allows external developers to assume something will always work when it's actually just something that could be supported some day. Writing up the current behaviour as a guarantee lets them avoid writing code that will generate hard-to-reproduce bugs, at the cost of making it slightly harder for us to do something we've never needed to do in the past. _______________________________________________ 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".
next prev parent reply other threads:[~2024-06-06 8:29 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-06-05 13:18 Andrew Sayers 2024-06-05 13:34 ` Paul B Mahol 2024-06-05 13:43 ` Andrew Sayers 2024-06-05 13:46 ` Ronald S. Bultje 2024-06-05 14:22 ` Andrew Sayers 2024-06-05 23:17 ` Michael Niedermayer 2024-06-06 8:29 ` Andrew Sayers [this message] 2024-06-06 14:24 ` Michael Niedermayer 2024-06-06 15:16 ` Andrew Sayers 2024-06-06 15:21 ` Andreas Rheinhardt 2024-06-06 15:43 ` Andrew Sayers 2024-06-05 13:50 ` Paul B Mahol 2024-06-06 16:02 ` [FFmpeg-devel] [PATCH v2] lavu/opt: Discuss AV_OPT_FLAG_RUNTIME_PARAM more explicitly Andrew Sayers 2024-06-16 16:04 ` Stefano Sabatini 2024-06-16 17:08 ` [FFmpeg-devel] [PATCH v3 0/3] s/RUNTIME/POST_INIT_SETTABLE/ Andrew Sayers 2024-06-16 17:08 ` [FFmpeg-devel] [PATCH v3 1/3] lavu/opt: Rename AV_OPT_FLAG_RUNTIME_PARAM to ...POST_INIT_SETTABLE_PARAM Andrew Sayers 2024-07-01 22:33 ` Stefano Sabatini 2024-07-02 3:58 ` Zhao Zhili 2024-07-06 9:47 ` Stefano Sabatini 2024-07-02 9:08 ` [FFmpeg-devel] [PATCH v4 0/3] s/RUNTIME/POST_INIT_SETTABLE/ Andrew Sayers 2024-07-02 9:08 ` [FFmpeg-devel] [PATCH v4 1/3] lavu/opt: Rename AV_OPT_FLAG_RUNTIME_PARAM to ...POST_INIT_SETTABLE_PARAM Andrew Sayers 2024-07-02 9:49 ` Anton Khirnov 2024-07-06 9:50 ` Stefano Sabatini 2024-07-02 9:08 ` [FFmpeg-devel] [PATCH v4 2/3] lavu/opt: Mention AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM in more places Andrew Sayers 2024-07-02 9:52 ` Anton Khirnov 2024-07-02 10:13 ` Andrew Sayers 2024-07-02 10:16 ` Anton Khirnov 2024-07-02 10:49 ` Andrew Sayers 2024-07-02 9:08 ` [FFmpeg-devel] [PATCH v4 3/3] all: s/AV_OPT_FLAG_RUNTIME_PARAM/AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM/g Andrew Sayers 2024-07-06 9:37 ` [FFmpeg-devel] [PATCH v4 0/3] s/RUNTIME/POST_INIT_SETTABLE/ Stefano Sabatini 2024-07-06 10:40 ` Paul B Mahol 2024-07-06 16:49 ` Michael Niedermayer 2024-07-06 18:03 ` Andrew Sayers 2024-07-06 10:41 ` Andrew Sayers 2024-06-16 17:08 ` [FFmpeg-devel] [PATCH v3 2/3] lavu/opt: Mention AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM in more places Andrew Sayers 2024-06-16 17:08 ` [FFmpeg-devel] [PATCH v3 3/3] all: s/AV_OPT_FLAG_RUNTIME_PARAM/AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM/g Andrew Sayers 2024-06-16 17:22 ` [FFmpeg-devel] [PATCH v3 0/3] s/RUNTIME/POST_INIT_SETTABLE/ Paul B Mahol 2024-07-01 22:26 ` Stefano Sabatini
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=ZmFzY9RxbuEHhu9V@andrews-2024-laptop.sayers \ --to=ffmpeg-devel@pileofstuff.org \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git