From: "Jan Ekström" <jeebjp@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH v0 09/14] avcodec: add private side data set to AVCodecInternal
Date: Fri, 24 Mar 2023 19:34:28 +0200
Message-ID: <CAEu79SaD=bOuOko6pgkrODUMeh5PP-Vjo51BGQx_0O9ApbF43A@mail.gmail.com> (raw)
In-Reply-To: <167965504750.27013.1499288657891904530@lain.khirnov.net>
On Fri, Mar 24, 2023 at 12:51 PM Anton Khirnov <anton@khirnov.net> wrote:
>
> Quoting Jan Ekström (2023-03-21 00:34:03)
> > This allows configuring an encoder by using AVFrameSideData.
> > ---
> > libavcodec/avcodec.c | 1 +
> > libavcodec/internal.h | 7 +++++++
> > libavcodec/options.c | 5 +++++
> > 3 files changed, 13 insertions(+)
> >
> > diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
> > index c110b19e08..3faabe77d1 100644
> > --- a/libavcodec/avcodec.c
> > +++ b/libavcodec/avcodec.c
> > @@ -403,6 +403,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx)
> > avci->nb_draining_errors = 0;
> > av_frame_unref(avci->buffer_frame);
> > av_packet_unref(avci->buffer_pkt);
> > + av_side_data_set_wipe(&avci->side_data_set);
> >
> > if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME)
> > ff_thread_flush(avctx);
> > diff --git a/libavcodec/internal.h b/libavcodec/internal.h
> > index f21101752d..c658e97313 100644
> > --- a/libavcodec/internal.h
> > +++ b/libavcodec/internal.h
> > @@ -168,6 +168,13 @@ typedef struct AVCodecInternal {
> > * a boolean to describe whether context is opened or not.
> > */
> > unsigned int ctx_opened;
> > +
> > + /**
> > + * Set holding static side data, such as HDR10 CLL / MDCV structures.
> > + * - encoding: set by user
> > + * - decoding: unused
> > + */
> > + AVFrameSideDataSet side_data_set;
>
> Why put it here and not in the public struct? It seems way more natural
> there.
>
The general idea was that if you want to make people utilize helpers
and not touch entries willy-nilly, you put it outside of the API
client's view. Or in other words, "only making something public when
it's absolutely required means that no unnecessary things are part of
the ABI structs"
Of course looking at the fun times with avci, I might just end up
doing what you note... I just wanted to give it a try to have a
private structure which was available before init() was called :) .
Jan
_______________________________________________
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:[~2023-03-24 17:34 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-20 23:33 [FFmpeg-devel] [PATCH v0 00/14] encoder AVCodecContext configuration side data Jan Ekström
2023-03-20 23:33 ` [FFmpeg-devel] [PATCH v0 01/14] avutil/frame: move counters utilized in loops to their scope Jan Ekström
2023-03-24 10:33 ` Anton Khirnov
2023-03-24 12:00 ` Jan Ekström
2023-03-20 23:33 ` [FFmpeg-devel] [PATCH v0 02/14] avcodec: move AVCodecInternal allocation to avcodec_alloc_context3 Jan Ekström
2023-03-24 10:41 ` Anton Khirnov
2023-03-24 12:07 ` Andreas Rheinhardt
2023-03-24 13:02 ` James Almer
2023-03-24 13:20 ` Anton Khirnov
2023-03-24 17:23 ` Michael Niedermayer
2023-03-24 17:26 ` Andreas Rheinhardt
2023-03-20 23:33 ` [FFmpeg-devel] [PATCH v0 03/14] avutil/frame: add AVFrameSideDataSet for passing sets of side data Jan Ekström
2023-03-20 23:33 ` [FFmpeg-devel] [PATCH v0 04/14] avutil/frame: split side data list wiping out to non-AVFrame function Jan Ekström
2023-03-20 23:33 ` [FFmpeg-devel] [PATCH v0 05/14] avutil/frame: add helper for clearing out side data sets Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 06/14] avutil/frame: split side_data_from_buf to base and AVFrame func Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 07/14] avutil/frame: add helper for adding side data to set Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 08/14] avutil/frame: add helper for getting side data from set Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 09/14] avcodec: add private side data set to AVCodecInternal Jan Ekström
2023-03-24 10:50 ` Anton Khirnov
2023-03-24 17:34 ` Jan Ekström [this message]
2023-03-26 19:00 ` Anton Khirnov
2023-03-26 19:03 ` James Almer
2023-03-27 6:40 ` Jan Ekström
2023-03-27 6:37 ` Jan Ekström
2023-03-27 7:08 ` Anton Khirnov
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 10/14] avcodec: add function for setting avctx side data Jan Ekström
2023-03-24 10:49 ` Anton Khirnov
2023-03-24 17:35 ` Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 11/14] ffmpeg: pass first video AVFrame's side data to encoder Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 12/14] avcodec/libsvtav1: add support for writing out CLL and MDCV Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 13/14] avcodec/libx264: " Jan Ekström
2023-03-20 23:34 ` [FFmpeg-devel] [PATCH v0 14/14] avcodec/libx265: " Jan Ekström
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='CAEu79SaD=bOuOko6pgkrODUMeh5PP-Vjo51BGQx_0O9ApbF43A@mail.gmail.com' \
--to=jeebjp@gmail.com \
--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