|
@@ -48,9 +48,14 @@ static int uvc_queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt,
|
|
|
struct uvc_streaming *stream =
|
|
|
container_of(queue, struct uvc_streaming, queue);
|
|
|
|
|
|
+ /* Make sure the image size is large enough. */
|
|
|
+ if (fmt && fmt->fmt.pix.sizeimage < stream->ctrl.dwMaxVideoFrameSize)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
*nplanes = 1;
|
|
|
|
|
|
- sizes[0] = stream->ctrl.dwMaxVideoFrameSize;
|
|
|
+ sizes[0] = fmt ? fmt->fmt.pix.sizeimage
|
|
|
+ : stream->ctrl.dwMaxVideoFrameSize;
|
|
|
|
|
|
return 0;
|
|
|
}
|