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

Anton Khirnov anton at khirnov.net
Sun Mar 15 19:02:04 EET 2020


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

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list