[FFmpeg-devel] [PATCH 18/18] h264_ps: pass AVCodecContext as void* where possible

Anton Khirnov anton at khirnov.net
Wed Mar 18 11:02:39 EET 2020


Quoting Michael Niedermayer (2020-03-16 12:23:11)
> On Sun, Mar 15, 2020 at 06:02:04PM +0100, Anton Khirnov wrote:
> > Quoting Michael Niedermayer (2020-03-13 23:29:12)
> > > On Fri, Mar 13, 2020 at 11:28:50AM +0100, Anton Khirnov wrote:
> > > > Makes sure it is only used for logging and nothing else.
> > > > ---
> > > >  libavcodec/h264_ps.c | 18 +++++++++---------
> > > >  1 file changed, 9 insertions(+), 9 deletions(-)
> > > > 
> > > > diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
> > > > index 1951bb1161..4ef25aa514 100644
> > > > --- a/libavcodec/h264_ps.c
> > > > +++ b/libavcodec/h264_ps.c
> > > > @@ -104,14 +104,14 @@ static void remove_sps(H264ParamSets *s, int id)
> > > >      av_buffer_unref(&s->sps_list[id]);
> > > >  }
> > > >  
> > > > -static inline int decode_hrd_parameters(GetBitContext *gb, AVCodecContext *avctx,
> > > > +static inline int decode_hrd_parameters(GetBitContext *gb, void *logctx,
> > > 
> > > this is a double sided sword
> > > while fields of logctx cannot be used its after this possible to pass
> > > wrong things as logctx
> > 
> > Right, but that should be easily noticeable since it will crash on
> > dereferencing the AVClass. I consider the danger of people accessing the
> > AVCodecContext inappropriately to be bigger (since it's done in many
> > places already).
> > 
> 
> > But we might want to consider something like
> > typedef AVClass* AVLogger
> 
> yes, if that ends up looking clean in practice then iam certainly in favor

That would require changes to the logging API though, so would be
outside of the scope of this set.
Are you objecting to the patch as it is?

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list