diff --git a/commitFile.txt b/commitFile.txt
new file mode 100644
index 0000000..8b5d2d7
--- /dev/null
+++ b/commitFile.txt
@@ -0,0 +1,8 @@
+Updating prebuilts and/or headers
+
+58763dce79c555646e8fe2a3c82b99cd73e45726 - gst-nvcustomhelper/Makefile
+1d05e15078ee65457a1e033a35ff53969b49dbae - gst-nvcustomhelper/LICENSE.libgstnvcustomhelper
+6911bbbbdf879f293204b444447b7c248e713bba - gst-nvcustomhelper/gst-nvcustomevent.c
+e47127e0e43e1649585de5bda41ed6ed1811741c - gst-nvcustomhelper/Makefile.public
+39d54795c60e7436359259ede5ee6537a11b3fcc - gst-nvcustomhelper/README
+d27a433ddeaefb9f42d0312c23472514b0cd6a45 - gst-nvcustomhelper/gst-nvcustomevent.h
diff --git a/gst-nvcustomhelper/LICENSE.libgstnvcustomhelper b/gst-nvcustomhelper/LICENSE.libgstnvcustomhelper
new file mode 100644
index 0000000..0cd7710
--- /dev/null
+++ b/gst-nvcustomhelper/LICENSE.libgstnvcustomhelper
@@ -0,0 +1,20 @@
+# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
diff --git a/gst-nvcustomhelper/Makefile b/gst-nvcustomhelper/Makefile
new file mode 100644
index 0000000..9fc646e
--- /dev/null
+++ b/gst-nvcustomhelper/Makefile
@@ -0,0 +1,45 @@
+################################################################################
+# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+# SPDX-License-Identifier: LicenseRef-NvidiaProprietary
+#
+# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
+# property and proprietary rights in and to this material, related
+# documentation and any modifications thereto. Any use, reproduction,
+# disclosure or distribution of this material and related documentation
+# without an express license agreement from NVIDIA CORPORATION or
+# its affiliates is strictly prohibited.
+################################################################################
+
+CC:= gcc
+TARGET_NAME:= libgstnvcustomhelper.so
+
+SRCS:= gst-nvcustomevent.c
+
+RELEASE_SRC_DIR_NAME:=libs/gstnvcustomhelper
+
+RELEASE_SRC_FILES:= Makefile.public=Makefile \
+ README=README \
+ gst-nvcustomevent.c=gst-nvcustomevent.c \
+ gst-nvcustomevent.h=gst-nvcustomevent.h
+
+PUBLIC_HEADER_FILES:= gst-nvcustomevent.h=gst-nvcustomevent.h
+
+INC_PATHS:= NV_ROOT_DIR/nvutils/gst-nvcustomhelper
+
+LIBS:=
+
+NEEDS_CUDA:=0
+
+NEEDS_GST:=1
+
+IS_GST_UTIL:=1
+
+PACKAGE_BINARY_IN_DS:=1
+
+CAN_PUBLIC_LINK:=1
+
+BUILD_DIR:=../../deepstream/sdk/build/libs
+
+IGNORE_DS_PACKAGE_NAMING=1
+
+include ../../deepstream/sdk/Rules.mk
diff --git a/gst-nvcustomhelper/Makefile.public b/gst-nvcustomhelper/Makefile.public
new file mode 100644
index 0000000..827b408
--- /dev/null
+++ b/gst-nvcustomhelper/Makefile.public
@@ -0,0 +1,67 @@
+################################################################################
+# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+################################################################################
+
+CXX:= gcc
+SRCS:= gst-nvcustomevent.c
+
+INCS:= $(wildcard *.h)
+OUT_DIR ?= .
+SO_NAME := libgstnvcustomhelper.so
+LIB:= $(OUT_DIR)/$(SO_NAME)
+OBJS := $(SRCS:%.c=$(OUT_DIR)/%.o)
+
+TARGET_DEVICE = $(shell gcc -dumpmachine | cut -f1 -d -)
+ifeq ($(TARGET_DEVICE),aarch64)
+ LIB_INSTALL_DIR?=/usr/lib/aarch64-linux-gnu/tegra/
+ CFLAGS:=
+else
+ NVDS_VERSION ?=6.4
+ LIB_INSTALL_DIR ?=/opt/nvidia/deepstream/deepstream-$(NVDS_VERSION)/lib/
+ CFLAGS:= -DDS_VERSION=\"6.4.0\"
+endif
+
+CFLAGS+= -fPIC
+
+LIBS := -shared -Wl,-no-undefined
+
+LIBS+= -L$(LIB_INSTALL_DIR) -ldl\
+ -Wl,-rpath,$(LIB_INSTALL_DIR)
+
+PKGS:= gstreamer-1.0 gstreamer-base-1.0 gstreamer-video-1.0
+CFLAGS+= $(shell pkg-config --cflags $(PKGS))
+LIBS+= $(shell pkg-config --libs $(PKGS))
+
+all: $(LIB)
+
+$(OUT_DIR)/%.o: %.c $(INCS) Makefile
+ @echo $(CFLAGS)
+ $(CXX) -c -o $@ $(CFLAGS) $<
+
+$(LIB): $(OBJS) Makefile
+ $(CXX) -o $@ $(OBJS) $(LIBS)
+
+install: $(LIB)
+ cp -rv $(LIB) $(LIB_INSTALL_DIR)
+
+clean:
+ rm -rf $(OBJS) $(LIB)
diff --git a/gst-nvcustomhelper/README b/gst-nvcustomhelper/README
new file mode 100644
index 0000000..195db51
--- /dev/null
+++ b/gst-nvcustomhelper/README
@@ -0,0 +1,20 @@
+################################################################################
+# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+# SPDX-License-Identifier: LicenseRef-NvidiaProprietary
+#
+# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
+# property and proprietary rights in and to this material, related
+# documentation and any modifications thereto. Any use, reproduction,
+# disclosure or distribution of this material and related documentation
+# without an express license agreement from NVIDIA CORPORATION or
+# its affiliates is strictly prohibited.
+################################################################################
+
+Purpose:
+gst-nvcustomhelper library implements custom gst-events for gst-v4l2 based
+video decoder and encoder plugins.
+
+Compiling and installing:
+Run make and sudo make install
+
+NOTE: To compile the sources, run make with "sudo" or root permission.
diff --git a/gst-nvcustomhelper/gst-nvcustomevent.c b/gst-nvcustomhelper/gst-nvcustomevent.c
new file mode 100644
index 0000000..822a05a
--- /dev/null
+++ b/gst-nvcustomhelper/gst-nvcustomevent.c
@@ -0,0 +1,204 @@
+/*
+ * SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "gst-nvcustomevent.h"
+
+GstEvent *
+gst_nvevent_dec_drop_frame_interval_update (gchar* stream_id, guint interval)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-dec-drop-frame-interval-update");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "interval", G_TYPE_UINT, interval,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_DEC_DROP_FRAME_INTERVAL_UPDATE, str);
+}
+
+
+void
+gst_nvevent_parse_dec_drop_frame_interval_update (GstEvent * event, gchar** stream_id, guint *interval)
+{
+ if((GstEventType) GST_NVEVENT_DEC_DROP_FRAME_INTERVAL_UPDATE == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "interval", G_TYPE_UINT, interval,
+ NULL);
+ }
+}
+
+GstEvent *
+gst_nvevent_dec_skip_frame_update (gchar* stream_id, guint frame_type)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-dec-skip-frame-update");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "frame_type", G_TYPE_UINT, frame_type,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_DEC_SKIP_FRAME_UPDATE, str);
+}
+
+
+void
+gst_nvevent_parse_dec_skip_frame_update (GstEvent * event, gchar** stream_id, guint *frame_type)
+{
+ if((GstEventType) GST_NVEVENT_DEC_SKIP_FRAME_UPDATE == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "frame_type", G_TYPE_UINT, frame_type,
+ NULL);
+ }
+}
+
+GstEvent *
+gst_nvevent_dec_enable_low_latency_mode (gchar* stream_id, gint enable)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-dec-enable-low-latency-mode");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "enable", G_TYPE_INT, enable,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_DEC_ENABLE_LOW_LATENCY_MODE, str);
+}
+
+
+void
+gst_nvevent_parse_dec_enable_low_latency_mode (GstEvent * event, gchar** stream_id, gint *enable)
+{
+ if((GstEventType) GST_NVEVENT_DEC_ENABLE_LOW_LATENCY_MODE == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "enable", G_TYPE_INT, enable,
+ NULL);
+ }
+}
+
+GstEvent *
+gst_nvevent_enc_bitrate_update (gchar* stream_id, guint bitrate)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-enc-bitrate-update");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "bitrate", G_TYPE_UINT, bitrate,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_ENC_BITRATE_UPDATE, str);
+}
+
+
+void
+gst_nvevent_parse_enc_bitrate_update (GstEvent * event, gchar** stream_id, guint *bitrate)
+{
+ if((GstEventType) GST_NVEVENT_ENC_BITRATE_UPDATE == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "bitrate", G_TYPE_UINT, bitrate,
+ NULL);
+ }
+}
+
+GstEvent *
+gst_nvevent_enc_force_idr (gchar* stream_id, gint force)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-enc-force-idr");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "force", G_TYPE_INT, force,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_ENC_FORCE_IDR, str);
+}
+
+void
+gst_nvevent_parse_enc_force_idr (GstEvent * event, gchar** stream_id, gint *force)
+{
+ if((GstEventType) GST_NVEVENT_ENC_FORCE_IDR == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "force", G_TYPE_INT, force,
+ NULL);
+ }
+}
+
+GstEvent *
+gst_nvevent_enc_force_intra (gchar* stream_id, gint force)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-enc-force-intra");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "force", G_TYPE_INT, force,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_ENC_FORCE_INTRA, str);
+}
+
+void
+gst_nvevent_parse_enc_force_intra (GstEvent * event, gchar** stream_id, gint *force)
+{
+ if((GstEventType) GST_NVEVENT_ENC_FORCE_INTRA == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "force", G_TYPE_INT, force,
+ NULL);
+ }
+}
+
+GstEvent *
+gst_nvevent_enc_iframeinterval_update (gchar* stream_id, guint interval)
+{
+ GstStructure *str = gst_structure_new_empty ("nv-enc-iframeinterval-update");
+
+ gst_structure_set (str, "stream_id", G_TYPE_STRING, stream_id,
+ "interval", G_TYPE_UINT, interval,
+ NULL);
+
+ return gst_event_new_custom (GST_NVEVENT_ENC_IFRAME_INTERVAL_UPDATE, str);
+}
+
+
+void
+gst_nvevent_parse_enc_iframeinterval_update (GstEvent * event, gchar** stream_id, guint *interval)
+{
+ if((GstEventType) GST_NVEVENT_ENC_IFRAME_INTERVAL_UPDATE == GST_EVENT_TYPE (event)) {
+
+ const GstStructure *str = gst_event_get_structure (event);
+
+ gst_structure_get (str, "stream_id", G_TYPE_STRING, stream_id,
+ "interval", G_TYPE_UINT, interval,
+ NULL);
+ }
+}
diff --git a/gst-nvcustomhelper/gst-nvcustomevent.h b/gst-nvcustomhelper/gst-nvcustomevent.h
new file mode 100644
index 0000000..e5656a1
--- /dev/null
+++ b/gst-nvcustomhelper/gst-nvcustomevent.h
@@ -0,0 +1,235 @@
+/*
+ * SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+/**
+ * @file
+ * NVIDIA GStreamer: Custom Events
+ *
+ * @b Description: This file specifies the NVIDIA GStreamer custom
+ * event functions.
+ *
+ */
+
+/**
+ * @defgroup gstreamer_nvevent Events: Custom Events API
+ *
+ * Specifies GStreamer custom event functions.
+ *
+ * @ingroup gst_mess_evnt_qry
+ * @{
+ */
+
+#ifndef __GST_NVCUSTOMEVENT_H__
+#define __GST_NVCUSTOMEVENT_H__
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FLAG(name) GST_EVENT_TYPE_##name
+
+/** Defines supported types of custom events. */
+typedef enum {
+ /** Specifies a custom event to indicate decoder drop frame interval update
+ of a particular stream. */
+ GST_NVEVENT_DEC_DROP_FRAME_INTERVAL_UPDATE
+ = GST_EVENT_MAKE_TYPE (500, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+ /** Specifies a custom event to indicate decoder skip frame update
+ of a particular stream. */
+ GST_NVEVENT_DEC_SKIP_FRAME_UPDATE
+ = GST_EVENT_MAKE_TYPE (501, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+ /** Specifies a custom event to enable decoder low-latency-mode
+ of a particular stream. */
+ GST_NVEVENT_DEC_ENABLE_LOW_LATENCY_MODE
+ = GST_EVENT_MAKE_TYPE (502, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+
+ /** Specifies a custom event to indicate encoder bitrate update
+ of a particular stream. */
+ GST_NVEVENT_ENC_BITRATE_UPDATE
+ = GST_EVENT_MAKE_TYPE (503, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+ /** Specifies a custom event to indicate encoder force IDR frame
+ of a particular stream. */
+ GST_NVEVENT_ENC_FORCE_IDR
+ = GST_EVENT_MAKE_TYPE (504, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+ /** Specifies a custom event to indicate encoder force Intra frame
+ of a particular stream. */
+ GST_NVEVENT_ENC_FORCE_INTRA
+ = GST_EVENT_MAKE_TYPE (505, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+ /** Specifies a custom event to indicate iframe interval update
+ of a particular stream. */
+ GST_NVEVENT_ENC_IFRAME_INTERVAL_UPDATE
+ = GST_EVENT_MAKE_TYPE (506, FLAG(DOWNSTREAM) | FLAG(SERIALIZED))
+} GstNvCustomEventType;
+#undef FLAG
+
+/**
+ * Creates a new "nv-dec-drop-frame-interval-update" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which decoder-drop-frame-interval is to be sent
+ * @param[out] interval The decoder drop-frame interval obtained corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_dec_drop_frame_interval_update (gchar* stream_id, guint interval);
+
+/**
+ * Parses a "nv-dec-drop-frame-interval-update" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a dec-drop-frame-interval-update event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] interval A pointer to the parsed interval
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_dec_drop_frame_interval_update (GstEvent * event, gchar** stream_id, guint *interval);
+
+/**
+ * Creates a new "nv-dec-skip-frame-update" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which decoder-skip-frame-update is to be sent
+ * @param[out] frame_type The decoder frame-type to be skipped obtained corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_dec_skip_frame_update (gchar* stream_id, guint frame_type);
+
+/**
+ * Parses a "nv-dec-skip-frame-update" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a skip-frame-update event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] frame_type A pointer to the parsed frame_type
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_dec_skip_frame_update (GstEvent * event, gchar** stream_id, guint *frame_type);
+
+
+/**
+ * Creates a new "nv-dec-enable-low-latency-mode" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which decoder-low-latenct-mode is to be sent
+ * @param[out] enable The decoder low latency mode to be enabled corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_dec_enable_low_latency_mode (gchar* stream_id, gint enable);
+
+/**
+ * Parses a "nv-dec-enable-low-latency-mode" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a enable-low-latency-mode event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] enable A pointer to the parsed enable flag
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_dec_enable_low_latency_mode (GstEvent * event, gchar** stream_id, gint *enable);
+
+/**
+ * Creates a new "nv-enc-bitrate-update" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which encoder-bitrate-update is to be sent
+ * @param[out] bitrate The encoder bitrate to be set corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_enc_bitrate_update (gchar* stream_id, guint bitrate);
+
+/**
+ * Parses a "nv-enc-bitrate-update" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a bitrate-update event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] bitrate A pointer to the parsed bitrate value
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_enc_bitrate_update (GstEvent * event, gchar** stream_id, guint *bitrate);
+
+/**
+ * Creates a new "nv-enc-force-idr" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which encoder-force-idr is to be sent
+ * @param[out] force The encoder force IDR frame corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_enc_force_idr (gchar* stream_id, gint force);
+
+/**
+ * Parses a "nv-enc-force-idr" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a force-idr event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] force A pointer to the parsed force value
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_enc_force_idr (GstEvent * event, gchar** stream_id, gint *force);
+
+/**
+ * Creates a new "nv-enc-force-intra" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which encoder-force-intra is to be sent
+ * @param[out] force The encoder force Intra frame corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_enc_force_intra (gchar* stream_id, gint force);
+
+/**
+ * Parses a "nv-enc-force-intra" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a force-intra event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] force A pointer to the parsed force value
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_enc_force_intra (GstEvent * event, gchar** stream_id, gint *force);
+
+/**
+ * Creates a new "nv-enc-iframeinterval-update" event.
+ *
+ * @param[out] stream_id Stream ID of the stream for which encoder-iframeinterval-update is to be sent
+ * @param[out] interval The encoder iframeinterval to be set corresponding to stream ID for the event.
+ */
+GstEvent * gst_nvevent_enc_iframeinterval_update (gchar* stream_id, guint interval);
+
+/**
+ * Parses a "nv-enc-iframeinterval-update" event received on the sinkpad.
+ *
+ * @param[in] event The event received on the sinkpad
+ * when the stream ID sends a iframeinterval-update event.
+ * @param[out] stream_id A pointer to the parsed stream ID for which
+ * the event is sent.
+ * @param[out] bitrate A pointer to the parsed interval value
+ * corresponding to stream ID for the event.
+ */
+void gst_nvevent_parse_enc_iframeinterval_update (GstEvent * event, gchar** stream_id, guint *interval);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/** @} */
diff --git a/push_info.txt b/push_info.txt
new file mode 100644
index 0000000..9c21818
--- /dev/null
+++ b/push_info.txt
@@ -0,0 +1 @@
+jetson_36.2