|
@@ -569,6 +569,7 @@ static int ivtv_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f
|
|
|
struct ivtv_open_id *id = fh;
|
|
|
struct ivtv *itv = id->itv;
|
|
|
struct cx2341x_mpeg_params *p = &itv->params;
|
|
|
+ struct v4l2_mbus_framefmt mbus_fmt;
|
|
|
int ret = ivtv_try_fmt_vid_cap(file, fh, fmt);
|
|
|
int w = fmt->fmt.pix.width;
|
|
|
int h = fmt->fmt.pix.height;
|
|
@@ -586,7 +587,10 @@ static int ivtv_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f
|
|
|
p->height = h;
|
|
|
if (p->video_encoding == V4L2_MPEG_VIDEO_ENCODING_MPEG_1)
|
|
|
fmt->fmt.pix.width /= 2;
|
|
|
- v4l2_subdev_call(itv->sd_video, video, s_fmt, fmt);
|
|
|
+ mbus_fmt.width = fmt->fmt.pix.width;
|
|
|
+ mbus_fmt.height = h;
|
|
|
+ mbus_fmt.code = V4L2_MBUS_FMT_FIXED;
|
|
|
+ v4l2_subdev_call(itv->sd_video, video, s_mbus_fmt, &mbus_fmt);
|
|
|
return ivtv_g_fmt_vid_cap(file, fh, fmt);
|
|
|
}
|
|
|
|