diff mbox

[2/2] solo6x10: update GOP size, QP immediately

Message ID 1404833013-18627-2-git-send-email-andrey.utkin@corp.bluecherry.net (mailing list archive)
State New, archived
Headers show

Commit Message

Andrey Utkin July 8, 2014, 3:23 p.m. UTC
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(+)

Comments

Ismael Luceno July 11, 2014, 2:24 a.m. UTC | #1
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>
diff mbox

Patch

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;