[FFmpeg-devel] [PATCH v10 10/13] lavu/hwcontext_qsv: make qsv hwdevice works with oneVPL
Xiang, Haihao
haihao.xiang at intel.com
Fri Jul 22 05:54:51 EEST 2022
On Thu, 2022-07-21 at 20:30 +0000, Soft Works wrote:
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> > Xiang, Haihao
> > Sent: Tuesday, July 19, 2022 9:19 AM
> > To: anton at khirnov.net; ffmpeg-devel at ffmpeg.org
> > Cc: Galin, Artem <artem.galin at intel.com>
> > Subject: Re: [FFmpeg-devel] [PATCH v10 10/13] lavu/hwcontext_qsv:
> > make qsv hwdevice works with oneVPL
> >
> > On Mon, 2022-07-18 at 15:02 +0200, Anton Khirnov wrote:
> > > Quoting Xiang, Haihao (2022-07-12 08:27:32)
> > > > +static int qsv_va_update_config(void *ctx, mfxHDL handle,
> >
> > mfxConfig cfg)
> > > > +{
> > > > +#if CONFIG_VAAPI
> > > > +#if VA_CHECK_VERSION(1, 5, 0)
> > > > +#define LOCAL_VADISPLAYPCIID VADisplayPCIID
> > > > +#else
> > > > +#define LOCAL_VADISPLAYPCIID 21
> > > > +#endif
> > > > + mfxStatus sts;
> > > > + VADisplay dpy = handle;
> > > > + VAStatus vas;
> > > > + VADisplayAttribute attr = {
> > > > + .type = LOCAL_VADISPLAYPCIID
> > > > + };
> > > > + mfxVariant impl_value;
> > > > +
> > > > + vas = vaGetDisplayAttributes(dpy, &attr, 1);
> > > > + if (vas == VA_STATUS_SUCCESS && attr.flags !=
> > > > VA_DISPLAY_ATTRIB_NOT_SUPPORTED) {
> > > > + impl_value.Type = MFX_VARIANT_TYPE_U16;
> > > > + impl_value.Data.U16 = (attr.value & 0xFFFF);
> > > > + sts = MFXSetConfigFilterProperty(cfg,
> > > > + (const mfxU8
> > > > *)"mfxExtendedDeviceId.DeviceID", impl_value);
> > > > + if (sts != MFX_ERR_NONE) {
> > > > + av_log(ctx, AV_LOG_ERROR, "Error adding a MFX
> >
> > configuration"
> > > > + "DeviceID property: %d.\n", sts);
> > > > + goto fail;
> > > > + }
> > > > + } else
> > > > + av_log(ctx, AV_LOG_WARNING, "Cannot get device id from
> >
> > the driver,
> > > > the default "
> > > > + "MFX implementation will be loaded for this
> >
> > device. Please
> > > > consider to "
> > > > + "upgrade the driver to support VAAPI 1.5.0. \n");
> > >
> > > I would still prefer to fail here. The user requested a specific
> >
> > device,
> > > disregarding that request is evil.
> >
> > Thanks for the comment. There is only one available device for most
> > users, so
> > the default one and the given one from user should be the same,
> > otherwise it
> > won't work. I don't want to make them in trouble if they don't have a
> > driver to
> > support the new interface. However I agree with you it is a little
> > evil to
> > ignore the request. I'll update the patch to return error here.
>
> I'm not a fan of that kind of automagic behavior. Quick success
> experiences are surely desirable in general, but we also need to
> consider the effects of such behavior - in this case, that would
> mean: It doesn't really matter what a user specifies for the parameter,
> because it will always work anyway.
>
> In turn, users may start to think that their wrong command with the
> wrong ID would be right, and then, in a subsequent command
> use that wrong ID again in different context, where it might fail,
> while in turn maximizing confusion.
>
> When it is possible to internally retrieve potentially valid
> values, why not output something useful like: "XXID failed, you
> might want to try A, B or C" (or similar)?
Agree, and this is fixed in the new version.
Thanks
Haihao
More information about the ffmpeg-devel
mailing list