Re: [PATCH v5 3/3] [media] s5p-mfc: Check and set 'v4l2_pix_format:field' field in try_fmt

From: Nicolas Dufresne
Date: Wed Feb 22 2017 - 09:42:43 EST


Le mercredi 22 fÃvrier 2017 Ã 10:10 -0300, Thibault Saunier a ÃcritÂ:
> Hello,
>
> On 02/22/2017 06:29 AM, Andrzej Hajda wrote:
> > On 21.02.2017 20:20, Thibault Saunier wrote:
> > > It is required by the standard that the field order is set by the
> > > driver.
> > >
> > > Signed-off-by: Thibault Saunier <thibault.saunier@xxxxxxxxxxxxxxx
> > > >
> > >
> > > ---
> > >
> > > Changes in v5:
> > > - Just adapt the field and never error out.
> > >
> > > Changes in v4: None
> > > Changes in v3:
> > > - Do not check values in the g_fmt functions as Andrzej explained
> > > in previous review
> > >
> > > Changes in v2:
> > > - Fix a silly build error that slipped in while rebasing the
> > > patches
> > >
> > > Â drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 3 +++
> > > Â 1 file changed, 3 insertions(+)
> > >
> > > diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> > > b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> > > index 0976c3e0a5ce..44ed2afe0780 100644
> > > --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> > > +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> > > @@ -386,6 +386,9 @@ static int vidioc_try_fmt(struct file *file,
> > > void *priv, struct v4l2_format *f)
> > > ÂÂ struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
> > > ÂÂ struct s5p_mfc_fmt *fmt;
> > > ÂÂ
> > > + if (f->fmt.pix.field == V4L2_FIELD_ANY)
> > > + f->fmt.pix.field = V4L2_FIELD_NONE;
> > > +
> >
> > In previous version the only supported field type was NONE, here
> > you
> > support everything.
> > If the only supported format is none you should set 'field'
> > unconditionally to NONE, nothing more.
>
> Afaict weÂÂsupport 2 things:
>
> ÂÂÂ1. NONE
> ÂÂÂ2. INTERLACE
>
> Until now we were not checking what was supported or not and
> basicallyÂ
> ignoring that info, this patch
> keeps the old behaviour making sure to be compliant.
>
> I had a doubt and was pondering doing:
>
> ``` diff
>
> + if (f->fmt.pix.field != V4L2_FIELD_INTERLACED)
> + f->fmt.pix.field = V4L2_FIELD_NONE;
> +
>

This looks better to me.

> ```
>
> instead, it is probably more correct, do you think it is what should
> beÂ
> done here?
>
> Regards,
>
> Thibault
>
> >
> > Regards
> > Andrzej
> >
> > > ÂÂ mfc_debug(2, "Type is %d\n", f->type);
> > > ÂÂ if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
> > > ÂÂ fmt = find_format(f, MFC_FMT_DEC);
>
>

Attachment: signature.asc
Description: This is a digitally signed message part