mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-22 15:23:11 +00:00
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: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
This commit is contained in:
parent
9e2deba9a9
commit
b1c26ce9fe
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user