diff mbox series

[meta-arago,scarthgap,v2] meta-arago-extras: Add recipe for NNStreamer

Message ID 20250225231908.75303-1-afd@ti.com
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [meta-arago,scarthgap,v2] meta-arago-extras: Add recipe for NNStreamer | expand

Commit Message

Andrew Davis Feb. 25, 2025, 11:19 p.m. UTC
NNStreamer is an efficient and flexible stream pipeline framework for
complex neural network applications.

NNStreamer provides a set of GStreamer plugins so developers may apply
neural networks, attach related frameworks (including ROS, IIO,
FlatBuffers, and Protocol Buffers), and manipulate tensor data streams
in GStreamer pipelines easily and execute such pipelines efficiently.

It was initially developed by Samsung and then transferred to LF AI
Foundation as an incubation project.

Learn more at https://nnstreamer.ai/

Signed-off-by: Andrew Davis <afd@ti.com>
---

Changes for v2:
 - Remove .a files from -dev
 - Disable Arm NN support for now
 - Add QA skip for buildpaths

 .../nnstreamer/nnstreamer_2.4.0.bb            | 67 +++++++++++++++++++
 1 file changed, 67 insertions(+)
 create mode 100644 meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.4.0.bb
diff mbox series

Patch

diff --git a/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.4.0.bb b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.4.0.bb
new file mode 100644
index 00000000..50d16d29
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/nnstreamer/nnstreamer_2.4.0.bb
@@ -0,0 +1,67 @@ 
+SUMMARY = "NNStreamer, Stream Pipeline Paradigm for Nerual Network Applications"
+DESCRIPTION = "NNStreamer is a set of Gstreamer plugins that allow Gstreamer developers to adopt neural network models easily and efficiently."
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c25e5c1949624d71896127788f1ba590"
+
+SRC_URI = "git://github.com/nnstreamer/nnstreamer.git;branch=main;protocol=https"
+PV = "2.4.0+git"
+SRCREV = "7c57c288250578cad598f065b6fda6c0ff720cf9"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+DEPENDS = " \
+	orc-native \
+	glib-2.0 \
+	gstreamer1.0 \
+	gstreamer1.0-plugins-base \
+	python3 \
+	python3-numpy \
+	json-glib \
+"
+
+PACKAGECONFIG ??= " \
+	protobuf \
+	flatbuffers \
+	tests \
+	onnxruntime \
+	tensorflow-lite \
+"
+
+PACKAGECONFIG[tests] = "-Denable-test=true -Dinstall-test=true, -Denable-test=false, gtest"
+PACKAGECONFIG[protobuf] = "-Dprotobuf-support=enabled, -Dprotobuf-support=disabled, protobuf protobuf-native"
+PACKAGECONFIG[flatbuffers] = "-Dflatbuf-support=enabled, -Dflatbuf-support=disabled, flatbuffers flatbuffers-native"
+PACKAGECONFIG[armnn] = "-Darmnn-support=enabled, -Darmnn-support=disabled, armnn"
+PACKAGECONFIG[onnxruntime] = "-Donnxruntime-support=enabled, -Donnxruntime-support=disabled, onnxruntime"
+PACKAGECONFIG[tensorflow-lite] = "-Dtflite2-support=enabled, -Dtflite2-support=disabled, tensorflow-lite"
+
+do_install:append() {
+	CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+
+	# Install test data
+	install -d ${D}/${bindir}/unittest-nnstreamer/tests
+	cp $CP_ARGS ${S}/tests/test_models ${D}/${bindir}/unittest-nnstreamer/tests
+	rm -f ${D}/${bindir}/unittest-nnstreamer/tests/test_models/models/tvm*
+}
+
+FILES:${PN} += "\
+	${libdir}/*.so \
+	${libdir}/gstreamer-1.0/*.so \
+	${libdir}/nnstreamer/* \
+	${sysconfdir}/nnstreamer.ini \
+"
+INSANE_SKIP:${PN} += "dev-so"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES:${PN}-tests += "\
+	${libdir}/nnstreamer/customfilters/* \
+	${bindir}/unittest-nnstreamer/* \
+"
+INSANE_SKIP:${PN}-tests += "buildpaths"
+
+FILES:${PN}-dev = "\
+	${includedir}/nnstreamer/* \
+	${libdir}/pkgconfig/*.pc \
+"