[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