The FFV1 decoder accepts 1024 slices but the encoder does not currently permit it.
Let's permit 32x32 (which is the GPU encoder setting, by the way).
From 216f14a7bf0c4f71b7c8e15c7f2d91088818a20d Mon Sep 17 00:00:00 2001
From: Jerome Martinez <jer...@mediaarea.net>
Date: Tue, 8 Apr 2025 22:07:47 +0200
Subject: [PATCH] avcodec/ffv1enc: permit 1024 slices

---
 libavcodec/ffv1enc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 35a1ae16d4..807850a432 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -569,7 +569,7 @@ int ff_ffv1_encode_determine_slices(AVCodecContext *avctx)
     int max_v_slices = AV_CEIL_RSHIFT(avctx->height, s->chroma_v_shift);
     s->num_v_slices = (avctx->width > 352 || avctx->height > 288 || 
!avctx->slices) ? 2 : 1;
     s->num_v_slices = FFMIN(s->num_v_slices, max_v_slices);
-    for (; s->num_v_slices < 32; s->num_v_slices++) {
+    for (; s->num_v_slices <= 32; s->num_v_slices++) {
         for (s->num_h_slices = s->num_v_slices; s->num_h_slices <= 
2*s->num_v_slices; s->num_h_slices++) {
             int maxw = (avctx->width  + s->num_h_slices - 1) / s->num_h_slices;
             int maxh = (avctx->height + s->num_v_slices - 1) / s->num_v_slices;
-- 
2.46.0.windows.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".

Reply via email to