unsigned int            width;
        unsigned int            height;
        unsigned int            sizeimage;
+       unsigned int            sequence;
        struct m2mtest_fmt      *fmt;
 };
 
        bytes_left = bytesperline - tile_w * MEM2MEM_NUM_TILES;
        w = 0;
 
+       out_vb->v4l2_buf.sequence = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE)->sequence++;
+       in_vb->v4l2_buf.sequence = q_data->sequence++;
        memcpy(&out_vb->v4l2_buf.timestamp,
                        &in_vb->v4l2_buf.timestamp,
                        sizeof(struct timeval));
-       out_vb->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
-       out_vb->v4l2_buf.flags |=
-               in_vb->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
+       if (in_vb->v4l2_buf.flags & V4L2_BUF_FLAG_TIMECODE)
+               memcpy(&out_vb->v4l2_buf.timecode, &in_vb->v4l2_buf.timecode,
+                       sizeof(struct v4l2_timecode));
+       out_vb->v4l2_buf.field = in_vb->v4l2_buf.field;
+       out_vb->v4l2_buf.flags = in_vb->v4l2_buf.flags &
+               (V4L2_BUF_FLAG_TIMECODE |
+                V4L2_BUF_FLAG_KEYFRAME |
+                V4L2_BUF_FLAG_PFRAME |
+                V4L2_BUF_FLAG_BFRAME |
+                V4L2_BUF_FLAG_TSTAMP_SRC_MASK);
 
        switch (ctx->mode) {
        case MEM2MEM_HFLIP | MEM2MEM_VFLIP:
 static void m2mtest_buf_queue(struct vb2_buffer *vb)
 {
        struct m2mtest_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
+
        v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vb);
 }
 
+static int m2mtest_start_streaming(struct vb2_queue *q, unsigned count)
+{
+       struct m2mtest_ctx *ctx = vb2_get_drv_priv(q);
+       struct m2mtest_q_data *q_data = get_q_data(ctx, q->type);
+
+       q_data->sequence = 0;
+       return 0;
+}
+
 static int m2mtest_stop_streaming(struct vb2_queue *q)
 {
        struct m2mtest_ctx *ctx = vb2_get_drv_priv(q);
        .queue_setup     = m2mtest_queue_setup,
        .buf_prepare     = m2mtest_buf_prepare,
        .buf_queue       = m2mtest_buf_queue,
+       .start_streaming = m2mtest_start_streaming,
        .stop_streaming  = m2mtest_stop_streaming,
        .wait_prepare    = vb2_ops_wait_prepare,
        .wait_finish     = vb2_ops_wait_finish,