From 545cb18e2af1dc6853e9ade644f8d0fb54d257b1 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 | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/fthd_v4l2.c b/fthd_v4l2.c index 6e6b768..ae143bf 100644 --- a/fthd_v4l2.c +++ b/fthd_v4l2.c @@ -546,13 +546,10 @@ 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; } @@ -574,13 +571,10 @@ 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; }