[Bug 786972] New: Can't compile gstomx

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Aug 29 11:36:13 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=786972

            Bug ID: 786972
           Summary: Can't compile gstomx
    Classification: Platform
           Product: GStreamer
           Version: 1.10.4
                OS: other
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-omx
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: henning.hinze at mail.de
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

So i got a fresh raspian installation on my pi3

pi at raspberrypi:~/tools/gst-omx $ uname -a
Linux raspberrypi 4.9.45-v7+ #1031 SMP Fri Aug 25 19:02:16 BST 2017 armv7l
GNU/Linux

Meanwhile you can get gst-omx from the raspian repos but unfortunately it's a
rather old version

pi at raspberrypi:~ $ dpkg -l | grep gstreamer
ii  gir1.2-gstreamer-1.0                   1.10.4-1                            
armhf        GObject introspection data for the GStreamer library
ii  gstreamer1.0-alsa:armhf                1.10.4-1                            
armhf        GStreamer plugin for ALSA
ii  gstreamer1.0-libav:armhf               1.10.4-1                            
armhf        libav plugin for GStreamer
ii  gstreamer1.0-omx                       1.0.0.1-0+rpi12+jessiepmg           
armhf        GStreamer OpenMAX plugins
ii  gstreamer1.0-plugins-bad:armhf         1.10.4-1                            
armhf        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-base:armhf        1.10.4-1                            
armhf        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-good:armhf        1.10.4-1                            
armhf        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:armhf        1.10.4-1                            
armhf        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:armhf          1.10.4-1                            
armhf        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                     1.10.4-1                            
armhf        Tools for use with GStreamer
ii  gstreamer1.0-vaapi:armhf               1.10.4-1+b1                         
armhf        VA-API plugins for GStreamer
ii  gstreamer1.0-x:armhf                   1.10.4-1                            
armhf        GStreamer plugins for X11 and Pango
ii  libgstreamer-plugins-bad1.0-0:armhf    1.10.4-1                            
armhf        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base1.0-0:armhf   1.10.4-1                            
armhf        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-dev       1.10.4-1                            
armhf        GStreamer development files for libraries from the "base" set
ii  libgstreamer1.0-0:armhf                1.10.4-1                            
armhf        Core GStreamer libraries and elements
ii  libgstreamer1.0-dev                    1.10.4-1                            
armhf        GS


When comparing omxplayer and gstreamer with omx support, the omxplayer beats
gstreamer without any doubt in question of performance.

the pipeline i'm executing for this is:

filesink location="myfile.mp4" ! decodebin ! videoconvert ! fbdevsink
device="/dev/fb0"

i was now trying to install gst-omx 1.10.4 from git

after ./autogen.sh --with-omx-target=rpi

i run make and i get 

pi at raspberrypi:~/tools/gst-omx $ make
make  all-recursive
make[1]: Entering directory '/home/pi/tools/gst-omx'
Making all in common
make[2]: Entering directory '/home/pi/tools/gst-omx/common'
Making all in m4
make[3]: Entering directory '/home/pi/tools/gst-omx/common/m4'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/tools/gst-omx/common/m4'
make[3]: Entering directory '/home/pi/tools/gst-omx/common'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/pi/tools/gst-omx/common'
make[2]: Leaving directory '/home/pi/tools/gst-omx/common'
Making all in omx
make[2]: Entering directory '/home/pi/tools/gst-omx/omx'
  CC       libgstomx_la-gstomx.lo
In file included from gstomx.c:30:0:
gstomx.h:57:26: fatal error: OMX_Broadcom.h: No such file or directory
 #include <OMX_Broadcom.h>
                          ^
compilation terminated.
Makefile:695: recipe for target 'libgstomx_la-gstomx.lo' failed
make[2]: *** [libgstomx_la-gstomx.lo] Error 1
make[2]: Leaving directory '/home/pi/tools/gst-omx/omx'
Makefile:517: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pi/tools/gst-omx'
Makefile:449: recipe for target 'all' failed
make: *** [all] Error 2

pi at raspberrypi:~/tools/gst-omx $ sudo find / -name 'OMX_Broadcom.h'
/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Broadcom.h
/opt/vc/include/IL/OMX_Broadcom.h

pi at raspberrypi:~/tools/gst-omx $ diff -qs
/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Broadcom.h
/opt/vc/include/IL/OMX_Broadcom.h 
Files /opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Broadcom.h and
/opt/vc/include/IL/OMX_Broadcom.h are identical

Now I add -I/opt/vc/include/IL to libgstomx_la_CFLAGS in gst-omx/omx/Makefile

and make yields

pi at raspberrypi:~/tools/gst-omx $ make
make  all-recursive
make[1]: Entering directory '/home/pi/tools/gst-omx'
Making all in common
make[2]: Entering directory '/home/pi/tools/gst-omx/common'
Making all in m4
make[3]: Entering directory '/home/pi/tools/gst-omx/common/m4'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/tools/gst-omx/common/m4'
make[3]: Entering directory '/home/pi/tools/gst-omx/common'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/pi/tools/gst-omx/common'
make[2]: Leaving directory '/home/pi/tools/gst-omx/common'
Making all in omx
make[2]: Entering directory '/home/pi/tools/gst-omx/omx'
  CC       libgstomx_la-gstomx.lo
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:44:14: error: nested
redefinition of ‘enum OMX_NALUFORMATSTYPE’
 typedef enum OMX_NALUFORMATSTYPE {
              ^~~~~~~~~~~~~~~~~~~
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:44:14: error: redeclaration
of ‘enum OMX_NALUFORMATSTYPE’
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1932:14: note: originally defined here
 typedef enum OMX_NALUFORMATSTYPE {
              ^~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:45:5: error: redeclaration of
enumerator ‘OMX_NaluFormatStartCodes’
     OMX_NaluFormatStartCodes = 1,
     ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1933:5: note: previous definition of
‘OMX_NaluFormatStartCodes’ was here
     OMX_NaluFormatStartCodes = 1,
     ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:46:5: error: redeclaration of
enumerator ‘OMX_NaluFormatOneNaluPerBuffer’
     OMX_NaluFormatOneNaluPerBuffer = 2,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1934:5: note: previous definition of
‘OMX_NaluFormatOneNaluPerBuffer’ was here
     OMX_NaluFormatOneNaluPerBuffer = 2,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:47:5: error: redeclaration of
enumerator ‘OMX_NaluFormatOneByteInterleaveLength’
     OMX_NaluFormatOneByteInterleaveLength = 4,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1935:5: note: previous definition of
‘OMX_NaluFormatOneByteInterleaveLength’ was here
     OMX_NaluFormatOneByteInterleaveLength = 4,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:48:5: error: redeclaration of
enumerator ‘OMX_NaluFormatTwoByteInterleaveLength’
     OMX_NaluFormatTwoByteInterleaveLength = 8,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1936:5: note: previous definition of
‘OMX_NaluFormatTwoByteInterleaveLength’ was here
     OMX_NaluFormatTwoByteInterleaveLength = 8,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:49:5: error: redeclaration of
enumerator ‘OMX_NaluFormatFourByteInterleaveLength’
     OMX_NaluFormatFourByteInterleaveLength = 16,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1937:5: note: previous definition of
‘OMX_NaluFormatFourByteInterleaveLength’ was here
     OMX_NaluFormatFourByteInterleaveLength = 16,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:50:5: error: redeclaration of
enumerator ‘OMX_NaluFormatCodingMax’
     OMX_NaluFormatCodingMax = 0x7FFFFFFF
     ^~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1938:5: note: previous definition of
‘OMX_NaluFormatCodingMax’ was here
     OMX_NaluFormatCodingMax = 0x7FFFFFFF
     ^~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:55:16: error: redefinition of
‘struct OMX_NALSTREAMFORMATTYPE’
 typedef struct OMX_NALSTREAMFORMATTYPE{
                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1942:16: note: originally defined here
 typedef struct OMX_NALSTREAMFORMATTYPE{
                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:61:0,
                 from gstomx.c:30:
/home/pi/tools/gst-omx/omx/openmax/OMX_VideoExt.h:60:3: error: conflicting
types for ‘OMX_NALSTREAMFORMATTYPE’
 } OMX_NALSTREAMFORMATTYPE;
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from gstomx.h:57:0,
                 from gstomx.c:30:
/opt/vc/include/IL/OMX_Broadcom.h:1947:3: note: previous declaration of
‘OMX_NALSTREAMFORMATTYPE’ was here
 } OMX_NALSTREAMFORMATTYPE;
   ^~~~~~~~~~~~~~~~~~~~~~~
Makefile:696: recipe for target 'libgstomx_la-gstomx.lo' failed
make[2]: *** [libgstomx_la-gstomx.lo] Error 1
make[2]: Leaving directory '/home/pi/tools/gst-omx/omx'
Makefile:517: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pi/tools/gst-omx'
Makefile:449: recipe for target 'all' failed
make: *** [all] Error 2

anyone has an idea how to solve that?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list