[FFmpeg-devel] [PATCH v2 1/2] qsv: needn't load user plugin since libmfx 1.28

Soft Works softworkz at hotmail.com
Fri Aug 21 10:45:23 EEST 2020



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Xiang, Haihao
> Sent: Friday, August 21, 2020 9:29 AM
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH v2 1/2] qsv: needn't load user plugin
> since libmfx 1.28
> 
> On Fri, 2020-08-21 at 05:48 +0000, Soft Works wrote:
> > > -----Original Message-----
> > > From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> > > Haihao Xiang
> > > Sent: Friday, August 21, 2020 7:23 AM
> > > To: ffmpeg-devel at ffmpeg.org
> > > Cc: Haihao Xiang <haihao.xiang at intel.com>
> > > Subject: [FFmpeg-devel] [PATCH v2 1/2] qsv: needn't load user plugin
> > > since libmfx 1.28
> > >
> > > MFXVideoUSER_Load call is redundant since libmfx 1.28
> > > ---
> > > Fixed merge conflict when applying this patch by 'git am'
> > >
> > >  libavcodec/qsv.c | 9 ++++++++-
> > >  1 file changed, 8 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index
> > > 17720070f1..56a30ad642 100644
> > > --- a/libavcodec/qsv.c
> > > +++ b/libavcodec/qsv.c
> > > @@ -19,7 +19,6 @@
> > >   */
> > >
> > >  #include <mfx/mfxvideo.h>
> > > -#include <mfx/mfxplugin.h>
> > >  #include <mfx/mfxjpeg.h>
> > >
> > >  #include <stdio.h>
> > > @@ -36,6 +35,10 @@
> > >  #include "avcodec.h"
> > >  #include "qsv_internal.h"
> > >
> > > +#if !QSV_VERSION_ATLEAST(1, 28)
> > > +#include <mfx/mfxplugin.h>
> > > +#endif
> > > +
> > >  #if QSV_VERSION_ATLEAST(1, 12)
> > >  #include "mfx/mfxvp8.h"
> > >  #endif
> > > @@ -295,6 +298,9 @@ enum AVPictureType ff_qsv_map_pictype(int
> > > mfx_pic_type)  static int qsv_load_plugins(mfxSession session, const
> > > char *load_plugins,
> > >                              void *logctx)  {
> > > +#if QSV_VERSION_ATLEAST(1, 28)
> > > +    return 0;
> > > +#else
> > >      if (!load_plugins || !*load_plugins)
> > >          return 0;
> > >
> > > @@ -340,6 +346,7 @@ load_plugin_fail:
> > >      }
> > >
> > >      return 0;
> > > +#endif
> > >
> > >  }
> >
> >
> > Hi,
> >
> > Are you sure this check is right? You are checking the libmfx version
> > against which ffmpeg is compiled.
> >
> > What happens, when a graphics driver supports only API level 1.21?
> >
> 
> I understand your concern, however lots of features in FFmpeg are
> disabled/enabled against api version at compile-time.

That is in no way an argument to break compatibility with downlevel 
drivers without any need. Things are working fine without that patch 
for all API versions.

If you really want to avoid the plugin-load, then you should check the
driver's API level at runtime.

Kind regards,
softworkz




More information about the ffmpeg-devel mailing list