ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | Mon Mar 25 02:24:22 2024 +0100| [6edd83c0e2f9fc4b483c497485423281b376a7f5] | committer: Andreas Rheinhardt
avcodec/ratecontrol: Avoid function pointer casts It is undefined behaviour to call a function with a different signature for the call than the actual function signature; there are no exceptions for void* and RateControlEntry*. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6edd83c0e2f9fc4b483c497485423281b376a7f5 --- libavcodec/ratecontrol.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c index 55ce054735..031da7a4f6 100644 --- a/libavcodec/ratecontrol.c +++ b/libavcodec/ratecontrol.c @@ -78,6 +78,11 @@ static inline double qp2bits(RateControlEntry *rce, double qp) return rce->qscale * (double)(rce->i_tex_bits + rce->p_tex_bits + 1) / qp; } +static double qp2bits_cb(void *rce, double qp) +{ + return qp2bits(rce, qp); +} + static inline double bits2qp(RateControlEntry *rce, double bits) { if (bits < 0.9) { @@ -86,6 +91,11 @@ static inline double bits2qp(RateControlEntry *rce, double bits) return rce->qscale * (double)(rce->i_tex_bits + rce->p_tex_bits + 1) / bits; } +static double bits2qp_cb(void *rce, double qp) +{ + return bits2qp(rce, qp); +} + static double get_diff_limited_q(MpegEncContext *s, RateControlEntry *rce, double q) { RateControlContext *rcc = &s->rc_context; @@ -506,8 +516,8 @@ av_cold int ff_rate_control_init(MpegEncContext *s) NULL }; static double (* const func1[])(void *, double) = { - (double (*)(void *, double)) bits2qp, - (double (*)(void *, double)) qp2bits, + bits2qp_cb, + qp2bits_cb, NULL }; static const char * const func1_names[] = { _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".