joshdoe / gst-plugins-vision

GStreamer plugins related to the field of machine vision
Other
133 stars 50 forks source link

building with Pleora eBus Ubuntu 18.04 #60

Closed dreidles closed 2 years ago

dreidles commented 3 years ago

Hi Josh,

Please help again, I'm stuck trying to get your plugins building with Plearasrc in Ubuntu this time. The steps I've taken so far are:

  1. commented out line 17 in /gst-plugins-vision/sys/CMakeList.txt to disable gentl
  2. Added the following to my PATH variable: "/opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64:/opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include:/opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/lib"
  3. Modified /gst-plugins-vision/cmake/FindPleora.cmake as per FindPleora.zip. The original file was looking for files that exist on my Windows install but not in Ubuntu (PvBase64.lib and PvDevice64.lib). The libraries in the same relative location in my Ubuntu install are shown in the following screenshot so my assumption is that it should be looking for libPvBase.so and libPvDevice.so Screenshot from 2021-07-07 17-44-19

cmake .. returns:

-- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Checking for module 'gstreamer-1.0' -- Found gstreamer-1.0, version 1.14.5 -- Checking for module 'gstreamer-base-1.0' -- Found gstreamer-base-1.0, version 1.14.5 -- Found GSTREAMER_BASE_LIBRARY: /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so -- Found GSTREAMER_BASE_INCLUDE_DIR: /usr/include/gstreamer-1.0 -- Found GStreamer: /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so
-- Checking for module 'gstreamer-plugins-base-1.0' -- Found gstreamer-plugins-base-1.0, version 1.14.5 -- Checking for module 'gstreamer-video-1.0' -- Found gstreamer-video-1.0, version 1.14.5 -- Found GSTREAMER_VIDEO_LIBRARY: /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so -- Found GSTREAMER_VIDEO_INCLUDE_DIR: /usr/include/gstreamer-1.0 -- Found GStreamerPluginsBase: TRUE
-- Checking for module 'glib-2.0' -- Found glib-2.0, version 2.56.4 -- Found GLIB2: /usr/lib/x86_64-linux-gnu/libglib-2.0.so
-- Checking for module 'gobject-2.0' -- Found gobject-2.0, version 2.56.4 -- Found GObject: /usr/include/glib-2.0
-- Checking for module 'orc-0.4' -- Found orc-0.4, version 0.4.28 -- Found ORC: /usr/lib/x86_64-linux-gnu/liborc-0.4.so
-- Could NOT find BITFLOW (missing: BITFLOW_INCLUDE_DIR BITFLOW_LIBRARIES) -- Could NOT find NIIMAQ (missing: NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES) -- Could NOT find NIIMAQDX (missing: NIIMAQDX_INCLUDE_DIR NIIMAQDX_LIBRARIES) -- WARNING: OpenCV was not found. Please specify OpenCV directory using OpenCV_DIR env. variable -- Could NOT find APTINA (missing: APTINA_INCLUDE_DIR APTINA_LIBRARIES) -- Could NOT find EDT (missing: EDT_INCLUDE_DIR EDT_LIBRARIES) -- Could NOT find EURESYS (missing: EURESYS_INCLUDE_DIR EURESYS_LIBRARIES) -- Could NOT find GIGESIM (missing: GIGESIM_INCLUDE_DIR GIGESIM_LIBRARIES) -- Could NOT find IDSUEYE (missing: IDSUEYE_INCLUDE_DIR IDSUEYE_LIBRARIES) -- Could NOT find IMPERX_FLEX (missing: IMPERX_FLEX_INCLUDE_DIR IMPERX_FLEX_LIBRARIES) -- Could NOT find IMPERX_SDI (missing: IMPERX_SDI_INCLUDE_DIR IMPERX_SDI_LIBRARIES) -- IOTECHDAQX: WARNING: include dir not found -- IOTECHDAQX: WARNING: library not found -- Could NOT find IOTECHDAQX (missing: IOTECHDAQX_INCLUDE_DIR IOTECHDAQX_LIBRARIES) -- Could NOT find KAYA (missing: KAYA_INCLUDE_DIR KAYA_LIBRARIES) -- Could NOT find MATROX (missing: MATROX_INCLUDE_DIR MATROX_LIBRARIES) -- Could NOT find PHOENIX (missing: PHOENIX_INCLUDE_DIR PHOENIX_LIBRARIES)


-- Found Pleora version: 6.2.5.5601 -- Pleora Library DIR: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/lib -- Pleora Libraries: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/lib/libPvBase.so;/opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/lib/libPvDevice.so -- Pleora Include: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include


-- Found Pleora: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include (found version "6.2.5.5601") -- Could NOT find PYLON (missing: PYLON_INCLUDE_DIR PYLON_LIBRARIES) -- Could NOT find QCAM (missing: QCAM_INCLUDE_DIR QCAM_LIBRARIES) -- Could NOT find SAPERA (missing: SAPERA_INCLUDE_DIR SAPERA_LIBRARIES) -- XCLIB: WARNING: include dir not found -- XCLIB: WARNING: library not found -- Could NOT find XCLIB (missing: XCLIB_INCLUDE_DIR XCLIB_LIBRARIES)


-- The following external packages were located on your system. -- This installation will have the extra features provided by these packages.


-- The following OPTIONAL packages could NOT be located on your system. -- Consider installing them to enable more features from this software.


-- Configuring done -- Generating done -- Build files have been written to: /home/adesk/gst-plugins-vision/build

make returns:

Scanning dependencies of target gstbayerutils [ 5%] Building C object gst/bayerutils/CMakeFiles/gstbayerutils.dir/gstbayer2gray.c.o /home/adesk/gst-plugins-vision/gst/bayerutils/gstbayer2gray.c: In function ‘gst_bayer2gray_transform_caps’: /home/adesk/gst-plugins-vision/gst/bayerutils/gstbayer2gray.c:273:5: warning: ignoring return value of ‘gst_caps_merge’, declared with attribute warn_unused_result [-Wunused-result] gst_caps_merge (other_caps, c); ^~~~~~~~~~ [ 10%] Linking C shared module libgstbayerutils.so [ 10%] Built target gstbayerutils Scanning dependencies of target gstextractcolor [ 15%] Building C object gst/extractcolor/CMakeFiles/gstextractcolor.dir/gstextractcolor.c.o /home/adesk/gst-plugins-vision/gst/extractcolor/gstextractcolor.c: In function ‘gst_extract_color_transform_caps’: /home/adesk/gst-plugins-vision/gst/extractcolor/gstextractcolor.c:301:5: warning: ignoring return value of ‘gst_caps_merge’, declared with attribute warn_unused_result [-Wunused-result] gst_caps_merge (other_caps, c); ^~~~~~~~~~ [ 21%] Building C object gst/extractcolor/CMakeFiles/gstextractcolor.dir/gstextractcolororc-dist.c.o [ 26%] Linking C shared module libgstextractcolor.so [ 26%] Built target gstextractcolor Scanning dependencies of target gstmisb [ 31%] Building C object gst/misb/CMakeFiles/gstmisb.dir/gstmisb.c.o [ 36%] Building C object gst/misb/CMakeFiles/gstmisb.dir/gstmisbirpack.c.o [ 42%] Building C object gst/misb/CMakeFiles/gstmisb.dir/gstmisbirunpack.c.o [ 47%] Linking C shared module libgstmisb.so [ 47%] Built target gstmisb Scanning dependencies of target gstselect [ 52%] Building C object gst/select/CMakeFiles/gstselect.dir/gstselect.c.o In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0, from /usr/include/gstreamer-1.0/gst/base/gstbasetransform.h:24, from /home/adesk/gst-plugins-vision/gst/select/gstselect.h:28, from /home/adesk/gst-plugins-vision/gst/select/gstselect.c:41: /home/adesk/gst-plugins-vision/gst/select/gstselect.c: In function ‘gst_select_transform_ip’: /home/adesk/gst-plugins-vision/gst/select/gstselect.c:224:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘guint64 {aka long unsigned int}’ [-Wformat=] "Dropping buffer %d since it's before the chosen offset %d", ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:640:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’ (GObject ) (object), __VA_ARGS__); \ ^~~ /home/adesk/gst-plugins-vision/gst/select/gstselect.c:223:5: note: in expansion of macro ‘GST_LOG_OBJECT’ GST_LOG_OBJECT (filt, ^~~~~~ /home/adesk/gst-plugins-vision/gst/select/gstselect.c:231:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘guint64 {aka long unsigned int}’ [-Wformat=] "Dropping buffer %d since it's been chosen to be skipped", buf_offset); ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:640:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’ (GObject ) (object), VA_ARGS__); \ ^~~ /home/adesk/gst-plugins-vision/gst/select/gstselect.c:230:5: note: in expansion of macro ‘GST_LOG_OBJECT’ GST_LOG_OBJECT (filt, ^~~~~~ [ 57%] Linking C shared module libgstselect.so [ 57%] Built target gstselect Scanning dependencies of target gstvideoadjust [ 63%] Building C object gst/videoadjust/CMakeFiles/gstvideoadjust.dir/gstvideoadjust.c.o [ 68%] Building C object gst/videoadjust/CMakeFiles/gstvideoadjust.dir/gstvideolevels.c.o In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0, from /usr/include/gstreamer-1.0/gst/base/gstbasetransform.h:24, from /home/adesk/gst-plugins-vision/gst/videoadjust/gstvideolevels.h:28, from /home/adesk/gst-plugins-vision/gst/videoadjust/gstvideolevels.c:43: /home/adesk/gst-plugins-vision/gst/videoadjust/gstvideolevels.c: In function ‘gst_videolevels_transform’: /home/adesk/gst-plugins-vision/gst/videoadjust/gstvideolevels.c:626:36: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘GstClockTimeDiff {aka long int}’ [-Wformat=] GST_LOG_OBJECT (videolevels, "Auto adjusting levels (%d ns since last)", ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:640:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’ (GObject *) (object), VA_ARGS); \ ^~~ /home/adesk/gst-plugins-vision/gst/videoadjust/gstvideolevels.c:626:7: note: in expansion of macro ‘GST_LOG_OBJECT’ GST_LOG_OBJECT (videolevels, "Auto adjusting levels (%d ns since last)", ^~~~~~ [ 73%] Linking C shared module libgstvideoadjust.so [ 73%] Built target gstvideoadjust Scanning dependencies of target gstpleora6 [ 78%] Building CXX object sys/pleora/CMakeFiles/gstpleora6.dir/gstpleora.cpp.o [ 84%] Building CXX object sys/pleora/CMakeFiles/gstpleora6.dir/gstpleorasrc.cpp.o In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0, from /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp:37: /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp: In function ‘const void gst_pleorasrc_print_device_info(GstPleoraSrc, const PvDeviceInfo)’: /usr/include/gstreamer-1.0/gst/gstinfo.h:640:42: warning: too many arguments for format [-Wformat-extra-args] (GObject *) (object), VA_ARGS__); \ ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:1056:35: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’

define GST_DEBUG_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, obj, __VA_ARGS__)

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

/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp:491:5: note: in expansion of macro ‘GST_DEBUG_OBJECT’ GST_DEBUG_OBJECT (src, "U3V device: GUID: %s, S/N: %s", ^~~~ /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp: In function ‘gboolean gst_pleorasrc_setup_stream(GstPleoraSrc)’: /usr/include/gstreamer-1.0/gst/gstinfo.h:640:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘gint64 {aka long int}’ [-Wformat=] (GObject ) (object), __VA_ARGS__); \ ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:1056:35: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’

define GST_DEBUG_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, obj, __VA_ARGS__)

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

/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp:967:7: note: in expansion of macro ‘GST_DEBUG_OBJECT’ GST_DEBUG_OBJECT (src, "Packet size is currently %d", val); ^~~~ /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp: In function ‘gboolean gst_pleorasrc_set_caps(GstBaseSrc, GstCaps)’: /usr/include/gstreamer-1.0/gst/gstinfo.h:640:42: warning: format not a string literal and no format arguments [-Wformat-security] (GObject *) (object), __VA_ARGS__); \ ^ /usr/include/gstreamer-1.0/gst/gstinfo.h:1064:26: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’

define GST_DEBUG(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, NULL, __VA_ARGS__)

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

/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasrc.cpp:1421:7: note: in expansion of macro ‘GST_DEBUG’ GST_DEBUG (gst_structure_get_name (s)); ^~~~~ [ 89%] Building CXX object sys/pleora/CMakeFiles/gstpleora6.dir/gstpleorasink.cpp.o In file included from /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:37:0: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h: In function ‘void PvFlushKeyboard()’: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:269:12: error: ‘PvKbHit’ was not declared in this scope while( PvKbHit() ) ^~~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:276:6: error: ‘PvGetChar’ was not declared in this scope PvGetChar(); ^~~~~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:276:6: note: suggested alternative: ‘getchar’ PvGetChar(); ^~~~~ getchar /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h: In function ‘bool PvSelectDevice(PvString, PvDeviceInfoType)’: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:339:9: error: ‘PV_DISABLE_SIGNAL_HANDLER’ was not declared in this scope PV_DISABLE_SIGNAL_HANDLER(); ^~~~~~~~~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:341:9: error: ‘PV_ENABLE_SIGNAL_HANDLER’ was not declared in this scope PV_ENABLE_SIGNAL_HANDLER(); ^~~~~~~~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:386:5: error: ‘PV_DISABLE_SIGNAL_HANDLER’ was not declared in this scope PV_DISABLE_SIGNAL_HANDLER(); ^~~~~~~~~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:388:5: error: ‘PV_ENABLE_SIGNAL_HANDLER’ was not declared in this scope PV_ENABLE_SIGNAL_HANDLER(); ^~~~~~~~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleUtils.h:457:13: error: ‘PvSleepMs’ was not declared in this scope PvSleepMs( 1000 ); ^~~~~ In file included from /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:40:0: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleTransmitterConfig.h: In member function ‘void PvSampleTransmitterConfig::SetDefaults()’: /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleTransmitterConfig.h:132:22: error: ‘strcmp’ was not declared in this scope if ( strcmp( "0.0.0.0", lIP.GetAscii() ) != 0 ) ^~ /opt/pleora/ebus_sdk/Ubuntu-18.04-x86_64/include/PvSampleTransmitterConfig.h:132:22: note: suggested alternative: ‘strtoq’ if ( strcmp( "0.0.0.0", lIP.GetAscii() ) != 0 ) ^~ strtoq /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp: In function ‘gboolean gst_pleorasink_start_multicasting(GstPleoraSink)’: /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:599:14: warning: narrowing conversion of ‘atoi(((const char)(*(addr_elems + 24))))’ from ‘int’ to ‘guint8 {aka unsigned char}’ inside { } [-Wnarrowing] { atoi (addr_elems[3]), atoi (addr_elems[2]), atoi (addr_elems[1]),


/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:599:36: warning: narrowing conversion of ‘atoi(((const char*)(*(addr_elems + 16))))’ from ‘int’ to ‘guint8 {aka unsigned char}’ inside { } [-Wnarrowing]
       { atoi (addr_elems[3]), atoi (addr_elems[2]), atoi (addr_elems[1]),
                               ~~~~~^~~~~~~~~~~~~~~
/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:599:58: warning: narrowing conversion of ‘atoi(((const char*)(*(addr_elems + 8))))’ from ‘int’ to ‘guint8 {aka unsigned char}’ inside { } [-Wnarrowing]
       { atoi (addr_elems[3]), atoi (addr_elems[2]), atoi (addr_elems[1]),
                                                     ~~~~~^~~~~~~~~~~~~~~
/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:600:10: warning: narrowing conversion of ‘atoi(((const char*)(* addr_elems)))’ from ‘int’ to ‘guint8 {aka unsigned char}’ inside { } [-Wnarrowing]
     atoi (addr_elems[0])
     ~~~~~^~~~~~~~~~~~~~~
In file included from /usr/include/gstreamer-1.0/gst/gstbin.h:27:0,
                 from /usr/include/gstreamer-1.0/gst/gst.h:35,
                 from /home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:42:
/home/adesk/gst-plugins-vision/sys/pleora/gstpleorasink.cpp:606:45: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘guint8* {aka unsigned char*}’ [-Wformat=]
             sink->multicast_group, multiaddr), (NULL));
                                             ^
/usr/include/gstreamer-1.0/gst/gstelement.h:422:44: note: in definition of macro ‘GST_ELEMENT_ERROR’
   gchar *__txt = _gst_element_error_printf text;                        \
                                            ^~~~
sys/pleora/CMakeFiles/gstpleora6.dir/build.make:110: recipe for target 'sys/pleora/CMakeFiles/gstpleora6.dir/gstpleorasink.cpp.o' failed
make[2]: *** [sys/pleora/CMakeFiles/gstpleora6.dir/gstpleorasink.cpp.o] Error 1
CMakeFiles/Makefile2:444: recipe for target 'sys/pleora/CMakeFiles/gstpleora6.dir/all' failed
make[1]: *** [sys/pleora/CMakeFiles/gstpleora6.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
joshdoe commented 2 years ago

Try the latest code, I'm able to now compile on Ubuntu 18.04 on the Jetson Nano.