gstreamer: update plugins recipes for L4T R35.4.1

Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
Signed-off-by: Matt Madison <matt@madison.systems>
This commit is contained in:
Ilies CHERGUI
2023-08-06 23:45:54 +01:00
committed by Matt Madison
parent 381a6ed8d0
commit 0924501b2e
11 changed files with 83 additions and 73 deletions

View File

@@ -1,7 +1,7 @@
DESCRIPTION = "NVIDIA nvarguscamerasrc GStreamer plugin"
SECTION = "multimedia"
LICENSE = "BSD-3-Clause & Proprietary"
LIC_FILES_CHKSUM = "file://nvbuf_utils.h;endline=9;md5=e74e59ff8c4105650b55b3a26f41d7ac \
LIC_FILES_CHKSUM = "file://nvbufsurface.h;endline=9;md5=25279494f0285af8ac21bc9d4e679c91 \
file://README.txt;endline=25;md5=364434949752edc42711344c8401d55b \
"

View File

@@ -1,11 +1,12 @@
DESCRIPTION = "NVIDIA compositor GStreamer plugin"
SECTION = "multimedia"
LICENSE = "BSD-3-Clause & Proprietary"
LIC_FILES_CHKSUM = "file://nvbuf_utils.h;endline=9;md5=e74e59ff8c4105650b55b3a26f41d7ac \
LIC_FILES_CHKSUM = "file://gstnvcompositor.h;beginline=64;endline=64;md5=7d1c171edbf503035189a0f237588e6b \
file://README.txt;endline=26;md5=d4da79f8cebc6b73ce481b090afa99ae \
"
TEGRA_SRC_SUBARCHIVE = "Linux_for_Tegra/source/public/gst-nvcompositor_src.tbz2"
TEGRA_SRC_SUBARCHIVE_OPTS = "--exclude=3rdpartyheaders.tbz2"
require recipes-bsp/tegra-sources/tegra-sources-35.4.1.inc
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base virtual/egl tegra-mmapi tegra-libraries-multimedia-utils"

View File

@@ -1,7 +1,7 @@
DESCRIPTION = "NVIDIA v4l2camerasrc GStreamer plugin"
SECTION = "multimedia"
LICENSE = "BSD-3-Clause & Proprietary"
LIC_FILES_CHKSUM = "file://nvbuf_utils.h;endline=9;md5=e74e59ff8c4105650b55b3a26f41d7ac \
LIC_FILES_CHKSUM = "file://nvbufsurface.h;endline=9;md5=25279494f0285af8ac21bc9d4e679c91 \
file://README.txt;endline=25;md5=afc286435ccd143c9a10b5d7a8c1dee1 \
"

View File

@@ -1,19 +1,21 @@
From 5f263d373442ae6636c5f533ce192c6e1a06f781 Mon Sep 17 00:00:00 2001
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Thu, 25 Jun 2020 16:46:23 -0400
From 9b1466556525c9b3bbb92766f53043c6425974f0 Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Sun, 6 Aug 2023 23:07:56 +0100
Subject: [PATCH 1/7] v4l2videoenc: Fix negotiation caps leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
gstv4l2videoenc.c | 3 +++
gst-v4l2/gstv4l2videoenc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gstv4l2videoenc.c b/gstv4l2videoenc.c
index a3dc7dd..35a62fd 100644
index 232521d..9b1a5c7 100644
--- a/gstv4l2videoenc.c
+++ b/gstv4l2videoenc.c
@@ -993,6 +993,9 @@ gst_v4l2_video_enc_negotiate (GstVideoEncoder * encoder)
@@ -1180,6 +1180,9 @@ gst_v4l2_video_enc_negotiate (GstVideoEncoder * encoder)
if (gst_caps_foreach (allowed_caps, negotiate_profile_and_level, &ctx)) {
goto no_profile_level;
}
@@ -24,5 +26,5 @@ index a3dc7dd..35a62fd 100644
#ifndef USE_V4L2_TARGET_NV
--
2.34.1
2.25.1

View File

@@ -1,6 +1,6 @@
From 114ca7843aea535a1621518f4f392a40109568e6 Mon Sep 17 00:00:00 2001
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Fri, 26 Jun 2020 09:53:13 -0400
From 1021c771cde62732a49315196e721662ff974502 Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Sun, 6 Aug 2023 23:08:51 +0100
Subject: [PATCH 2/7] v4l2allocator: Fix data offset / bytesused size
validation
@@ -8,16 +8,18 @@ The check was too strict causing spurious warning. Now check for <= so that 0
sized buffer do not cause a warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
gstv4l2allocator.c | 2 +-
gst-v4l2/gstv4l2allocator.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gstv4l2allocator.c b/gstv4l2allocator.c
index ba8eb68..7ce40d5 100644
index 3fc4c39..6a53474 100644
--- a/gstv4l2allocator.c
+++ b/gstv4l2allocator.c
@@ -1504,7 +1504,7 @@ gst_v4l2_allocator_dqbuf (GstV4l2Allocator * allocator,
@@ -1505,7 +1505,7 @@ gst_v4l2_allocator_dqbuf (GstV4l2Allocator * allocator,
offset = group->planes[i].data_offset;
@@ -27,5 +29,5 @@ index ba8eb68..7ce40d5 100644
} else {
GST_WARNING_OBJECT (allocator, "V4L2 provided buffer has bytesused %"
--
2.34.1
2.25.1

View File

@@ -1,6 +1,6 @@
From e44664958ad6154c95d559011bc33c38751f9932 Mon Sep 17 00:00:00 2001
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Fri, 26 Jun 2020 11:05:25 -0400
From 53590990764e58b51210d9054c2e1383ea9a10ef Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Sun, 6 Aug 2023 23:09:58 +0100
Subject: [PATCH 3/7] v4l2bufferpool: Avoid set_flushing warning
The gst_buffer_pool_set_flushing() warns when that function is called
@@ -8,16 +8,18 @@ on an inactive pool. Avoid the warning by checking the state, this is
similar to what we do in gst_v4l2_object_unlock().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
gstv4l2bufferpool.c | 4 ++--
gst-v4l2/gstv4l2bufferpool.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gstv4l2bufferpool.c b/gstv4l2bufferpool.c
index 1023d4c..15345d1 100644
index 35cbb91..6303ff0 100644
--- a/gstv4l2bufferpool.c
+++ b/gstv4l2bufferpool.c
@@ -1269,7 +1269,7 @@ gst_v4l2_buffer_pool_flush_start (GstBufferPool * bpool)
@@ -1301,7 +1301,7 @@ gst_v4l2_buffer_pool_flush_start (GstBufferPool * bpool)
g_cond_broadcast (&pool->empty_cond);
GST_OBJECT_UNLOCK (pool);
@@ -26,7 +28,7 @@ index 1023d4c..15345d1 100644
gst_buffer_pool_set_flushing (pool->other_pool, TRUE);
}
@@ -1280,7 +1280,7 @@ gst_v4l2_buffer_pool_flush_stop (GstBufferPool * bpool)
@@ -1312,7 +1312,7 @@ gst_v4l2_buffer_pool_flush_stop (GstBufferPool * bpool)
GST_DEBUG_OBJECT (pool, "stop flushing");
@@ -36,5 +38,5 @@ index 1023d4c..15345d1 100644
#ifndef USE_V4L2_TARGET_NV
--
2.34.1
2.25.1

View File

@@ -1,19 +1,20 @@
From 362866771c3adfeba0d81c3983d389da48d1494e Mon Sep 17 00:00:00 2001
From: Jose Quaresma <quaresma.jose@gmail.com>
Date: Sun, 8 Nov 2020 01:53:55 +0000
From ff9942980e61592ecdc5d63de18da47ff4fcc087 Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Sun, 6 Aug 2023 23:10:56 +0100
Subject: [PATCH 4/7] gstv4l2videodec: use ifdef macro for consistency with the
rest of the code
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
gstv4l2videodec.c | 4 ++--
gst-v4l2/gstv4l2videodec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gstv4l2videodec.c b/gstv4l2videodec.c
index 0c98bb5..bce7627 100644
index e0fb5ce..d044897 100644
--- a/gstv4l2videodec.c
+++ b/gstv4l2videodec.c
@@ -672,7 +672,7 @@ gst_v4l2_video_dec_start (GstVideoDecoder * decoder)
@@ -683,7 +683,7 @@ gst_v4l2_video_dec_start (GstVideoDecoder * decoder)
gst_v4l2_object_unlock (self->v4l2output);
g_atomic_int_set (&self->active, TRUE);
self->output_flow = GST_FLOW_OK;
@@ -22,7 +23,7 @@ index 0c98bb5..bce7627 100644
self->decoded_picture_cnt = 0;
#endif
@@ -1302,7 +1302,7 @@ gst_v4l2_video_dec_loop (GstVideoDecoder * decoder)
@@ -1329,7 +1329,7 @@ gst_v4l2_video_dec_loop (GstVideoDecoder * decoder)
gst_caps_unref(reference);
}
@@ -32,5 +33,5 @@ index 0c98bb5..bce7627 100644
if (!gst_buffer_copy_into (frame->output_buffer, frame->input_buffer,
(GstBufferCopyFlags)GST_BUFFER_COPY_METADATA, 0, -1)) {
--
2.34.1
2.25.1

View File

@@ -1,6 +1,6 @@
From d7ad6c853a9df7fec6472b02ba3129054624c117 Mon Sep 17 00:00:00 2001
From: Jose Quaresma <quaresma.jose@gmail.com>
Date: Sun, 8 Nov 2020 12:49:03 +0000
From 354f881412547c397186e3af63160a86bee2f9f8 Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Sun, 6 Aug 2023 23:18:52 +0100
Subject: [PATCH 5/7] gstv4l2videodec: check if we have a pool before the
locking in video decoder set format
@@ -18,38 +18,39 @@ So disable the the check for capture_plane_stopped on nvv4l2decoder if we don't
otherwise nvv4l2decoder will hang forever waiting for capture_plane_stopped.
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
gstv4l2videodec.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
gst-v4l2/gstv4l2videodec.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/gstv4l2videodec.c b/gstv4l2videodec.c
index bce7627..b04e659 100644
index d044897..f19bd71 100644
--- a/gstv4l2videodec.c
+++ b/gstv4l2videodec.c
@@ -801,14 +801,16 @@ gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
#ifdef USE_V4L2_TARGET_NV
if (self->is_drc == TRUE)
{
- g_mutex_lock (&self->v4l2capture->cplane_stopped_lock);
@@ -914,14 +914,17 @@ gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
if (is_cuvid == FALSE) {
if (self->is_drc == TRUE)
{
- g_mutex_lock(&self->v4l2capture->cplane_stopped_lock);
- while (self->v4l2capture->capture_plane_stopped != TRUE)
- {
- g_cond_wait (&self->v4l2capture->cplane_stopped_cond,
- &self->v4l2capture->cplane_stopped_lock);
+ if (self->v4l2capture->pool ) {
+ if (self->v4l2capture->pool )
{
- g_cond_wait(&self->v4l2capture->cplane_stopped_cond,
- &self->v4l2capture->cplane_stopped_lock);
+ g_mutex_lock (&self->v4l2capture->cplane_stopped_lock);
+ while (self->v4l2capture->capture_plane_stopped != TRUE)
+ {
+ g_cond_wait (&self->v4l2capture->cplane_stopped_cond,
+ &self->v4l2capture->cplane_stopped_lock);
+ g_cond_wait (&self->v4l2capture->cplane_stopped_cond,
+ &self->v4l2capture->cplane_stopped_lock);
+ }
+ self->v4l2capture->capture_plane_stopped = FALSE;
+ g_mutex_unlock (&self->v4l2capture->cplane_stopped_lock);
}
- self->v4l2capture->capture_plane_stopped = FALSE;
- g_mutex_unlock (&self->v4l2capture->cplane_stopped_lock);
gst_v4l2_object_close (self->v4l2output);
gst_v4l2_object_close (self->v4l2capture);
gst_v4l2_object_open (self->v4l2output);
- g_mutex_unlock(&self->v4l2capture->cplane_stopped_lock);
gst_v4l2_object_close(self->v4l2output);
gst_v4l2_object_close(self->v4l2capture);
gst_v4l2_object_open(self->v4l2output);
--
2.34.1
2.25.1

View File

@@ -1,21 +1,22 @@
From 6812a3e081d5ec48d4881c626c532333d2c48d92 Mon Sep 17 00:00:00 2001
From: Matt Madison <matt@madison.systems>
Date: Mon, 27 Sep 2021 05:22:43 -0700
From 91c2c36b91d37137ddcdeed24af68dde6d10daf2 Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Sun, 6 Aug 2023 23:20:03 +0100
Subject: [PATCH 6/7] Fix resource leak in nvv4l2decoder
See: https://forums.developer.nvidia.com/t/175198/11
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
gstv4l2object.c | 7 +++++++
gstv4l2videodec.c | 4 +++-
gst-v4l2/gstv4l2object.c | 7 +++++++
gst-v4l2/gstv4l2videodec.c | 4 +++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/gstv4l2object.c b/gstv4l2object.c
index ad7193e..c1aeb0b 100644
index aa83a1b..51d0c2f 100644
--- a/gstv4l2object.c
+++ b/gstv4l2object.c
@@ -3764,6 +3764,13 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
@@ -3789,6 +3789,13 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
(v4l2object->open_mjpeg_block == TRUE) &&
(g_str_equal(gst_structure_get_name(gst_caps_get_structure (caps, 0)), "image/jpeg")))
format.fmt.pix_mp.pixelformat = pixelformat = V4L2_PIX_FMT_MJPEG;
@@ -30,10 +31,10 @@ index ad7193e..c1aeb0b 100644
#ifdef USE_V4L2_TARGET_NV
diff --git a/gstv4l2videodec.c b/gstv4l2videodec.c
index b04e659..40e2c2a 100644
index f19bd71..09c243b 100644
--- a/gstv4l2videodec.c
+++ b/gstv4l2videodec.c
@@ -828,8 +828,10 @@ gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
@@ -944,8 +944,10 @@ gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
if (ret)
self->input_state = gst_video_codec_state_ref (state);
@@ -44,7 +45,7 @@ index b04e659..40e2c2a 100644
+ }
#ifdef USE_V4L2_TARGET_NV
{
ret = set_v4l2_controls(self);
--
2.34.1
2.25.1

View File

@@ -1,16 +1,16 @@
From bf7357bdaaa920a0e9d5f229fcb3f6060f1615d8 Mon Sep 17 00:00:00 2001
From 8f5185cb08681042573cb7fa592dd9eaa2bdd49f Mon Sep 17 00:00:00 2001
From: Ilies CHERGUI <ilies.chergui@gmail.com>
Date: Thu, 26 Jan 2023 00:06:19 +0000
Date: Sun, 6 Aug 2023 23:27:09 +0100
Subject: [PATCH 7/7] Makefile fixes for OE builds
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Ilies CHERGUI <ilies.chergui@gmail.com>
---
Makefile | 43 ++++++++++++++++++++-----------------------
gst-v4l2/Makefile | 43 ++++++++++++++++++++-----------------------
1 file changed, 20 insertions(+), 23 deletions(-)
diff --git a/Makefile b/Makefile
index 87eac83..57414f0 100644
index 6621c04..2102dd1 100644
--- a/Makefile
+++ b/Makefile
@@ -10,49 +10,45 @@
@@ -37,7 +37,7 @@ index 87eac83..57414f0 100644
-endif
+SO_NAME := libgstnvvideo4linux2.so
LIBS:= -lnvbufsurface -lnvbufsurftransform -lgstnvdsseimeta
LIBS:= -lnvbufsurface -lnvbufsurftransform -lgstnvdsseimeta -lgstnvcustomhelper
SRCS := $(wildcard *.c)
-INCLUDES += -I./ -I../

View File

@@ -17,7 +17,7 @@ SRC_URI += "\
file://0006-Fix-resource-leak-in-nvv4l2decoder.patch \
file://0007-Makefile-fixes-for-OE-builds.patch \
"
DEPENDS = "gstreamer1.0 glib-2.0 gstreamer1.0-plugins-base virtual/egl tegra-libraries-multimedia tegra-libraries-nvdsseimeta tegra-mmapi"
DEPENDS = "gstreamer1.0 glib-2.0 gstreamer1.0-plugins-base virtual/egl tegra-libraries-multimedia tegra-libraries-nvdsseimeta tegra-mmapi libgstnvcustomhelper"
PACKAGECONFIG ??= "libv4l2"
PACKAGECONFIG[libv4l2] = ",,v4l-utils,tegra-libraries-multimedia-v4l"
@@ -31,7 +31,6 @@ inherit gettext pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
remove_headers() {
rm ${WORKDIR}/nvbuf_utils.h
rm ${WORKDIR}/nvbufsurface.h
rm ${WORKDIR}/v4l2_nv_extensions.h
}
@@ -45,3 +44,4 @@ do_install() {
oe_runmake install DESTDIR="${D}"
}
FILES:${PN} = "${libdir}/gstreamer-1.0"
RDEPENDS:${PN} += "libgstnvcustomhelper"