[FFmpeg-devel] [PATCH 1/2] doc/ffmpeg: update the documentation about qsv device creation

Xiang, Haihao haihao.xiang at intel.com
Fri Jan 5 05:01:57 EET 2024


On Di, 2024-01-02 at 19:00 +0300, Dennis Mungai wrote:
> On Tue, 2 Jan 2024, 08:27 Xiang, Haihao, <
> haihao.xiang-at-intel.com at ffmpeg.org> wrote:
> 
> > On Vr, 2023-12-29 at 12:23 +0800, Xiang, Haihao wrote:
> > > From: Haihao Xiang <haihao.xiang at intel.com>
> > > 
> > > Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
> > > ---
> > >  doc/ffmpeg.texi | 21 +++++++++++++++++++--
> > >  1 file changed, 19 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi
> > > index ab17d1d687..c6c0606e8a 100644
> > > --- a/doc/ffmpeg.texi
> > > +++ b/doc/ffmpeg.texi
> > > @@ -1406,16 +1406,33 @@ If not specified, @samp{auto_any} is used.
> > >  platform-appropriate subdevice (@samp{dxva2} or @samp{d3d11va} or
> > > @samp{vaapi}) and then deriving a
> > >  QSV device from that.)
> > > 
> > > -Alternatively, @samp{child_device_type} helps to choose
> > platform-appropriate
> > > subdevice type.
> > > -On Windows @samp{d3d11va} is used as default subdevice type.
> > > +The following options are recognized:
> > > + at table @option
> > > + at item child_device
> > > +Specify a DRM render node on Linux or DirectX adapter on Windows
> > > + at item child_device_type
> > > +Choose platform-appropriate subdevice type. On Windows @samp{d3d11va}
> > is used
> > > +as default subdevice type.
> > > + at end table
> > > 
> > >  Examples:
> > >  @table @emph
> > > + at item -init_hw_device qsv:hw,child_device=/dev/dri/renderD129
> > > +Create a QSV device with @samp{MFX_IMPL_HARDWARE} on DRM render node
> > > /dev/dri/renderD129
> > > +
> > > + at item -init_hw_device qsv:hw,child_device=1
> > > +Create a QSV device with @samp{MFX_IMPL_HARDWARE} on DirectX adapter 1.
> > The
> > > subdevice
> > > +type is @samp{d3d11va} if @code{--enable-libvpl} is specified at
> > > configuration time, the
> > > +subdevice type is @samp{dxva2} if @code{--enable-libmfx} is specified at
> > > configuration time.
> > > +
> > >  @item -init_hw_device qsv:hw,child_device_type=d3d11va
> > >  Choose the GPU subdevice with type @samp{d3d11va} and create QSV device
> > with
> > > @samp{MFX_IMPL_HARDWARE}.
> > > 
> > >  @item -init_hw_device qsv:hw,child_device_type=dxva2
> > >  Choose the GPU subdevice with type @samp{dxva2} and create QSV device
> > with
> > > @samp{MFX_IMPL_HARDWARE}.
> > > +
> > > + at item -init_hw_device qsv:hw,child_device=1,child_device_type=d3d11va
> > > +Create a QSV device with @samp{MFX_IMPL_HARDWARE} on DirectX adapter 1
> > with
> > > subdevice type @samp{d3d11va}
> > >  @end table
> > > 
> > >  @item opencl
> > 
> > Will apply the patchset
> > 
> 
> 
> A small request: The docs mention the creation of either VAAPI or d3d11
> devices and then deriving a Quicksync device from that. Can your patchset
> include a trivial example of that, 

Added an example in v2
(https://ffmpeg.org/pipermail/ffmpeg-devel/2024-January/319321.html )

> preferably with hwmap? That would
> eliminate the ambiguity in that clause.

This patch is about qsv device initilazation when using option -init_hw_device,
not hwmap. hwmap can use the devices initialized by option -init_hw_device or
derive a new device.

hwmap uses a device initialized by option -init_hw_device, for example:

$ ffmpeg -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device
opencl=ocl at va -hwaccel vaapi -hwaccel_device va -filter_hw_device ocl -
hwaccel_output_format vaapi -i input.mp4 -vf 'hwmap,unsharp_opencl' -f null -

hwmap derives a new device, then use this new device, for example:

$ ffmpeg -init_hw_device vaapi=va:/dev/dri/renderD128 -hwaccel vaapi -
hwaccel_device va -filter_hw_device va -hwaccel_output_format vaapi -i input.mp4
-vf 'hwmap=derive_device=opencl,unsharp_opencl' -f null -

Thanks
Haihao

> 
> > 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list