[FFmpeg-devel] [PATCH v11 07/14] avcodec/vaapi_encode: extract the init and close function to base layer

Sean McGovern gseanmcg at gmail.com
Sat May 25 17:18:43 EEST 2024


Hi,


On Sat, May 25, 2024, 09:07 Lynne via ffmpeg-devel <ffmpeg-devel at ffmpeg.org>
wrote:

> On 25/05/2024 12:30, tong1.wu-at-intel.com at ffmpeg.org wrote:
> > From: Tong Wu <tong1.wu at intel.com>
> >
> > Related parameters such as device context, frame context are also moved
> > to base layer.
> >
> > Signed-off-by: Tong Wu <tong1.wu at intel.com>
> > ---
> >   libavcodec/hw_base_encode.c     | 49 ++++++++++++++++++
> >   libavcodec/hw_base_encode.h     | 17 +++++++
> >   libavcodec/vaapi_encode.c       | 90 +++++++++++----------------------
> >   libavcodec/vaapi_encode.h       | 10 ----
> >   libavcodec/vaapi_encode_av1.c   |  2 +-
> >   libavcodec/vaapi_encode_h264.c  |  2 +-
> >   libavcodec/vaapi_encode_h265.c  |  2 +-
> >   libavcodec/vaapi_encode_mjpeg.c |  6 ++-
> >   8 files changed, 102 insertions(+), 76 deletions(-)
> >
> > diff --git a/libavcodec/hw_base_encode.c b/libavcodec/hw_base_encode.c
> > index 16afaa37be..c4789380b6 100644
> > --- a/libavcodec/hw_base_encode.c
> > +++ b/libavcodec/hw_base_encode.c
> > @@ -592,3 +592,52 @@ end:
> >
> >       return 0;
> >   }
> > +
> > +int ff_hw_base_encode_init(AVCodecContext *avctx)
> > +{
> > +    FFHWBaseEncodeContext *ctx = avctx->priv_data;
>
> This is the issue I was talking about, this requires that
> FFHWBaseEncodeContext is always the main context.
>
> Could you change it so everything takes FFHWBaseEncodeContext as an
> argument, rather than AVCodecContext (apart from where the function
> absolutely must read some data from it)?
>

Might this suggestion involve having to do some ugly down-casting?

-- Sean McGovern

>


More information about the ffmpeg-devel mailing list