Skip to content

Commit

Permalink
staging: bcm2835-codec: implement V4L2_CID_MIN_BUFFERS_FOR_CAPTURE
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
wens authored and popcornmix committed Aug 5, 2019
1 parent 5e484a3 commit 962099a
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
Original file line number Diff line number Diff line change
Expand Up @@ -2357,6 +2357,18 @@ static int bcm2835_codec_open(struct file *file)
}
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);
Expand Down

0 comments on commit 962099a

Please sign in to comment.