From 94172081d9bc1f358d799fcef2b6f07615bcca60 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 14 Mar 2014 17:03:45 +0000 Subject: [PATCH 179/196] V4L2: Increase threshold for switching between video & stills The threshold used to be hard and fast at 1280x720 and failed if either width or height exceeded those limits. Now it limits it at a pixel count of 1280*720 (ie 921600), so 1024x768 is now considered a video mode. Signed-off-by: Dave Stevenson --- drivers/media/platform/bcm2835/bcm2835-camera.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c index b6880cc..b1eac21 100644 --- a/drivers/media/platform/bcm2835/bcm2835-camera.c +++ b/drivers/media/platform/bcm2835/bcm2835-camera.c @@ -42,6 +42,9 @@ #define MAX_HEIGHT 1944 #define MIN_BUFFER_SIZE (80*1024) +/* Max number of pixels supported whilst still being considered + * a video mode by the GPU. + */ #define MAX_VIDEO_MODE_WIDTH 1280 #define MAX_VIDEO_MODE_HEIGHT 720 @@ -893,8 +896,8 @@ static int mmal_setup_components(struct bm2835_mmal_dev *dev, switch (mfmt->mmal_component) { case MMAL_COMPONENT_CAMERA: /* Make a further decision on port based on resolution */ - if (f->fmt.pix.width <= MAX_VIDEO_MODE_WIDTH - && f->fmt.pix.height <= MAX_VIDEO_MODE_HEIGHT) + if ((f->fmt.pix.width*f->fmt.pix.height) <= + (MAX_VIDEO_MODE_WIDTH * MAX_VIDEO_MODE_HEIGHT)) camera_port = port = &dev->component[MMAL_COMPONENT_CAMERA]-> output[MMAL_CAMERA_PORT_VIDEO]; -- 1.9.1