From 5ea6be3045713668ac15ec8a48134d284809a531 Mon Sep 17 00:00:00 2001 From: Patrik Jakobsson Date: Fri, 22 May 2020 15:45:38 +0200 Subject: [PATCH] Revert to discrete frame sizes and frame intervals Skype and other applications don't support stepwise frame sizes and frame intervals. Instead they try to handle them as discrete devices which fails. It seems they will never fix this so instead we reduce our functionality to just support the discrete type. Signed-off-by: Patrik Jakobsson --- fthd_v4l2.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/fthd_v4l2.c b/fthd_v4l2.c index 10914dd..99ea3d4 100644 --- a/fthd_v4l2.c +++ b/fthd_v4l2.c @@ -542,13 +542,9 @@ static int fthd_v4l2_ioctl_enum_framesizes(struct file *filp, void *priv, sizes->pixel_format != V4L2_PIX_FMT_YVYU) return -EINVAL; - sizes->type = V4L2_FRMSIZE_TYPE_STEPWISE; - sizes->stepwise.min_width = FTHD_MIN_WIDTH; - sizes->stepwise.max_width = FTHD_MAX_WIDTH; - sizes->stepwise.min_height = FTHD_MIN_HEIGHT; - sizes->stepwise.max_height = FTHD_MAX_HEIGHT; - sizes->stepwise.step_width = 8; - sizes->stepwise.step_height = 1; + sizes->type = V4L2_FRMSIZE_TYPE_DISCRETE; + sizes->discrete.width = FTHD_MAX_WIDTH; + sizes->discrete.height = FTHD_MAX_HEIGHT; return 0; } @@ -571,13 +567,9 @@ static int fthd_v4l2_ioctl_enum_frameintervals(struct file *filp, void *priv, || interval->height > FTHD_MAX_HEIGHT) return -EINVAL; - interval->type = V4L2_FRMIVAL_TYPE_STEPWISE; - interval->stepwise.step.numerator = 1; - interval->stepwise.step.denominator = 1000; - interval->stepwise.min.numerator = 33; - interval->stepwise.min.denominator = 1000; - interval->stepwise.max.numerator = 500; - interval->stepwise.max.denominator = 1000; + interval->type = V4L2_FRMIVAL_TYPE_DISCRETE; + interval->discrete.numerator = 1; + interval->discrete.denominator = 30; return 0; }