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 <patrik.r.jakobsson@gmail.com>
This commit is contained in:
Patrik Jakobsson
2020-05-22 15:45:38 +02:00
parent e989703071
commit 545cb18e2a

View File

@@ -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;
}