mirror of
git://nv-tegra.nvidia.com/tegra/gst-src/gst-nvcompositor.git
synced 2025-12-22 09:22:09 +03:00
Updating prebuilts and/or headers
64a687b23361046fec268bde45a41e2fcce12823 - gst-nvcompositor/Makefile e46bc373a26e46ff20f4efa376e298135b65f0e3 - gst-nvcompositor/gstnvcompositor.c b3dfb2b50ad2c963a890b2001cda824ecae58d59 - gst-nvcompositor/3rdpartyheaders.tbz2 6b201b4017e6c36aaf4b06f0359e68918a99cb83 - gst-nvcompositor/gstnvcompositor.h a86cdef2fe7c358debaeb17cf3ac6bca48083915 - gst-nvcompositor/gstnvcompositorpad.h Change-Id: Id48ef3b501c66c36b55273cdcb233119dd7c2fa1
This commit is contained in:
7
commitFile.txt
Normal file
7
commitFile.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Updating prebuilts and/or headers
|
||||
|
||||
64a687b23361046fec268bde45a41e2fcce12823 - gst-nvcompositor/Makefile
|
||||
e46bc373a26e46ff20f4efa376e298135b65f0e3 - gst-nvcompositor/gstnvcompositor.c
|
||||
b3dfb2b50ad2c963a890b2001cda824ecae58d59 - gst-nvcompositor/3rdpartyheaders.tbz2
|
||||
6b201b4017e6c36aaf4b06f0359e68918a99cb83 - gst-nvcompositor/gstnvcompositor.h
|
||||
a86cdef2fe7c358debaeb17cf3ac6bca48083915 - gst-nvcompositor/gstnvcompositorpad.h
|
||||
BIN
gst-nvcompositor/3rdpartyheaders.tbz2
Normal file
BIN
gst-nvcompositor/3rdpartyheaders.tbz2
Normal file
Binary file not shown.
73
gst-nvcompositor/Makefile
Normal file
73
gst-nvcompositor/Makefile
Normal file
@@ -0,0 +1,73 @@
|
||||
# Copyright (c) 2020-2023, 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:
|
||||
#
|
||||
# 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.
|
||||
|
||||
SO_NAME := libgstnvcompositor.so
|
||||
|
||||
CC := gcc
|
||||
|
||||
GST_INSTALL_DIR?=/usr/lib/aarch64-linux-gnu/gstreamer-1.0/
|
||||
LIB_INSTALL_DIR?=/usr/lib/aarch64-linux-gnu/tegra/
|
||||
CFLAGS:=
|
||||
|
||||
SRCS := $(wildcard *.c)
|
||||
|
||||
INCLUDES += -I./
|
||||
|
||||
PKGS := gstreamer-1.0 \
|
||||
gstreamer-base-1.0 \
|
||||
gstreamer-bad-video-1.0 \
|
||||
gstreamer-video-1.0 \
|
||||
gstreamer-allocators-1.0 \
|
||||
glib-2.0
|
||||
|
||||
OBJS := $(SRCS:.c=.o)
|
||||
|
||||
CFLAGS += -fPIC \
|
||||
-DGST_USE_UNSTABLE_API
|
||||
|
||||
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: %.c
|
||||
$(CC) -c $< $(CFLAGS) $(INCLUDES) -o $@
|
||||
|
||||
$(SO_NAME): $(OBJS)
|
||||
$(CC) -shared -o $(SO_NAME) $(OBJS) $(LIBS) $(LDFLAGS)
|
||||
|
||||
.PHONY: install
|
||||
DEST_DIR?= $(GST_INSTALL_DIR)
|
||||
install: $(SO_NAME)
|
||||
cp -vp $(SO_NAME) $(DEST_DIR)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(OBJS) $(SO_NAME)
|
||||
52
gst-nvcompositor/README.txt
Normal file
52
gst-nvcompositor/README.txt
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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:
|
||||
#
|
||||
# 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.
|
||||
|
||||
Steps to compile the "gst-nvcompositor" 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 \
|
||||
gstreamer1.0-plugins-bad \
|
||||
libgstreamer-plugins-base1.0-dev \
|
||||
libgstreamer-plugins-good1.0-dev \
|
||||
libgstreamer-plugins-bad1.0-dev
|
||||
|
||||
2) Download and extract the package "gst-nvcompositor_src.tbz2" as follows:
|
||||
|
||||
tar -I lbzip2 -xvf gst-nvcompositor_src.tbz2
|
||||
|
||||
3) Run the following commands to build and install "libgstnvcompositor.so":
|
||||
cd "gst-nvcompositor"
|
||||
make
|
||||
make install
|
||||
or
|
||||
DEST_DIR=<dir> make install
|
||||
|
||||
Note: "make install" will copy library "libgstnvcompositor.so"
|
||||
into "/usr/lib/aarch64-linux-gnu/gstreamer-1.0" directory.
|
||||
1551
gst-nvcompositor/gstnvcompositor.c
Normal file
1551
gst-nvcompositor/gstnvcompositor.c
Normal file
File diff suppressed because it is too large
Load Diff
148
gst-nvcompositor/gstnvcompositor.h
Normal file
148
gst-nvcompositor/gstnvcompositor.h
Normal file
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2023, 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:
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GST_NVCOMPOSITOR_H__
|
||||
#define __GST_NVCOMPOSITOR_H__
|
||||
|
||||
#include <gst/gst.h>
|
||||
#include <gst/video/video.h>
|
||||
#include <gst/video/gstvideoaggregator.h>
|
||||
|
||||
#include "nvbufsurface.h"
|
||||
#include "nvbufsurftransform.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
#define GST_TYPE_NVCOMPOSITOR (gst_nvcompositor_get_type())
|
||||
#define GST_NVCOMPOSITOR(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVCOMPOSITOR, GstNvCompositor))
|
||||
#define GST_NVCOMPOSITOR_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVCOMPOSITOR, GstNvCompositorClass))
|
||||
#define GST_IS_NVCOMPOSITOR(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVCOMPOSITOR))
|
||||
#define GST_IS_NVCOMPOSITOR_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVCOMPOSITOR))
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "gstreamer-nvcompositor-plugin"
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "GStreamer NvCompositor Plugin"
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "GStreamer NvComositor 1.16.3"
|
||||
/* Information about the purpose of the plugin. */
|
||||
#define PACKAGE_DESCRIPTION "Video Compositor"
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_ORIGIN "http://nvidia.com/"
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.16.3"
|
||||
/* Define under which licence the package has been released */
|
||||
#define PACKAGE_LICENSE "Proprietary"
|
||||
|
||||
#define MAX_INPUT_FRAME 16
|
||||
#define GST_CAPS_FEATURE_MEMORY_NVMM "memory:NVMM"
|
||||
|
||||
typedef struct _GstNvCompositor GstNvCompositor;
|
||||
typedef struct _GstNvCompositorClass GstNvCompositorClass;
|
||||
|
||||
typedef struct _GstNvCompositorBuffer GstNvCompositorBuffer;
|
||||
typedef struct _GstNvCompositorBgcolor GstNvCompBgcolor;
|
||||
|
||||
/* Backgrounds for compositor to blend over */
|
||||
typedef enum
|
||||
{
|
||||
NVCOMPOSITOR_BACKGROUND_BLACK,
|
||||
NVCOMPOSITOR_BACKGROUND_RED,
|
||||
NVCOMPOSITOR_BACKGROUND_GREEN,
|
||||
NVCOMPOSITOR_BACKGROUND_BLUE,
|
||||
NVCOMPOSITOR_BACKGROUND_WHITE,
|
||||
} GstNvCompositorBackground;
|
||||
|
||||
/**
|
||||
* GstInterpolationMethods:
|
||||
*
|
||||
* Interpolation methods type enum.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GST_INTERPOLATION_NEAREST,
|
||||
GST_INTERPOLATION_BILINEAR,
|
||||
GST_INTERPOLATION_5_TAP,
|
||||
GST_INTERPOLATION_10_TAP,
|
||||
GST_INTERPOLATION_SMART,
|
||||
GST_INTERPOLATION_NICEST,
|
||||
} GstInterpolationMethods;
|
||||
|
||||
/**
|
||||
* Nv Compositor Buffer:
|
||||
*/
|
||||
struct _GstNvCompositorBuffer
|
||||
{
|
||||
gint dmabuf_fd;
|
||||
GstBuffer *gst_buf;
|
||||
NvBufSurface *surface;
|
||||
};
|
||||
|
||||
/**
|
||||
* Background color:
|
||||
*/
|
||||
struct _GstNvCompositorBgcolor
|
||||
{
|
||||
gfloat r;
|
||||
gfloat g;
|
||||
gfloat b;
|
||||
};
|
||||
|
||||
/**
|
||||
* GstNvCompositor:
|
||||
*/
|
||||
struct _GstNvCompositor
|
||||
{
|
||||
GstVideoAggregator videoaggregator;
|
||||
gboolean silent;
|
||||
|
||||
gint out_width;
|
||||
gint out_height;
|
||||
NvBufSurfaceColorFormat out_pix_fmt;
|
||||
|
||||
GstNvCompBgcolor bg;
|
||||
GstNvCompositorBackground background;
|
||||
NvBufSurfTransformCompositeBlendParamsEx comp_params;
|
||||
|
||||
gboolean nvcomppool;
|
||||
GstBufferPool *pool;
|
||||
};
|
||||
|
||||
struct _GstNvCompositorClass
|
||||
{
|
||||
GstVideoAggregatorClass parent_class;
|
||||
};
|
||||
|
||||
GType gst_nvcompositor_get_type (void);
|
||||
|
||||
G_END_DECLS
|
||||
#endif /* __GST_NVCOMPOSITOR_H__ */
|
||||
81
gst-nvcompositor/gstnvcompositorpad.h
Normal file
81
gst-nvcompositor/gstnvcompositorpad.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (c) 2017-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:
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __GST_NVCOMPOSITOR_PAD_H__
|
||||
#define __GST_NVCOMPOSITOR_PAD_H__
|
||||
|
||||
#include <gst/gst.h>
|
||||
#include <gst/video/video.h>
|
||||
#include <gst/video/gstvideoaggregator.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
#define GST_TYPE_NVCOMPOSITOR_PAD (gst_nvcompositor_pad_get_type())
|
||||
#define GST_NVCOMPOSITOR_PAD(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVCOMPOSITOR_PAD, GstNvCompositorPad))
|
||||
#define GST_NVCOMPOSITOR_PAD_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVCOMPOSITOR_PAD, GstNvCompositorPadClass))
|
||||
#define GST_IS_NVCOMPOSITOR_PAD(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVCOMPOSITOR_PAD))
|
||||
#define GST_IS_NVCOMPOSITOR_PAD_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVCOMPOSITOR_PAD))
|
||||
|
||||
typedef struct _GstNvCompositorPad GstNvCompositorPad;
|
||||
typedef struct _GstNvCompositorPadClass GstNvCompositorPadClass;
|
||||
|
||||
/**
|
||||
* GstNvCompositorPad:
|
||||
*/
|
||||
struct _GstNvCompositorPad
|
||||
{
|
||||
GstVideoAggregatorConvertPad parent;
|
||||
|
||||
/* nvcompositor pad properties */
|
||||
gint xpos;
|
||||
gint ypos;
|
||||
gint width;
|
||||
gint height;
|
||||
gdouble alpha;
|
||||
gint interpolation_method;
|
||||
|
||||
gint input_width;
|
||||
gint input_height;
|
||||
|
||||
GstVideoInfo conversion_info;
|
||||
NvBufSurfaceColorFormat comppad_pix_fmt;
|
||||
};
|
||||
|
||||
struct _GstNvCompositorPadClass
|
||||
{
|
||||
GstVideoAggregatorConvertPadClass parent_class;
|
||||
};
|
||||
|
||||
GType gst_nvcompositor_pad_get_type (void);
|
||||
|
||||
G_END_DECLS
|
||||
#endif /* __GST_NVCOMPOSITOR_PAD_H__ */
|
||||
1
push_info.txt
Normal file
1
push_info.txt
Normal file
@@ -0,0 +1 @@
|
||||
jetson_36.4.3
|
||||
Reference in New Issue
Block a user