try, try again
authorJohn Tsiombikas <nuclear@mutantstargoat.com>
Sun, 14 May 2017 01:59:52 +0000 (04:59 +0300)
committerJohn Tsiombikas <nuclear@mutantstargoat.com>
Sun, 14 May 2017 01:59:52 +0000 (04:59 +0300)
vdummy.c

index b0caa82..9848db6 100644 (file)
--- a/vdummy.c
+++ b/vdummy.c
@@ -14,7 +14,7 @@
 #include <media/v4l2-event.h>
 
 struct buffer {
-       struct vb2_buffer vb;
+       struct vb2_v4l2_buffer vb;
        struct buffer *next;
 };
 
@@ -268,7 +268,6 @@ static int buf_prepare(struct vb2_buffer *vb)
                printk(KERN_ALERT "vdummy: buffer too small\n");
                return -EINVAL;
        }
-       vb2_set_plane_payload(vb, 0, frame_size);
        return 0;
 }
 
@@ -293,7 +292,7 @@ static void clear_queue(enum vb2_buffer_state st)
        while(buflist) {
                struct buffer *buf = buflist;
                buflist = buflist->next;
-               vb2_buffer_done(&buf->vb, st);
+               vb2_buffer_done(&buf->vb.vb2_buf, st);
        }
        buflist = buflist_tail = 0;
        spin_unlock(&blist_lock);
@@ -363,15 +362,13 @@ static int gen_frame(void)
        spin_unlock(&blist_lock);
 
        if(buf) {
-               struct vb2_v4l2_buffer *vvbuf;
+               memcpy(vb2_plane_vaddr(&buf->vb.vb2_buf, 0), frame, frame_size);
 
-               memcpy(vb2_plane_vaddr(&buf->vb, 0), frame, frame_size);
-
-               vvbuf = to_vb2_v4l2_buffer(&buf->vb);
-               buf->vb.timestamp = ktime_get_ns();
-               vvbuf->sequence = seqno++;
-               vvbuf->field = V4L2_FIELD_NONE;
-               vb2_buffer_done(&buf->vb, VB2_BUF_STATE_DONE);
+               buf->vb.vb2_buf.timestamp = ktime_get_ns();
+               buf->vb.sequence = seqno++;
+               buf->vb.field = V4L2_FIELD_NONE;
+               vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_DONE);
+               vb2_set_plane_payload(&buf->vb.vb2_buf, 0, frame_size);
        }
 
        return 0;