You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From 8ffc08d336326d576b84d59135402f08cf2cf41c Mon Sep 17 00:00:00 2001
|
|
From: Chen-Yu Tsai <wens@csie.org>
|
|
Date: Mon, 22 Jul 2019 22:13:30 +0800
|
|
Subject: [PATCH] staging: bcm2835-codec: implement
|
|
V4L2_CID_MIN_BUFFERS_FOR_CAPTURE
|
|
|
|
The stateful decoder specification shows an optional step for retrieving
|
|
the miminum number of capture buffers required for the decoder to
|
|
proceed. While not a required parameter, having it makes some
|
|
applications happy.
|
|
|
|
bcm2835-codec is a little different from other decoder implementations
|
|
in that there is an intermediate format conversion between the hardware
|
|
and V4L2 buffers. The number of capture buffers required is therefore
|
|
independent of the stream and DPB etc.
|
|
|
|
There are plans to remove the conversion, but it requires a fair amount
|
|
of rework within the firmware. Until that is done, simply return a value
|
|
of 1.
|
|
|
|
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
|
|
---
|
|
.../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 12 ++++++++++++
|
|
1 file changed, 12 insertions(+)
|
|
|
|
--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
|
|
+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
|
|
@@ -2357,6 +2357,18 @@ static int bcm2835_codec_open(struct fil
|
|
}
|
|
ctx->fh.ctrl_handler = hdl;
|
|
v4l2_ctrl_handler_setup(hdl);
|
|
+ } else if (dev->role == DECODE) {
|
|
+ v4l2_ctrl_handler_init(hdl, 1);
|
|
+
|
|
+ v4l2_ctrl_new_std(hdl, &bcm2835_codec_ctrl_ops,
|
|
+ V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
|
+ 1, 1, 1, 1);
|
|
+ if (hdl->error) {
|
|
+ rc = hdl->error;
|
|
+ goto free_ctrl_handler;
|
|
+ }
|
|
+ ctx->fh.ctrl_handler = hdl;
|
|
+ v4l2_ctrl_handler_setup(hdl);
|
|
}
|
|
|
|
ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx, &queue_init);
|