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

Paul B Mahol onemda at gmail.com
Wed Aug 7 17:08:05 EEST 2019


On Wed, Aug 7, 2019 at 4:04 PM Li, Zhong <zhong.li at intel.com> wrote:

> > 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.


Please revert, lavf stand for libavformat.
You need lavfi, as that stand for libavfilter.


More information about the ffmpeg-devel mailing list