From 17ba8359e4f499d8bc3c96a711f6c957655f2c59 Mon Sep 17 00:00:00 2001 From: tytan652 Date: Mon, 18 Jul 2022 21:00:45 +0200 Subject: [PATCH] deps,libobs,plugins: Fix discarded-qualifiers warnings with FFmpeg 5 --- deps/libff/libff/ff-util.c | 6 +++--- deps/media-playback/media-playback/decode.c | 2 +- deps/media-playback/media-playback/decode.h | 2 +- libobs/graphics/graphics-ffmpeg.c | 3 ++- plugins/linux-v4l2/v4l2-decoder.h | 2 +- plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c | 2 +- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 9 +++++---- plugins/obs-ffmpeg/obs-ffmpeg-output.h | 4 ++-- plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c | 2 +- plugins/obs-ffmpeg/obs-ffmpeg-video-encoders.h | 2 +- plugins/obs-ffmpeg/obs-ffmpeg.c | 6 +++--- plugins/win-dshow/ffmpeg-decode.c | 2 +- plugins/win-dshow/ffmpeg-decode.h | 2 +- 13 files changed, 23 insertions(+), 21 deletions(-) diff --git a/deps/libff/libff/ff-util.c b/deps/libff/libff/ff-util.c index b34c48a3b..f4b4a10c4 100644 --- a/deps/libff/libff/ff-util.c +++ b/deps/libff/libff/ff-util.c @@ -66,7 +66,7 @@ void ff_init() const char *ff_codec_name_from_id(int codec_id) { - AVCodec *codec = avcodec_find_encoder(codec_id); + const AVCodec *codec = avcodec_find_encoder(codec_id); if (codec != NULL) return codec->name; else @@ -159,7 +159,7 @@ static void add_codec_to_list(const struct ff_format_desc *format_desc, d->name = codec->name; d->long_name = codec->long_name; d->id = codec->id; - AVCodec *base_codec = avcodec_find_encoder(codec->id); + const AVCodec *base_codec = avcodec_find_encoder(codec->id); if (strcmp(base_codec->name, codec->name) != 0) { d->alias = true; d->base_name = base_codec->name; @@ -415,7 +415,7 @@ ff_format_desc_next(const struct ff_format_desc *format_desc) static const char *get_encoder_name(const struct ff_format_desc *format_desc, enum AVCodecID codec_id) { - AVCodec *codec = avcodec_find_encoder(codec_id); + const AVCodec *codec = avcodec_find_encoder(codec_id); if (codec == NULL && codec_id == AV_CODEC_ID_NONE) return NULL; else if (codec == NULL) diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c index 5dd26b9d7..a3a343c40 100644 --- a/deps/media-playback/media-playback/decode.c +++ b/deps/media-playback/media-playback/decode.c @@ -31,7 +31,7 @@ enum AVHWDeviceType hw_priority[] = { AV_HWDEVICE_TYPE_NONE, }; -static bool has_hw_type(AVCodec *c, enum AVHWDeviceType type, +static bool has_hw_type(const AVCodec *c, enum AVHWDeviceType type, enum AVPixelFormat *hw_format) { for (int i = 0;; i++) { diff --git a/deps/media-playback/media-playback/decode.h b/deps/media-playback/media-playback/decode.h index 1630c16c3..1ca271b41 100644 --- a/deps/media-playback/media-playback/decode.h +++ b/deps/media-playback/media-playback/decode.h @@ -53,7 +53,7 @@ struct mp_decode { AVCodecContext *decoder; AVBufferRef *hw_ctx; - AVCodec *codec; + const AVCodec *codec; int64_t last_duration; int64_t frame_pts; diff --git a/libobs/graphics/graphics-ffmpeg.c b/libobs/graphics/graphics-ffmpeg.c index 4d31c68f8..d5634314a 100644 --- a/libobs/graphics/graphics-ffmpeg.c +++ b/libobs/graphics/graphics-ffmpeg.c @@ -39,7 +39,8 @@ static bool ffmpeg_image_open_decoder_context(struct ffmpeg_image *info) AVStream *const stream = fmt_ctx->streams[ret]; #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101) AVCodecParameters *const codecpar = stream->codecpar; - AVCodec *const decoder = avcodec_find_decoder(codecpar->codec_id); + const AVCodec *const decoder = avcodec_find_decoder( + codecpar->codec_id); // fix discarded-qualifiers #else AVCodecContext *const decoder_ctx = stream->codec; AVCodec *const decoder = avcodec_find_decoder(decoder_ctx->codec_id); diff --git a/plugins/linux-v4l2/v4l2-decoder.h b/plugins/linux-v4l2/v4l2-decoder.h index ce413d4b4..f6ae815de 100644 --- a/plugins/linux-v4l2/v4l2-decoder.h +++ b/plugins/linux-v4l2/v4l2-decoder.h @@ -29,7 +29,7 @@ extern "C" { * Data structure for decoder */ struct v4l2_decoder { - AVCodec *codec; + const AVCodec *codec; AVCodecContext *context; AVPacket *packet; AVFrame *frame; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c b/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c index cd387ff4c..e03d8fcea 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c @@ -41,7 +41,7 @@ struct enc_encoder { const char *type; - AVCodec *codec; + const AVCodec *codec; AVCodecContext *context; uint8_t *samples[MAX_AV_PLANES]; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c index a819689d9..7a4a026e6 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c @@ -79,7 +79,8 @@ void ffmpeg_log_error(int log_level, struct ffmpeg_data *data, } static bool new_stream(struct ffmpeg_data *data, AVStream **stream, - AVCodec **codec, enum AVCodecID id, const char *name) + const AVCodec **codec, enum AVCodecID id, + const char *name) { *codec = (!!name && *name) ? avcodec_find_encoder_by_name(name) : avcodec_find_encoder(id); @@ -418,7 +419,7 @@ static bool create_audio_stream(struct ffmpeg_data *data, int idx) static inline bool init_streams(struct ffmpeg_data *data) { - AVOutputFormat *format = data->output->oformat; + const AVOutputFormat *format = data->output->oformat; if (format->video_codec != AV_CODEC_ID_NONE) if (!create_video_stream(data)) @@ -439,7 +440,7 @@ static inline bool init_streams(struct ffmpeg_data *data) static inline bool open_output_file(struct ffmpeg_data *data) { - AVOutputFormat *format = data->output->oformat; + const AVOutputFormat *format = data->output->oformat; int ret; AVDictionary *dict = NULL; @@ -566,7 +567,7 @@ static inline const char *safe_str(const char *s) static enum AVCodecID get_codec_id(const char *name, int id) { - AVCodec *codec; + const AVCodec *codec; if (id != 0) return (enum AVCodecID)id; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.h b/plugins/obs-ffmpeg/obs-ffmpeg-output.h index 1e1ef4f81..73f5f7852 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.h +++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.h @@ -43,8 +43,8 @@ struct ffmpeg_data { AVStream *video; AVCodecContext *video_ctx; struct ffmpeg_audio_info *audio_infos; - AVCodec *acodec; - AVCodec *vcodec; + const AVCodec *acodec; + const AVCodec *vcodec; AVFormatContext *output; struct SwsContext *swscale; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c b/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c index f1df2a99a..53beb0f96 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c @@ -54,7 +54,7 @@ struct vaapi_encoder { AVBufferRef *vadevice_ref; AVBufferRef *vaframes_ref; - AVCodec *vaapi; + const AVCodec *vaapi; AVCodecContext *context; AVPacket *packet; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-video-encoders.h b/plugins/obs-ffmpeg/obs-ffmpeg-video-encoders.h index 7b0959f31..db2f21bdd 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-video-encoders.h +++ b/plugins/obs-ffmpeg/obs-ffmpeg-video-encoders.h @@ -21,7 +21,7 @@ struct ffmpeg_video_encoder { obs_encoder_t *encoder; const char *enc_name; - AVCodec *avcodec; + const AVCodec *avcodec; AVCodecContext *context; int64_t start_ts; bool first_packet; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg.c b/plugins/obs-ffmpeg/obs-ffmpeg.c index e081d721a..1d1131d13 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg.c @@ -230,7 +230,7 @@ extern bool load_nvenc_lib(void); static bool nvenc_codec_exists(const char *name, const char *fallback) { - AVCodec *nvenc = avcodec_find_encoder_by_name(name); + const AVCodec *nvenc = avcodec_find_encoder_by_name(name); if (!nvenc) nvenc = avcodec_find_encoder_by_name(fallback); @@ -286,7 +286,7 @@ static bool nvenc_supported(bool *out_h264, bool *out_hevc) #ifdef LIBAVUTIL_VAAPI_AVAILABLE static bool vaapi_supported(void) { - AVCodec *vaenc = avcodec_find_encoder_by_name("h264_vaapi"); + const AVCodec *vaenc = avcodec_find_encoder_by_name("h264_vaapi"); return !!vaenc; } #endif @@ -306,7 +306,7 @@ extern void obs_ffmpeg_unload_logging(void); static void register_encoder_if_available(struct obs_encoder_info *info, const char *id) { - AVCodec *c = avcodec_find_encoder_by_name(id); + const AVCodec *c = avcodec_find_encoder_by_name(id); if (c) { obs_register_encoder(info); } diff --git a/plugins/win-dshow/ffmpeg-decode.c b/plugins/win-dshow/ffmpeg-decode.c index 62cfba3ab..c4c26e420 100644 --- a/plugins/win-dshow/ffmpeg-decode.c +++ b/plugins/win-dshow/ffmpeg-decode.c @@ -34,7 +34,7 @@ enum AVHWDeviceType hw_priority[] = { AV_HWDEVICE_TYPE_NONE, }; -static bool has_hw_type(AVCodec *c, enum AVHWDeviceType type) +static bool has_hw_type(const AVCodec *c, enum AVHWDeviceType type) { for (int i = 0;; i++) { const AVCodecHWConfig *config = avcodec_get_hw_config(c, i); diff --git a/plugins/win-dshow/ffmpeg-decode.h b/plugins/win-dshow/ffmpeg-decode.h index a087208b9..0b1b7a425 100644 --- a/plugins/win-dshow/ffmpeg-decode.h +++ b/plugins/win-dshow/ffmpeg-decode.h @@ -39,7 +39,7 @@ extern "C" { struct ffmpeg_decode { AVBufferRef *hw_device_ctx; AVCodecContext *decoder; - AVCodec *codec; + const AVCodec *codec; AVFrame *hw_frame; AVFrame *frame;