joshdoe / gst-plugins-vision

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

Windows pleorasrc error #53

Closed ADRAndre closed 3 years ago

ADRAndre commented 3 years ago

Hi, Please help, I'm trying to access a GEV stream from a pleora iPORT NTx-Mini Embedded Video Interface using pleorasrc in windows 10. I can view the stream through eBUS player and when I connect to the camera through eBUS player I get a device busy message from pleorasrc so it's definitely looking in the right place.

when I try to run pleorasrc, I get the following error:

gst-launch-1.0 pleorasrc ! autovideoconvert ! autovideosink
Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ...
New clock: GstSystemClock **
ERROR:D:\gst-plugins-vision-1.17.1\sys\pleora\gstpleorasrc.cpp:1639:gst_pleorasrc_create: assertion failed: (minfo.size >= src->pleora_stride * src->height)

joshdoe commented 3 years ago

Can you increase the debugging level and share that? Before pleorasrc add --gst-debug=pleora*:9, or set the environment variable GST_DEBUG. Also what is the pixel format and resolution?

ADRAndre commented 3 years ago

Hi Josh, thanks for helping.

The image below shows the device information you asked for. image

And here is the output from powershell with --gst-debug=pleora*:9 added:

gst-launch-1.0 --gst-debug=pleora*:9 pleorasrc ! autovideoconvert ! autovideosink

0:00:00.071254500 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1391:gst_pleorasrc_get_caps:<pleorasrc0> The caps before filtering are video/x-bayer, format=(string){ bggr16, grbg16, rggb16, gbrg16 }, endianness=(int)1234, bpp=(int){ 16, 14, 12, 10 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ bggr, grbg, rggb, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ GRAY16_LE, GRAY16_BE, GRAY8, UYVY, YUY2, RGB }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

0:00:00.084416500 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1399:gst_pleorasrc_get_caps:<pleorasrc0> The caps after filtering are video/x-bayer, format=(string){ bggr16, grbg16, rggb16, gbrg16 }, endianness=(int)1234, bpp=(int){ 16, 14, 12, 10 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ bggr, grbg, rggb, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ GRAY16_LE, GRAY16_BE, GRAY8, UYVY, YUY2, RGB }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

0:00:00.096487500 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1391:gst_pleorasrc_get_caps:<pleorasrc0> The caps before filtering are video/x-bayer, format=(string){ bggr16, grbg16, rggb16, gbrg16 }, endianness=(int)1234, bpp=(int){ 16, 14, 12, 10 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ bggr, grbg, rggb, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ GRAY16_LE, GRAY16_BE, GRAY8, UYVY, YUY2, RGB }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

0:00:00.110453300 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1399:gst_pleorasrc_get_caps:<pleorasrc0> The caps after filtering are video/x-bayer, format=(string){ bggr16, grbg16, rggb16, gbrg16 }, endianness=(int)1234, bpp=(int){ 16, 14, 12, 10 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ bggr, grbg, rggb, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ GRAY16_LE, GRAY16_BE, GRAY8, UYVY, YUY2, RGB }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

Setting pipeline to PAUSED ...

0:00:00.312221600 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1258:gst_pleorasrc_start:<pleorasrc0> start

0:00:00.362993500 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:567:gst_pleorasrc_find_device:<pleorasrc0> Finding device based on index: 0

0:00:01.409763500 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:670:gst_pleorasrc_find_device:<pleorasrc0> Info for device that will be opened:

0:00:01.413128400 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:447:gst_pleorasrc_print_device_info:<pleorasrc0> Found device 'NTx-Mini PT01-PBXMX1-32XG25 00:11:1c:04:4d:39 [192.168.6.122]'

0:00:01.417002600 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:475:gst_pleorasrc_print_device_info:<pleorasrc0> Device found on network interface 'Realtek Gaming GbE Family Controller', MAC: b4:2e:99:85:2c:3a, IP: 192.168.6.97, Subnet: 255.255.255.0

0:00:01.421267200 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:489:gst_pleorasrc_print_device_info:<pleorasrc0> GEV device: MAC: 00:11:1c:04:4d:39, IP: 192.168.6.122, S/N:

0:00:01.424868100 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:831:gst_pleorasrc_open_device:<pleorasrc0> Trying to connect to device as controller

0:00:01.536259000 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:840:gst_pleorasrc_open_device:<pleorasrc0> Connected to device as controller

0:00:01.539824600 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:890:gst_pleorasrc_open_stream:<pleorasrc0> Using connection ID '192.168.6.122'

0:00:01.547615800 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:899:gst_pleorasrc_open_stream:<pleorasrc0> Opening GEV stream in unicast mode

0:00:01.563043900 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:931:gst_pleorasrc_setup_stream:<pleorasrc0> Stream created for device

0:00:01.579488100 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:967:gst_pleorasrc_setup_stream:<pleorasrc0> Packet size is currently 1476

0:00:01.584304000 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1266:gst_pleorasrc_start:<pleorasrc0> Starting pipeline

0:00:01.588198600 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1282:gst_pleorasrc_start:<pleorasrc0> Opened as controller, so send AcquisitionStart command

0:00:01.592064800 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1296:gst_pleorasrc_start:<pleorasrc0> Lock streaming-related parameters

0:00:01.646367100 20008 00000000030FD870 LOG pleorasrc gstpleorasrc.cpp:1221:gst_pleorasrc_pixel_type_to_gst_caps_string: Matched pixel type 17301512 to caps video/x-bayer, format=(string)grbg

0:00:01.651016800 20008 00000000030FD870 DEBUG pleorasrc gstpleorasrc.cpp:1411:gst_pleorasrc_set_caps:<pleorasrc0> The caps being set are video/x-bayer, format=(string)grbg, width=(int)640, height=(int)480, framerate=(fraction)30/1

Pipeline is live and does not need PREROLL ...

0:00:01.677275500 20008 00000000030F7840 DEBUG pleorasrc gstpleorasrc.cpp:1391:gst_pleorasrc_get_caps:<pleorasrc0> The caps before filtering are video/x-bayer, format=(string)grbg, width=(int)640, height=(int)480, framerate=(fraction)30/1

Setting pipeline to PLAYING ...

0:00:01.687404200 20008 00000000030F7840 DEBUG pleorasrc gstpleorasrc.cpp:1399:gst_pleorasrc_get_caps:<pleorasrc0> The caps after filtering are video/x-bayer, format=(string)grbg, width=(int)640, height=(int)480, framerate=(fraction)30/1

New clock: GstSystemClock

0:00:01.695192700 20008 00000000030F7840 LOG pleorasrc gstpleorasrc.cpp:1595:gst_pleorasrc_create:<pleorasrc0> create

0:00:01.699223700 20008 00000000030F7840 LOG pleorasrc gstpleorasrc.cpp:1629:gst_pleorasrc_create:<pleorasrc0> Row stride not aligned, copying 640 -> 0

**

ERROR:D:\gst-plugins-vision-1.17.1\sys\pleora\gstpleorasrc.cpp:1639:gst_pleorasrc_create: assertion failed: (minfo.size >= src->pleora_stride * src->height)

joshdoe commented 3 years ago

Are you sure you're running the latest code? I fixed a very similar bug in https://github.com/joshdoe/gst-plugins-vision/issues/44

ADRAndre commented 3 years ago

I was working with 1.5.92 pre-release, actually looks like it was released before you fixed #44 so probably the issue.

I then tried to compile your code from the master branch but,

when I try to run cmake -G "Visual Studio 15 2017 Win64" ..

The following warnings appear at the end of the output:

-- Configuring done WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. WARNING: Target "gstgentl" requests linking to directory "C:/gstreamer/1.0/msvc_x86_64/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item. -- Generating done -- Build files have been written to: C:/gst-plugins-vision-master/build

And, when I try to install with cmake --build . --target INSTALL

I get a bunch or errors:

Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved.

gstbayerutils.vcxproj -> C:\gst-plugins-vision-master\build\gst\bayerutils\Debug\libgstbayerutils.dll gstextractcolor.vcxproj -> C:\gst-plugins-vision-master\build\gst\extractcolor\Debug\libgstextractcolor.dll gstgentl.vcxproj -> C:\gst-plugins-vision-master\build\sys\gentl\Debug\libgstgentl.dll gstmisb.vcxproj -> C:\gst-plugins-vision-master\build\gst\misb\Debug\libgstmisb.dll gstpleora6.vcxproj -> C:\gst-plugins-vision-master\build\sys\pleora\Debug\libgstpleora6.dll gstselect.vcxproj -> C:\gst-plugins-vision-master\build\gst\select\Debug\libgstselect.dll gstvideoadjust.vcxproj -> C:\gst-plugins-vision-master\build\gst\videoadjust\Debug\libgstvideoadjust.dll -- Install configuration: "Debug" -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstbayerutils.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstbayerutils.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstextractcolor.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstextractcolor.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstmisb.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstmisb.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstselect.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstselect.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstvideoadjust.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstvideoadjust.dll CMake Error at sys/gentl/cmake_install.cmake:36 (file): file INSTALL cannot find "C:/gst-plugins-vision-master/build/sys/gentl/Debug/gstgentl.pdb": No error. Call Stack (most recent call first): sys/cmake_install.cmake:37 (include) cmake_install.cmake:40 (include)

Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved.

gstbayerutils.vcxproj -> C:\gst-plugins-vision-master\build\gst\bayerutils\Debug\libgstbayerutils.dll gstextractcolor.vcxproj -> C:\gst-plugins-vision-master\build\gst\extractcolor\Debug\libgstextractcolor.dll gstgentl.vcxproj -> C:\gst-plugins-vision-master\build\sys\gentl\Debug\libgstgentl.dll gstmisb.vcxproj -> C:\gst-plugins-vision-master\build\gst\misb\Debug\libgstmisb.dll gstpleora6.vcxproj -> C:\gst-plugins-vision-master\build\sys\pleora\Debug\libgstpleora6.dll gstselect.vcxproj -> C:\gst-plugins-vision-master\build\gst\select\Debug\libgstselect.dll gstvideoadjust.vcxproj -> C:\gst-plugins-vision-master\build\gst\videoadjust\Debug\libgstvideoadjust.dll -- Install configuration: "Debug" -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstbayerutils.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstbayerutils.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstextractcolor.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstextractcolor.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstmisb.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstmisb.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstselect.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstselect.dll -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstvideoadjust.pdb -- Up-to-date: C:/Program Files/gst-plugins-vision/gstreamer-1.0/libgstvideoadjust.dll CMake Error at sys/gentl/cmake_install.cmake:36 (file): file INSTALL cannot find "C:/gst-plugins-vision-master/build/sys/gentl/Debug/gstgentl.pdb": No error. Call Stack (most recent call first): sys/cmake_install.cmake:37 (include) cmake_install.cmake:40 (include)

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: The command "setlocal [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake [C:\gst-plugins- vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmEnd [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [C:\gst-plugins-vision-master\build\INS TALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmErrorLevel [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: exit /b %1 [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmDone [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [C:\gst-plugins-vision-master\build\INSTALL.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :VCEnd" exited with code 1. [C:\gst-plugins-vision-master\build\INSTALL.vcxproj]

I've got the environment variables set as described in the readme: image

and I've left CMAKE_INSTALL_PREFIX to the default

mrstecklo commented 3 years ago

@mkaivs reported similar problem on Linux. https://github.com/joshdoe/gst-plugins-vision/issues/55

joshdoe commented 3 years ago

You can disable gentl as done in #55, but I also just pushed some changes including a fix for this in 91131aeb7a273637c23c3b33fc4a0885494bad05.

ADRAndre commented 3 years ago

so I tried installing 91131ae as suggested and got the same issues.. Disabling gentle as in #55 worked though and everything built and installed without errors but, now when I try to run: gst-inspect-1.0.exe pleorasrc

I get: (gst-inspect-1.0:1676): GStreamer-WARNING **: 10:44:16.410: Failed to load plugin 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': The specified module could not be found.

(gst-inspect-1.0:1676): GStreamer-WARNING **: 10:44:16.455: Failed to load plugin 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': The specified module could not be found. No such element or plugin 'pleorasrc'

I was reading through #50 which seemed to have similar issues and there you suggested running

gst-inspect-1.0.exe --gst-debug=*:3 pleorasrc

which produces:

0:00:00.039590300 6348 00000000031E8C60 WARN GST_PLUGIN_LOADING gstplugin.c:793:_priv_gst_plugin_load_file_for_registry: module_open failed: 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': The specified module could not be found.

(gst-inspect-1.0:6348): GStreamer-WARNING **: 10:46:15.014: Failed to load plugin 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': The specified module could not be found. 0:00:00.076703800 6348 00000000031E8C60 WARN GST_PLUGIN_LOADING gstplugin.c:793:_priv_gst_plugin_load_file_for_registry: module_open failed: 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': The specified module could not be found.

(gst-inspect-1.0:6348): GStreamer-WARNING **: 10:46:15.052: Failed to load plugin 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': 'D:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstpleora6.dll': The specified module could not be found. No such element or plugin 'pleorasrc'

You also suggested looking at the dependencies graph and I found this tool

which produced the following for libgstpleora6.dll:

image

I googled the libraries it's missing and they are the ebus_sdk device libraries which are definitely not in PUREGEV_ROOT as far as I can tell. How do tell pleorasrc where to look?

ADRAndre commented 3 years ago

Dependencies Tool: https://github.com/lucasg/Dependencies

joshdoe commented 3 years ago

Good work so far. You need to add the directory containing those Pleora DLLs to your path, which I usually do via a batch file, but you can do numerous ways.

ADRAndre commented 3 years ago

It works! Thankyou for your help Josh

In the end I fixed the last issue by reinstalling ebusSDK which set up my path variables for me. Looking at PATH now I see it has added:

C:\Program Files (x86)\Common Files\Pleora\eBUS SDK C:\Program Files\Common Files\Pleora\eBUS SDK

joshdoe commented 3 years ago

Great, glad you had success. Documentation certainly needs improvement.