media: bttv: copy vid fmt/width/height from fh

In preparation for the vb2 conversion, copy the video format, width and
height fields from struct bttv_fh and add them to the main struct bttv.
Use these fields from struct bttv wherever they will be needed after the
vb2 conversion which stops using separate bttv file handles altogether. To
avoid changing more code than necessary, just leave the video format,
width and height fields in separate file handles wherever the code will be
subsequently removed by vb2.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
Deborah Brouwer
2023-07-14 19:16:00 -07:00
committed by CrazyCat
parent 39bfb3c14b
commit 6c84fe0efa
2 changed files with 20 additions and 17 deletions

View File

@@ -2066,11 +2066,11 @@ static int bttv_g_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f) struct v4l2_format *f)
{ {
struct bttv_fh *fh = priv; struct bttv_fh *fh = priv;
struct bttv *btv = video_drvdata(file);
pix_format_set_size(&f->fmt.pix, fh->fmt, pix_format_set_size(&f->fmt.pix, btv->fmt, btv->width, btv->height);
fh->width, fh->height);
f->fmt.pix.field = fh->cap.field; f->fmt.pix.field = fh->cap.field;
f->fmt.pix.pixelformat = fh->fmt->fourcc; f->fmt.pix.pixelformat = btv->fmt->fourcc;
f->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M; f->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M;
return 0; return 0;
@@ -2190,6 +2190,9 @@ static int bttv_s_fmt_vid_cap(struct file *file, void *priv,
btv->init.fmt = fmt; btv->init.fmt = fmt;
btv->init.width = f->fmt.pix.width; btv->init.width = f->fmt.pix.width;
btv->init.height = f->fmt.pix.height; btv->init.height = f->fmt.pix.height;
btv->fmt = fmt;
btv->width = f->fmt.pix.width;
btv->height = f->fmt.pix.height;
return 0; return 0;
} }
@@ -2446,21 +2449,15 @@ static int bttv_s_selection(struct file *file, void *f, struct v4l2_selection *s
fh->do_crop = 1; fh->do_crop = 1;
if (fh->width < c.min_scaled_width) { if (btv->width < c.min_scaled_width)
fh->width = c.min_scaled_width; btv->width = c.min_scaled_width;
btv->init.width = c.min_scaled_width; else if (btv->width > c.max_scaled_width)
} else if (fh->width > c.max_scaled_width) { btv->width = c.max_scaled_width;
fh->width = c.max_scaled_width;
btv->init.width = c.max_scaled_width;
}
if (fh->height < c.min_scaled_height) { if (btv->height < c.min_scaled_height)
fh->height = c.min_scaled_height; btv->height = c.min_scaled_height;
btv->init.height = c.min_scaled_height; else if (btv->height > c.max_scaled_height)
} else if (fh->height > c.max_scaled_height) { btv->height = c.max_scaled_height;
fh->height = c.max_scaled_height;
btv->init.height = c.max_scaled_height;
}
return 0; return 0;
} }
@@ -3636,6 +3633,9 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
btv->init.fmt = format_by_fourcc(V4L2_PIX_FMT_BGR24); btv->init.fmt = format_by_fourcc(V4L2_PIX_FMT_BGR24);
btv->init.width = 320; btv->init.width = 320;
btv->init.height = 240; btv->init.height = 240;
btv->fmt = format_by_fourcc(V4L2_PIX_FMT_BGR24);
btv->width = 320;
btv->height = 240;
btv->input = 0; btv->input = 0;
v4l2_ctrl_new_std(hdl, &bttv_ctrl_ops, v4l2_ctrl_new_std(hdl, &bttv_ctrl_ops,

View File

@@ -449,6 +449,9 @@ struct bttv {
unsigned int users; unsigned int users;
struct bttv_fh init; struct bttv_fh init;
const struct bttv_format *fmt;
int width;
int height;
/* used to make dvb-bt8xx autoloadable */ /* used to make dvb-bt8xx autoloadable */
struct work_struct request_module_wk; struct work_struct request_module_wk;