[FFmpeg-devel] [PATCH v2 1/4] lavc/vaapi_encode: add EQUAL_MULTI_ROWS support for slice structure

Linjie Fu linjie.justin.fu at gmail.com
Sun Jul 19 10:00:19 EEST 2020


On Thu, Jun 18, 2020 at 1:36 PM Linjie Fu <linjie.justin.fu at gmail.com> wrote:
>
> On Tue, May 12, 2020 at 9:49 PM Linjie Fu <linjie.fu at intel.com> wrote:
> >
> > VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS is added to in the latest
> > libva (1.8.0) which matches the hardware behaviour:
> >
> > /** \brief Driver supports any number of rows per slice but they must be the same
> > *       for all slices except for the last one, which must be equal or smaller
> > *       to the previous slices. */
> >
> > And VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS is kind of deprecated for iHD
> > since it's somehow introduced in [1] however misleading from what we
> > actually handle, and one row per slice would not get a good quality.
> >
> > Caps query support in driver is WIP, and this would fix the multi slice
> > encoding for VAEntrypointEncSliceLP.
> >
> > [1]<https://github.com/intel/libva/commit/0e6d5441f19bdc674b4da3169d614d10fd644778>
> >
> > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > ---
> >  libavcodec/vaapi_encode.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c
> > index cb05ebd..234618a 100644
> > --- a/libavcodec/vaapi_encode.c
> > +++ b/libavcodec/vaapi_encode.c
> > @@ -1888,6 +1888,9 @@ static av_cold int vaapi_encode_init_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;
> > --
> > 2.7.4
>
> Full support is provided in libva[1] and media-driver[2], and we've
> observed it works for multi slice encoding for AVC. (300+ cases)
>
> Prefer to apply this soon with commit message refined.
>
Applied, thx.
Prefer to apply the reset of this patch set soon to support tile encoding.

- Linjie


More information about the ffmpeg-devel mailing list