linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control
@ 2014-07-08 15:23 Andrey Utkin
  2014-07-08 15:23 ` [PATCH 2/2] solo6x10: update GOP size, QP immediately Andrey Utkin
  2014-07-11  2:24 ` [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control Ismael Luceno
  0 siblings, 2 replies; 5+ messages in thread
From: Andrey Utkin @ 2014-07-08 15:23 UTC (permalink / raw)
  To: linux-kernel, devel, linux-media
  Cc: gregkh, m.chehab, ismael.luceno, Andrey Utkin

solo6*10 boards have configurable quantization parameter which takes
values from 0 to 31, inclusively.

This change enables setting it with ioctl VIDIOC_S_CTRL with id
V4L2_CID_MPEG_VIDEO_H264_MIN_QP.

Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
---
 drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
index b8ff113..bf6eb06 100644
--- a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
+++ b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
@@ -1111,6 +1111,9 @@ static int solo_s_ctrl(struct v4l2_ctrl *ctrl)
 	case V4L2_CID_MPEG_VIDEO_GOP_SIZE:
 		solo_enc->gop = ctrl->val;
 		return 0;
+	case V4L2_CID_MPEG_VIDEO_H264_MIN_QP:
+		solo_enc->qp = ctrl->val;
+		return 0;
 	case V4L2_CID_MOTION_THRESHOLD:
 		solo_enc->motion_thresh = ctrl->val;
 		if (!solo_enc->motion_global || !solo_enc->motion_enabled)
@@ -1260,6 +1263,8 @@ static struct solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
 			V4L2_CID_SHARPNESS, 0, 15, 1, 0);
 	v4l2_ctrl_new_std(hdl, &solo_ctrl_ops,
 			V4L2_CID_MPEG_VIDEO_GOP_SIZE, 1, 255, 1, solo_dev->fps);
+	v4l2_ctrl_new_std(hdl, &solo_ctrl_ops,
+			V4L2_CID_MPEG_VIDEO_H264_MIN_QP, 0, 31, 1, SOLO_DEFAULT_QP);
 	v4l2_ctrl_new_custom(hdl, &solo_motion_threshold_ctrl, NULL);
 	v4l2_ctrl_new_custom(hdl, &solo_motion_enable_ctrl, NULL);
 	v4l2_ctrl_new_custom(hdl, &solo_osd_text_ctrl, NULL);
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] solo6x10: update GOP size, QP immediately
  2014-07-08 15:23 [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control Andrey Utkin
@ 2014-07-08 15:23 ` Andrey Utkin
  2014-07-11  2:24   ` Ismael Luceno
  2014-07-11  2:24 ` [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control Ismael Luceno
  1 sibling, 1 reply; 5+ messages in thread
From: Andrey Utkin @ 2014-07-08 15:23 UTC (permalink / raw)
  To: linux-kernel, devel, linux-media
  Cc: gregkh, m.chehab, ismael.luceno, Andrey Utkin

Previously, it was needed to reopen device to update GOP size and
quantization parameter. Now we update device registers with new values
immediately.

Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
---
 drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
index bf6eb06..14f933f 100644
--- a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
+++ b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
@@ -1110,9 +1110,13 @@ static int solo_s_ctrl(struct v4l2_ctrl *ctrl)
 					 ctrl->val);
 	case V4L2_CID_MPEG_VIDEO_GOP_SIZE:
 		solo_enc->gop = ctrl->val;
+		solo_reg_write(solo_dev, SOLO_VE_CH_GOP(solo_enc->ch), solo_enc->gop);
+		solo_reg_write(solo_dev, SOLO_VE_CH_GOP_E(solo_enc->ch), solo_enc->gop);
 		return 0;
 	case V4L2_CID_MPEG_VIDEO_H264_MIN_QP:
 		solo_enc->qp = ctrl->val;
+		solo_reg_write(solo_dev, SOLO_VE_CH_QP(solo_enc->ch), solo_enc->qp);
+		solo_reg_write(solo_dev, SOLO_VE_CH_QP_E(solo_enc->ch), solo_enc->qp);
 		return 0;
 	case V4L2_CID_MOTION_THRESHOLD:
 		solo_enc->motion_thresh = ctrl->val;
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control
  2014-07-08 15:23 [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control Andrey Utkin
  2014-07-08 15:23 ` [PATCH 2/2] solo6x10: update GOP size, QP immediately Andrey Utkin
@ 2014-07-11  2:24 ` Ismael Luceno
  1 sibling, 0 replies; 5+ messages in thread
From: Ismael Luceno @ 2014-07-11  2:24 UTC (permalink / raw)
  To: linux-media; +Cc: Andrey Utkin, Hans Verkuil

[-- Attachment #1: Type: text/plain, Size: 1759 bytes --]

On Tue,  8 Jul 2014 18:23:32 +0300
Andrey Utkin <andrey.utkin@corp.bluecherry.net> wrote:
> solo6*10 boards have configurable quantization parameter which takes
> values from 0 to 31, inclusively.
> 
> This change enables setting it with ioctl VIDIOC_S_CTRL with id
> V4L2_CID_MPEG_VIDEO_H264_MIN_QP.
> 
> Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
> ---
>  drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
> b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c index
> b8ff113..bf6eb06 100644 ---
> a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c +++
> b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c @@ -1111,6
> +1111,9 @@ static int solo_s_ctrl(struct v4l2_ctrl *ctrl) case
> V4L2_CID_MPEG_VIDEO_GOP_SIZE: solo_enc->gop = ctrl->val;
>  		return 0;
> +	case V4L2_CID_MPEG_VIDEO_H264_MIN_QP:
> +		solo_enc->qp = ctrl->val;
> +		return 0;
>  	case V4L2_CID_MOTION_THRESHOLD:
>  		solo_enc->motion_thresh = ctrl->val;
>  		if (!solo_enc->motion_global
> || !solo_enc->motion_enabled) @@ -1260,6 +1263,8 @@ static struct
> solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
> V4L2_CID_SHARPNESS, 0, 15, 1, 0); v4l2_ctrl_new_std(hdl,
> &solo_ctrl_ops, V4L2_CID_MPEG_VIDEO_GOP_SIZE, 1, 255, 1,
> solo_dev->fps);
> +	v4l2_ctrl_new_std(hdl, &solo_ctrl_ops,
> +			V4L2_CID_MPEG_VIDEO_H264_MIN_QP, 0, 31, 1,
> SOLO_DEFAULT_QP); v4l2_ctrl_new_custom(hdl,
> &solo_motion_threshold_ctrl, NULL); v4l2_ctrl_new_custom(hdl,
> &solo_motion_enable_ctrl, NULL); v4l2_ctrl_new_custom(hdl,
> &solo_osd_text_ctrl, NULL);

Signed-off-by: Ismael Luceno <ismael.luceno@corp.bluecherry.net>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] solo6x10: update GOP size, QP immediately
  2014-07-08 15:23 ` [PATCH 2/2] solo6x10: update GOP size, QP immediately Andrey Utkin
@ 2014-07-11  2:24   ` Ismael Luceno
  0 siblings, 0 replies; 5+ messages in thread
From: Ismael Luceno @ 2014-07-11  2:24 UTC (permalink / raw)
  To: linux-media; +Cc: Andrey Utkin, Hans Verkuil

[-- Attachment #1: Type: text/plain, Size: 1429 bytes --]

On Tue,  8 Jul 2014 18:23:33 +0300
Andrey Utkin <andrey.utkin@corp.bluecherry.net> wrote:
> Previously, it was needed to reopen device to update GOP size and
> quantization parameter. Now we update device registers with new values
> immediately.
> 
> Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
> ---
>  drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
> b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c index
> bf6eb06..14f933f 100644 ---
> a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c +++
> b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c @@ -1110,9
> +1110,13 @@ static int solo_s_ctrl(struct v4l2_ctrl *ctrl) ctrl->val);
>  	case V4L2_CID_MPEG_VIDEO_GOP_SIZE:
>  		solo_enc->gop = ctrl->val;
> +		solo_reg_write(solo_dev,
> SOLO_VE_CH_GOP(solo_enc->ch), solo_enc->gop);
> +		solo_reg_write(solo_dev,
> SOLO_VE_CH_GOP_E(solo_enc->ch), solo_enc->gop); return 0;
>  	case V4L2_CID_MPEG_VIDEO_H264_MIN_QP:
>  		solo_enc->qp = ctrl->val;
> +		solo_reg_write(solo_dev,
> SOLO_VE_CH_QP(solo_enc->ch), solo_enc->qp);
> +		solo_reg_write(solo_dev,
> SOLO_VE_CH_QP_E(solo_enc->ch), solo_enc->qp); return 0;
>  	case V4L2_CID_MOTION_THRESHOLD:
>  		solo_enc->motion_thresh = ctrl->val;

Signed-off-by: Ismael Luceno <ismael.luceno@corp.bluecherry.net>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] solo6x10: update GOP size, QP immediately
  2014-07-08 14:30 Andrey Utkin
@ 2014-07-08 14:30 ` Andrey Utkin
  0 siblings, 0 replies; 5+ messages in thread
From: Andrey Utkin @ 2014-07-08 14:30 UTC (permalink / raw)
  To: linux-kernel, devel, linux-media
  Cc: gregkh, m.chehab, ismael.luceno, Andrey Utkin

Previously, it was needed to reopen device to update GOP size and
quantization parameter. Now we update device registers with new values
immediately.
---
 drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
index bf6eb06..14f933f 100644
--- a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
+++ b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c
@@ -1110,9 +1110,13 @@ static int solo_s_ctrl(struct v4l2_ctrl *ctrl)
 					 ctrl->val);
 	case V4L2_CID_MPEG_VIDEO_GOP_SIZE:
 		solo_enc->gop = ctrl->val;
+		solo_reg_write(solo_dev, SOLO_VE_CH_GOP(solo_enc->ch), solo_enc->gop);
+		solo_reg_write(solo_dev, SOLO_VE_CH_GOP_E(solo_enc->ch), solo_enc->gop);
 		return 0;
 	case V4L2_CID_MPEG_VIDEO_H264_MIN_QP:
 		solo_enc->qp = ctrl->val;
+		solo_reg_write(solo_dev, SOLO_VE_CH_QP(solo_enc->ch), solo_enc->qp);
+		solo_reg_write(solo_dev, SOLO_VE_CH_QP_E(solo_enc->ch), solo_enc->qp);
 		return 0;
 	case V4L2_CID_MOTION_THRESHOLD:
 		solo_enc->motion_thresh = ctrl->val;
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-07-11  2:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-08 15:23 [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control Andrey Utkin
2014-07-08 15:23 ` [PATCH 2/2] solo6x10: update GOP size, QP immediately Andrey Utkin
2014-07-11  2:24   ` Ismael Luceno
2014-07-11  2:24 ` [PATCH 1/2] solo6x10: expose encoder quantization setting as V4L2 control Ismael Luceno
  -- strict thread matches above, loose matches on Subject: below --
2014-07-08 14:30 Andrey Utkin
2014-07-08 14:30 ` [PATCH 2/2] solo6x10: update GOP size, QP immediately Andrey Utkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).