[FFmpeg-devel] [PATCH] configure: include pkgconfig path as vaapi header search

Dennis Mungai dmngaie at gmail.com
Thu Mar 28 05:59:54 EET 2019


On Thu, 28 Mar 2019 at 06:27, Song, Ruiling <ruiling.song at intel.com> wrote:

>
>
> > -----Original Message-----
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> > Dennis Mungai
> > Sent: Thursday, March 28, 2019 11:15 AM
> > To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as
> vaapi
> > header search
> >
> > On Thu, 28 Mar 2019 at 06:10, Song, Ruiling <ruiling.song at intel.com>
> wrote:
> >
> > >
> > >
> > > > -----Original Message-----
> > > > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On
> Behalf
> > Of
> > > > Dennis Mungai
> > > > Sent: Thursday, March 28, 2019 7:11 AM
> > > > To: FFmpeg development discussions and patches <ffmpeg-
> > devel at ffmpeg.org>
> > > > Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig
> path as
> > > vaapi
> > > > header search
> > > >
> > > > On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw at jkqxz.net> wrote:
> > > >
> > > > > On 20/03/2019 07:57, Zhong Li wrote:
> > > > > > Currectly just standard header path and be found,
> > > > > > check_type/struct will fail if vaapi is installed somewhere else.
> > > > > > ---
> > > > > >  configure | 18 ++++++++++--------
> > > > > >  1 file changed, 10 insertions(+), 8 deletions(-)
> > > > > >
> > > > > > diff --git a/configure b/configure
> > > > > > index eaf543df96..0e3c2d24bf 100755
> > > > > > --- a/configure
> > > > > > +++ b/configure
> > > > > > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"
> > > > > "ID3D11VideoDecoder"
> > > > > >  check_type "windows.h d3d11.h" "ID3D11VideoContext"
> > > > > >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode
> > > > > -D_WIN32_WINNT=0x0602
> > > > > >
> > > > > > -check_type "va/va.h va/va_dec_hevc.h"
> > "VAPictureParameterBufferHEVC"
> > > > > > -check_struct "va/va.h" "VADecPictureParameterBufferVP9"
> bit_depth
> > > > > > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> > > rotation_flags
> > > > > > -check_type "va/va.h va/va_enc_hevc.h"
> > > > "VAEncPictureParameterBufferHEVC"
> > > > > > -check_type "va/va.h va/va_enc_jpeg.h"
> > > > "VAEncPictureParameterBufferJPEG"
> > > > > > -check_type "va/va.h va/va_enc_vp8.h"
> > > "VAEncPictureParameterBufferVP8"
> > > > > > -check_type "va/va.h va/va_enc_vp9.h"
> > > "VAEncPictureParameterBufferVP9"
> > > > > > -
> > > > > >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
> > > > > >
> > > > > >  if enabled cuda_sdk; then
> > > > > > @@ -6469,6 +6461,16 @@ if enabled vaapi; then
> > > > > >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1,
> 0,
> > > 0)"
> > > > > >  fi
> > > > > >
> > > > > > +if enabled vaapi; then
> > > > >
> > > > > Merge this into the previous block, which has the same condition.
> > > > >
> > > > > > +    check_type "va/va.h va/va_dec_hevc.h"
> > > > "VAPictureParameterBufferHEVC"
> > > > > > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9"
> > > bit_depth
> > > > > > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> > > > > rotation_flags
> > > > > > +    check_type "va/va.h va/va_enc_hevc.h"
> > > > > "VAEncPictureParameterBufferHEVC"
> > > > > > +    check_type "va/va.h va/va_enc_jpeg.h"
> > > > > "VAEncPictureParameterBufferJPEG"
> > > > > > +    check_type "va/va.h va/va_enc_vp8.h"
> > > > > "VAEncPictureParameterBufferVP8"
> > > > > > +    check_type "va/va.h va/va_enc_vp9.h"
> > > > > "VAEncPictureParameterBufferVP9"
> > > > > > +fi
> > > > > > +
> > > > > >  if enabled_all opencl libdrm ; then
> > > > > >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
> > > > > >          enable opencl_drm_beignet
> > > > > >
> > > > >
> > > > > LGTM with that.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > - Mark
> > > > >
> > > > >
> > > > Does a similar check exist for Intel's Neo OpenCL runtime?
> > > Do you mean checking whether package intel-opencl (Neo package) exists
> in
> > > the system?
> > >
> > >
> >
> > Yes.
> >
> > Neo is the successor to Beignet, correct?
> Yes, that's the truth.
> Currently we simply checking against the specific header file of OpenCL,
> which is in-fact not accurate.
> I am not sure whether you would like to use Neo together with
> intel-media-driver, which is the most targeted opencl usage in FFmpeg.
> If that's the case, I think it may be hard to find a matching
> intel-media-driver to work with Neo release package.
> Because Neo release version depends on a very outdated libva revision.
> I just sent a patch to Neo to update libva revision dependency. Once they
> accept the patch and new Neo release package comes out,
> I think we can change to check against Neo package. People would not need
> to build Neo themselves then.
>
> Thanks!
> Ruiling
> >
> > Enabling similar functionality for Neo should allow for the same feature
> > support for these not using Beignet.
>
>
Indeed, I'd want to use Neo + intel-media-driver.
Judging by the (relatively low) development activity on Beignet of late,
its' considered ready to deprecate in place of Neo, applicable on anything
newer than Kabylake.
Let's see how long it takes for the libva revision to be bumped up Neo.
Here's the request for the version bump:
https://github.com/intel/compute-runtime/issues/131
And the PR, for these following along:
https://github.com/intel/compute-runtime/pull/151


More information about the ffmpeg-devel mailing list