Message ID | 20190308153401.12297-1-linjie.fu@intel.com |
---|---|
State | Accepted |
Commit | 147ef1d9472ea39f837224bc8a2fbe07a9f04ae3 |
Headers | show |
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf > Of Linjie Fu > Sent: Friday, March 8, 2019 11:34 PM > To: ffmpeg-devel@ffmpeg.org > Cc: Fu, Linjie <linjie.fu@intel.com> > Subject: [FFmpeg-devel] [PATCH, v2] 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> > --- > libavfilter/vf_deinterlace_qsv.c | 6 ++++-- > 1 file 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; > -- > 2.17.1 LGTM, will apply.
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;
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> --- libavfilter/vf_deinterlace_qsv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)