Commit b1c26ce9 authored by Wenbin Chen's avatar Wenbin Chen Committed by Haihao Xiang

libavcodec/qsvdec: use the parameter from decodeHeader to configure surface

MSDK recognizes both yuv420p10 and yuv420p9 as MFX_FOURCC_P010, but
parameters are different. When decode yuv420p9 video, ffmpeg-qsv will use
yuv420p10le to configure surface which is different with param from
DecoderHeader and this will lead to error. Now change it use
param from decoderHeader to configure surface.
Signed-off-by: 's avatarWenbin Chen <wenbin.chen@intel.com>
Signed-off-by: 's avatarHaihao Xiang <haihao.xiang@intel.com>
parent 9e2deba9
......@@ -423,13 +423,13 @@ static int alloc_frame(AVCodecContext *avctx, QSVContext *q, QSVFrame *frame)
if (frame->frame->format == AV_PIX_FMT_QSV) {
frame->surface = *(mfxFrameSurface1*)frame->frame->data[3];
} else {
frame->surface.Info = q->frame_info;
frame->surface.Data.PitchLow = frame->frame->linesize[0];
frame->surface.Data.Y = frame->frame->data[0];
frame->surface.Data.UV = frame->frame->data[1];
}
frame->surface.Info = q->frame_info;
if (q->frames_ctx.mids) {
ret = ff_qsv_find_surface_idx(&q->frames_ctx, frame);
if (ret < 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment