[FFmpeg-devel] [PATCH v0 09/14] avcodec: add private side data set to AVCodecInternal
Anton Khirnov
anton at khirnov.net
Sun Mar 26 22:00:28 EEST 2023
Quoting Jan Ekström (2023-03-24 18:34:28)
> On Fri, Mar 24, 2023 at 12:51 PM Anton Khirnov <anton at 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,
But do we? Why?
In this case I see no advantage to having a public function over having
two public fields. The function is strictly worse because it cannot be
extended, and enlarges the symbol table.
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list