All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: mediatek: vcodec: Report supported bitrate modes
@ 2022-06-22  8:36 Hirokazu Honda
  2022-06-22  9:35 ` Irui Wang
  2022-06-23  3:50 ` Chen-Yu Tsai
  0 siblings, 2 replies; 3+ messages in thread
From: Hirokazu Honda @ 2022-06-22  8:36 UTC (permalink / raw)
  To: linux-media; +Cc: Irui.Wang, stevecho, Hirokazu Honda

The media driver supports constant bitrate mode only.
The supported rate control mode is reported through querymenu() and
s_ctrl() fails if non constant bitrate mode (e.g. VBR) is requested.

Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
---
 .../media/platform/mediatek/vcodec/mtk_vcodec_enc.c   | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
index c21367038c34..98d451ce2545 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
@@ -50,6 +50,14 @@ static int vidioc_venc_s_ctrl(struct v4l2_ctrl *ctrl)
 	int ret = 0;
 
 	switch (ctrl->id) {
+	case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
+		mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_BITRATE_MODE val= %d",
+			       ctrl->val);
+		if (ctrl->val != V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) {
+			mtk_v4l2_err("Unsupported bitrate mode =%d", ctrl->val);
+			ret = -EINVAL;
+		}
+		break;
 	case V4L2_CID_MPEG_VIDEO_BITRATE:
 		mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_BITRATE val = %d",
 			       ctrl->val);
@@ -1373,6 +1381,9 @@ int mtk_vcodec_enc_ctrls_setup(struct mtk_vcodec_ctx *ctx)
 			       0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
 	v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_VP8_PROFILE,
 			       V4L2_MPEG_VIDEO_VP8_PROFILE_0, 0, V4L2_MPEG_VIDEO_VP8_PROFILE_0);
+	v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
+			       V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
+			       0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR);
 
 
 	if (handler->error) {
-- 
2.37.0.rc0.104.g0611611a94-goog


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

* Re: [PATCH] media: mediatek: vcodec: Report supported bitrate modes
  2022-06-22  8:36 [PATCH] media: mediatek: vcodec: Report supported bitrate modes Hirokazu Honda
@ 2022-06-22  9:35 ` Irui Wang
  2022-06-23  3:50 ` Chen-Yu Tsai
  1 sibling, 0 replies; 3+ messages in thread
From: Irui Wang @ 2022-06-22  9:35 UTC (permalink / raw)
  To: Hirokazu Honda, linux-media; +Cc: stevecho

Dear Hiro,

Thanks for the patch.
On Wed, 2022-06-22 at 17:36 +0900, Hirokazu Honda wrote:
> The media driver supports constant bitrate mode only.
> The supported rate control mode is reported through querymenu() and
> s_ctrl() fails if non constant bitrate mode (e.g. VBR) is requested.
> 
> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
> ---
>  .../media/platform/mediatek/vcodec/mtk_vcodec_enc.c   | 11
> +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> index c21367038c34..98d451ce2545 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> @@ -50,6 +50,14 @@ static int vidioc_venc_s_ctrl(struct v4l2_ctrl
> *ctrl)
>  	int ret = 0;
>  
>  	switch (ctrl->id) {
> +	case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
> +		mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_BITRATE_MODE
> val= %d",
> +			       ctrl->val);
> +		if (ctrl->val != V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) {
> +			mtk_v4l2_err("Unsupported bitrate mode =%d",
> ctrl->val);
> +			ret = -EINVAL;
> +		}
> +		break;
>  	case V4L2_CID_MPEG_VIDEO_BITRATE:
>  		mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_BITRATE val =
> %d",
>  			       ctrl->val);
> @@ -1373,6 +1381,9 @@ int mtk_vcodec_enc_ctrls_setup(struct
> mtk_vcodec_ctx *ctx)
>  			       0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
>  	v4l2_ctrl_new_std_menu(handler, ops,
> V4L2_CID_MPEG_VIDEO_VP8_PROFILE,
>  			       V4L2_MPEG_VIDEO_VP8_PROFILE_0, 0,
> V4L2_MPEG_VIDEO_VP8_PROFILE_0);
> +	v4l2_ctrl_new_std_menu(handler, ops,
> V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
> +			       V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
> +			       0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR);
>  
>  
>  	if (handler->error) {

Reviewed-by: Irui Wang <irui.wang@mediatek.com>


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

* Re: [PATCH] media: mediatek: vcodec: Report supported bitrate modes
  2022-06-22  8:36 [PATCH] media: mediatek: vcodec: Report supported bitrate modes Hirokazu Honda
  2022-06-22  9:35 ` Irui Wang
@ 2022-06-23  3:50 ` Chen-Yu Tsai
  1 sibling, 0 replies; 3+ messages in thread
From: Chen-Yu Tsai @ 2022-06-23  3:50 UTC (permalink / raw)
  To: Hirokazu Honda; +Cc: linux-media, Irui.Wang, stevecho

On Wed, Jun 22, 2022 at 4:37 PM Hirokazu Honda <hiroh@chromium.org> wrote:
>
> The media driver supports constant bitrate mode only.
> The supported rate control mode is reported through querymenu() and
> s_ctrl() fails if non constant bitrate mode (e.g. VBR) is requested.
>
> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
> ---
>  .../media/platform/mediatek/vcodec/mtk_vcodec_enc.c   | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> index c21367038c34..98d451ce2545 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> @@ -50,6 +50,14 @@ static int vidioc_venc_s_ctrl(struct v4l2_ctrl *ctrl)
>         int ret = 0;
>
>         switch (ctrl->id) {
> +       case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
> +               mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_BITRATE_MODE val= %d",
> +                              ctrl->val);
> +               if (ctrl->val != V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) {
> +                       mtk_v4l2_err("Unsupported bitrate mode =%d", ctrl->val);
> +                       ret = -EINVAL;

I wonder if this code will ever actually be hit. This driver uses
v4l2_ctrl_handler, and IIUC all controls are prevalidated by the core
before this callback is called.


ChenYu

> +               }
> +               break;
>         case V4L2_CID_MPEG_VIDEO_BITRATE:
>                 mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_BITRATE val = %d",
>                                ctrl->val);
> @@ -1373,6 +1381,9 @@ int mtk_vcodec_enc_ctrls_setup(struct mtk_vcodec_ctx *ctx)
>                                0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
>         v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_VP8_PROFILE,
>                                V4L2_MPEG_VIDEO_VP8_PROFILE_0, 0, V4L2_MPEG_VIDEO_VP8_PROFILE_0);
> +       v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
> +                              V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
> +                              0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR);
>
>
>         if (handler->error) {
> --
> 2.37.0.rc0.104.g0611611a94-goog
>

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

end of thread, other threads:[~2022-06-23  4:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-22  8:36 [PATCH] media: mediatek: vcodec: Report supported bitrate modes Hirokazu Honda
2022-06-22  9:35 ` Irui Wang
2022-06-23  3:50 ` Chen-Yu Tsai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.