aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil/hwcontext_vdpau.c
diff options
context:
space:
mode:
authorWenbin Chen <wenbin.chen@intel.com>2021-12-23 10:26:37 +0800
committerHaihao Xiang <haihao.xiang@intel.com>2021-12-23 15:49:07 +0800
commited6c5c13b10930ea95c622d6ef6e32a6e2077018 (patch)
tree674015e4b3c6d1f2deed5cd406ae6c65dcff0b89 /libavutil/hwcontext_vdpau.c
parent7e4747ec504586658bf12a38c304659fa8d84a6a (diff)
downloadffmpeg-ed6c5c13b10930ea95c622d6ef6e32a6e2077018.tar.gz
libavutil/hwcontext_qsv: clean padding when upload qsv frames
Fix #7830 When we upload a frame that is not padded as MSDK requires, we create a new AVFrame to copy data. The frame's padding data is uninitialized so it brings run to run problem. For example, If we run the following command serveral times we will get different outputs. ffmpeg -init_hw_device qsv=qsv:hw -qsv_device /dev/dri/renderD128 \ -filter_hw_device qsv -f rawvideo -s 192x200 -pix_fmt p010 \ -i 192x200_P010.yuv -vf "format=nv12,hwupload=extra_hw_frames=16" \ -c:v hevc_qsv output.265 According to https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#encoding-procedures "Note: It is the application's responsibility to fill pixels outside of crop window when it is smaller than frame to be encoded. Especially in cases when crops are not aligned to minimum coding block size (16 for AVC, 8 for HEVC and VP9)" I add a function to fill padding area with border pixel to fix this run2run problem, and also move the new AVFrame to global structure to reduce redundant allocation operation to increase preformance. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
Diffstat (limited to 'libavutil/hwcontext_vdpau.c')
0 files changed, 0 insertions, 0 deletions