1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-04 22:03:09 +02:00

avcodec/mjpegenc: Reconstify mjpeg encoder

It has been deconstified in 2c2dfd9149
because the FFCodec is touched in av_codec_init_static because
of its get_supported_config callback. Yet this is easily remedied:
Only call get_supported_config to set pix_fmts if the codec does
not already have it set.

This also fixes a mismatch between the declaration of ff_mjpeg_encoder
in allcodecs.c and the definition in mjpegenc.c. Said mismatch is
actually undefined behaviour.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt
2025-03-10 04:02:06 +01:00
parent ed1b76cdb7
commit 958c46800e
2 changed files with 6 additions and 5 deletions

View File

@ -937,10 +937,11 @@ static void av_codec_init_static(void)
FF_DISABLE_DEPRECATION_WARNINGS
switch (codec->p.type) {
case AVMEDIA_TYPE_VIDEO:
codec->get_supported_config(NULL, &codec->p,
AV_CODEC_CONFIG_PIX_FORMAT, 0,
(const void **) &codec->p.pix_fmts,
&dummy);
if (!codec->p.pix_fmts)
codec->get_supported_config(NULL, &codec->p,
AV_CODEC_CONFIG_PIX_FORMAT, 0,
(const void **) &codec->p.pix_fmts,
&dummy);
break;
case AVMEDIA_TYPE_AUDIO:
codec->get_supported_config(NULL, &codec->p,

View File

@ -675,7 +675,7 @@ static int mjpeg_get_supported_config(const AVCodecContext *avctx,
return ff_default_get_supported_config(avctx, codec, config, flags, out, out_num);
}
FFCodec ff_mjpeg_encoder = {
const FFCodec ff_mjpeg_encoder = {
.p.name = "mjpeg",
CODEC_LONG_NAME("MJPEG (Motion JPEG)"),
.p.type = AVMEDIA_TYPE_VIDEO,