]> git.sesse.net Git - ffmpeg/commitdiff
Revert "lavc/vaapi_encode: add EQUAL_MULTI_ROWS support for slice structure"
authorMark Thompson <sw@jkqxz.net>
Mon, 27 Jul 2020 21:27:14 +0000 (22:27 +0100)
committerMark Thompson <sw@jkqxz.net>
Mon, 27 Jul 2020 21:27:14 +0000 (22:27 +0100)
This reverts commit 489c5db0791f39518775b12eef6d48276c17f96f.

Treating EQUAL_MULTI_ROWS in the same way as the arbitrary-size cases is
just wrong.  Consider 9 rows, 4 slices - we pick 4 slices with sizes
{ 3, 2, 2, 2 }, which EQUAL_MULTI_ROWS does not allow.  It isn't possible
to split the frame into 4 slices at all with the EQUAL_MULTI_ROWS
structure - the closest options are 3 slices with sizes { 3, 3, 3 } or 5
slices with sizes { 2, 2, 2, 2, 1 }.

libavcodec/vaapi_encode.c

index 6766641ac78098cb596db64a241c2ef7a68881d8..4544090bcc59aa548eaca6e723379c8ef8183d5b 100644 (file)
@@ -1908,9 +1908,6 @@ static av_cold int vaapi_encode_init_row_slice_structure(AVCodecContext *avctx,
         req_slices = avctx->slices;
     }
     if (slice_structure & VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS ||
-#if VA_CHECK_VERSION(1, 8, 0)
-        slice_structure & VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS ||
-#endif
         slice_structure & VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS) {
         ctx->nb_slices  = req_slices;
         ctx->slice_size = ctx->slice_block_rows / ctx->nb_slices;