following comandline will crash the ffmpeg ffmpeg -threads 17 -thread_type slice -i WPP_A_ericsson_MAIN_2.bit out.yuv -y
the HEVCContext->sList size is MAX_NB_THREADS(16), any > 16 thread number will crash the application --- libavcodec/hevcdec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 699c13bbcc..457f75b551 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -3406,7 +3406,7 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx) av_freep(&s->sh.offset); av_freep(&s->sh.size); - for (i = 1; i < s->threads_number; i++) { + for (i = 1; i < FFMIN(s->threads_number, MAX_NB_THREADS); i++) { HEVCLocalContext *lc = s->HEVClcList[i]; if (lc) { av_freep(&s->HEVClcList[i]); @@ -3608,6 +3608,10 @@ static av_cold int hevc_decode_init(AVCodecContext *avctx) s->threads_type = FF_THREAD_FRAME; else s->threads_type = FF_THREAD_SLICE; + if (s->threads_type == FF_THREAD_SLICE && s->threads_number > MAX_NB_THREADS) { + av_log(s->avctx, AV_LOG_WARNING, "too many threads (%d), reducing to %d.\n", s->threads_number, MAX_NB_THREADS); + s->threads_number = MAX_NB_THREADS; + } return 0; } -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".