From: Andrew Sayers <ffmpeg-devel@pileofstuff.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH v4 4/4] lavf: Add documentation for private "Context" classes
Date: Wed, 22 May 2024 15:47:50 +0100
Message-ID: <Zk4FlmSgNmuyKi6f@andrews-2024-laptop.sayers> (raw)
In-Reply-To: <Zk3EHWGlTy+OOnwJ@mariano>
On Wed, May 22, 2024 at 12:08:29PM +0200, Stefano Sabatini wrote:
> On date Wednesday 2024-05-15 16:54:22 +0100, Andrew Sayers wrote:
> > Doxygen thinks any text like "Context for foo" is a link to a struct called "Context".
> > Add a description and a better link, to avoid confusing readers.
> > ---
> > libavformat/async.c | 3 +++
> > libavformat/cache.c | 3 +++
> > 2 files changed, 6 insertions(+)
> >
> > diff --git a/libavformat/async.c b/libavformat/async.c
> > index e096b0bc6f..3c28d418ae 100644
> > --- a/libavformat/async.c
> > +++ b/libavformat/async.c
> > @@ -53,6 +53,9 @@ typedef struct RingBuffer
> > int read_pos;
> > } RingBuffer;
> >
> > +/**
> > + * @brief @ref md_doc_2context "Context" for testing async
> > + */
> > typedef struct Context {
> > AVClass *class;
> > URLContext *inner;
> > diff --git a/libavformat/cache.c b/libavformat/cache.c
> > index 5f78adba9d..3cc0edec82 100644
> > --- a/libavformat/cache.c
> > +++ b/libavformat/cache.c
> > @@ -52,6 +52,9 @@ typedef struct CacheEntry {
> > int size;
> > } CacheEntry;
> >
> > +/**
> > + * @brief @ref md_doc_2context "Context" for a cache
> > + */
> > typedef struct Context {
> > AVClass *class;
> > int fd;
>
> Not sure, these are private structs and we enforce no use of internal
> markup for those, and we can assume internals developers are already
> acquainted with contexts and such so this is probably adding no value.
Ah, yeah the use case isn't obvious if you haven't tripped over it...
Imagine you're a new user trying to learn FFmpeg, and you find yourself at
https://ffmpeg.org/doxygen/trunk/structAVAudioFifo.html - the first word
appears to be a link for this "context" thing you've been hearing about[1],
so you drop what you're doing to investigate. It links you to a struct that
looks promisingly general, but eventually turns out to be some random internal
struct with a misleading name. Now you've wasted a bunch of time and forgotten
what you were doing.
The other patch fixes the examples I've found in the code, but doxygen links
all instances of the word "Context" to this struct, confusing newbies. This
patch ensures that when future developers say "Context" in a comment, the page
doxygen links them to will point them in the right direction.
I had previously assumed it was a deliberate decision to include private files
in the documentation, so I didn't look that carefully into workarounds that
would break links to these private structures. But you've implied elsewhere
that's not the case, so is it worth looking into solutions that made "Context"
link to the context document, at the cost of making it impossible to link to
these private structs at all?
[1] to be clear, this is the current behaviour of the page on the live site
_______________________________________________
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-05-22 14:48 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-18 15:06 [FFmpeg-devel] [PATCH 1/3] doc: Explain what "context" means Andrew Sayers
2024-04-18 15:06 ` [FFmpeg-devel] [PATCH 2/3] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-04-18 15:06 ` [FFmpeg-devel] [PATCH 3/3] all: Link to "context" from all contexts with documentation Andrew Sayers
2024-04-20 7:25 ` [FFmpeg-devel] [PATCH 1/3] doc: Explain what "context" means Stefano Sabatini
2024-04-20 12:18 ` Andrew Sayers
2024-04-20 16:13 ` Stefano Sabatini
2024-04-20 12:19 ` [FFmpeg-devel] [PATCH v2 " Andrew Sayers
2024-04-20 12:19 ` [FFmpeg-devel] [PATCH v2 2/3] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-04-20 12:19 ` [FFmpeg-devel] [PATCH v2 3/3] all: Link to "context" from all contexts with documentation Andrew Sayers
2024-04-20 16:48 ` [FFmpeg-devel] [PATCH v2 1/3] doc: Explain what "context" means Stefano Sabatini
2024-04-20 22:17 ` Andrew Sayers
2024-04-22 8:02 ` Stefano Sabatini
2024-04-22 15:56 ` [FFmpeg-devel] [PATCH v3 0/3] all: Link to "context" from all contexts with documentation Andrew Sayers
2024-04-22 15:56 ` [FFmpeg-devel] [PATCH v3 1/3] doc: Explain what "context" means Andrew Sayers
2024-04-22 17:05 ` Stefano Sabatini
2024-04-29 9:10 ` Andrew Sayers
2024-05-02 10:03 ` Andrew Sayers
2024-05-05 7:29 ` Stefano Sabatini
2024-05-05 21:04 ` Andrew Sayers
2024-05-22 10:37 ` Stefano Sabatini
2024-05-22 12:47 ` Andrew Sayers
2024-05-25 9:00 ` Stefano Sabatini
2024-04-29 9:24 ` [FFmpeg-devel] [PATCH v4 1/4] " Andrew Sayers
2024-04-29 9:24 ` [FFmpeg-devel] [PATCH v4 2/4] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-04-29 9:24 ` [FFmpeg-devel] [PATCH v4 3/4] all: Link to "context" from all contexts with documentation Andrew Sayers
2024-05-02 11:01 ` Lynne
2024-05-02 11:14 ` Andrew Sayers
2024-05-02 13:00 ` Zhao Zhili
2024-05-02 13:27 ` Andrew Sayers
2024-05-02 13:39 ` Zhao Zhili
2024-04-29 9:24 ` [FFmpeg-devel] [PATCH v4 4/4] lavf: Add documentation for private "Context" classes Andrew Sayers
2024-05-05 8:31 ` [FFmpeg-devel] [PATCH v4 1/4] doc: Explain what "context" means Andreas Rheinhardt
2024-05-05 10:34 ` Andrew Sayers
2024-04-22 15:56 ` [FFmpeg-devel] [PATCH v3 2/3] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-04-22 15:56 ` [FFmpeg-devel] [PATCH v3 3/3] all: Link to "context" from all contexts with documentation Andrew Sayers
2024-05-15 15:54 ` [FFmpeg-devel] [PATCH v4 0/4] Explain what "context" means Andrew Sayers
2024-05-15 15:54 ` [FFmpeg-devel] [PATCH v4 1/4] doc: " Andrew Sayers
2024-05-22 9:31 ` Stefano Sabatini
2024-05-22 16:07 ` Andrew Sayers
2024-05-25 9:49 ` Stefano Sabatini
2024-05-26 12:06 ` Andrew Sayers
2024-05-28 17:24 ` Stefano Sabatini
2024-05-29 10:10 ` Andrew Sayers
2024-05-29 10:50 ` Andrew Sayers
2024-05-29 11:06 ` Paul B Mahol
2024-05-29 14:18 ` Andrew Sayers
2024-05-29 16:06 ` Stefano Sabatini
2024-05-23 20:00 ` [FFmpeg-devel] [PATCH v5 0/4] " Andrew Sayers
2024-05-23 20:00 ` [FFmpeg-devel] [PATCH v5 1/4] doc: " Andrew Sayers
2024-05-25 11:00 ` Stefano Sabatini
2024-05-23 20:00 ` [FFmpeg-devel] [PATCH v5 2/4] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-05-25 9:57 ` Stefano Sabatini
2024-05-23 20:00 ` [FFmpeg-devel] [PATCH v5 3/4] all: Link to "context" from all public contexts with documentation Andrew Sayers
2024-05-23 20:00 ` [FFmpeg-devel] [PATCH v5 4/4] all: Rewrite documentation for contexts Andrew Sayers
2024-05-24 1:50 ` [FFmpeg-devel] [PATCH v5 0/4] Explain what "context" means Michael Niedermayer
2024-05-24 9:43 ` Andrew Sayers
2024-05-15 15:54 ` [FFmpeg-devel] [PATCH v4 2/4] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-05-22 10:04 ` Stefano Sabatini
2024-05-15 15:54 ` [FFmpeg-devel] [PATCH v4 3/4] all: Link to "context" from all contexts with documentation Andrew Sayers
2024-05-15 16:46 ` Lynne via ffmpeg-devel
2024-05-16 11:25 ` Andrew Sayers
2024-05-15 15:54 ` [FFmpeg-devel] [PATCH v4 4/4] lavf: Add documentation for private "Context" classes Andrew Sayers
2024-05-22 10:08 ` Stefano Sabatini
2024-05-22 14:47 ` Andrew Sayers [this message]
2024-05-22 15:24 ` Andreas Rheinhardt
2024-05-22 16:54 ` Andrew Sayers
2024-06-04 14:47 ` [FFmpeg-devel] [PATCH v6 0/4] doc: Explain what "context" means Andrew Sayers
2024-06-04 14:47 ` [FFmpeg-devel] [PATCH v6 1/4] " Andrew Sayers
2024-06-05 8:15 ` Anton Khirnov
2024-06-12 20:52 ` Stefano Sabatini
2024-06-13 14:20 ` Andrew Sayers
2024-06-15 9:17 ` Stefano Sabatini
2024-06-16 18:02 ` [FFmpeg-devel] Development process for explaining contexts (was Re: [PATCH v6 1/4] doc: Explain what "context" means) Andrew Sayers
2024-06-16 21:20 ` Paul B Mahol
2024-07-01 22:16 ` Stefano Sabatini
2024-07-02 9:56 ` Andrew Sayers
2024-07-06 11:33 ` Stefano Sabatini
2024-06-04 14:47 ` [FFmpeg-devel] [PATCH v6 2/4] lavu: Clarify relationship between AVClass, AVOption and context Andrew Sayers
2024-06-05 10:34 ` Stefano Sabatini
2024-06-05 12:46 ` Andrew Sayers
2024-06-04 14:47 ` [FFmpeg-devel] [PATCH v6 3/4] all: Link to "context" from all public contexts with documentation Andrew Sayers
2024-06-05 8:12 ` Anton Khirnov
2024-06-05 12:51 ` Andrew Sayers
2024-06-04 14:47 ` [FFmpeg-devel] [PATCH v6 4/4] all: Rewrite documentation for contexts Andrew Sayers
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=Zk4FlmSgNmuyKi6f@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