v4l2: fill out v4l2_buffer.bytesused field for v4l2sink
authorPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 20 Aug 2012 07:52:32 +0000 (09:52 +0200)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 4 May 2013 10:19:14 +0000 (11:19 +0100)
When queuing a buffer for a sink, bytesused must contain the actual
amount of data.

For a source, the driver must overwrite this, so it doesn't matter
what is set here.

https://bugzilla.gnome.org/show_bug.cgi?id=699598

sys/v4l2/gstv4l2bufferpool.c

index 3bf6d11..fc5cf5a 100644 (file)
@@ -645,9 +645,12 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf)
   }
 
   index = meta->vbuffer.index;
+  meta->vbuffer.bytesused = gst_buffer_get_size (buf);
 
-  GST_LOG_OBJECT (pool, "enqueue buffer %p, index:%d, queued:%d, flags:%08x",
-      buf, index, pool->num_queued, meta->vbuffer.flags);
+  GST_LOG_OBJECT (pool,
+      "enqueue buffer %p, index:%d, queued:%d, flags:%08x used:%d",
+      buf, index, pool->num_queued, meta->vbuffer.flags,
+      meta->vbuffer.bytesused);
 
   if (pool->buffers[index] != NULL)
     goto already_queued;