From db9ee37bb10787e83cc676b84c86c3608bc47f92 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Tue, 28 Jun 2022 11:51:19 +0200 Subject: [PATCH] lavc: fixed crash on help --- src/video_compress/libavcodec.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/video_compress/libavcodec.cpp b/src/video_compress/libavcodec.cpp index 7cdf5f2c1..9e6fe032f 100644 --- a/src/video_compress/libavcodec.cpp +++ b/src/video_compress/libavcodec.cpp @@ -237,7 +237,7 @@ struct state_video_compress_libav { AVFrame *in_frame = nullptr; // for every core - parts of the above - AVFrame **in_frame_part = nullptr; + vector in_frame_part; AVCodecContext *codec_ctx = nullptr; unsigned char *decoded = nullptr; ///< intermediate representation for codecs @@ -601,7 +601,7 @@ struct module * libavcodec_compress_init(struct module *parent, const char *opts return ret > 0 ? &compress_init_noerr : NULL; } - s->in_frame_part = static_cast(calloc(s->conv_thread_count, sizeof(AVFrame *))); + s->in_frame_part.resize(s->conv_thread_count); for(int i = 0; i < s->conv_thread_count; i++) { s->in_frame_part[i] = av_frame_alloc(); } @@ -1611,10 +1611,9 @@ static void libavcodec_compress_done(struct module *mod) cleanup(s); - for(int i = 0; i < s->conv_thread_count; i++) { - av_free(s->in_frame_part[i]); + for (auto &f : s->in_frame_part) { + av_free(f); } - free(s->in_frame_part); delete s; }