Problem building gst-omx version 32.2.3

Hello.

I am using L4T r 32.2.3 version on tx2 board. I am trying to build the same version of the gst-omx plugin, but there is a problem.

I built gst-omx following the procedure below.

  1. Download L4T sources r32.2.3 from nvidia developer download center.

  2. Build the gst-egl plugin first.

  3. Build according to the process in the README of gst-omx.

If you run make after ./autogen.sh → ./configure --with-omx-target=tegra, the following problem occurs.

nvidia@nvidia-desktop:~/gstreamer/gstomx1_src_32.2.3/gst-omx1$ make

(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/missing autoheader)

rm -f stamp-h1

touch config.h.in

cd . && /bin/bash ./config.status config.h

config.status: creating config.h

config.status: config.h is unchanged

make  all-recursive

make[1]: Entering directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1'

Making all in common

make[2]: Entering directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/common'

Making all in m4

make[3]: Entering directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/common/m4'

make[3]: Nothing to be done for 'all'.

make[3]: Leaving directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/common/m4'

make[3]: Entering directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/common'

make[3]: Nothing to be done for 'all-am'.

make[3]: Leaving directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/common'

make[2]: Leaving directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/common'

Making all in omx

make[2]: Entering directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/omx'

  CC       libgstomx_la-gstomxvideosink.lo

gstomxvideosink.c:30:10: fatal error: nvbufsurface.h: No such file or directory

 #include "nvbufsurface.h"

          ^~~~~~~~~~~~~~~~

compilation terminated.

Makefile:844: recipe for target 'libgstomx_la-gstomxvideosink.lo' failed

make[2]: *** [libgstomx_la-gstomxvideosink.lo] Error 1

make[2]: Leaving directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1/omx'

Makefile:526: recipe for target 'all-recursive' failed

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory '/home/nvidia/gstreamer/gstomx1_src_32.2.3/gst-omx1'

Makefile:458: recipe for target 'all' failed

make: *** [all] Error 2

gstv4l2videosink.c includes nvbufsurface.h, but the file is not included in the gst-omx1 source.

Likewise, nvbuf_utils.h is also required, but not included in the source.

  1. Are nvbufsurface.h and nvbuf_utils.h missing in gst-omx1?
  2. If it is not missing, is there any way to solve it?

For reference, the same problem occurs when using r32.3.1 version of L4T sources.

Hi,
We are deprecating gst-omx plugins. Please use gst-v4l2 plugins. The source code of gst-v4l2 is also open and it shoulbe be built successfully. Please give it a try.