[FFmpeg-devel] [PATCH v5 00/20] clean-up QSV filters

Soft Works softworkz at hotmail.com
Mon Oct 11 01:37:03 EEST 2021



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Xiang, Haihao
> Sent: Saturday, September 18, 2021 3:27 AM
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH v5 00/20] clean-up QSV filters
> 
> On Thu, 2021-09-09 at 14:56 +0000, Xiang, Haihao wrote:
> > On Mon, 2021-08-30 at 08:04 +0000, Xiang, Haihao wrote:
> > > On Mon, 2021-08-30 at 05:52 +0000, Soft Works wrote:


[..]

> > > > > >
> > > > > > Hi Hihao,
> > > > > >
> > > > > > The general idea of this patch makes sense to me.
> > > > > >
> > > > > > Currently there are implementation differences between
> these
> > > > >
> > > > > filters,
> > > > > > and there are cases where vpp_qsv  doesn't work and I need
> to use
> > > > > > scale_qsv instead.
> > > > > >
> > > > > > I have never analyzed the actual reason, but this should be
> done
> > > > > > before replacing scale_qsv with an aliased vpp_qsv.
> > > > > >
> > > > > > I'll try to dig out an example..
> > > > >
> > > > >
> > > > > Hi Softworkz,
> > > > >
> > > > > Could you provide the cases when you have time ? I may look
> into the
> > > > > issues.
> > > > >
> > > > > Thanks
> > > > > Haihao
> > > >
> > > >
> > > > Hi Haihao,
> > > >
> > > > IIRC think it can be reproduced easily by using the filters
> without
> > > > parameters,
> > > > where scale_qsv works and vpp_qsv doesn't work.
> > >
> > > scale_qsv only supports video memory input and output however
> vpp_qsv may
> > > support both video memory and system memory, there is a case
> where scale_qsv
> > > doesn't work but vpp_qsv may work.
> > >
> > > $> ffmpeg -c:v h264_qsv -i input.mp4 -vf scale_qsv -f null -
> > >
> > > Impossible to convert between the formats supported by the filter
> 'graph 0
> > > input
> > > from stream 0:0' and the filter 'auto_scale_0'
> > > Error reinitializing filters!
> > > Failed to inject frame into filter network: Function not
> implemented
> > > Error while processing the decoded data for stream #0:0
> > > Conversion failed!
> > >
> > > After applying this patchset, scale_qsv may work with both video
> memory and
> > > system memory.
> > >
> > > In addition, vpp_qsv may support crop however scale_qsv doesn't
> support
> > > crop.
> > > After applying  this patchset, scale_qsv may support crop too.
> > >
> > > >
> > > > If it doesn't reproduce, try this in combination with hwupload,
> e.g.
> > > >
> > > > - "hwupload at f1=extra_hw_frames=32,vpp_qsv"
> > > > vs.
> > > > - "hwupload at f1=extra_hw_frames=32,scale_qsv"
> > > >
> > >
> > > The above two combinations work for me
> >
> > Hi Softworkz,
> >
> > I failed to reproduce your issue, could you provide more info if
> possible?
> 
> Hi Softworkz,
> 
> I didn't reproduce your issue, maybe the issue has been fixed on
> master. How
> about to merge this patchset first? I will rebase the patchset if no
> objection.
>  BTW we didn't see regression in our internal testing.


Hi Haihao,
(sending a CC to the ML allowing others to follow)

I found an example for the cases I was referring to. 

An example command line is this:

ffmpeg.exe -y -loglevel verbose -init_hw_device "qsv=qd1:hw_any,child_device=1,child_device_type=d3d11va"  -hwaccel qsv -c:v h264_qsv -canvas_size:s:0 "1920:1080" -i red2.mkv -filter_complex "[0:0]vpp_qsv[vid];[0:3]format=nv12,hwupload at f1=extra_hw_frames=16,vpp_qsv=w=400:h=200[subs];[vid][subs]overlay_qsv[out]" -map [out] -c:v h264_qsv -b:v 5M output.mp4

It contains two uses of vpp_qsv: one in “passthrough mode” and 
the other one with scaling.
Only when replacing BOTH usages of vpp_qsv with scale_qsv, 
the command will work.

(test file on request)

Kind regards,
softworkz





More information about the ffmpeg-devel mailing list