linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] new control V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME
@ 2016-01-14 14:50 Wu-Cheng Li
  2016-01-14 14:50 ` [PATCH v3 1/2] v4l: add V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Wu-Cheng Li @ 2016-01-14 14:50 UTC (permalink / raw)
  To: pawel, mchehab, hverkuil, k.debski, crope, standby24x7, wuchengli,
	nicolas.dufresne, ricardo.ribalda, ao2, bparrot, kyungmin.park,
	jtp.park
  Cc: linux-media, linux-kernel, linux-api, linux-arm-kernel,
	tiffany.lin, djkurtz

v3 addressed Hans' comment to remove the name of the control in s5p-mfc.

Wu-Cheng Li (2):
  v4l: add V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.
  s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.

 Documentation/DocBook/media/v4l/controls.xml |  8 ++++++++
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 12 ++++++++++++
 drivers/media/v4l2-core/v4l2-ctrls.c         |  2 ++
 include/uapi/linux/v4l2-controls.h           |  1 +
 4 files changed, 23 insertions(+)

-- 
2.6.0.rc2.230.g3dd15c0

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

* [PATCH v3 1/2] v4l: add V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.
  2016-01-14 14:50 [PATCH v3 0/2] new control V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
@ 2016-01-14 14:50 ` Wu-Cheng Li
  2016-01-14 14:50 ` [PATCH v3 2/2] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
       [not found] ` <1452783007-80883-1-git-send-email-wuchengli-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  2 siblings, 0 replies; 5+ messages in thread
From: Wu-Cheng Li @ 2016-01-14 14:50 UTC (permalink / raw)
  To: pawel, mchehab, hverkuil, k.debski, crope, standby24x7, wuchengli,
	nicolas.dufresne, ricardo.ribalda, ao2, bparrot, kyungmin.park,
	jtp.park
  Cc: linux-media, linux-kernel, linux-api, linux-arm-kernel,
	tiffany.lin, djkurtz

Some drivers also need a control like
V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE to force an encoder
I frame. Add a general V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME
so the new drivers and applications can use it.

Signed-off-by: Wu-Cheng Li <wuchengli@chromium.org>
---
 Documentation/DocBook/media/v4l/controls.xml | 8 ++++++++
 drivers/media/v4l2-core/v4l2-ctrls.c         | 2 ++
 include/uapi/linux/v4l2-controls.h           | 1 +
 3 files changed, 11 insertions(+)

diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index f13a429..6760cf5 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -2330,6 +2330,14 @@ vertical search range for motion estimation module in video encoder.</entry>
 	      </row>
 
 	      <row><entry></entry></row>
+	      <row id="v4l2-mpeg-video-force-i-frame">
+		<entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME</constant>&nbsp;</entry>
+		<entry>button</entry>
+	      </row><row><entry spanname="descr">Force an I frame for the next queued buffer. Applicable to encoders.
+This is a general, codec-agnostic keyframe control.</entry>
+	      </row>
+
+	      <row><entry></entry></row>
 	      <row>
 		<entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE</constant>&nbsp;</entry>
 		<entry>integer</entry>
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
index c9d5537..33ecb7b 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -747,6 +747,7 @@ const char *v4l2_ctrl_get_name(u32 id)
 	case V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE:		return "Horizontal MV Search Range";
 	case V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE:		return "Vertical MV Search Range";
 	case V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER:		return "Repeat Sequence Header";
+	case V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME:			return "Force an I frame";
 
 	/* VPX controls */
 	case V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS:		return "VPX Number of Partitions";
@@ -985,6 +986,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
 	case V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE:
 		*type = V4L2_CTRL_TYPE_INTEGER;
 		break;
+	case V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME:
 	case V4L2_CID_PAN_RESET:
 	case V4L2_CID_TILT_RESET:
 	case V4L2_CID_FLASH_STROBE:
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 2d225bc..1c911b8 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -390,6 +390,7 @@ enum v4l2_mpeg_video_multi_slice_mode {
 #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER		(V4L2_CID_MPEG_BASE+226)
 #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE		(V4L2_CID_MPEG_BASE+227)
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE		(V4L2_CID_MPEG_BASE+228)
+#define V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME		(V4L2_CID_MPEG_BASE+229)
 
 #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP		(V4L2_CID_MPEG_BASE+300)
 #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP		(V4L2_CID_MPEG_BASE+301)
-- 
2.6.0.rc2.230.g3dd15c0

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

* [PATCH v3 2/2] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.
  2016-01-14 14:50 [PATCH v3 0/2] new control V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
  2016-01-14 14:50 ` [PATCH v3 1/2] v4l: add V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
@ 2016-01-14 14:50 ` Wu-Cheng Li
  2016-01-14 17:25   ` Kamil Debski
       [not found] ` <1452783007-80883-1-git-send-email-wuchengli-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  2 siblings, 1 reply; 5+ messages in thread
From: Wu-Cheng Li @ 2016-01-14 14:50 UTC (permalink / raw)
  To: pawel, mchehab, hverkuil, k.debski, crope, standby24x7, wuchengli,
	nicolas.dufresne, ricardo.ribalda, ao2, bparrot, kyungmin.park,
	jtp.park
  Cc: linux-media, linux-kernel, linux-api, linux-arm-kernel,
	tiffany.lin, djkurtz

Signed-off-by: Wu-Cheng Li <wuchengli@chromium.org>
---
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
index 0434f02..974b4c5 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
@@ -212,6 +212,14 @@ static struct mfc_control controls[] = {
 		.menu_skip_mask = 0,
 	},
 	{
+		.id = V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME,
+		.type = V4L2_CTRL_TYPE_BUTTON,
+		.minimum = 0,
+		.maximum = 0,
+		.step = 0,
+		.default_value = 0,
+	},
+	{
 		.id = V4L2_CID_MPEG_VIDEO_VBV_SIZE,
 		.type = V4L2_CTRL_TYPE_INTEGER,
 		.minimum = 0,
@@ -1423,6 +1431,10 @@ static int s5p_mfc_enc_s_ctrl(struct v4l2_ctrl *ctrl)
 	case V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE:
 		ctx->force_frame_type = ctrl->val;
 		break;
+	case V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME:
+		ctx->force_frame_type =
+			V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME;
+		break;
 	case V4L2_CID_MPEG_VIDEO_VBV_SIZE:
 		p->vbv_size = ctrl->val;
 		break;
-- 
2.6.0.rc2.230.g3dd15c0

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

* Re: [PATCH v3 0/2] new control V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME
       [not found] ` <1452783007-80883-1-git-send-email-wuchengli-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
@ 2016-01-14 15:05   ` Nicolas Dufresne
  0 siblings, 0 replies; 5+ messages in thread
From: Nicolas Dufresne @ 2016-01-14 15:05 UTC (permalink / raw)
  To: Wu-Cheng Li, pawel-FA/gS7QP4orQT0dZR+AlfA,
	mchehab-JPH+aEBZ4P+UEJcrhfAQsw, hverkuil-qWit8jRvyhVmR6Xm/wNWPw,
	k.debski-Sze3O3UU22JBDgjK7y7TUQ, crope-X3B1VOXEql0,
	standby24x7-Re5JQEeQqe8AvxtiuMwx3w,
	ricardo.ribalda-Re5JQEeQqe8AvxtiuMwx3w, ao2-qKGr9MkilAE,
	bparrot-l0cyMroinI0, kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	jtp.park-Sze3O3UU22JBDgjK7y7TUQ
  Cc: linux-media-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-api-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	tiffany.lin-NuS5LvNUpcJWk0Htik3J/w,
	djkurtz-F7+t8E8rja9g9hUCZPvPmw

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

Le jeudi 14 janvier 2016 à 22:50 +0800, Wu-Cheng Li a écrit :
> v3 addressed Hans' comment to remove the name of the control in s5p-
> mfc.
> 
> Wu-Cheng Li (2):
>   v4l: add V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.

Hans suggested to name it V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME.

regards,
Nicolas

>   s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.
> 
>  Documentation/DocBook/media/v4l/controls.xml |  8 ++++++++
>  drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 12 ++++++++++++
>  drivers/media/v4l2-core/v4l2-ctrls.c         |  2 ++
>  include/uapi/linux/v4l2-controls.h           |  1 +
>  4 files changed, 23 insertions(+)
> 

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

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

* RE: [PATCH v3 2/2] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.
  2016-01-14 14:50 ` [PATCH v3 2/2] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
@ 2016-01-14 17:25   ` Kamil Debski
  0 siblings, 0 replies; 5+ messages in thread
From: Kamil Debski @ 2016-01-14 17:25 UTC (permalink / raw)
  To: 'Wu-Cheng Li', pawel, mchehab, hverkuil, crope,
	standby24x7, nicolas.dufresne, ricardo.ribalda, ao2, bparrot,
	kyungmin.park, jtp.park
  Cc: linux-api, linux-kernel, djkurtz, tiffany.lin, linux-arm-kernel,
	linux-media

Hi,

> From: Wu-Cheng Li [mailto:wuchengli@chromium.org]
> Sent: Thursday, January 14, 2016 3:50 PM
> To: pawel@osciak.com; mchehab@osg.samsung.com; hverkuil@xs4all.nl;
> k.debski@samsung.com; crope@iki.fi; standby24x7@gmail.com;
> wuchengli@chromium.org; nicolas.dufresne@collabora.com;
> ricardo.ribalda@gmail.com; ao2@ao2.it; bparrot@ti.com;
> kyungmin.park@samsung.com; jtp.park@samsung.com
> Cc: linux-media@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
> api@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> tiffany.lin@mediatek.com; djkurtz@chromium.org
> Subject: [PATCH v3 2/2] s5p-mfc: add the support of
> V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME.

However simple the patch is, please do provide a commit message.
Please write something. 

Best wishes,
Kamil

> Signed-off-by: Wu-Cheng Li <wuchengli@chromium.org>
> ---
>  drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> index 0434f02..974b4c5 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> @@ -212,6 +212,14 @@ static struct mfc_control controls[] = {
>  		.menu_skip_mask = 0,
>  	},
>  	{
> +		.id = V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME,
> +		.type = V4L2_CTRL_TYPE_BUTTON,
> +		.minimum = 0,
> +		.maximum = 0,
> +		.step = 0,
> +		.default_value = 0,
> +	},
> +	{
>  		.id = V4L2_CID_MPEG_VIDEO_VBV_SIZE,
>  		.type = V4L2_CTRL_TYPE_INTEGER,
>  		.minimum = 0,
> @@ -1423,6 +1431,10 @@ static int s5p_mfc_enc_s_ctrl(struct v4l2_ctrl
*ctrl)
>  	case V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE:
>  		ctx->force_frame_type = ctrl->val;
>  		break;
> +	case V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME:
> +		ctx->force_frame_type =
> +
> 	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME;
> +		break;
>  	case V4L2_CID_MPEG_VIDEO_VBV_SIZE:
>  		p->vbv_size = ctrl->val;
>  		break;
> --
> 2.6.0.rc2.230.g3dd15c0

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

end of thread, other threads:[~2016-01-14 17:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-14 14:50 [PATCH v3 0/2] new control V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
2016-01-14 14:50 ` [PATCH v3 1/2] v4l: add V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
2016-01-14 14:50 ` [PATCH v3 2/2] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Wu-Cheng Li
2016-01-14 17:25   ` Kamil Debski
     [not found] ` <1452783007-80883-1-git-send-email-wuchengli-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2016-01-14 15:05   ` [PATCH v3 0/2] new control V4L2_CID_MPEG_VIDEO_FORCE_I_FRAME Nicolas Dufresne

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).