mirror of
https://github.com/patjak/facetimehd.git
synced 2026-04-09 19:10:01 +02:00
facetimehd: Fail when too small buffers are requested
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
This commit is contained in:
11
fthd_v4l2.c
11
fthd_v4l2.c
@@ -46,6 +46,7 @@ static int fthd_buffer_queue_setup(struct vb2_queue *vq,
|
||||
unsigned int sizes[], void *alloc_ctxs[])
|
||||
{
|
||||
struct fthd_private *dev_priv = vb2_get_drv_priv(vq);
|
||||
struct v4l2_pix_format *cur_fmt = &dev_priv->fmt.fmt;
|
||||
int i, total_size = 0;
|
||||
|
||||
*nplanes = dev_priv->fmt.planes;
|
||||
@@ -53,8 +54,13 @@ static int fthd_buffer_queue_setup(struct vb2_queue *vq,
|
||||
if (!*nplanes)
|
||||
return -EINVAL;
|
||||
|
||||
for(i = 0; i < *nplanes; i++) {
|
||||
sizes[i] = dev_priv->fmt.fmt.sizeimage;
|
||||
/* FIXME: We assume single plane format here but not below */
|
||||
if (fmt && fmt->fmt.pix.sizeimage <
|
||||
(cur_fmt->bytesperline * cur_fmt->height))
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < *nplanes; i++) {
|
||||
sizes[i] = cur_fmt->sizeimage;
|
||||
alloc_ctxs[i] = dev_priv->alloc_ctx;
|
||||
total_size += sizes[i];
|
||||
}
|
||||
@@ -65,6 +71,7 @@ static int fthd_buffer_queue_setup(struct vb2_queue *vq,
|
||||
if (*nbuffers <= 1)
|
||||
return -ENOMEM;
|
||||
pr_debug("using %d buffers\n", *nbuffers);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user