mbox series

[FFmpeg-devel,v2,0/1] avfilter/vf_vpp_qsv: apply 3D LUT from file

Message ID 20240120151504.118057-1-cyfdecyf@gmail.com
Headers show
Series avfilter/vf_vpp_qsv: apply 3D LUT from file | expand

Message

Chen Yufei Jan. 20, 2024, 3:14 p.m. UTC
This patch adds support for applying 3D LUT from file using oneVPL VPP.

PATCH v1 uses VA-API to create LUT surface. Because oneVPL can't work with VA-API on Windows,
this version now creates LUT in system memory (MFX_RESOURCE_SYSTEM_SURFACE) and let oneVPL
copy LUT to video memory.

Note: requires oneVPL-intel-gpu version >= 24.1.1 because this version contains
a fix for creating LUT in video memory.
(For details, refer to https://github.com/oneapi-src/oneVPL-intel-gpu/issues/307)

Chen Yufei (1):
  avfilter/vf_vpp_qsv: apply 3D LUT from file.

 libavfilter/Makefile     |   8 +-
 libavfilter/lut3d.c      | 669 +++++++++++++++++++++++++++++++++++++++
 libavfilter/lut3d.h      |  13 +
 libavfilter/vf_lut3d.c   | 590 +---------------------------------
 libavfilter/vf_vpp_qsv.c | 113 ++++++-
 5 files changed, 799 insertions(+), 594 deletions(-)
 create mode 100644 libavfilter/lut3d.c

Comments

Xiang, Haihao Jan. 23, 2024, 1:59 a.m. UTC | #1
On Sa, 2024-01-20 at 23:14 +0800, Chen Yufei wrote:
> This patch adds support for applying 3D LUT from file using oneVPL VPP.
> 
> PATCH v1 uses VA-API to create LUT surface. Because oneVPL can't work with VA-
> API on Windows,
> this version now creates LUT in system memory (MFX_RESOURCE_SYSTEM_SURFACE)
> and let oneVPL
> copy LUT to video memory.
> 
> Note: requires oneVPL-intel-gpu version >= 24.1.1 because this version
> contains
> a fix for creating LUT in video memory.
> (For details, refer to
> https://github.com/oneapi-src/oneVPL-intel-gpu/issues/307)

Please bump a new runtime version, then you may check the runtime version for
this feature. 

Thanks
Haihao


> 
> Chen Yufei (1):
>   avfilter/vf_vpp_qsv: apply 3D LUT from file.
> 
>  libavfilter/Makefile     |   8 +-
>  libavfilter/lut3d.c      | 669 +++++++++++++++++++++++++++++++++++++++
>  libavfilter/lut3d.h      |  13 +
>  libavfilter/vf_lut3d.c   | 590 +---------------------------------
>  libavfilter/vf_vpp_qsv.c | 113 ++++++-
>  5 files changed, 799 insertions(+), 594 deletions(-)
>  create mode 100644 libavfilter/lut3d.c
>
Chen Yufei Jan. 23, 2024, 12:09 p.m. UTC | #2
On Tue, Jan 23, 2024 at 10:00 AM Xiang, Haihao <haihao.xiang@intel.com> wrote:
>
> On Sa, 2024-01-20 at 23:14 +0800, Chen Yufei wrote:
> > This patch adds support for applying 3D LUT from file using oneVPL VPP.
> >
> > PATCH v1 uses VA-API to create LUT surface. Because oneVPL can't work with VA-
> > API on Windows,
> > this version now creates LUT in system memory (MFX_RESOURCE_SYSTEM_SURFACE)
> > and let oneVPL
> > copy LUT to video memory.
> >
> > Note: requires oneVPL-intel-gpu version >= 24.1.1 because this version
> > contains
> > a fix for creating LUT in video memory.
> > (For details, refer to
> > https://github.com/oneapi-src/oneVPL-intel-gpu/issues/307)
>
> Please bump a new runtime version, then you may check the runtime version for
> this feature.

What does "bump a new runtime version" mean? Could you please provide
more details?

I'm confused about the version number of libvpl and oneVPL-intel-gpu.

I looked at the implementation of `QSV_RUNTIME_VERSION_ATLEAST`, and
tried to print `mfxVersion` stored in `vpp->qsv`.
I can only get 2.10 which is the version of libvpl (2.10.1 actually)
on my system.

I've also looked at the build directory of oneVPL-intel-gpu on my
system, the compile commands defines following

    -DMEDIA_VERSION_STR="24.1.2" -DMFX_API_VERSION="2.10+"

Do you mean I should just use `QSV_RUNTIME_VERSION_ATLEAST(ver, 2,
10)` to check the runtime version?
Does this guarantee the underlying oneVPL-intel-gpu would be >= 24.1.1 then?

>
> Thanks
> Haihao
>
>
> >
> > Chen Yufei (1):
> >   avfilter/vf_vpp_qsv: apply 3D LUT from file.
> >
> >  libavfilter/Makefile     |   8 +-
> >  libavfilter/lut3d.c      | 669 +++++++++++++++++++++++++++++++++++++++
> >  libavfilter/lut3d.h      |  13 +
> >  libavfilter/vf_lut3d.c   | 590 +---------------------------------
> >  libavfilter/vf_vpp_qsv.c | 113 ++++++-
> >  5 files changed, 799 insertions(+), 594 deletions(-)
> >  create mode 100644 libavfilter/lut3d.c
> >
>
Xiang, Haihao Jan. 24, 2024, 7:24 a.m. UTC | #3
On Di, 2024-01-23 at 20:09 +0800, Chen Yufei wrote:
> On Tue, Jan 23, 2024 at 10:00 AM Xiang, Haihao <haihao.xiang@intel.com> wrote:
> > 
> > On Sa, 2024-01-20 at 23:14 +0800, Chen Yufei wrote:
> > > This patch adds support for applying 3D LUT from file using oneVPL VPP.
> > > 
> > > PATCH v1 uses VA-API to create LUT surface. Because oneVPL can't work with
> > > VA-
> > > API on Windows,
> > > this version now creates LUT in system memory
> > > (MFX_RESOURCE_SYSTEM_SURFACE)
> > > and let oneVPL
> > > copy LUT to video memory.
> > > 
> > > Note: requires oneVPL-intel-gpu version >= 24.1.1 because this version
> > > contains
> > > a fix for creating LUT in video memory.
> > > (For details, refer to
> > > https://github.com/oneapi-src/oneVPL-intel-gpu/issues/307)
> > 
> > Please bump a new runtime version, then you may check the runtime version
> > for
> > this feature.
> 
> What does "bump a new runtime version" mean? Could you please provide
> more details?
> 
> I'm confused about the version number of libvpl and oneVPL-intel-gpu.
> 
> I looked at the implementation of `QSV_RUNTIME_VERSION_ATLEAST`, and
> tried to print `mfxVersion` stored in `vpp->qsv`.
> I can only get 2.10 which is the version of libvpl (2.10.1 actually)
> on my system.
> 
> I've also looked at the build directory of oneVPL-intel-gpu on my
> system, the compile commands defines following
> 
>     -DMEDIA_VERSION_STR="24.1.2" -DMFX_API_VERSION="2.10+"
> 
> Do you mean I should just use `QSV_RUNTIME_VERSION_ATLEAST(ver, 2,
> 10)` to check the runtime version?

Yes, I meant using QSV_RUNTIME_VERSION_ATLEAST to check the runtime version. 

> Does this guarantee the underlying oneVPL-intel-gpu would be >= 24.1.1 then?

No, it doesn't. QSV_RUNTIME_VERSION_ATLEAST(ver, 2, 11) should guarantee the
feature works. This is why I said 'bump a new runtime version' 

Thanks
Haihao

> 
> > 
> > Thanks
> > Haihao
> > 
> > 
> > > 
> > > Chen Yufei (1):
> > >   avfilter/vf_vpp_qsv: apply 3D LUT from file.
> > > 
> > >  libavfilter/Makefile     |   8 +-
> > >  libavfilter/lut3d.c      | 669 +++++++++++++++++++++++++++++++++++++++
> > >  libavfilter/lut3d.h      |  13 +
> > >  libavfilter/vf_lut3d.c   | 590 +---------------------------------
> > >  libavfilter/vf_vpp_qsv.c | 113 ++++++-
> > >  5 files changed, 799 insertions(+), 594 deletions(-)
> > >  create mode 100644 libavfilter/lut3d.c
> > > 
> > 
>