Skip to content
Open

wip #297

Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions v4l2loopback/v4l2loopback-dc.c
Original file line number Diff line number Diff line change
Expand Up @@ -675,7 +675,7 @@ vidioc_enum_frameintervals(struct file *file,
struct v4l2_frmivalenum *argp)
{
struct v4l2_loopback_device *dev = v4l2loopback_getdevice(file);
struct v4l2_loopback_opener *opener = file->private_data;
struct v4l2_loopback_opener *opener = file_to_v4l2_fh(file);

if (dev->ready_for_capture) {
if (opener->vidioc_enum_frameintervals_calls > 0)
Expand Down Expand Up @@ -1423,7 +1423,7 @@ vidioc_reqbufs (struct file *file,
MARK();

dev=v4l2loopback_getdevice(file);
opener = file->private_data;
opener = file_to_v4l2_fh(file);

dprintk("reqbufs: %d\t%d=%d", b->memory, b->count, dev->buffers_number);
if (opener->timeout_image_io) {
Expand Down Expand Up @@ -1497,7 +1497,7 @@ vidioc_querybuf (struct file *file,
type = b->type;
index = b->index;
dev=v4l2loopback_getdevice(file);
opener = file->private_data;
opener = file_to_v4l2_fh(file);

if ((b->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
(b->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)) {
Expand Down Expand Up @@ -1547,7 +1547,7 @@ vidioc_qbuf (struct file *file,
int index;

dev=v4l2loopback_getdevice(file);
opener = file->private_data;
opener = file_to_v4l2_fh(file);

if (buf->index > MAX_BUFFERS)
return -EINVAL;
Expand Down Expand Up @@ -1591,7 +1591,7 @@ static int
get_capture_buffer(struct file *file)
{
struct v4l2_loopback_device *dev = v4l2loopback_getdevice(file);
struct v4l2_loopback_opener *opener = file->private_data;
struct v4l2_loopback_opener *opener = file_to_v4l2_fh(file);
int pos, ret;
int timeout_happened;

Expand Down Expand Up @@ -1641,7 +1641,7 @@ vidioc_dqbuf (struct file *file,
struct v4l2l_buffer *b;

dev=v4l2loopback_getdevice(file);
opener = file->private_data;
opener = file_to_v4l2_fh(file);
if (opener->timeout_image_io) {
*buf = dev->timeout_image_buffer.buffer;
return 0;
Expand Down Expand Up @@ -1689,7 +1689,7 @@ vidioc_streamon (struct file *file,
MARK();

dev=v4l2loopback_getdevice(file);
opener = file->private_data;
opener = file_to_v4l2_fh(file);

switch (type) {
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
Expand Down Expand Up @@ -1785,7 +1785,7 @@ v4l2_loopback_mmap (struct file *file,
size = (unsigned long) (vma->vm_end - vma->vm_start);

dev=v4l2loopback_getdevice(file);
opener=file->private_data;
opener=file_to_v4l2_fh(file);

if (size > dev->buffer_size) {
dprintk("userspace tries to mmap too much, fail\n");
Expand Down Expand Up @@ -1859,7 +1859,7 @@ v4l2_loopback_poll (struct file *file,
int ret_mask = 0;
MARK();

opener = file->private_data;
opener = file_to_v4l2_fh(file);
dev = v4l2loopback_getdevice(file);

switch (opener->type) {
Expand Down Expand Up @@ -1888,6 +1888,8 @@ v4l2_loopback_open (struct file *file)
struct v4l2_loopback_opener *opener;
MARK();

// TODO: long term, this driver should be rewritten to v4l2_fh, similar to dw100.c
v4l2_fh_init(file, video_devdata(file));
dev=v4l2loopback_getdevice(file);

if (dev->open_count.counter >= dev->max_openers)
Expand All @@ -1896,7 +1898,7 @@ v4l2_loopback_open (struct file *file)
opener = kzalloc(sizeof(*opener), GFP_KERNEL);
if (opener == NULL)
return -ENOMEM;
file->private_data = opener;
file_to_v4l2_fh(file) = opener;
atomic_inc(&dev->open_count);

opener->timeout_image_io = dev->timeout_image_io;
Expand Down Expand Up @@ -1937,7 +1939,7 @@ v4l2_loopback_close (struct file *file)
struct v4l2_loopback_device *dev;
MARK();

opener = file->private_data;
opener = file_to_v4l2_fh(file);
dev = v4l2loopback_getdevice(file);

atomic_dec(&dev->open_count);
Expand All @@ -1962,7 +1964,7 @@ v4l2_loopback_read (struct file *file,
struct v4l2_loopback_device *dev;
MARK();

opener = file->private_data;
opener = file_to_v4l2_fh(file);
dev = v4l2loopback_getdevice(file);

read_index = get_capture_buffer(file);
Expand Down