diff --git a/plugins/channelrx/demoddatv/ldpctool/generic.h b/plugins/channelrx/demoddatv/ldpctool/generic.h index 1cae14716..489a36edb 100644 --- a/plugins/channelrx/demoddatv/ldpctool/generic.h +++ b/plugins/channelrx/demoddatv/ldpctool/generic.h @@ -248,13 +248,15 @@ struct OffsetMinSumAlgorithm static void finalp(TYPE *links, int cnt) { TYPE beta = 0.5 * FACTOR; - TYPE mags[cnt], mins[cnt]; + std::vector mags(cnt); + std::vector mins(cnt); + std::vector signs(cnt); + for (int i = 0; i < cnt; ++i) mags[i] = std::max(std::abs(links[i]) - beta, TYPE(0)); - CODE::exclusive_reduce(mags, mins, cnt, min); - TYPE signs[cnt]; - CODE::exclusive_reduce(links, signs, cnt, sign); + CODE::exclusive_reduce(mags.data(), mins.data(), cnt, min); + CODE::exclusive_reduce(links, signs.data(), cnt, sign); for (int i = 0; i < cnt; ++i) links[i] = sign(mins[i], signs[i]);