diff --git a/commitFile.txt b/commitFile.txt
new file mode 100644
index 0000000..e1d1328
--- /dev/null
+++ b/commitFile.txt
@@ -0,0 +1,10 @@
+Updating prebuilts and/or headers
+
+1be6fc0d7406e0633b7e2cba49166a2f0a085cdd - gst-nvarguscamera/Makefile
+ebface35fce001fdc5889214e11a84bf13cb5fde - gst-nvarguscamera/3rdpartyheaders.tbz2
+599e80d95060e15842bc5d41b27ef7da35cbf8c0 - gst-nvarguscamera/gstnvarguscamerasrc.hpp
+5d36eec5a4929d1a09ab8ca8e7f618b8f349275d - gst-nvarguscamera/gstnvarguscamerasrc.cpp
+f2949ff626879be5aaeabf40e9ad8eab11238b6e - gst-nvarguscamera/gstnvarguscamera_utils.h
+44b0e909f18f7e2f457ba501fc47d80ecedd150b - gst-nvarguscamera/nvbufsurface.h
+5b71a3ab30d24949dcf3770e509d17dd1af64256 - gst-nvarguscamera/gstnvarguscamera_utils.cpp
+fa14f1cb043a26a6465ce793ac78479d8f6afa02 - gst-nvarguscamera/gstnvdsbufferpool.h
diff --git a/gst-nvarguscamera/3rdpartyheaders.tbz2 b/gst-nvarguscamera/3rdpartyheaders.tbz2
new file mode 100644
index 0000000..94a0430
Binary files /dev/null and b/gst-nvarguscamera/3rdpartyheaders.tbz2 differ
diff --git a/gst-nvarguscamera/Makefile b/gst-nvarguscamera/Makefile
new file mode 100644
index 0000000..b5a4940
--- /dev/null
+++ b/gst-nvarguscamera/Makefile
@@ -0,0 +1,74 @@
+# Copyright (c) 2020-2022, NVIDIA CORPORATION. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of NVIDIA CORPORATION nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SO_NAME := libgstnvarguscamerasrc.so
+
+CC := g++
+
+GST_INSTALL_DIR?=/usr/lib/aarch64-linux-gnu/gstreamer-1.0/
+LIB_INSTALL_DIR?=/usr/lib/aarch64-linux-gnu/tegra/
+CFLAGS:=
+LIBS:= -lnvbufsurface -lnvbufsurftransform -lnvdsbufferpool -lnvargus_socketclient -lpthread
+
+SRCS := $(wildcard *.cpp)
+
+INCLUDES += -I./ -I../
+
+# Include jetson_mm_api include path
+INCLUDES += -I/usr/src/jetson_multimedia_api/include/
+INCLUDES += -I/usr/src/jetson_multimedia_api/argus/samples/utils/
+
+PKGS := gstreamer-1.0 \
+ gstreamer-base-1.0 \
+ gstreamer-video-1.0 \
+ gstreamer-allocators-1.0 \
+ glib-2.0
+
+OBJS := $(SRCS:.cpp=.o)
+
+CFLAGS += -fPIC
+
+CFLAGS += `pkg-config --cflags $(PKGS)`
+
+LDFLAGS = -Wl,--no-undefined -L$(LIB_INSTALL_DIR) -Wl,-rpath,$(LIB_INSTALL_DIR)
+
+LIBS += `pkg-config --libs $(PKGS)`
+
+all: $(SO_NAME)
+
+%.o: %.cpp
+ $(CC) -c $< $(CFLAGS) $(INCLUDES) -o $@
+
+$(SO_NAME): $(OBJS)
+ $(CC) -shared -o $(SO_NAME) $(OBJS) $(LIBS) $(LDFLAGS)
+
+.PHONY: install
+install: $(SO_NAME)
+ cp -vp $(SO_NAME) $(GST_INSTALL_DIR)
+
+.PHONY: clean
+clean:
+ rm -rf $(OBJS) $(SO_NAME)
diff --git a/gst-nvarguscamera/README.txt b/gst-nvarguscamera/README.txt
new file mode 100644
index 0000000..f04de1c
--- /dev/null
+++ b/gst-nvarguscamera/README.txt
@@ -0,0 +1,51 @@
+# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of NVIDIA CORPORATION nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Steps to compile the "gst-nvarguscamera" sources natively:
+
+1) Install gstreamer related packages on target using the command:
+
+ sudo apt-get install libgstreamer1.0-dev \
+ gstreamer1.0-plugins-base \
+ gstreamer1.0-plugins-good \
+ libgstreamer-plugins-base1.0-dev \
+ libegl1-mesa-dev
+
+2) Install "jetson_multimedia_api" package from latest Jetpack release.
+
+3) Download and extract the package "gst-nvarguscamera_src.tbz2" as follow:
+
+ tar -I lbzip2 -xvf gst-nvarguscamera_src.tbz2
+
+3) Run the following commands to build and install "libgstnvarguscamerasrc.so":
+ cd "gst-nvarguscamera"
+ make
+ make install
+ or
+ DEST_DIR=
make install
+
+ Note: "make install" will copy library "libgstnvarguscamerasrc.so"
+ into "/usr/lib/aarch64-linux-gnu/gstreamer-1.0" directory.
diff --git a/gst-nvarguscamera/gstnvarguscamera_utils.cpp b/gst-nvarguscamera/gstnvarguscamera_utils.cpp
new file mode 100644
index 0000000..c21e9c4
--- /dev/null
+++ b/gst-nvarguscamera/gstnvarguscamera_utils.cpp
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of NVIDIA CORPORATION nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "gstnvarguscamera_utils.h"
+#include
+
+GType
+gst_nvarguscam_white_balance_mode_get_type (void)
+{
+ static gsize white_balance_type = 0;
+ static const GEnumValue white_balance_mode[] = {
+ {NvArgusCamAwbMode_Off, "GST_NVCAM_WB_MODE_OFF", "off"},
+ {NvArgusCamAwbMode_Auto, "GST_NVCAM_WB_MODE_AUTO", "auto"},
+ {NvArgusCamAwbMode_Incandescent, "GST_NVCAM_WB_MODE_INCANDESCENT",
+ "incandescent"},
+ {NvArgusCamAwbMode_Fluorescent, "GST_NVCAM_WB_MODE_FLUORESCENT", "fluorescent"},
+ {NvArgusCamAwbMode_WarmFluorescent, "GST_NVCAM_WB_MODE_WARM_FLUORESCENT",
+ "warm-fluorescent"},
+ {NvArgusCamAwbMode_Daylight, "GST_NVCAM_WB_MODE_DAYLIGHT", "daylight"},
+ {NvArgusCamAwbMode_CloudyDaylight, "GST_NVCAM_WB_MODE_CLOUDY_DAYLIGHT",
+ "cloudy-daylight"},
+ {NvArgusCamAwbMode_Twilight, "GST_NVCAM_WB_MODE_TWILIGHT", "twilight"},
+ {NvArgusCamAwbMode_Shade, "GST_NVCAM_WB_MODE_SHADE", "shade"},
+ {NvArgusCamAwbMode_Manual, "GST_NVCAM_WB_MODE_MANUAL", "manual"},
+ {0, NULL, NULL}
+ };
+
+ if (g_once_init_enter (&white_balance_type)) {
+ GType tmp = g_enum_register_static ("GstNvArgusCamWBMode", white_balance_mode);
+ g_once_init_leave (&white_balance_type, tmp);
+ }
+
+ return (GType) white_balance_type;
+}
+
+GType
+gst_nvarguscam_tnr_mode_get_type (void)
+{
+ static gsize tnr_type = 0;
+ static const GEnumValue tnr_mode[] = {
+ {NvArgusCamNoiseReductionMode_Off, "GST_NVCAM_NR_OFF", "NoiseReduction_Off"},
+ {NvArgusCamNoiseReductionMode_Fast, "GST_NVCAM_NR_FAST", "NoiseReduction_Fast"},
+ {NvArgusCamNoiseReductionMode_HighQuality, "GST_NVCAM_NR_HIGHQUALITY", "NoiseReduction_HighQuality"},
+ {0, NULL, NULL}
+ };
+
+ if (g_once_init_enter (&tnr_type)) {
+ GType tmp = g_enum_register_static ("GstNvArgusCamTNRMode", tnr_mode);
+ g_once_init_leave (&tnr_type, tmp);
+ }
+ return (GType) tnr_type;
+}
+
+GType
+gst_nvarguscam_edge_enhancement_mode_get_type (void)
+{
+ static gsize edge_enhancement_type = 0;
+ static const GEnumValue edge_enhancement_mode[] = {
+ {NvArgusCamEdgeEnhancementMode_Off, "GST_NVCAM_EE_OFF", "EdgeEnhancement_Off"},
+ {NvArgusCamEdgeEnhancementMode_Fast, "GST_NVCAM_EE_FAST", "EdgeEnhancement_Fast"},
+ {NvArgusCamEdgeEnhancementMode_HighQuality, "GST_NVCAM_EE_HIGHQUALITY", "EdgeEnhancement_HighQuality"},
+ {0, NULL, NULL}
+ };
+
+ if (g_once_init_enter (&edge_enhancement_type)) {
+ GType tmp = g_enum_register_static ("GstNvArgusCamEEMode", edge_enhancement_mode);
+ g_once_init_leave (&edge_enhancement_type, tmp);
+ }
+ return (GType) edge_enhancement_type;
+}
+
+GType
+gst_nvarguscam_aeantibanding_mode_get_type (void)
+{
+ static gsize aeantibanding_type = 0;
+ static const GEnumValue aeantibanding_mode[] = {
+ {NvArgusCamAeAntibandingMode_Off, "GST_NVCAM_AEANTIBANDING_OFF", "AeAntibandingMode_Off"},
+ {NvArgusCamAeAntibandingMode_Auto, "GST_NVCAM_AEANTIBANDING_AUTO", "AeAntibandingMode_Auto"},
+ {NvArgusCamAeAntibandingMode_50HZ, "GST_NVCAM_AEANTIBANDING_50HZ", "AeAntibandingMode_50HZ"},
+ {NvArgusCamAeAntibandingMode_60HZ, "GST_NVCAM_AEANTIBANDING_60HZ", "AeAntibandingMode_60HZ"},
+ {0, NULL, NULL}
+ };
+
+ if (g_once_init_enter (&aeantibanding_type)) {
+ GType tmp = g_enum_register_static ("GstNvArgusCamAeAntiBandingMode", aeantibanding_mode);
+ g_once_init_leave (&aeantibanding_type, tmp);
+ }
+ return (GType) aeantibanding_type;
+}
\ No newline at end of file
diff --git a/gst-nvarguscamera/gstnvarguscamera_utils.h b/gst-nvarguscamera/gstnvarguscamera_utils.h
new file mode 100644
index 0000000..3bfea40
--- /dev/null
+++ b/gst-nvarguscamera/gstnvarguscamera_utils.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of NVIDIA CORPORATION nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GSTNVARGUSCAMERA_UTILS_H_
+#define GSTNVARGUSCAMERA_UTILS_H_
+
+#include
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef enum
+{
+ NvArgusCamAwbMode_Off = 0,
+ NvArgusCamAwbMode_Auto,
+ NvArgusCamAwbMode_Incandescent,
+ NvArgusCamAwbMode_Fluorescent,
+ NvArgusCamAwbMode_WarmFluorescent,
+ NvArgusCamAwbMode_Daylight,
+ NvArgusCamAwbMode_CloudyDaylight,
+ NvArgusCamAwbMode_Twilight,
+ NvArgusCamAwbMode_Shade,
+ NvArgusCamAwbMode_Manual,
+
+} NvArgusCamAwbMode;
+
+typedef enum
+{
+ NvArgusCamNoiseReductionMode_Off = 0,
+ NvArgusCamNoiseReductionMode_Fast,
+ NvArgusCamNoiseReductionMode_HighQuality
+
+} NvArgusCamNoiseReductionMode;
+
+typedef enum
+{
+ NvArgusCamEdgeEnhancementMode_Off = 0,
+ NvArgusCamEdgeEnhancementMode_Fast,
+ NvArgusCamEdgeEnhancementMode_HighQuality
+
+} NvArgusCamEdgeEnhancementMode;
+
+typedef enum
+{
+ NvArgusCamAeAntibandingMode_Off = 0,
+ NvArgusCamAeAntibandingMode_Auto,
+ NvArgusCamAeAntibandingMode_50HZ,
+ NvArgusCamAeAntibandingMode_60HZ
+
+} NvArgusCamAeAntibandingMode;
+
+GType gst_nvarguscam_white_balance_mode_get_type (void);
+#define GST_TYPE_NVARGUSCAM_WB_MODE (gst_nvarguscam_white_balance_mode_get_type())
+
+GType gst_nvarguscam_tnr_mode_get_type (void);
+#define GST_TYPE_NVARGUSCAM_TNR_MODE (gst_nvarguscam_tnr_mode_get_type())
+
+GType gst_nvarguscam_edge_enhancement_mode_get_type (void);
+#define GST_TYPE_NVARGUSCAM_EDGE_ENHANCEMENT_MODE (gst_nvarguscam_edge_enhancement_mode_get_type())
+
+GType gst_nvarguscam_aeantibanding_mode_get_type (void);
+#define GST_TYPE_NVARGUSCAM_AEANTIBANDING_MODE (gst_nvarguscam_aeantibanding_mode_get_type())
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GSTNVARGUSCAMERA_UTILS_H_ */
diff --git a/gst-nvarguscamera/gstnvarguscamerasrc.cpp b/gst-nvarguscamera/gstnvarguscamerasrc.cpp
new file mode 100644
index 0000000..620c338
--- /dev/null
+++ b/gst-nvarguscamera/gstnvarguscamerasrc.cpp
@@ -0,0 +1,2589 @@
+/*
+ * SPDX-FileCopyrightText: Copyright (c) 2017-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Sample pipeline
+ *
+ * gst-launch-1.0
+ * nvarguscamerasrc !
+ * "video/x-raw(memory:NVMM), width=640, height=480, format=NV12, framerate=30/1" !
+ * nvoverlaysink -e -v
+ */
+
+#ifdef HAVE_CONFIG_H
+# include
+#endif
+
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include