Currently, BFF or TFF will not be set if the frame is progressive. This will break the Input PicStruct check in MSDK because of absence of the specific PicStruct check for: MFX_PICSTRUCT_PROGRESSIVE | MFX_PICSTRUCT_FIELD_REPEATED
Set PicStruct to MFX_PICSTRUCT_FIELD_TFF or MFX_PICSTRUCT_FIELD_BFF to match the CheckInputPicStruct in MSDK. Fix #7701. Signed-off-by: Linjie Fu <linjie...@intel.com> --- Is it acceptable to add the TFF or BFF to PicStruct according to the attribute of the input frames, even if it's not interlaced? Or it should be fixed in MSDK level to support more PicStruct? libavfilter/vf_deinterlace_qsv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_deinterlace_qsv.c b/libavfilter/vf_deinterlace_qsv.c index d6b02e98c5..f03d65f029 100644 --- a/libavfilter/vf_deinterlace_qsv.c +++ b/libavfilter/vf_deinterlace_qsv.c @@ -417,8 +417,9 @@ static int submit_frame(AVFilterContext *ctx, AVFrame *frame, qf->surface.Info.CropH = qf->frame->height; qf->surface.Info.PicStruct = !qf->frame->interlaced_frame ? MFX_PICSTRUCT_PROGRESSIVE : - (qf->frame->top_field_first ? MFX_PICSTRUCT_FIELD_TFF : - MFX_PICSTRUCT_FIELD_BFF); + MFX_PICSTRUCT_UNKNOWN; + qf->surface.Info.PicStruct |= qf->frame->top_field_first ? MFX_PICSTRUCT_FIELD_TFF : + MFX_PICSTRUCT_FIELD_BFF; if (qf->frame->repeat_pict == 1) qf->surface.Info.PicStruct |= MFX_PICSTRUCT_FIELD_REPEATED; else if (qf->frame->repeat_pict == 2) -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel