|
@@ -252,23 +252,22 @@ static int set_capture_size(struct go7007 *go, struct v4l2_format *fmt, int try)
|
|
|
go->modet_map[i] = 0;
|
|
|
|
|
|
if (go->board_info->sensor_flags & GO7007_SENSOR_SCALING) {
|
|
|
- struct v4l2_format res;
|
|
|
+ struct v4l2_mbus_framefmt mbus_fmt;
|
|
|
|
|
|
- if (fmt != NULL) {
|
|
|
- res = *fmt;
|
|
|
- } else {
|
|
|
- res.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
|
|
- res.fmt.pix.width = width;
|
|
|
- }
|
|
|
+ mbus_fmt.code = V4L2_MBUS_FMT_FIXED;
|
|
|
+ if (fmt != NULL)
|
|
|
+ mbus_fmt.width = fmt->fmt.pix.width;
|
|
|
+ else
|
|
|
+ mbus_fmt.width = width;
|
|
|
|
|
|
if (height > sensor_height / 2) {
|
|
|
- res.fmt.pix.height = height / 2;
|
|
|
+ mbus_fmt.height = height / 2;
|
|
|
go->encoder_v_halve = 0;
|
|
|
} else {
|
|
|
- res.fmt.pix.height = height;
|
|
|
+ mbus_fmt.height = height;
|
|
|
go->encoder_v_halve = 1;
|
|
|
}
|
|
|
- call_all(&go->v4l2_dev, video, s_fmt, &res);
|
|
|
+ call_all(&go->v4l2_dev, video, s_mbus_fmt, &mbus_fmt);
|
|
|
} else {
|
|
|
if (width <= sensor_width / 4) {
|
|
|
go->encoder_h_halve = 1;
|