[FFmpeg-devel] [PATCH, v3] lavf/vf_vpp_qsv: add support for QSV transpose filter

Li, Zhong zhong.li at intel.com
Wed Aug 7 17:04:09 EEST 2019


> From: Fu, Linjie
> Sent: Monday, July 15, 2019 12:30 PM
> To: Li, Zhong <zhong.li at intel.com>; FFmpeg development discussions and
> patches <ffmpeg-devel at ffmpeg.org>
> Subject: RE: [FFmpeg-devel] [PATCH, v3] lavf/vf_vpp_qsv: add support for
> QSV transpose filter
> 
> > -----Original Message-----
> > From: Li, Zhong
> > Sent: Sunday, July 14, 2019 19:33
> > To: FFmpeg development discussions and patches <ffmpeg-
> > devel at ffmpeg.org>
> > Cc: Fu, Linjie <linjie.fu at intel.com>
> > Subject: RE: [FFmpeg-devel] [PATCH, v3] lavf/vf_vpp_qsv: add support
> > for QSV transpose filter
> >
> > > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On
> > Behalf
> > > Of Linjie Fu
> > > Sent: Thursday, July 11, 2019 1:58 AM
> > > To: ffmpeg-devel at ffmpeg.org
> > > Cc: Fu, Linjie <linjie.fu at intel.com>
> > > Subject: [FFmpeg-devel] [PATCH, v3] lavf/vf_vpp_qsv: add support for
> > QSV
> > > transpose filter
> > >
> > > Add transpose support for qsv_vpp with rotate and hflip:
> > >     - rotate: [0, 3] support clockwise rotation of 0, 90, 180, 270;
> > >     - hflip:  [0, 1] support horizontal flip;
> > >
> > > Configure with:
> > > {"cclock_hflip","clock","cclock","clock_hflip","reversal","hflip","v
> > > flip"}
> > >
> > > Limitation:
> > >     If pipeline contains resize, mirroring and other, VPP skips
> > > other filters in MSDK when IOPattern equals d3d->d3d. So "cclock_hflip,
> clock_hflip, vflip"
> > > will not work in d3d->d3d condition.
> > >
> > > This pr is fixing this:
> > > https://github.com/Intel-Media-SDK/MediaSDK/pull/1491
> > >
> > > CMD:
> > > ffmpeg -hwaccel qsv -c:v h264_qsv -i input.h264
> > >     -vf 'format=qsv,vpp_qsv=transpose=clock' -c:v h264_qsv
> > > output.h264
> >
> > Tested:
> > ffmpeg -hwaccel qsv -c:v h264_qsv -i
> > ~/bbb_sunflower_1080p_30fps_normal.mp4 -vframes 100 -vf
> > 'format=qsv,vpp_qsv=transpose=cclock_hflip' -c:v h264_qsv ch.mp4 Both
> > Skylake and KBL failed:
> >
> > [Parsed_vpp_qsv_1 @ 0x5581aaf16080] Failed to create a qsvvpp, ret =
> -15.
> > [Parsed_vpp_qsv_1 @ 0x5581aaf16080] Failed to configure output pad on
> > Parsed_vpp_qsv_1
> > Error reinitializing filters!
> > Failed to inject frame into filter network: Block device required
> > Error while processing the decoded data for stream #0:0
> 
> It is due to the limitation in MSDK mentioned in commit message:
> If pipeline contains resize, mirroring and other, VPP skips other filters in
> MSDK.
> 
> And specially for resize (also width/height swap caused  by rotate),
> MFXVideoVPP_Init would fail directly, not simply skip the resize/rotate:
> https://github.com/Intel-Media-SDK/MediaSDK/blob/master/_studio/mfx_li
> b/vpp/src/mfx_vpp_hw.cpp#L5546
> 
> This PR could handle this properly as suggested:
> https://github.com/Intel-Media-SDK/MediaSDK/pull/1491
> 
> - Linjie

Applied with updated commit message to remove the limitation description,
since https://github.com/Intel-Media-SDK/MediaSDK/pull/1491 has been merged. 



More information about the ffmpeg-devel mailing list