[FFmpeg-devel] ffmpeg-qsv: Is opaque memory allocation path used in ffmpeg-qsv?

Fu, Linjie linjie.fu at intel.com
Fri Oct 25 05:17:09 EEST 2019


> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Rogozhkin, Dmitry V
> Sent: Friday, October 25, 2019 05:17
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] ffmpeg-qsv: Is opaque memory allocation path
> used in ffmpeg-qsv?
> 
> On Thu, 2019-10-24 at 17:12 +0200, Max Dmitrichenko wrote:
> > Hi,
> >
> > Just have a look at any usage as: ffmpeg -hwaccel qsv .......
> 
> I looked into these 3 command lines on Linux:
> 
> ffmpeg -hwaccel qsv -c:v h264_qsv -i AUD_MW_E.264  \
>        -vf hwdownload,format=nv12 -pix_fmt yuv420p \
>        AUD_MW.yuv
> 
> ffmpeg -hwaccel qsv -c:v h264_qsv -i AUD_MW_E.264 \
>        -c:v hevc_qsv -b:v 5M AUD_MW_E.hevc
> 
> ffmpeg -init_hw_device qsv=hw     \
>        -filter_hw_device hw -f rawvideo -pix_fmt  \
>        yuv420p -s:v 176x144 -i AUD_MW.yuv -vf     \
>        hwupload=extra_hw_frames=64,format=qsv     \
>        -c:v h264_qsv -b:v 5M -frames:v 10         \
>        -y ./AUD_MW_E.h264
> 
> For what I see, none of the them is using QSV opaque memory. For the
> first 2 command lines ffmpeg explicitly prints (w/ -loglevel debug):
> 
> [h264_qsv @ 0x34f6980] Decoder: output is video memory surface
> 
> Besides, I checked w/ manual printfs from the code - opaque is not
> used.
> 
> Hence, this question: is actually qsv opaque memory path used anywhere
> in ffmpeg.exe sample or in other libavcodec/libavfilter based
> applications? Is there Linux/Windows difference which I don't notice in
> code review?
> 

I didn't see MFX_MEMTYPE_OPAQUE_FRAME set for frames_hwctx->frame_type
in mainline ffmpeg application.

BTW, in the frame_allocator used for MFXVideoCORE_SetFrameAllocator(),
https://github.com/FFmpeg/FFmpeg/blob/6f2a3958cfac135c60b509a61a4fd39432d8f9a9/libavcodec/qsv.c#L562

only MFX_MEMTYPE_INTERNAL_FRAME and MFX_MEMTYPE_EXTERNAL_FRAME is
supported as an allocation request since commit:
4ab61cd983b539749bd621ea271624ddb5196a8e

(For VPP,  MFX_MEMTYPE_FROM_VPPIN is supported)

- linjie


More information about the ffmpeg-devel mailing list