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

Xiang, Haihao haihao.xiang at intel.com
Mon Oct 11 04:45:32 EEST 2021


On Sun, 2021-10-10 at 22:37 +0000, Soft Works wrote:
> > -----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=4
> 00: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)

Thanks for the info, I'll look into it.

BRs
Haihao



More information about the ffmpeg-devel mailing list