summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodor Tomov <todor.tomov@linaro.org>2017-04-10 08:56:00 +0000
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2017-04-10 12:49:39 -0400
commit081bae28499612734b8e5c66ed2088b286315811 (patch)
tree6461f6ab12b7633b7e288379a5f69a934291b800
parentd6b145df5f84d4ba8f151aa7fda2e6dd4eb74173 (diff)
v4l2object: Copy timestamp when importing buffers
This is needed for V4L2_OUTPUT interface, and is harmless of V4L2_CAPTURE interfaces. This will fix timestamp in cases like: v4l2src io-mode=dmabuf ! v4l2videoNenc output-io-mode=dmabuf-import ! ... Same apply for userptr. https://bugzilla.gnome.org/show_bug.cgi?id=781119
-rw-r--r--sys/v4l2/gstv4l2bufferpool.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index b795e4a73..48cda0f7e 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -292,6 +292,9 @@ gst_v4l2_buffer_pool_import_userptr (GstV4l2BufferPool * pool,
gst_mini_object_set_qdata (GST_MINI_OBJECT (dest), GST_V4L2_IMPORT_QUARK,
data, (GDestroyNotify) _unmap_userptr_frame);
+ gst_buffer_copy_into (dest, src,
+ GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+
return ret;
not_our_buffer:
@@ -346,6 +349,9 @@ gst_v4l2_buffer_pool_import_dmabuf (GstV4l2BufferPool * pool,
gst_mini_object_set_qdata (GST_MINI_OBJECT (dest), GST_V4L2_IMPORT_QUARK,
gst_buffer_ref (src), (GDestroyNotify) gst_buffer_unref);
+ gst_buffer_copy_into (dest, src,
+ GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+
return GST_FLOW_OK;
not_our_buffer: