From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751518AbdBJHDi (ORCPT ); Fri, 10 Feb 2017 02:03:38 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:12472 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751058AbdBJHDf (ORCPT ); Fri, 10 Feb 2017 02:03:35 -0500 X-AuditID: cbfec7f5-f79d06d000004445-1f-589d65c20871 Subject: Re: [PATCH v2 3/4] [media] s5p-mfc: Set colorspace in VIDIO_{G,TRY}_FMT To: Thibault Saunier , linux-kernel@vger.kernel.org Cc: Mauro Carvalho Chehab , Andi Shyti , Shuah Khan , Inki Dae , Nicolas Dufresne , Javier Martinez Canillas , Mauro Carvalho Chehab , Marek Szyprowski , Kukjin Kim , linux-samsung-soc@vger.kernel.org, Sylwester Nawrocki , linux-media@vger.kernel.org, Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, Ulf Hansson From: Andrzej Hajda Message-id: <2831b146-fbed-855e-4fc5-635bc729ba31@samsung.com> Date: Fri, 10 Feb 2017 08:03:28 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-version: 1.0 In-reply-to: <20170209200420.3046-4-thibault.saunier@osg.samsung.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrAKsWRmVeSWpSXmKPExsWy7djPc7qHUudGGHRNNbHYfuQZq8Wk+xNY LN68XcNk0f/4NbPF+fMb2C02Pb7GanF51xw2i54NW1ktZpzfx2Sx9shddotlm/4wWdxfUmix 68s9NovDb9pZLaZ++cBi8fnAJGaL42vDHQQ9dtxdwuixaVUnm8eda3vYPDYvqffY0n+X3WPT p7usHn1bVjF6fN4kF8ARxWWTkpqTWZZapG+XwJWx//oV5oKnIhXfVv9laWD8JdDFyMkhIWAi MeXKAlYIW0ziwr31bF2MXBxCAksZJZq67jNCOJ8ZJZ5OncgC0zFp7hyoxDJGiTuLNrBAOM+A nKc/2UCqhAWCJD6ePMgOYosIhEt8u94KVsQs8I5FonfHR2aQBJuApsTfzTfBGngF7CRu9d1h BLFZBFQlpu19ArZOVCBCYseNHqgaQYkfk++BxTkFXCUmrVgOdjizgIHEjCmHmSBseYnNa94C zecAOrWVQ2K1CIQpK7HpADPEAy4SG3dth3pZWOLV8S3sELaMxOXJ3WBnSgh0M0p86j/BDuFM YZT492EGVLe1xOHjF6H28klM2jYdahevREebEESJh8Smpcehyh2BobUSGlqXGSXajh1lmcAo PwvJO7OQvDALyQsLGJlXMYqklhbnpqcWm+oVJ+YWl+al6yXn525iBKaz0/+Of93BuPSY1SFG AQ5GJR7eFzVzIoRYE8uKK3MPMUpwMCuJ8DYlz40Q4k1JrKxKLcqPLyrNSS0+xCjNwaIkzrtn wZVwIYH0xJLU7NTUgtQimCwTB6dUA+NGuan9W2OmrH5UH1r91zRV0GbDtsbX54KMzW39n55R WJHOMfvR5wtnJ4h5rWVd1+W2tGchA9MfKYWqy3Epx/e03f5bt1Z+x4I3fNOX3KuTn2Ac7+9T 3S8Uxbdpxcurk6RdTYXbZaWPLPKcn624UfDyTdHU8xWbFvDf/Bjlcy8w82Yvm/OE2wpKLMUZ iYZazEXFiQC4sdZyYwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRmVeSWpSXmKPExsVy+t/xK7pHUudGGDy4omCx/cgzVotJ9yew WLx5u4bJov/xa2aL8+c3sFtsenyN1eLyrjlsFj0btrJazDi/j8li7ZG77BbLNv1hsri/pNBi 15d7bBaH37SzWkz98oHF4vOBScwWx9eGOwh67Li7hNFj06pONo871/aweWxeUu+xpf8uu8em T3dZPfq2rGL0+LxJLoAjys0mIzUxJbVIITUvOT8lMy/dVik0xE3XQkkhLzE31VYpQtc3JEhJ oSwxpxTIMzJAAw7OAe7BSvp2CW4Z+69fYS54KlLxbfVflgbGXwJdjJwcEgImEpPmzmGEsMUk Ltxbz9bFyMUhJLCEUWL17c9MEM4zRoln068wgVQJCwRIfO+7yg5iiwiESxy71wjVcZlR4sGc aSwgDrPAJxaJya29YFVsApoSfzffZAOxeQXsJG713QHbxyKgKjFt7xMWEFtUIEJi/tNVTBA1 ghI/Jt8Di3MKuEpMWrGctYuRA2ionsT9i1ogYWYBeYnNa94yT2AUmIWkYxZC1SwkVQsYmVcx iqSWFuem5xYb6RUn5haX5qXrJefnbmIERva2Yz+37GDsehd8iFGAg1GJh3dC1ZwIIdbEsuLK 3EOMEhzMSiK861PmRgjxpiRWVqUW5ccXleakFh9iNAV6YSKzlGhyPjDp5JXEG5oYmlsaGhlb WJgbGSmJ8079cCVcSCA9sSQ1OzW1ILUIpo+Jg1OqgXHq1SdzQmvfPWZOz5p+jrfW639dZE/7 WV4HBYXPr3a9yt/zbH9Zym/ZigWqtW7fk7e9uBBjMcnictvb3BPLrn2qMX/KUhgWr5vLkr17 /XIdljNreXkL+U8I68qtMy0vcPWwnGox57Bfd8DDsEveq2Q4F7pHHre+1bVZqzX6g1/nlmhR m+kh25RYijMSDbWYi4oTARJFA5ACAwAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170210070330eucas1p10cc3ea3dc7145795d1a8a29a378aeaa7 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170209200635epcas1p3cb8a6feb2a96285876f92157f72f17a6 X-RootMTR: 20170209200635epcas1p3cb8a6feb2a96285876f92157f72f17a6 References: <20170209200420.3046-1-thibault.saunier@osg.samsung.com> <20170209200420.3046-4-thibault.saunier@osg.samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09.02.2017 21:04, Thibault Saunier wrote: > The media documentation says that the V4L2_COLORSPACE_SMPTE170M colorspace > should be used for SDTV and V4L2_COLORSPACE_REC709 for HDTV but the driver > didn't set the colorimetry, also respect usespace setting. > > Use 576p display resolution as a threshold to set this. > > Signed-off-by: Thibault Saunier > --- > drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c > index 367ef8e8dbf0..960d6c7052bd 100644 > --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c > +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c > @@ -354,6 +354,15 @@ static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format *f) > pix_mp->plane_fmt[0].sizeimage = ctx->luma_size; > pix_mp->plane_fmt[1].bytesperline = ctx->buf_width; > pix_mp->plane_fmt[1].sizeimage = ctx->chroma_size; > + > + if (pix_mp->colorspace != V4L2_COLORSPACE_REC709 && > + pix_mp->colorspace != V4L2_COLORSPACE_SMPTE170M && > + pix_mp->colorspace != V4L2_COLORSPACE_DEFAULT) { > + if (pix_mp->width > 720 && pix_mp->height > 576) /* HD */ > + pix_mp->colorspace = V4L2_COLORSPACE_REC709; > + else /* SD */ > + pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M; > + } Again, in g_fmt you should not check values of fields you have to fill. Regards Andrzej > } else if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { > /* This is run on OUTPUT > The buffer contains compressed image > @@ -378,6 +387,7 @@ static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format *f) > static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_format *f) > { > struct s5p_mfc_dev *dev = video_drvdata(file); > + struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp; > struct s5p_mfc_fmt *fmt; > > mfc_debug(2, "Type is %d\n", f->type); > @@ -405,6 +415,15 @@ static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_format *f) > mfc_err("Unsupported format by this MFC version.\n"); > return -EINVAL; > } > + > + if (pix_mp->colorspace != V4L2_COLORSPACE_REC709 && > + pix_mp->colorspace != V4L2_COLORSPACE_SMPTE170M && > + pix_mp->colorspace != V4L2_COLORSPACE_DEFAULT) { > + if (pix_mp->width > 720 && pix_mp->height > 576) /* HD */ > + pix_mp->colorspace = V4L2_COLORSPACE_REC709; > + else /* SD */ > + pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M; > + } > } > > return 0; From mboxrd@z Thu Jan 1 00:00:00 1970 From: a.hajda@samsung.com (Andrzej Hajda) Date: Fri, 10 Feb 2017 08:03:28 +0100 Subject: [PATCH v2 3/4] [media] s5p-mfc: Set colorspace in VIDIO_{G, TRY}_FMT In-Reply-To: <20170209200420.3046-4-thibault.saunier@osg.samsung.com> References: <20170209200420.3046-1-thibault.saunier@osg.samsung.com> <20170209200420.3046-4-thibault.saunier@osg.samsung.com> Message-ID: <2831b146-fbed-855e-4fc5-635bc729ba31@samsung.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 09.02.2017 21:04, Thibault Saunier wrote: > The media documentation says that the V4L2_COLORSPACE_SMPTE170M colorspace > should be used for SDTV and V4L2_COLORSPACE_REC709 for HDTV but the driver > didn't set the colorimetry, also respect usespace setting. > > Use 576p display resolution as a threshold to set this. > > Signed-off-by: Thibault Saunier > --- > drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c > index 367ef8e8dbf0..960d6c7052bd 100644 > --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c > +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c > @@ -354,6 +354,15 @@ static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format *f) > pix_mp->plane_fmt[0].sizeimage = ctx->luma_size; > pix_mp->plane_fmt[1].bytesperline = ctx->buf_width; > pix_mp->plane_fmt[1].sizeimage = ctx->chroma_size; > + > + if (pix_mp->colorspace != V4L2_COLORSPACE_REC709 && > + pix_mp->colorspace != V4L2_COLORSPACE_SMPTE170M && > + pix_mp->colorspace != V4L2_COLORSPACE_DEFAULT) { > + if (pix_mp->width > 720 && pix_mp->height > 576) /* HD */ > + pix_mp->colorspace = V4L2_COLORSPACE_REC709; > + else /* SD */ > + pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M; > + } Again, in g_fmt you should not check values of fields you have to fill. Regards Andrzej > } else if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { > /* This is run on OUTPUT > The buffer contains compressed image > @@ -378,6 +387,7 @@ static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format *f) > static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_format *f) > { > struct s5p_mfc_dev *dev = video_drvdata(file); > + struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp; > struct s5p_mfc_fmt *fmt; > > mfc_debug(2, "Type is %d\n", f->type); > @@ -405,6 +415,15 @@ static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_format *f) > mfc_err("Unsupported format by this MFC version.\n"); > return -EINVAL; > } > + > + if (pix_mp->colorspace != V4L2_COLORSPACE_REC709 && > + pix_mp->colorspace != V4L2_COLORSPACE_SMPTE170M && > + pix_mp->colorspace != V4L2_COLORSPACE_DEFAULT) { > + if (pix_mp->width > 720 && pix_mp->height > 576) /* HD */ > + pix_mp->colorspace = V4L2_COLORSPACE_REC709; > + else /* SD */ > + pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M; > + } > } > > return 0;