Thanks. From OE/meta-arago perspective this patch now looks good. But from gstreamer perspective I cannot judge the change as I don't have enough expertise there. Can you please follow up on your submission to upstream gstreamer, as the maintainer there has some questions? Thanks!
-- Denys On Tue, Feb 22, 2022 at 12:11:45PM +0530, Sidraya Jayagond via lists.yoctoproject.org wrote: > From: Sidraya <[email protected]> > > When importing dmabufs, the video meta is set on the dest > buffer, but not on the src buffer. In this case, the src > buffer is not made aware of the stride of the video buffer, > which is needed to properly display the buffer. > > This is a result of the v4l2 plugin creating it's own > empty dmabuf pool of GstBuffers, and then assigning the > memory from the downstream GstBuffer. We then update the > video meta of the buffer in our pool, but not the downstream > pool. > > The downstream pool buffer should be updated as well. > > Signed-off-by: Sidraya <[email protected]> > --- > ...l-Set-Video-Meta-to-Imported-Buffers.patch | 58 +++++++++++++++++++ > .../gstreamer1.0-plugins-good_1.16.%.bbappend | 1 + > 2 files changed, 59 insertions(+) > create mode 100644 > meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2bufferpool-Set-Video-Meta-to-Imported-Buffers.patch > > diff --git > a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2bufferpool-Set-Video-Meta-to-Imported-Buffers.patch > > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2bufferpool-Set-Video-Meta-to-Imported-Buffers.patch > new file mode 100644 > index 00000000..59d9080c > --- /dev/null > +++ > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2bufferpool-Set-Video-Meta-to-Imported-Buffers.patch > @@ -0,0 +1,58 @@ > +From e677028494081f93558d24b1f72da9e6835ef954 Mon Sep 17 00:00:00 2001 > +From: Sidraya <[email protected]> > +Date: Mon, 18 Oct 2021 13:35:09 +0530 > +Subject: [PATCH] v4l2bufferpool: Set Video Meta to Imported Buffers > + > +When importing dmabufs, the video meta is set on the dest > +buffer, but not on the src buffer. In this case, the src > +buffer is not made aware of the stride of the video buffer, > +which is needed to properly display the buffer. > + > +This is a result of the v4l2 plugin creating it's own > +empty dmabuf pool of GstBuffers, and then assigning the > +memory from the downstream GstBuffer. We then update the > +video meta of the buffer in our pool, but not the downstream > +pool. > + > +The downstream pool buffer should be updated as well. > + > +Upstream-Status: Submitted > +https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1723#note_1266433 > + > +Signed-off-by: Sidraya <[email protected]> > +--- > + sys/v4l2/gstv4l2bufferpool.c | 11 +++++++++++ > + 1 file changed, 11 insertions(+) > + > +diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c > +index 49f222b6e..f4d964b9e 100644 > +--- a/sys/v4l2/gstv4l2bufferpool.c > ++++ b/sys/v4l2/gstv4l2bufferpool.c > +@@ -330,6 +330,10 @@ gst_v4l2_buffer_pool_import_dmabuf (GstV4l2BufferPool * > pool, > + GstMemory *dma_mem[GST_VIDEO_MAX_PLANES] = { 0 }; > + guint n_mem = gst_buffer_n_memory (src); > + gint i; > ++ GstV4l2Object *obj; > ++ GstVideoInfo *info; > ++ obj = pool->obj; > ++ info = &obj->info; > + > + GST_LOG_OBJECT (pool, "importing dmabuf"); > + > +@@ -346,6 +350,13 @@ gst_v4l2_buffer_pool_import_dmabuf (GstV4l2BufferPool * > pool, > + dma_mem)) > + goto import_failed; > + > ++ /* add metadata to raw video buffers */ > ++ if (pool->add_videometa) > ++ gst_buffer_add_video_meta_full (src, GST_VIDEO_FRAME_FLAG_NONE, > ++ GST_VIDEO_INFO_FORMAT (info), GST_VIDEO_INFO_WIDTH (info), > ++ GST_VIDEO_INFO_HEIGHT (info), GST_VIDEO_INFO_N_PLANES (info), > ++ info->offset, info->stride); > ++ > + gst_mini_object_set_qdata (GST_MINI_OBJECT (dest), GST_V4L2_IMPORT_QUARK, > + gst_buffer_ref (src), (GDestroyNotify) gst_buffer_unref); > + > +-- > +2.17.1 > + > diff --git > a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend > > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend > index 11513f2f..07cd08a7 100644 > --- > a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend > +++ > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend > @@ -10,6 +10,7 @@ SRC_URI += " \ > file://0001-qmlglsink-fix-build-on-EGL-platform-without-X11-head.patch \ > file://0001-gst-plugins-good-1.16.3-v4l2h264enc-Add-Extended-con.patch \ > file://0001-Avoiding-Failure-to-allocate-required-memory.patch \ > + file://0001-v4l2bufferpool-Set-Video-Meta-to-Imported-Buffers.patch \ > " > > PR_append = ".arago3" > -- > 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#13572): https://lists.yoctoproject.org/g/meta-arago/message/13572 Mute This Topic: https://lists.yoctoproject.org/mt/89312069/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-arago/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
