diff options
author | Linjie Fu | 2019-03-08 23:34:01 +0800 |
---|---|---|
committer | Zhong Li | 2019-03-08 15:08:16 +0800 |
commit | 147ef1d9472ea39f837224bc8a2fbe07a9f04ae3 (patch) | |
tree | 451bb431d86b0b7f2a64db476b633f46ad023bab | |
parent | f95aee2b72535e14b7463750fd7afb6d1cdbe4d4 (diff) |
lavf/deinterlace_qsv: set specific field for repeat
Set specific field for repeat in PicStruct if the frame has repeat
flag.
Match the CheckInputPicStruct in MSDK.
Fix #7701.
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
-rw-r--r-- | libavfilter/vf_deinterlace_qsv.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavfilter/vf_deinterlace_qsv.c b/libavfilter/vf_deinterlace_qsv.c index d6b02e98c5..bee10c220f 100644 --- a/libavfilter/vf_deinterlace_qsv.c +++ b/libavfilter/vf_deinterlace_qsv.c @@ -419,9 +419,11 @@ static int submit_frame(AVFilterContext *ctx, AVFrame *frame, qf->surface.Info.PicStruct = !qf->frame->interlaced_frame ? MFX_PICSTRUCT_PROGRESSIVE : (qf->frame->top_field_first ? MFX_PICSTRUCT_FIELD_TFF : MFX_PICSTRUCT_FIELD_BFF); - if (qf->frame->repeat_pict == 1) + if (qf->frame->repeat_pict == 1) { qf->surface.Info.PicStruct |= MFX_PICSTRUCT_FIELD_REPEATED; - else if (qf->frame->repeat_pict == 2) + qf->surface.Info.PicStruct |= qf->frame->top_field_first ? MFX_PICSTRUCT_FIELD_TFF : + MFX_PICSTRUCT_FIELD_BFF; + } else if (qf->frame->repeat_pict == 2) qf->surface.Info.PicStruct |= MFX_PICSTRUCT_FRAME_DOUBLING; else if (qf->frame->repeat_pict == 4) qf->surface.Info.PicStruct |= MFX_PICSTRUCT_FRAME_TRIPLING; |