joshdoe / gst-plugins-vision Goto Github PK
View Code? Open in Web Editor NEWGStreamer plugins related to the field of machine vision
License: Other
GStreamer plugins related to the field of machine vision
License: Other
Hello,
My name is Frank and I want to say that you have done awesome work! I am coming over from Zingmars' git. I was having issues with the corrupted frames bug but your code has fixed that for me. My current project requires me to send a video stream of my two Basler cameras over UDP with zero latency. I am able to do this to some degree. My video stream works just fine but crashes after some time. I dont have to stream the image at full resolution (1600x1200). I can change it to something smaller like 800x600, but when I do that the image sort of displays an area of interest instead of resizing the entire image. This is the pipeline I am using to send the video stream over UDP:
gst-launch-1.0 -v pylonsrc pixel-format=mono8 width=1600 height=1200 camera=0 ! "video/x-raw,format=GRAY8" ! videoflip method=vertical-flip ! videoconvert ! x264enc bitrate=30000 speed-preset=superfast qp-min=30 tune=zerolatency ! rtph264pay ! udpsink host=XXX.XXX.XXX port=XXXX
This is the error message I get when using the above pipeline:
c:2982:gst_pylonsrc_create:<pylonsrc0> Failed capture count=10. Status=4, ErrorCode=-503315950
0:01:10.491583302 5741 0x55bc1b2a82d0 ERROR pylonsrc gstpylonsrc.c:2986:gst_pylonsrc_create:<pylonsrc0> Error in the image processing loop. Status=4, ErrorCode=-503315950
ERROR: from element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
streaming stopped, reason error (-5)
Execution ended after 0:01:10.000411637
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:01:10.493346976 5741 0x55bc1b273890 DEBUG pylonsrc gstpylonsrc.c:3004:gst_pylonsrc_stop:<pylonsrc0> stop
0:01:10.540193224 5741 0x55bc1b273890 DEBUG pylonsrc gstpylonsrc.c:3048:pylonc_disconnect_camera:<pylonsrc0> Camera disconnected.
Setting pipeline to NULL ...
Freeing pipeline ...
0:01:10.540830965 5741 0x55bc1b273890 DEBUG pylonsrc gstpylonsrc.c:3015:gst_pylonsrc_dispose:<pylonsrc0> dispose
0:01:10.540859517 5741 0x55bc1b273890 DEBUG pylonsrc gstpylonsrc.c:3023:gst_pylonsrc_finalize:<pylonsrc0> finalize
This works fine for about a minute or so but then crashes. I can get around this by reducing the image size to 800x600 but I get this image when I do that:
When I apply a 1600x1200 image size, this is what I get:
Is there any way I can display the full image at 800x600? I would assume less bandwidth would be used if I send an 800x600 image instead of a 1600x1200. Also reducing the latency and bitrate is not an option at the moment. When I send the camera image with 800x600 over UDP, I have no problems and it does not crash.
Thank you,
Frank
I have a pipeline that makes use of the pylonsrc
plugin, it's in trigger mode with grab-timeout
set to 60000 ms (1 min). When user press CTRL+C, the bus will handle it by stopping the mainloop, and subsequently, call gst_element_set_state(pipeline, GST_STATE_NULL);
, however, the program will wait for the grab-timeout
amount before fully exit. Is there a way interrupt the grab-timeout
itself?
Wondering if it's time to add meson build files as GStreamer has already done, even though the CMake files have been mostly updated to support Linux. It would integrate better with the GStreamer build environment, however requires a few more tools than just CMake, and meson is not as familiar to as many developers as CMake. I wonder if @5shekel or anyone else has input.
I get this after trying to run gst-launch-1.0 kayasrc ! videolevels auto=continuous ! gigesimsink
Please help how to fix it ?
I'm creating this issue to track similar GStreamer capture plugins that have been discovered. I don't have specific plans to try to merge them with this project at this time, but think that might be a good idea in some cases.
And a shout out to @atdgroup, @MattsProjects, @TheImagingSource and @zingmars to keep them in the loop.
Hello,
When compiling and running pylonsrc with arm64 ubuntu 18.04 on both pylon version 6 or pylon version 5 I got:
Error -> Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstpylon.so': libpylonc-6.2.0.so: cannot open shared object file: No such file or directory
Please see below the steps used:
_Pylon + gst-plugins-vision build/compilation steps:
install latest Pylon6 version:
Download
install on linux arm64:
download and build the new gst-plugins-vision:
git clone https://github.com/joshdoe/gst-plugins-vision.git
adapt the modules .make to match the latest pylon version of folder naming:
cd ~/Downloads/gst-plugins-vision-1.17.1/cmake/modules
sudo nano FindPylon.cmake
else ()
set (_PYLON_DIR "/opt/pylon5") -> modify this to "/opt/pylon"
endif ()
&
find_library (_PylonCLib NAMES PylonC_MD_VC120 pylonc
PATHS
"${PYLON_DIR}/Development/lib/x64"
"${PYLON_DIR}/lib64") modify this to -> "/lib"
modify the sistem location where gst-pylon-plugin should be installed:
build gst-plugins-vision
cd gst-plugins-vision
mkdir build
cd build
cmake ..
make
sudo make install
Result:
(gst-inspect-1.0:27087): GStreamer-WARNING **: 17:51:15.211: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstpylon.so': libpylonc-6.2.0.so: cannot open shared object file: No such file or directory
Could not load plugin file: Opening module failed: libpylonc-6.2.0.so: cannot open shared object file: No such file or directory
pes@pes-desktop:~/Downloads/gst-plugins-vision-1.17.1/build$
This plugin displays the same error for Pylon5 also._
As I commented on #46 here, I was having issues changing the exposure while the camera was connected. I needed to change three things to make this work in my application:
propAutoFeature
which causes the ExposureTime not to be set.The below diff fixes this for me, but I'd like to have the author of #46 comment (@mrstecklo).
diff --git a/sys/pylon/gstpylonsrc.c b/sys/pylon/gstpylonsrc.c
index e1c808f..36c143c 100644
--- a/sys/pylon/gstpylonsrc.c
+++ b/sys/pylon/gstpylonsrc.c
@@ -193,10 +193,10 @@ G_STATIC_ASSERT (AUTOF_NUM_LIMITED == GST_PYLONSRC_NUM_LIMITED_FEATURES);
static const char *const featAutoFeature[AUTOF_NUM_FEATURES] =
{ "GainAuto", "ExposureAuto", "BalanceWhiteAuto" };
static const GST_PYLONSRC_PROP propAutoFeature[AUTOF_NUM_FEATURES] =
- { PROP_GAIN, PROP_EXPOSURE, PROP_AUTOWHITEBALANCE };
+ { PROP_AUTOGAIN, PROP_AUTOEXPOSURE, PROP_AUTOWHITEBALANCE };
// Yes,there is no "WhiteBalance" feature, it is only used for logging
static const char *const featManualFeature[AUTOF_NUM_FEATURES] =
- { "Gain", "ExposureTime", "WhiteBalance" };
+ { "GainRaw", "ExposureTimeAbs", "WhiteBalance" };
static const char *const featLimitedLower[AUTOF_NUM_LIMITED] =
{ "AutoGainLowerLimit", "AutoExposureTimeLowerLimit" };
static const char *const featLimitedUpper[AUTOF_NUM_LIMITED] =
@@ -779,6 +779,21 @@ set_prop_implicitly (GObject * object, GST_PYLONSRC_PROP prop,
}
}
+// Use in gst_pylonsrc_set_property to set related string property
+static inline void
+set_string_prop_implicitly(GObject* object, GST_PYLONSRC_PROP prop,
+ GParamSpec* pspec, const gchar * str_val)
+{
+ GstPylonSrc* src = GST_PYLONSRC(object);
+ if (!is_prop_set(src, prop)) {
+ GValue val = G_VALUE_INIT;
+ g_value_init(&val, G_TYPE_STRING);
+ g_value_set_string(&val, str_val);
+ gst_pylonsrc_set_property(object, prop, &val, pspec);
+ g_value_unset(&val);
+ }
+}
+
/* plugin's parameters/properties */
void
gst_pylonsrc_set_property (GObject * object, guint property_id,
@@ -934,9 +949,12 @@ gst_pylonsrc_set_property (GObject * object, guint property_id,
break;
case PROP_EXPOSURE:
src->limitedFeature[AUTOF_EXPOSURE].manual = g_value_get_double (value);
+ // disable autoexposure unless set explicitly
+ set_string_prop_implicitly(object, PROP_AUTOEXPOSURE, pspec, "off");
break;
case PROP_GAIN:
src->limitedFeature[AUTOF_GAIN].manual = g_value_get_double (value);
+ set_string_prop_implicitly(object, PROP_AUTOGAIN, pspec, "off");
break;
case PROP_BLACKLEVEL:
src->blacklevel = g_value_get_double (value);
Have successfully compiled/installed the gstpleora6 module on Linux, Ubuntu 18.04 (AARCH64, Nvidia JETSON Nano board). The camera is up and working (eBUS player have no problem catching image stream over GigE Vision (PureGEV) (camera has separate IP from board)
the module was compiled with GCC 7.5.0. I had to add the -D_UNIX_ compiler flag.
link.txt
The camera settings used, which were also loaded in a separate trial (with the plugin config-file= param) are enclosed.
This trial yielded basically the same result.
test.pvcfg.gz
gst-launch-1.0 pleorasrc ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
0:00:00.088070921 8470 0x558683b860 WARN xcontext xvcontext.c:534:gst_xvcontext_check_xshm_calls: MIT-SHM extension check failed at XShmAttach. Not using shared memory.
0:00:00.105536122 8470 0x558683b860 WARN xcontext xvcontext.c:534:gst_xvcontext_check_xshm_calls: MIT-SHM extension check failed at XShmAttach. Not using shared memory.
0:00:03.500491386 8470 0x558683b860 WARN pleorasrc gstpleorasrc.cpp:1520:gst_pleorasrc_get_pvbuffer: error: Failed to retrieve buffer in timeout (1000 ms): 0x001e, ''
0:00:03.566564863 8470 0x558683b860 WARN basesrc gstbasesrc.c:3452:gst_base_src_start: error: Failed to start
0:00:03.566688824 8470 0x558683b860 WARN basesrc gstbasesrc.c:3807:gst_base_src_activate_push: Failed to start in push mode
0:00:03.566722992 8470 0x558683b860 WARN GST_PADS gstpad.c:1149:gst_pad_set_active:pleorasrc0:src Failed to activate pad
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstPleoraSrc:pleorasrc0: Failed to retrieve buffer in timeout (1000 ms): 0x001e, ''
Any clue as to what may be the issue?
i prefer to control where plugins go.
but to not break scripts out there
CMAKE_INSTALL_PREFIX
lib/gstreamer-1.0 by default
and GST_PLUGIN_PATH
updated, an extra step
install(TARGETS ${libname}
- LIBRARY DESTINATION lib/gstreamer-1.0)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX})
``
Hi I am trying to get gstreamer working with a pylonsrc on an nvidia jetson NX. I got this plugin working for pylon but I can't get an output. I used the following gstreamer pipeline:
bram@NX:~$ GST_DEBUG=2,pylonsrc:6 gst-launch-1.0 -v pylonsrc pixel-format=mono8 width=1024 height=512 ! "video/x-raw,format=GRAY8" ! videoflip method=vertical-flip ! videoconvert ! x264enc bitrate=30000 speed-preset=superfast qp-min=30 tune=zerolatency ! rtph264pay ! udpsink host=127.0.0.1 port=5000
the output
0:00:03.141785155 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:792:gst_pylonsrc_init:<GstPylonSrc@0x556fbdc6e0> Initialising defaults
0:00:03.141934908 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:958:gst_pylonsrc_set_property:<pylonsrc0> Setting a property: 38
0:00:03.141992506 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:958:gst_pylonsrc_set_property:<pylonsrc0> Setting a property: 3
0:00:03.142032440 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:958:gst_pylonsrc_set_property:<pylonsrc0> Setting a property: 2
0:00:03.214928710 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.214994275 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:03.215132413 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.215170876 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:03.215858655 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.215907389 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:03.216401128 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.216443654 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:03.222540835 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.222596609 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:03.227935103 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.227983837 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:03.228428362 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.228470856 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1467:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
Setting pipeline to PAUSED ...
0:00:03.231529958 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4028:gst_pylonsrc_start:<pylonsrc0> First object created
0:00:03.728845801 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1735:gst_pylonsrc_select_device:<pylonsrc0> src: found 1 Basler device(s).
0:00:03.729071552 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4240:pylonc_connect_camera:<pylonsrc0> Connecting to the camera (index=0)...
0:00:03.885463142 10322 0x556fa4bb90 LOG pylonsrc gstpylonsrc.c:4307:pylonc_print_camera_info:<pylonsrc0> Status: Using camera "acA2040-90umNIR" (serial number: 21782582, id: 0). Custom ID: gjm8
0:00:03.886413342 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1866:gst_pylonsrc_set_resolution_axis:<pylonsrc0> Setting BinningHorizontal to 1
0:00:03.890137954 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:3250:read_integer_feature:<pylonsrc0> Reading integer feature: WidthMax = 2048
0:00:03.895826131 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1866:gst_pylonsrc_set_resolution_axis:<pylonsrc0> Setting BinningVertical to 1
0:00:03.900638154 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:3250:read_integer_feature:<pylonsrc0> Reading integer feature: HeightMax = 2048
0:00:03.906318652 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1913:gst_pylonsrc_set_resolution_axis:<pylonsrc0> Max resolution is 2048x2048.
0:00:03.906409496 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1915:gst_pylonsrc_set_resolution_axis:<pylonsrc0> Setting resolution to 1024x512.
0:00:03.907654532 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1957:gst_pylonsrc_set_offset_axis:<pylonsrc0> CenterX: False
0:00:03.908773813 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1957:gst_pylonsrc_set_offset_axis:<pylonsrc0> CenterY: False
0:00:03.909906661 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2018:gst_pylonsrc_set_reverse_axis:<pylonsrc0> ReverseX: False
0:00:03.910999351 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2018:gst_pylonsrc_set_reverse_axis:<pylonsrc0> ReverseY: False
0:00:03.911068980 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2100:gst_pylonsrc_set_pixel_format:<pylonsrc0> Using mono8 PixelFormat.
0:00:03.912787916 10322 0x556fa4bb90 WARN pylonsrc gstpylonsrc.c:1540:feature_supported:<pylonsrc0> Camera does not implement feature: SensorReadoutMode
0:00:03.913450417 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2184:gst_pylonsrc_set_bandwidth:<pylonsrc0> Limiting camera's bandwidth.
0:00:03.915181928 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2232:gst_pylonsrc_set_framerate:<pylonsrc0> Limiting framerate: False. See below for current framerate.
0:00:03.915910794 10322 0x556fa4bb90 WARN pylonsrc gstpylonsrc.c:1566:feature_alias_available:<pylonsrc0> Feature is not available: LightSourcePreset or LightSourceSelector
0:00:03.915966151 10322 0x556fa4bb90 WARN pylonsrc gstpylonsrc.c:1551:feature_available:<pylonsrc0> Feature is not available: BslLightSourcePreset
0:00:03.916001830 10322 0x556fa4bb90 WARN pylonsrc gstpylonsrc.c:2318:gst_pylonsrc_set_lightsource:<pylonsrc0> This camera doesn't have any lightsource presets
0:00:03.917061177 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2340:gst_pylonsrc_set_auto_feature:<pylonsrc0> Disabling GainAuto.
0:00:03.919020135 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2340:gst_pylonsrc_set_auto_feature:<pylonsrc0> Disabling ExposureAuto.
0:00:03.920277139 10322 0x556fa4bb90 WARN pylonsrc gstpylonsrc.c:1551:feature_available:<pylonsrc0> Feature is not available: BalanceWhiteAuto
0:00:03.920327952 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2513:gst_pylonsrc_set_auto_exp_gain_wb:<pylonsrc0> Using the auto profile currently saved on the device.
0:00:03.920357839 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2553:gst_pylonsrc_set_colour_balance:<pylonsrc0> Using current settings for the colour Red.
0:00:03.920397710 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2553:gst_pylonsrc_set_colour_balance:<pylonsrc0> Using current settings for the colour Green.
0:00:03.920432524 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2553:gst_pylonsrc_set_colour_balance:<pylonsrc0> Using current settings for the colour Blue.
0:00:03.920475754 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2596:gst_pylonsrc_set_colour_hue:<pylonsrc0> Using saved Red hue.
0:00:03.920500585 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2642:gst_pylonsrc_set_colour_saturation:<pylonsrc0> Using saved Red saturation.
0:00:03.920548839 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2596:gst_pylonsrc_set_colour_hue:<pylonsrc0> Using saved Green hue.
0:00:03.920585062 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2642:gst_pylonsrc_set_colour_saturation:<pylonsrc0> Using saved Green saturation.
0:00:03.920621892 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2596:gst_pylonsrc_set_colour_hue:<pylonsrc0> Using saved Blue hue.
0:00:03.920690241 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2642:gst_pylonsrc_set_colour_saturation:<pylonsrc0> Using saved Blue saturation.
0:00:03.920747583 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2596:gst_pylonsrc_set_colour_hue:<pylonsrc0> Using saved Cyan hue.
0:00:03.920809724 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2642:gst_pylonsrc_set_colour_saturation:<pylonsrc0> Using saved Cyan saturation.
0:00:03.920842683 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2596:gst_pylonsrc_set_colour_hue:<pylonsrc0> Using saved Magenta hue.
0:00:03.920879577 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2642:gst_pylonsrc_set_colour_saturation:<pylonsrc0> Using saved Magenta saturation.
0:00:03.920941559 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2596:gst_pylonsrc_set_colour_hue:<pylonsrc0> Using saved Yellow hue.
0:00:03.921045906 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2642:gst_pylonsrc_set_colour_saturation:<pylonsrc0> Using saved Yellow saturation.
0:00:03.921079697 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain00 transformation value.
0:00:03.921109936 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain01 transformation value.
0:00:03.921137839 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain02 transformation value.
0:00:03.921162158 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain10 transformation value.
0:00:03.921207564 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain11 transformation value.
0:00:03.921238410 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain12 transformation value.
0:00:03.921271881 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain20 transformation value.
0:00:03.921301352 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain21 transformation value.
0:00:03.921343558 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2674:gst_pylonsrc_set_colour_transformation:<pylonsrc0> Using saved Gain22 transformation value.
0:00:03.921405699 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2801:gst_pylonsrc_set_manual_feature:<pylonsrc0> Gain property not set, using the saved setting.
0:00:03.921445602 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:2801:gst_pylonsrc_set_manual_feature:<pylonsrc0> ExposureTime property not set, using the saved setting.
0:00:03.924823764 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1623:gst_pylonsrc_set_float_feature_with_int_alias:<pylonsrc0> Setting BlackLevel to 0,000000
0:00:03.924896625 10322 0x556fa4bb90 WARN pylonsrc gstpylonsrc.c:1566:feature_alias_available:<pylonsrc0> Feature is not available: DemosaicingMode or PgiMode
0:00:03.925015628 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1644:gst_pylonsrc_set_trigger:<pylonsrc0> Setting trigger mode.
0:00:03.926572107 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:1703:gst_pylonsrc_set_trigger:<pylonsrc0> Using "FrameStart" trigger selector. Software trigger mode is Off.
Pipeline is live and does not need PREROLL ...
0:00:03.933723103 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:1465:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps. Filter:
(NULL)
0:00:03.934479999 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:2067:gst_pylonsrc_get_supported_caps:<pylonsrc0> PixelFormat Mono8 supported, adding to caps
0:00:03.934716981 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:2080:gst_pylonsrc_get_supported_caps:<pylonsrc0> Supported caps are video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.934835600 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:1472:gst_pylonsrc_get_caps:<pylonsrc0> Return caps:
video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)[ 0/1, 2147483647/1 ]
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:03.936736321 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:1484:gst_pylonsrc_set_caps:<pylonsrc0> Setting caps to video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
0:00:03.936864475 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:1497:gst_pylonsrc_set_caps:<pylonsrc0> Set caps match PixelFormat 'Mono8'
0:00:03.938528886 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3216:read_string_feature:<pylonsrc0> Reading string feature: PixelFormat = Mono8
0:00:03.939680229 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3216:read_string_feature:<pylonsrc0> Reading string feature: PixelSize = Bpp8
0:00:03.939763298 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:1522:gst_pylonsrc_set_caps:<pylonsrc0> Pixel is 8 bits large.
/GstPipeline:pipeline0/GstPylonSrc:pylonsrc0.GstPad:src: caps = video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoFlip:videoflip0.GstPad:src: caps = video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1024, height=(int)512, framerate=(fraction)0/1, format=(string)Y444
Redistribute latency...
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps = video/x-raw, width=(int)1024, height=(int)512, framerate=(fraction)0/1, format=(string)Y444
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoFlip:videoflip0.GstPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1024, height=(int)512, framerate=(fraction)0/1
0:00:03.972810617 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3150:gst_pylonsrc_configure_start_acquisition:<pylonsrc0> With current settings the camera requires 51713215/500000000 B/s (51,7 out of 500,0 MB/s) of bandwidth.
0:00:03.973477725 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3163:gst_pylonsrc_configure_start_acquisition:<pylonsrc0> With these settings it will take approximately 5074 microseconds to grab each frame.
0:00:03.974537937 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3174:gst_pylonsrc_configure_start_acquisition:<pylonsrc0> The resulting framerate is 99 fps.
0:00:03.974591662 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3178:gst_pylonsrc_configure_start_acquisition:<pylonsrc0> Each frame is 524288 bytes big (0,5 MB). That's 51,7MB/s.
0:00:03.975367982 10322 0x556fc59140 DEBUG pylonsrc gstpylonsrc.c:3192:gst_pylonsrc_configure_start_acquisition:<pylonsrc0> Initialised successfully.
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264, codec_data=(buffer)01f4001fffe1001c67f4001f91968040041b016a0c020a8000000300bb9aca00078c195001000468ef3192, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high-4:4:4, width=(int)1024, height=(int)512, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, chroma-site=(string)jpeg
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)f4001f, sprop-parameter-sets=(string)"Z/QAH5GWgEAEGwFqDAIKgAAAAwC7msoAB4wZUA\=\=\,aO8xkg\=\=", payload=(int)96, ssrc=(uint)4159041921, timestamp-offset=(uint)1006145840, seqnum-offset=(uint)14130
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)f4001f, sprop-parameter-sets=(string)"Z/QAH5GWgEAEGwFqDAIKgAAAAwC7msoAB4wZUA\=\=\,aO8xkg\=\=", payload=(int)96, ssrc=(uint)4159041921, timestamp-offset=(uint)1006145840, seqnum-offset=(uint)14130
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, codec_data=(buffer)01f4001fffe1001c67f4001f91968040041b016a0c020a8000000300bb9aca00078c195001000468ef3192, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high-4:4:4, width=(int)1024, height=(int)512, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, chroma-site=(string)jpeg
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 1006150852
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 14130
0:00:04.403982116 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=1. Status=4, ErrorCode=-503315950
0:00:04.420151870 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=2. Status=4, ErrorCode=-503315950
0:00:04.445195941 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=3. Status=4, ErrorCode=-503315950
0:00:04.461584086 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=4. Status=4, ErrorCode=-503315950
0:00:04.486294703 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=5. Status=4, ErrorCode=-503315950
0:00:04.502926621 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=6. Status=4, ErrorCode=-503315950
0:00:04.527588031 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=7. Status=4, ErrorCode=-503315950
0:00:04.543960505 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=8. Status=4, ErrorCode=-503315950
0:00:04.569161893 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=9. Status=4, ErrorCode=-503315950
0:00:04.585155822 10322 0x556fc59140 WARN pylonsrc gstpylonsrc.c:4136:gst_pylonsrc_create:<pylonsrc0> Failed capture count=10. Status=4, ErrorCode=-503315950
0:00:04.610305436 10322 0x556fc59140 ERROR pylonsrc gstpylonsrc.c:4142:gst_pylonsrc_create:<pylonsrc0> Error in the image processing loop. Status=4, ErrorCode=-503315950
0:00:04.610411127 10322 0x556fc59140 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<pylonsrc0> error: Internal data stream error.
0:00:04.610450070 10322 0x556fc59140 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<pylonsrc0> error: streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
streaming stopped, reason error (-5)
Execution ended after 0:00:00.675684739
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:04.620567955 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4160:gst_pylonsrc_stop:<pylonsrc0> stop
0:00:04.646117872 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4215:pylonc_disconnect_camera:<pylonsrc0> Camera disconnected.
Setting pipeline to NULL ...
Freeing pipeline ...
0:00:04.647511862 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4171:gst_pylonsrc_dispose:<pylonsrc0> dispose
0:00:04.647561524 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4179:gst_pylonsrc_finalize:<pylonsrc0> finalize
0:00:04.650839276 10322 0x556fa4bb90 DEBUG pylonsrc gstpylonsrc.c:4197:gst_pylonsrc_finalize:<pylonsrc0> Last object finalized
I can see that he takes the setting of the camera when I load it up in the pylon viewer after I tried this. I tried running the pipeline with different resolutions, with and without binning. Does anyone know a solution for this problem, as far as I can see not a single frame grab worked. (the camera I am using is the https://www.baslerweb.com/en/products/cameras/area-scan-cameras/ace/aca2040-90umnir/)
Josh,
Could you load the selected UserSet that is stored in the camera after opening it? I'm finding out that only some of the parameters in the project file are set, and the other values (like Width, Height) are from the power up settings.
There needs to be a call to
KYFG_CameraExecuteCommand(camHandle, 'UserSetLoadReg')
after
ret = KYFG_CameraOpen2 (cam_handles[src->device_index], src->xml_file);
(line 430 in gstkayasrc.c)
I'm doing this in my Python program before I open the pipeline. When I open the pipeline however, I'm reverting back to the power up settings, at least for the image size.
I suppose the C statement would be
ret = KYFG_CameraExecuteCommand(cam_handles(src->device_index), "UserSetLoadReg");
I need to think more about how to initialize the camera with power up vs. UserSetSelector values.
Josh
is there a way that I can call your plugins from OpenCV (I have rebuilt OpenCV 4.1.2 libs with Gstreamer support) Windows Application using VS C++ 2017 (compiler) ?
Basically, I am trying to make a c++ application, which will use your plugin to talk to a GigE Pleora camera, get the video into OpenCV for image enhancement and then display it using OpenCV imshow functions.
your thoughts ?
Thanks and Regards
Nitin
Does anyone know how to cross compiling these plugins with yocto/bitbake recipes?
I am using the original gst-pylon repo but i get an error saying
"checking for /opt/pylon5/include/pylonc... configure: error: cannot check for file existence when cross compiling"
I guess its telling me that I can't cross compile? Though i feel like i should be able to still.
I just dont know how to include pylon5 src into the recipe.
effects many
-gst-launch -v videotestsrc ! autovideoconvert ! gigesimsink
+gst-launch-1.0 -v videotestsrc ! autovideoconvert ! gigesimsink
Hi,
We are trying to use your plugins with EPIX PIXCI-EB1 MINI-H its dependencies indicate that "Specific frame grabber SDKs" is required, to be more precise: XCLIB needs to be installed, there are difference XCLIB versions available at PIXCI:
Could you please indicate if XCLIBLITE works with your plugins? Or XCLIB is required? It seems that we require to use pixcisrc element.
Regards,
Carlos A.
Hi
Is there an example of how to inject telemetry into a video using klvinjector?
thanks
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:
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)
-- 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
Hi @joshdoe,
Thank for for create and maintain this list of plugin! I just want to ask if the pylonsrc
plugin require pylon 5 or pylon 6 also work?
I have verified that Pleora eBus player captures images fine on my PC running Win 10 x64 and eBUS v 6.1.1 x 64 bit but when I launch gst (GStreamer v 1.16.1) like below:
"gst-launch-1.0 pleorasrc ! autovideoconvert ! autovideosink"
as soon as gst-launch launches, it crashes with the following error:
"Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New
EcRlRoOcRk::C :G\sUtsSeyrsst\eUmsCelorc\kD
wnloads\gst-plugins-vision-master\gst-plugins-vision-master\sys\pleora\gstpleorasrc.cpp:1619:gst_pleorasrc_create: assertion failed: (minfo.size >= src->pleora_stride * src->height)_"
it seems like, minfo.size is 0 in the above assertion.
What am I missing ?
Hi,
I have just compiled and installed the gst-plugin on Ubuntu. Worked like a char,. But I have not been able to
open a stream to my Basler camera. Can anyone explain how I write the gst-launch string?
I assumed it would work like this:
gst-launch-1.0 pylonsrc ! autovideoconvert ! autovidosink
but noo.
Ideas? I want to use this in python in the end so I guess, once the gst-launcher works I can use it in Python too?
br,
M
multiple 0.10 calls
GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
see porting guide
and errors on config.h
i suspect something to do with
add_definitions(-DHAVE_CONFIG_H)
in its CMakeLists.txt
also plugin_define had issues
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
freeimage,
"FreeImage plugin library", plugin_init, GST_PACKAGE_VERSION, GST_PACKAGE_LICENSE, GST_PACKAGE_NAME,
GST_PACKAGE_ORIGIN)
This issue got introduced in commit "gentlsrc: use GEV buffer timestamps if available for unix reference time" (765662a).
Compiling on Linux fails because the file gstgentlsrc.c includes the header Windows.h (which is not available on Linux). I am not sure this header is even used inside that C file.
Removing the include doesn't solve the issue, because the new file get_unix_ns.h implements the function get_unix_ns()
for Windows only. It fails during complile time because there is no type LARGE_INTEGER
. But it will also fail during runtime because it accesses the Windows kernel.
I only need the pylonsrc
plugin, I've installed pylon 6 (include path /opt/pylon/include
, lib path /opt/pylon/lib
) so I modified FindPylon.cmake accordingly to work with pylon 6 instead of pylon 5 as follow:
Line 15: set (_PYLON_DIR "/opt/pylon5")
-> set (_PYLON_DIR "/opt/pylon")
Line 32: "${PYLON_DIR}/lib64")
-> "${PYLON_DIR}/lib")
Then, I followed the instruction to compile for Ubuntu. Running cmake ..
:
-- 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)
-- Could NOT find Pleora (missing: Pleora_INCLUDE_DIR Pleora_LIBRARY_DIR Pleora_LIBRARIES)
-- Found PYLON: /opt/pylon/include
-- 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.
-----------------------------------------------------------------------------
* GStreamer - Required to build gst-plugins-vision
* GStreamer base library - Required to build most plugins
* GStreamer video library - Required to build several video plugins
* GLib - Required to build gst-plugins-vision
* GObject - Required to build gst-plugins-vision
* Orc - Required library to improve performance
* Basler Pylon - Required to build Basler Pylon source element
-----------------------------------------------------------------------------
-- The following OPTIONAL packages could NOT be located on your system.
-- Consider installing them to enable more features from this software.
-----------------------------------------------------------------------------
* BitFlow <http://www.bitflow.com/>
Required to build BitFlow source element
* NI-IMAQ <http://www.ni.com/>
Required to build National Instruments IMAQ source element
* NI-IMAQdx <http://www.ni.com/>
Required to build National Instruments IMAQdx source element
* FreeImage <http://freeimage.sourceforge.net/>
Required to build FreeImage plugin
* OpenCV <http://opencv.willowgarage.com/>
Required to build sensorfx plugin
* Aptina <http://www.onsemi.com/>
Required to build aptinasrc source element
* EDT <http://www.edt.com/>
Required to build EDT PDV source element
* Euresys <http://www.euresys.com/>
Required to build Euresys source element
* GigESim <http://www.ab-soft.com/>
Required to build A&B Soft GigESim sink element
* IDS uEye <http://en.ids-imaging.com/>
Required to build IDS uEye source element
* Imperx FrameLink Express <http://www.imperx.com/>
Required to build Imperx FrameLink Express source element
* Imperx HD-SDI Express <http://www.imperx.com/>
Required to build Imperx HD-SDI Express source element
* IOtech DaqX <http://www.mccdaq.com/>
Required to build IOtech DaqX source element
* KAYA Vision Point <http://www.kayainstruments.com/>
Required to build KAYA source element
* Matrox MIL <http://www.matrox.com/imaging/>
Required to build Matrox MIL source element
* Active Silicon Phoenix <http://www.activesilicon.com/>
Required to build Active Silicon Phoenix source element
* Pleora eBUS <http://www.pleora.com/>
Required to build Pleora eBUS source element
* QImaging QCam <https://www.photometrics.com/qimaging>
Required to build QImaging QCam source element
* Teledyne DALSA Sapera <http://www.teledynedalsa.com/>
Required to build Teledyne DALSA Sapera source element
* EPIX PIXCI <http://www.epixinc.com/>
Required to build EPIX PIXCI source element
-----------------------------------------------------------------------------
-- Configuring done
WARNING: Target "gstgentl" requests linking to directory "/usr/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "gstgentl" requests linking to directory "/usr/include/gstreamer-1.0". Targets may link only to libraries. CMake is dropping the item.
-- Generating done
-- Build files have been written to: /home/minh/gst-plugins-vision/build
No error, but 2 warnings about: Target "gstgentl" requests linking to directory "/usr/include/gstreamer-1.0"
, I think this is probably cause by this line ${GSTREAMER_INCLUDE_DIR}/../../lib/z.lib
?
I checked the generated CMakeCache.txt
in the build
directory, and see these:
//Path to a file.
GSTREAMER_BASE_INCLUDE_DIR:PATH=/usr/include/gstreamer-1.0
//Path to a library.
GSTREAMER_BASE_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgstbase-1.0.so
//Path to a file.
GSTREAMER_INCLUDE_DIR:PATH=/usr/include/gstreamer-1.0
//Path to a file.
GSTREAMER_INCLUDE_DIR_ARCH:PATH=/usr/include/gstreamer-1.0
//Path to a library.
GSTREAMER_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so
//The path to the gstreamer plugins installation directory
GSTREAMER_PLUGIN_DIR:PATH=/usr/lib/x86_64-linux-gnu/gstreamer-1.0
//Path to a file.
GSTREAMER_VIDEO_INCLUDE_DIR:PATH=/usr/include/gstreamer-1.0
//Path to a library.
GSTREAMER_VIDEO_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so
When I run make
, I got the following error:
[ 5%] Building C object gst/bayerutils/CMakeFiles/gstbayerutils.dir/gstbayer2gray.c.o
/home/minh/gst-plugins-vision/gst/bayerutils/gstbayer2gray.c: In function โgst_bayer2gray_transform_capsโ:
/home/minh/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/minh/gst-plugins-vision/gst/extractcolor/gstextractcolor.c: In function โgst_extract_color_transform_capsโ:
/home/minh/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);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 20%] Building C object gst/extractcolor/CMakeFiles/gstextractcolor.dir/gstextractcolororc-dist.c.o
[ 25%] Linking C shared module libgstextractcolor.so
[ 25%] Built target gstextractcolor
Scanning dependencies of target gstmisb
[ 30%] Building C object gst/misb/CMakeFiles/gstmisb.dir/gstmisb.c.o
[ 35%] Building C object gst/misb/CMakeFiles/gstmisb.dir/gstmisbirpack.c.o
[ 40%] Building C object gst/misb/CMakeFiles/gstmisb.dir/gstmisbirunpack.c.o
[ 45%] Linking C shared module libgstmisb.so
[ 45%] Built target gstmisb
Scanning dependencies of target gstselect
[ 50%] 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/minh/gst-plugins-vision/gst/select/gstselect.h:28,
from /home/minh/gst-plugins-vision/gst/select/gstselect.c:41:
/home/minh/gst-plugins-vision/gst/select/gstselect.c: In function โgst_select_transform_ipโ:
/home/minh/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/minh/gst-plugins-vision/gst/select/gstselect.c:223:5: note: in expansion of macro โGST_LOG_OBJECTโ
GST_LOG_OBJECT (filt,
^~~~~~~~~~~~~~
/home/minh/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/minh/gst-plugins-vision/gst/select/gstselect.c:230:5: note: in expansion of macro โGST_LOG_OBJECTโ
GST_LOG_OBJECT (filt,
^~~~~~~~~~~~~~
[ 55%] Linking C shared module libgstselect.so
[ 55%] Built target gstselect
Scanning dependencies of target gstvideoadjust
[ 60%] Building C object gst/videoadjust/CMakeFiles/gstvideoadjust.dir/gstvideoadjust.c.o
[ 65%] 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/minh/gst-plugins-vision/gst/videoadjust/gstvideolevels.h:28,
from /home/minh/gst-plugins-vision/gst/videoadjust/gstvideolevels.c:43:
/home/minh/gst-plugins-vision/gst/videoadjust/gstvideolevels.c: In function โgst_videolevels_transformโ:
/home/minh/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/minh/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)",
^~~~~~~~~~~~~~
[ 70%] Linking C shared module libgstvideoadjust.so
[ 70%] Built target gstvideoadjust
Scanning dependencies of target gstgentl
[ 75%] Building C object sys/gentl/CMakeFiles/gstgentl.dir/gstgentlsrc.c.o
In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0,
from /home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:40:
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c: In function โgst_gentlsrc_get_payload_sizeโ:
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:709:27: warning: format โ%dโ expects argument of type โintโ, but argument 8 has type โsize_t {aka long unsigned int}โ [-Wformat=]
GST_DEBUG_OBJECT(src, "Payload size defined by stream info: %d", payload_size);
^
/usr/include/gstreamer-1.0/gst/gstinfo.h:640:31: note: in definition of macro โGST_CAT_LEVEL_LOGโ
(GObject *) (object), __VA_ARGS__); \
^~~~~~~~~~~
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:709:5: note: in expansion of macro โGST_DEBUG_OBJECTโ
GST_DEBUG_OBJECT(src, "Payload size defined by stream info: %d", payload_size);
^~~~~~~~~~~~~~~~
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:717:27: warning: format โ%dโ expects argument of type โintโ, but argument 8 has type โsize_t {aka long unsigned int}โ [-Wformat=]
GST_DEBUG_OBJECT(src, "Payload size defined by node map: %d", payload_size);
^
/usr/include/gstreamer-1.0/gst/gstinfo.h:640:31: note: in definition of macro โGST_CAT_LEVEL_LOGโ
(GObject *) (object), __VA_ARGS__); \
^~~~~~~~~~~
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:717:5: note: in expansion of macro โGST_DEBUG_OBJECTโ
GST_DEBUG_OBJECT(src, "Payload size defined by node map: %d", payload_size);
^~~~~~~~~~~~~~~~
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/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:40:
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c: In function โgst_gentlsrc_get_bufferโ:
/home/minh/gst-plugins-vision/sys/gentl/gstgentlsrc.c:1334:10: warning: format โ%dโ expects argument of type โintโ, but argument 2 has type โsize_t {aka long unsigned int}โ [-Wformat=]
("Unsupported payload type: %d", payload_type), (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; \
^~~~
[ 80%] Building C object sys/gentl/CMakeFiles/gstgentl.dir/ioapi.c.o
[ 85%] Building C object sys/gentl/CMakeFiles/gstgentl.dir/unzip.c.o
make[2]: *** No rule to make target '/usr/include/gstreamer-1.0/../../lib/z.lib', needed by 'sys/gentl/libgstgentl.so'. Stop.
CMakeFiles/Makefile2:447: recipe for target 'sys/gentl/CMakeFiles/gstgentl.dir/all' failed
make[1]: *** [sys/gentl/CMakeFiles/gstgentl.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
I looked at the CMakeLists.txt for gentl
and on line 25, I saw this: ${GSTREAMER_INCLUDE_DIR}/../../lib/z.lib
, I'm not sure what is this library (z.lib
) that I'm missing? How do I deal with this error?
Hi All,
I'm trying to get my USB3 basler camera running in a docker container. I got all the gstreamer stuff and related plugin installed, as well as plyon5. I run my docker container with --privileged. When I run lsusb I can see that the camera is detected by the container.
Bus 003 Device 024: ID 2676:ba03 Basler AG
However, when I try to start a gstreamer pipeline, the debug window tells me that there's no device connected.
0:00:00.030106101 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:406:gst_pylonsrc_init:GstPylonsrc@0x12db2e0 Initialising defaults
0:00:00.030305032 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:490:gst_pylonsrc_set_property: Setting a property.
0:00:00.030354757 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:490:gst_pylonsrc_set_property: Setting a property.
0:00:00.030371261 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:490:gst_pylonsrc_set_property: Setting a property.
0:00:00.030518459 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:490:gst_pylonsrc_set_property: Setting a property.
0:00:00.046894329 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.046998730 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
0:00:00.047203802 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.047263152 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
0:00:00.048256673 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.048294306 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
0:00:00.048375466 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.048404863 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
0:00:00.048961188 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.048996337 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
0:00:00.049733303 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.049844406 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
0:00:00.050082880 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:908:gst_pylonsrc_get_caps: Received a request for caps.
0:00:00.050120296 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps: Could not send caps - no camera connected.
Setting pipeline to PAUSED ...
0:00:00.329791603 1785 0x12d82c0 DEBUG pylonsrc gstpylonsrc.c:990:gst_pylonsrc_start: pylonsrc: found 0 Basler device(s).
0:00:00.329856942 1785 0x12d82c0 ERROR pylonsrc gstpylonsrc.c:992:gst_pylonsrc_start: No devices connected, canceling initialisation.
0:00:00.329864056 1785 0x12d82c0 WARN pylonsrc gstpylonsrc.c:993:gst_pylonsrc_start: error: Failed to initialise the camera
0:00:00.329869502 1785 0x12d82c0 WARN pylonsrc gstpylonsrc.c:993:gst_pylonsrc_start: error: No camera connected
ERROR: Pipeline doesn't want to pause.
Does anyone have any idea where I should go from here?
BR,
SC
I've recently been working on a plugin for ToupTek microscope cameras: https://github.com/JohnDMcMaster/gst-plugin-toupcam/
Someone suggested you might be a better long term place for it rather than a dedicated repo. Would you have any interest in merging this in? At what stage would that make sense?
When compiling the plugin I get the below error from the 'make' command:
make[2]: *** No rule to make target '/usr/include/gstreamer-1.0/../../lib/z.lib', needed by 'sys/gentl/libgstgentl.so'. Stop. CMakeFiles/Makefile2:447: recipe for target 'sys/gentl/CMakeFiles/gstgentl.dir/all' failed make[1]: *** [sys/gentl/CMakeFiles/gstgentl.dir/all] Error 2 Makefile:151: recipe for target 'all' failed make: *** [all] Error 2 jetson@jetson:~/gst-plugins-vis
I cannot work out what is causing this issue. Running Ubuntu ARM 18.04 LTS
I am using an arm64 borad and i want to use gstreamer to access video from IDS ueye camera. I am very new to these topics. I have tried much but I have problems installing these plugins. Could you please guide me on the installation steps ?
CMake Error at cmake/modules/FindPleora.cmake:43 (file):
file STRINGS file
"/opt/gst/gst-plugins-vision/Pleora_INCLUDE_DIR-NOTFOUND/PvVersion.h"
cannot be read.
Call Stack (most recent call first):
CMakeLists.txt:100 (find_package)
commenting the line helps, also this works
if(${Pleora_INCLUDE_DIR}!="Pleora_INCLUDE_DIR-NOTFOUND")
file(STRINGS "${Pleora_INCLUDE_DIR}/PvVersion.h" _pleora_VERSION_CONTENTS REGEX "#define NVERSION_STRING")
endif()
tested on jetson/nano , can also help #2
Failed to compile the plugin for IDS uEye camera on Linux.
It seems the following code contains a typo:
void *
char_to_ids_unicode (const char *str)
{
return g_utf8_to_ucs4 (src->config_file, -1, NULL, NULL, NULL);
}
Should be
void *
char_to_ids_unicode (const char *str)
{
return g_utf8_to_ucs4 (str, -1, NULL, NULL, NULL);
}
I have a pipeline that ran for hours before this error occurred.
66:52:26.688001436 11645 0x564a34d30590 ERROR pylonsrc gstpylonsrc.c:2204:gst_pylonsrc_create:<camera> Error in the image processing loop.
66:52:26.688060908 11645 0x564a34d30590 INFO basesrc gstbasesrc.c:2839:gst_base_src_loop:<camera> pausing after gst_base_src_get_range() = error
66:52:26.688103115 11645 0x564a34d30590 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<camera> error: Internal data stream error.
66:52:26.688124190 11645 0x564a34d30590 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<camera> error: streaming stopped, reason error (-5)
66:52:26.688175968 11645 0x564a34d30590 INFO GST_ERROR_SYSTEM gstelement.c:2145:gst_element_message_full_with_details:<camera> posting message: Internal data stream error.
66:52:26.688271008 11645 0x564a34d30590 INFO GST_ERROR_SYSTEM gstelement.c:2172:gst_element_message_full_with_details:<camera> posted error message: Internal data stream error.
ERROR from element camera: Internal data stream error.
66:52:26.688349520 11645 0x564a34d30590 INFO task gsttask.c:316:gst_task_func:<camera:src> Task going to paused
Error details: gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:ds-custom-pipeline/GstBin:source-bin-00/GstPylonsrc:camera:
streaming stopped, reason error (-5)
Returned, stopping playback
I looked into the source code and the error originated from this function:
static GstFlowReturn gst_pylonsrc_create (GstPushSrc *src, GstBuffer **buf)
{
GstPylonsrc *pylonsrc = GST_PYLONSRC (src);
GENAPIC_RESULT res;
size_t bufferIndex;
PylonGrabResult_t grabResult;
_Bool bufferReady;
GstMapInfo mapInfo;
// Wait for the buffer to be filled (up to 1 s)
res = PylonWaitObjectWait(pylonsrc->waitObject, 300000, &bufferReady);
PYLONC_CHECK_ERROR(pylonsrc, res);
if(!bufferReady) {
GST_MESSAGE_OBJECT(pylonsrc, "Camera couldn't prepare the buffer in time. Probably dead.");
goto error;
}
res = PylonStreamGrabberRetrieveResult (pylonsrc->streamGrabber, &grabResult, &bufferReady);
PYLONC_CHECK_ERROR(pylonsrc, res);
if(!bufferReady) {
GST_MESSAGE_OBJECT(pylonsrc, "Couldn't get a buffer from the camera. Basler said this should be impossible. You just proved them wrong. Congratulations!");
goto error;
}
if(!pylonsrc->continuousMode) {
// Trigger the next picture while we process this one
if(PylonDeviceFeatureIsAvailable(pylonsrc->deviceHandle, "AcquisitionStatus")) {
_Bool isReady = FALSE;
do {
res = PylonDeviceGetBooleanFeature(pylonsrc->deviceHandle, "AcquisitionStatus", &isReady);
PYLONC_CHECK_ERROR(pylonsrc, res);
} while (!isReady);
}
res = PylonDeviceExecuteCommandFeature(pylonsrc->deviceHandle, "TriggerSoftware");
PYLONC_CHECK_ERROR(pylonsrc, res);
}
// Process the current buffer
bufferIndex = (size_t) grabResult.Context;
if(grabResult.Status == Grabbed) {
//TODO: See if I can avoid memcopy and record directly into the gst buffer map.
// Copy the image into the buffer that will be passed onto the next GStreamer element
*buf = gst_buffer_new_and_alloc(pylonsrc->payloadSize);
gst_buffer_map(*buf, &mapInfo, GST_MAP_WRITE);
orc_memcpy(mapInfo.data, grabResult.pBuffer, mapInfo.size);
gst_buffer_unmap(*buf, &mapInfo);
// Release frame's memory
res = PylonStreamGrabberQueueBuffer( pylonsrc->streamGrabber, grabResult.hBuffer, (void*) bufferIndex );
PYLONC_CHECK_ERROR(pylonsrc, res);
} else {
GST_ERROR_OBJECT(pylonsrc, "Error in the image processing loop.");
goto error;
}
I'm not sure what this error means and how to start fixing it. Please give me some explanation and pointers to help me deal with this error.
i quickly made on for ubuntu-latest, let talk about this. it will solve a lot of issues dealing with installation procedure for diff platform. aside from other benefits of CI
name: CMake
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install deps
run: sudo apt-get install libgstreamer-plugins-base1.0-dev liborc-0.4-dev
- name: Configure CMake
# Configure CMake in a 'build' subdirectory.
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
# - name: Test
# working-directory: ${{github.workspace}}/build
# # Execute tests defined by the CMake configuration.
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
# run: ctest -C ${{env.BUILD_TYPE}}
https://github.com/5shekel/gst-plugins-vision/blob/master/.github/workflows/cmake.yml
Different models of Basler cameras have different names for similar features. For example AcquisitionFrameRateAbs
and AcquisitionFrameRate
. Plugin can be modified to try all possible aliases is those cases. Care must be taken though as some features are related but not equivalent. For example Gain
and GainRaw
, where Gain = f (GainRaw)
and f()
depends on a camera model.
I'll try to list all features with duplicate names. At least those already implemented in plugin. And then I'll develop a way to handle them. Any help is welcome
Currently most camera sources expose little to no camera attributes through the GObject
property interface, the recently merged pylonsrc
having the most properties exposed. However because cameras can have so many different attributes, it can become unwieldy to expose them all through the GObject
property interface, plus dynamic properties can't be added to a GObject
.
Perhaps common attributes could be added as static properties, but then a camera-attributes
property could be added which itself is a GObject
dynamically populated with camera attributes. There could also be a simple API created to set camera attributes via a C interface. GenApi itself could be used, generalized across all plugins.
Unfortunately either dynamic property approach doesn't work well with gst-launch
, so perhaps there could also be a property that contains a semi-colon delimited list of Feature=Value
pairs.
Any and all suggestions invited.
Hi,
Below is the command I am running, it is failing. Can someoneplease tell me the issue in this pipeline?
harendra@ubuntu:~/$ gst-launch-1.0 -v pylonsrc height=720 width=1280 fps=25 ! videoflip method=vertical-flip ! videoconvert ! x264enc ! rtph264pay name=pay0 pt=96
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstPylonSrc:pylonsrc0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)GRAY8\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)30/1\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPipeline:pipeline0/GstVideoFlip:videoflip0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)GRAY8\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)30/1\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = "video/x-raw\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)30/1\,\ format\=\(string\)Y444\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps = "video/x-raw\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)30/1\,\ format\=\(string\)Y444\,\ pixel-aspect-ratio\=\(fraction\)1/1"
Redistribute latency...
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)GRAY8\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)30/1\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPipeline:pipeline0/GstVideoFlip:videoflip0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)GRAY8\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ framerate\=\(fraction\)30/1\,\ pixel-aspect-ratio\=\(fraction\)1/1"
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = "video/x-h264\,\ codec_data\=\(buffer\)01f4001fffe1001a67f4001f919b280a00b76022000003000200000300791e30632c01000668ebec448440\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\ level\=\(string\)3.1\,\ profile\=\(string\)high-4:4:4\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)30/1"
/GstPipeline:pipeline0/GstRtpH264Pay:pay0.GstPad:src: caps = "application/x-rtp\,\ media\=\(string\)video\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264\,\ packetization-mode\=\(string\)1\,\ profile-level-id\=\(string\)f4001f\,\ sprop-parameter-sets\=\(string\)\"Z/QAH5GbKAoAt2AiAAADAAIAAAMAeR4wYyw\\\=\\\,aOvsRIRA\"\,\ payload\=\(int\)96\,\ ssrc\=\(uint\)277528337\,\ timestamp-offset\=\(uint\)153824638\,\ seqnum-offset\=\(uint\)11049\,\ a-framerate\=\(string\)30"
/GstPipeline:pipeline0/GstRtpH264Pay:pay0.GstPad:sink: caps = "video/x-h264\,\ codec_data\=\(buffer\)01f4001fffe1001a67f4001f919b280a00b76022000003000200000300791e30632c01000668ebec448440\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\ level\=\(string\)3.1\,\ profile\=\(string\)high-4:4:4\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)30/1"
/GstPipeline:pipeline0/GstRtpH264Pay:pay0: timestamp = 153847583
/GstPipeline:pipeline0/GstRtpH264Pay:pay0: seqnum = 11049
ERROR: from element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
streaming task paused, reason not-linked (-1)
Execution ended after 0:00:10.726250733
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
the following works
is_ParameterSet (src->hCam, IS_PARAMETERSET_CMD_LOAD_FILE, L"auto.ini", 0);
the current spits out
ERROR: from element /GstPipeline:pipeline0/GstIdsueyeSrc:idsueyesrc0: Failed to load parameter file: auto.ini
Hi there, for a system I'm developing, Im looking for cameras, and I came across Daheng MER2-1220-32U3C, which seems to be nice on terms of price/performance.
They are 32fps, 4k, bayer. But as my project uses gstreamer, I'm struggling to find a solution to connect both parts.
So googling I came here where I see a lot of gstreamer camera plugins.
Now the question: do yo know Daheng cameras? Would you be interested in making a source plugin for them?
Thanks
I think EPIX plugin is not complete.
Based on your code I have managed to receive the EPIX callback.
But I don't understand very well how to continue. So this is the part of the code from the callback
staticSrc is the px_element.
gst_stride is 1280 and the height and width of the videsource is 640*512.
GST_INFO_OBJECT(staticSrc, "buf Alloc %d %d",staticSrc->height, staticSrc->gst_stride );
/* TODO: use allocator or use from Pixci pool */
*(staticSrc->buf) = gst_buffer_new_and_alloc (staticSrc->height * staticSrc->gst_stride);
/* Copy image to buffer from surface TODO: use orc_memcpy */
gst_buffer_map (*(staticSrc->buf), &minfo, GST_MAP_WRITE);
GST_INFO_OBJECT (staticSrc,
GST_"GstBuffer size=%d, gst_stride=%d, px_stride=%d", minfo.size,t, staticSrc->gst_stride );
staticSrc->gst_stride, staticSrc->px_stride);
minfo.size is 655360
if (pxd_imageBdim() < 8)
{
pxerr = pxd_readuchar (staticSrc->unitmap, buffer, 0, 0, -1, -1, minfo.data, minfo.size,
"Grey");
}
else
{
pxerr = pxd_readushort (staticSrc->unitmap, buffer, 0, 0, -1, -1, minfo.data, minfo.size,
"Grey");
}
here pxerr is 327680 (640*512)
if (pxerr < 0)
{
GST_INFO_OBJECT(staticSrc, " Reading Error %s " , pxd_mesgErrorCode(pxerr));
}
else
{
GST_INFO_OBJECT(staticSrc, " Reading length %d buffer %d", pxerr, buffer);
for (i = 0; i < staticSrc->height; i++) {
memcpy (minfo.data + i * staticSrc->gst_stride,
(guint8 *) buffer + i * staticSrc->px_stride,
staticSrc->gst_stride);
}
GST_INFO_OBJECT(staticSrc, " UnMap");
gst_buffer_unmap (*(staticSrc->buf), &minfo);
But in the memcpy I have a segmentation fault. I don't understand why the gststride is 1280
Also minfo is the output of the plugin??
And buffer is the result of the reading from epix library right??
Thank in advance.
This is a reminder to myself as much as anything else. In a GUI application, some of the properties of pylonsrc
are text inputs, however they really should be enums, as only certain values are used. This isn't a difficult process, just a bit tedious.
@mrstecklo @AB-Eskild for your awareness and input.
Hi,
I am trying to stream the video flux from an ids camera on rtp protocol. I am working on windows 10.
I installed gstreamer: (gst-launch-1.0)
gst-launch-1.0 --version
gst-launch-1.0 version 1.16.2
GStreamer 1.16.2
Unknown package origin
I downloaded the release of your gst-plugins-vision:
gst-plugins-vision-1.5.92-x86_64.zip
did:
set GST_PLUGIN_PATH="G:\gstreamer\lib"
(this is the extracted folder from the zip file)
and when I do:
gst-launch-1.0 -v idsueyesrc ! x264enc ! rtph264pay ! udpsink host=127.0.0.2 port=5000
WARNING: erroneous pipeline: no element "idsueyesrc"
did I do something wrong ?
it seems that it can't find your dlls ?
Hello, i am trying to build a homemade stereo camera with two basler cameras and i found this repository that allow Genicam interfaces to be easily integrated with gstreamer (nice and hard work, you have my congrats). When using 2 cameras with pylon plugin the two cameras have a given index related to their connection time. Because of that it is impossible to identify the camera (left or right) and the ids can change making imposible to fix a configuration.
Regards
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)
I need help in order to generate the pylonsrc plugin for a custom Yocto Linux image (ARM aarch64 CPU). I've already read the issue #34 but it seems incomplete. Have anyone got a recipe which can be used in my Yocto building?
Hello Everybody
Successfully create a pipeline, when try to change any parameter like exposure, withebalance, etc. nothing happens, see below
(Camera Basler acA19200, pylon 6 API)
gst_parse_launch("pylonsrc name=source ! bayer2rgb ! videoconvert name=convert ! tee name=tee tee. ! xvimagesink name=sink",&error);
it is running fine, but when i try to change some parameter on the source noting happens:
src_element = gst_bin_get_by_name(GST_BIN(cur_capchan->pipeline), "source");
gdouble src_num=1000.0;
gdouble exposure=15000.1;
gchar *src_expo;
g_object_get(src_element,"autoexposure",&src_expo,NULL);
g_print(" autoexposure: %s\n",src_expo);
/// gives autoexposure: off
g_object_get(src_element,"exposure",&src_num,NULL);
g_print("exposure: %f\n",src_num);
// gives 0
g_print("setting exposure: %f\n",exposure); //// put t0 15000.1
g_object_set(src_element,"exposure",exposure,NULL);
g_object_get(src_element,"exposure",&src_num,NULL);
g_print("exposure: %f\n",src_num);
// gives 15000.1 But nothing happens with the image
Does i need an extra "Apply" command ?
Thank you
On a fresh installation of ubuntu 18.04, I downloaded pylon6 into /opt/pylon6, then tried to compiled this plugin:
sudo apt update
sudo apt install git cmake libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
git clone https://github.com/joshdoe/gst-plugins-vision.git
cd gst-plugins-vision
mkdir build
cd build
cmake -DPYLON_DIR=/opt/pylon6 ..
make
make
failed with below errors:
[ 95%] Building C object sys/pylon/CMakeFiles/gstpylon.dir/gstpylonsrc.c.o
In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0,
from /usr/include/glib-2.0/glib/gtypes.h:32,
from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/gstreamer-1.0/gst/gst.h:27,
from /usr/include/gstreamer-1.0/gst/base/gstpushsrc.h:27,
from /root/gst-plugins-vision/sys/pylon/gstpylonsrc.h:24,
from /root/gst-plugins-vision/sys/pylon/gstpylonsrc.c:38:
/usr/include/glib-2.0/glib/gmacros.h:241:53: error: size of array '_GStaticAssertCompileTimeAssertion_1' is negative
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
^
/usr/include/glib-2.0/glib/gmacros.h:238:47: note: in definition of macro 'G_PASTE_ARGS'
#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
^~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:241:44: note: in expansion of macro 'G_PASTE'
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
^~~~~~~
/root/gst-plugins-vision/sys/pylon/gstpylonsrc.c:192:1: note: in expansion of macro 'G_STATIC_ASSERT'
G_STATIC_ASSERT ((int) PROP_NUM_PROPERTIES == GST_PYLONSRC_NUM_PROPS);
^~~~~~~~~~~~~~~
In file included from /root/gst-plugins-vision/sys/pylon/gstpylonsrc.c:43:0:
/root/gst-plugins-vision/./common/genicampixelformat.h:264:1: warning: 'gst_genicam_pixel_format_caps_from_pixel_format' defined but not used [-Wunused-functio]
gst_genicam_pixel_format_caps_from_pixel_format (const char *pixel_format,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/gst-plugins-vision/./common/genicampixelformat.h:256:1: warning: 'gst_genicam_pixel_format_get_stride' defined but not used [-Wunused-function]
gst_genicam_pixel_format_get_stride (const char *pixel_format,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/gst-plugins-vision/./common/genicampixelformat.h:226:1: warning: 'gst_genicam_pixel_format_from_caps' defined but not used [-Wunused-function]
gst_genicam_pixel_format_from_caps (const GstCaps * caps, int *endianness)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sys/pylon/CMakeFiles/gstpylon.dir/build.make:62: recipe for target 'sys/pylon/CMakeFiles/gstpylon.dir/gstpylonsrc.c.o' failed
make[2]: *** [sys/pylon/CMakeFiles/gstpylon.dir/gstpylonsrc.c.o] Error 1
CMakeFiles/Makefile2:502: recipe for target 'sys/pylon/CMakeFiles/gstpylon.dir/all' failed
make[1]: *** [sys/pylon/CMakeFiles/gstpylon.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
If I remove this line, make
will succeed.
i see this all around
but it looks like gstreamer 1.0 handles it gracefully into GST_BUFFER_PTS
.
GST_BUFFER_TIMESTAMP is gone, use GST_BUFFER_PTS or GST_BUFFER_DTS instead.
Issue originated on an issue over at gst-pylonsrc, where this plugin originated, but is still a problem with the current merged source.
Currently, any corrupted frames cause the source to error out, bringing down the pipeline.
I'm thinking the best way to handle this is to have a property that will continue grabbing frames even if one is corrupted, and maybe another property that determines whether to pass or drop the corrupted frame. Input appreciated.
I want to compile the basler camera plugin for arm64. Is it possible to compile only that module? I tried compiling thw whole but it is throwing issue for Orc which is not availbe for arm as of now.
Please assist me compiling for arm64.
Hello! I'm trying to get a real-time object detection inference pipeline on a Jetson Xavier NX using a Basler camera through pylonsrc
, using the inference pipeline show below. However, I'm experiencing significant latency at higher fps requests.
My idea is to retrieve images at high fps from the camera and leave the speed bottleneck to lay somewhere else in the pipeline (I do not have a final target fps). I'm using two reference framerates for comparison:
pylonsrc config-file=* fps=20
, yields ~20 fps as expected, low latency (almost negligible).pylonsrc config-file=* fps=90
, yields ~30 fps as expected, very high latency (about ~2 sec).After some testing I've seen that the autovideosink pipeline (also shown below) runs on almost zero latency without regard to the pylonsrc
fps, so my guess lies that the delay has to do with computer resources.
Any suggestion to keep an "uncapped" framerate in the Basler without increasing latency by modifying the pipeline/config-file?
gst-launch-1.0 pylonsrc config-file=../Basler.pfs fps=20 continuous=true ! \
queue leaky=2 max-size-buffers=100 max-size-time=0 max-size-bytes=1 ! \
nvvideoconvert ! 'video/x-raw(memory:NVMM),format=(string)I420,width=640,height=480,framerate=30/1' ! \
m.sink_0 nvstreammux name=m batch-size=1 width=640 height=480 ! \
nvvideoconvert ! nvinfer config-file-path=config_infer_primary_yoloV5.txt ! \
nvmultistreamtiler width=640 height=480 ! \
nvvideoconvert ! nvdsosd ! nvegltransform ! nveglglessink async=0 sync=0
gst-launch-1.0 pylonsrc config-file=../Basler.pfs fps=90 continuous=true ! \
queue leaky=2 max-size-buffers=100 max-size-time=0 max-size-bytes=1 ! \
nvvideoconvert ! video/x-raw(memory:NVMM),format=(string)I420,width=640,height=480,framerate=30/1 ! \
autovideosink
# {05D8C294-F295-4dfb-9D01-096BD04049F4}
# GenApi persistence file (version 3.1.0)
# Device = Basler::UsbCameraParams -- Basler USB3Vision camera interface -- Device version = 1.0.0 -- Product GUID = 5a809e15-f447-480f-a21f-0fb7256b8400 -- Product version GUID = 685CC8CB-5A68-4BD2-AF5E-B30B155580E1
ExposureAuto Off
BalanceWhiteAuto Off
GainAuto Off
Width 2448
Height 2048
OffsetX 8
OffsetY 4
CenterX 0
CenterY 0
ReverseX 0
ReverseY 0
PixelFormat YCbCr422_8
TestImageSelector Off
GainSelector All
Gain 0.00000
GainSelector All
BlackLevelSelector All
BlackLevel 0.00000
BlackLevelSelector All
Gamma 1.00000
DigitalShift 0
RemoveParameterLimitSelector Gain
RemoveParameterLimit 0
RemoveParameterLimitSelector Gain
LightSourcePreset Daylight5000K
BalanceRatioSelector Red
BalanceRatio 1.71899
BalanceRatioSelector Green
BalanceRatio 1.00000
BalanceRatioSelector Blue
BalanceRatio 2.29639
BalanceRatioSelector Red
ColorAdjustmentSelector Red
ColorAdjustmentHue 0.28125
ColorAdjustmentSelector Yellow
ColorAdjustmentHue 0.12500
ColorAdjustmentSelector Green
ColorAdjustmentHue 0.37500
ColorAdjustmentSelector Cyan
ColorAdjustmentHue 0.56250
ColorAdjustmentSelector Blue
ColorAdjustmentHue -0.06250
ColorAdjustmentSelector Magenta
ColorAdjustmentHue 1.93750
ColorAdjustmentSelector Red
ColorAdjustmentSelector Red
ColorAdjustmentSaturation 1.03125
ColorAdjustmentSelector Yellow
ColorAdjustmentSaturation 0.98438
ColorAdjustmentSelector Green
ColorAdjustmentSaturation 1.28125
ColorAdjustmentSelector Cyan
ColorAdjustmentSaturation 1.03906
ColorAdjustmentSelector Blue
ColorAdjustmentSaturation 0.96875
ColorAdjustmentSelector Magenta
ColorAdjustmentSaturation 0.85156
ColorAdjustmentSelector Red
ColorTransformationSelector RGBtoRGB
ColorTransformationValueSelector Gain00
ColorTransformationValue 1.53125
ColorTransformationValueSelector Gain01
ColorTransformationValue -0.31250
ColorTransformationValueSelector Gain02
ColorTransformationValue -0.21875
ColorTransformationValueSelector Gain10
ColorTransformationValue -0.31250
ColorTransformationValueSelector Gain11
ColorTransformationValue 1.84375
ColorTransformationValueSelector Gain12
ColorTransformationValue -0.53125
ColorTransformationValueSelector Gain20
ColorTransformationValue -0.09375
ColorTransformationValueSelector Gain21
ColorTransformationValue -0.43750
ColorTransformationValueSelector Gain22
ColorTransformationValue 1.53125
ColorTransformationSelector RGBtoRGB
ColorTransformationValueSelector Gain00
DemosaicingMode Simple
ShutterMode Global
ExposureMode Timed
ExposureTime 26092.0
AcquisitionBurstFrameCount 1
TriggerSelector FrameBurstStart
TriggerMode Off
TriggerSelector FrameStart
TriggerMode Off
TriggerSelector FrameStart
TriggerSelector FrameBurstStart
TriggerSource Line1
TriggerSelector FrameStart
TriggerSource Line1
TriggerSelector FrameStart
TriggerSelector FrameBurstStart
TriggerActivation RisingEdge
TriggerSelector FrameStart
TriggerActivation RisingEdge
TriggerSelector FrameStart
TriggerDelay 0
AcquisitionFrameRateEnable 0
AcquisitionFrameRate 100.00000
DeviceLinkSelector 0
DeviceLinkThroughputLimitMode On
DeviceLinkSelector 0
DeviceLinkSelector 0
DeviceLinkThroughputLimit 360000000
DeviceLinkSelector 0
ChunkSelector Gain
ChunkEnable 0
ChunkSelector ExposureTime
ChunkEnable 0
ChunkSelector Timestamp
ChunkEnable 0
ChunkSelector LineStatusAll
ChunkEnable 0
ChunkSelector CounterValue
ChunkEnable 0
ChunkSelector SequencerSetActive
ChunkEnable 0
ChunkSelector PayloadCRC16
ChunkEnable 0
ChunkSelector Timestamp
ChunkModeActive 0
AutoTargetBrightness 0.30196
AutoFunctionProfile MinimizeGain
AutoGainLowerLimit 0.00000
AutoGainUpperLimit 36.00000
AutoExposureTimeLowerLimit 29.0
AutoExposureTimeUpperLimit 1000000.0
AutoFunctionROISelector ROI1
AutoFunctionROIWidth 2464
AutoFunctionROISelector ROI2
AutoFunctionROIWidth 2448
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIHeight 2056
AutoFunctionROISelector ROI2
AutoFunctionROIHeight 2048
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIOffsetX 0
AutoFunctionROISelector ROI2
AutoFunctionROIOffsetX 8
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIOffsetY 0
AutoFunctionROISelector ROI2
AutoFunctionROIOffsetY 8
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIUseBrightness 1
AutoFunctionROISelector ROI2
AutoFunctionROIUseBrightness 0
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIUseWhiteBalance 1
AutoFunctionROISelector ROI2
AutoFunctionROIUseWhiteBalance 1
AutoFunctionROISelector ROI1
LUTSelector Luminance
LUTEnable 0
LUTSelector Luminance
LUTSelector Luminance
LUTValueAll 0x00000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006800000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d800000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e800000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000801000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000018010000000000000000000000000000000000000000000000000000000000002001000000000000000000000000000000000000000000000000000000000000280100000000000000000000000000000000000000000000000000000000000030010000000000000000000000000000000000000000000000000000000000003801000000000000000000000000000000000000000000000000000000000000400100000000000000000000000000000000000000000000000000000000000048010000000000000000000000000000000000000000000000000000000000005001000000000000000000000000000000000000000000000000000000000000580100000000000000000000000000000000000000000000000000000000000060010000000000000000000000000000000000000000000000000000000000006801000000000000000000000000000000000000000000000000000000000000700100000000000000000000000000000000000000000000000000000000000078010000000000000000000000000000000000000000000000000000000000008001000000000000000000000000000000000000000000000000000000000000880100000000000000000000000000000000000000000000000000000000000090010000000000000000000000000000000000000000000000000000000000009801000000000000000000000000000000000000000000000000000000000000a001000000000000000000000000000000000000000000000000000000000000a801000000000000000000000000000000000000000000000000000000000000b001000000000000000000000000000000000000000000000000000000000000b801000000000000000000000000000000000000000000000000000000000000c001000000000000000000000000000000000000000000000000000000000000c801000000000000000000000000000000000000000000000000000000000000d001000000000000000000000000000000000000000000000000000000000000d801000000000000000000000000000000000000000000000000000000000000e001000000000000000000000000000000000000000000000000000000000000e801000000000000000000000000000000000000000000000000000000000000f001000000000000000000000000000000000000000000000000000000000000f80100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000802000000000000000000000000000000000000000000000000000000000000100200000000000000000000000000000000000000000000000000000000000018020000000000000000000000000000000000000000000000000000000000002002000000000000000000000000000000000000000000000000000000000000280200000000000000000000000000000000000000000000000000000000000030020000000000000000000000000000000000000000000000000000000000003802000000000000000000000000000000000000000000000000000000000000400200000000000000000000000000000000000000000000000000000000000048020000000000000000000000000000000000000000000000000000000000005002000000000000000000000000000000000000000000000000000000000000580200000000000000000000000000000000000000000000000000000000000060020000000000000000000000000000000000000000000000000000000000006802000000000000000000000000000000000000000000000000000000000000700200000000000000000000000000000000000000000000000000000000000078020000000000000000000000000000000000000000000000000000000000008002000000000000000000000000000000000000000000000000000000000000880200000000000000000000000000000000000000000000000000000000000090020000000000000000000000000000000000000000000000000000000000009802000000000000000000000000000000000000000000000000000000000000a002000000000000000000000000000000000000000000000000000000000000a802000000000000000000000000000000000000000000000000000000000000b002000000000000000000000000000000000000000000000000000000000000b802000000000000000000000000000000000000000000000000000000000000c002000000000000000000000000000000000000000000000000000000000000c802000000000000000000000000000000000000000000000000000000000000d002000000000000000000000000000000000000000000000000000000000000d802000000000000000000000000000000000000000000000000000000000000e002000000000000000000000000000000000000000000000000000000000000e802000000000000000000000000000000000000000000000000000000000000f002000000000000000000000000000000000000000000000000000000000000f80200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000803000000000000000000000000000000000000000000000000000000000000100300000000000000000000000000000000000000000000000000000000000018030000000000000000000000000000000000000000000000000000000000002003000000000000000000000000000000000000000000000000000000000000280300000000000000000000000000000000000000000000000000000000000030030000000000000000000000000000000000000000000000000000000000003803000000000000000000000000000000000000000000000000000000000000400300000000000000000000000000000000000000000000000000000000000048030000000000000000000000000000000000000000000000000000000000005003000000000000000000000000000000000000000000000000000000000000580300000000000000000000000000000000000000000000000000000000000060030000000000000000000000000000000000000000000000000000000000006803000000000000000000000000000000000000000000000000000000000000700300000000000000000000000000000000000000000000000000000000000078030000000000000000000000000000000000000000000000000000000000008003000000000000000000000000000000000000000000000000000000000000880300000000000000000000000000000000000000000000000000000000000090030000000000000000000000000000000000000000000000000000000000009803000000000000000000000000000000000000000000000000000000000000a003000000000000000000000000000000000000000000000000000000000000a803000000000000000000000000000000000000000000000000000000000000b003000000000000000000000000000000000000000000000000000000000000b803000000000000000000000000000000000000000000000000000000000000c003000000000000000000000000000000000000000000000000000000000000c803000000000000000000000000000000000000000000000000000000000000d003000000000000000000000000000000000000000000000000000000000000d803000000000000000000000000000000000000000000000000000000000000e003000000000000000000000000000000000000000000000000000000000000e803000000000000000000000000000000000000000000000000000000000000f003000000000000000000000000000000000000000000000000000000000000f80300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000804000000000000000000000000000000000000000000000000000000000000100400000000000000000000000000000000000000000000000000000000000018040000000000000000000000000000000000000000000000000000000000002004000000000000000000000000000000000000000000000000000000000000280400000000000000000000000000000000000000000000000000000000000030040000000000000000000000000000000000000000000000000000000000003804000000000000000000000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000048040000000000000000000000000000000000000000000000000000000000005004000000000000000000000000000000000000000000000000000000000000580400000000000000000000000000000000000000000000000000000000000060040000000000000000000000000000000000000000000000000000000000006804000000000000000000000000000000000000000000000000000000000000700400000000000000000000000000000000000000000000000000000000000078040000000000000000000000000000000000000000000000000000000000008004000000000000000000000000000000000000000000000000000000000000880400000000000000000000000000000000000000000000000000000000000090040000000000000000000000000000000000000000000000000000000000009804000000000000000000000000000000000000000000000000000000000000a004000000000000000000000000000000000000000000000000000000000000a804000000000000000000000000000000000000000000000000000000000000b004000000000000000000000000000000000000000000000000000000000000b804000000000000000000000000000000000000000000000000000000000000c004000000000000000000000000000000000000000000000000000000000000c804000000000000000000000000000000000000000000000000000000000000d004000000000000000000000000000000000000000000000000000000000000d804000000000000000000000000000000000000000000000000000000000000e004000000000000000000000000000000000000000000000000000000000000e804000000000000000000000000000000000000000000000000000000000000f004000000000000000000000000000000000000000000000000000000000000f80400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000805000000000000000000000000000000000000000000000000000000000000100500000000000000000000000000000000000000000000000000000000000018050000000000000000000000000000000000000000000000000000000000002005000000000000000000000000000000000000000000000000000000000000280500000000000000000000000000000000000000000000000000000000000030050000000000000000000000000000000000000000000000000000000000003805000000000000000000000000000000000000000000000000000000000000400500000000000000000000000000000000000000000000000000000000000048050000000000000000000000000000000000000000000000000000000000005005000000000000000000000000000000000000000000000000000000000000580500000000000000000000000000000000000000000000000000000000000060050000000000000000000000000000000000000000000000000000000000006805000000000000000000000000000000000000000000000000000000000000700500000000000000000000000000000000000000000000000000000000000078050000000000000000000000000000000000000000000000000000000000008005000000000000000000000000000000000000000000000000000000000000880500000000000000000000000000000000000000000000000000000000000090050000000000000000000000000000000000000000000000000000000000009805000000000000000000000000000000000000000000000000000000000000a005000000000000000000000000000000000000000000000000000000000000a805000000000000000000000000000000000000000000000000000000000000b005000000000000000000000000000000000000000000000000000000000000b805000000000000000000000000000000000000000000000000000000000000c005000000000000000000000000000000000000000000000000000000000000c805000000000000000000000000000000000000000000000000000000000000d005000000000000000000000000000000000000000000000000000000000000d805000000000000000000000000000000000000000000000000000000000000e005000000000000000000000000000000000000000000000000000000000000e805000000000000000000000000000000000000000000000000000000000000f005000000000000000000000000000000000000000000000000000000000000f80500000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000806000000000000000000000000000000000000000000000000000000000000100600000000000000000000000000000000000000000000000000000000000018060000000000000000000000000000000000000000000000000000000000002006000000000000000000000000000000000000000000000000000000000000280600000000000000000000000000000000000000000000000000000000000030060000000000000000000000000000000000000000000000000000000000003806000000000000000000000000000000000000000000000000000000000000400600000000000000000000000000000000000000000000000000000000000048060000000000000000000000000000000000000000000000000000000000005006000000000000000000000000000000000000000000000000000000000000580600000000000000000000000000000000000000000000000000000000000060060000000000000000000000000000000000000000000000000000000000006806000000000000000000000000000000000000000000000000000000000000700600000000000000000000000000000000000000000000000000000000000078060000000000000000000000000000000000000000000000000000000000008006000000000000000000000000000000000000000000000000000000000000880600000000000000000000000000000000000000000000000000000000000090060000000000000000000000000000000000000000000000000000000000009806000000000000000000000000000000000000000000000000000000000000a006000000000000000000000000000000000000000000000000000000000000a806000000000000000000000000000000000000000000000000000000000000b006000000000000000000000000000000000000000000000000000000000000b806000000000000000000000000000000000000000000000000000000000000c006000000000000000000000000000000000000000000000000000000000000c806000000000000000000000000000000000000000000000000000000000000d006000000000000000000000000000000000000000000000000000000000000d806000000000000000000000000000000000000000000000000000000000000e006000000000000000000000000000000000000000000000000000000000000e806000000000000000000000000000000000000000000000000000000000000f006000000000000000000000000000000000000000000000000000000000000f80600000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000807000000000000000000000000000000000000000000000000000000000000100700000000000000000000000000000000000000000000000000000000000018070000000000000000000000000000000000000000000000000000000000002007000000000000000000000000000000000000000000000000000000000000280700000000000000000000000000000000000000000000000000000000000030070000000000000000000000000000000000000000000000000000000000003807000000000000000000000000000000000000000000000000000000000000400700000000000000000000000000000000000000000000000000000000000048070000000000000000000000000000000000000000000000000000000000005007000000000000000000000000000000000000000000000000000000000000580700000000000000000000000000000000000000000000000000000000000060070000000000000000000000000000000000000000000000000000000000006807000000000000000000000000000000000000000000000000000000000000700700000000000000000000000000000000000000000000000000000000000078070000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000880700000000000000000000000000000000000000000000000000000000000090070000000000000000000000000000000000000000000000000000000000009807000000000000000000000000000000000000000000000000000000000000a007000000000000000000000000000000000000000000000000000000000000a807000000000000000000000000000000000000000000000000000000000000b007000000000000000000000000000000000000000000000000000000000000b807000000000000000000000000000000000000000000000000000000000000c007000000000000000000000000000000000000000000000000000000000000c807000000000000000000000000000000000000000000000000000000000000d007000000000000000000000000000000000000000000000000000000000000d807000000000000000000000000000000000000000000000000000000000000e007000000000000000000000000000000000000000000000000000000000000e807000000000000000000000000000000000000000000000000000000000000f007000000000000000000000000000000000000000000000000000000000000f80700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000808000000000000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000000000000000000000018080000000000000000000000000000000000000000000000000000000000002008000000000000000000000000000000000000000000000000000000000000280800000000000000000000000000000000000000000000000000000000000030080000000000000000000000000000000000000000000000000000000000003808000000000000000000000000000000000000000000000000000000000000400800000000000000000000000000000000000000000000000000000000000048080000000000000000000000000000000000000000000000000000000000005008000000000000000000000000000000000000000000000000000000000000580800000000000000000000000000000000000000000000000000000000000060080000000000000000000000000000000000000000000000000000000000006808000000000000000000000000000000000000000000000000000000000000700800000000000000000000000000000000000000000000000000000000000078080000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000880800000000000000000000000000000000000000000000000000000000000090080000000000000000000000000000000000000000000000000000000000009808000000000000000000000000000000000000000000000000000000000000a008000000000000000000000000000000000000000000000000000000000000a808000000000000000000000000000000000000000000000000000000000000b008000000000000000000000000000000000000000000000000000000000000b808000000000000000000000000000000000000000000000000000000000000c008000000000000000000000000000000000000000000000000000000000000c808000000000000000000000000000000000000000000000000000000000000d008000000000000000000000000000000000000000000000000000000000000d808000000000000000000000000000000000000000000000000000000000000e008000000000000000000000000000000000000000000000000000000000000e808000000000000000000000000000000000000000000000000000000000000f008000000000000000000000000000000000000000000000000000000000000f80800000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000809000000000000000000000000000000000000000000000000000000000000100900000000000000000000000000000000000000000000000000000000000018090000000000000000000000000000000000000000000000000000000000002009000000000000000000000000000000000000000000000000000000000000280900000000000000000000000000000000000000000000000000000000000030090000000000000000000000000000000000000000000000000000000000003809000000000000000000000000000000000000000000000000000000000000400900000000000000000000000000000000000000000000000000000000000048090000000000000000000000000000000000000000000000000000000000005009000000000000000000000000000000000000000000000000000000000000580900000000000000000000000000000000000000000000000000000000000060090000000000000000000000000000000000000000000000000000000000006809000000000000000000000000000000000000000000000000000000000000700900000000000000000000000000000000000000000000000000000000000078090000000000000000000000000000000000000000000000000000000000008009000000000000000000000000000000000000000000000000000000000000880900000000000000000000000000000000000000000000000000000000000090090000000000000000000000000000000000000000000000000000000000009809000000000000000000000000000000000000000000000000000000000000a009000000000000000000000000000000000000000000000000000000000000a809000000000000000000000000000000000000000000000000000000000000b009000000000000000000000000000000000000000000000000000000000000b809000000000000000000000000000000000000000000000000000000000000c009000000000000000000000000000000000000000000000000000000000000c809000000000000000000000000000000000000000000000000000000000000d009000000000000000000000000000000000000000000000000000000000000d809000000000000000000000000000000000000000000000000000000000000e009000000000000000000000000000000000000000000000000000000000000e809000000000000000000000000000000000000000000000000000000000000f009000000000000000000000000000000000000000000000000000000000000f809000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000080a000000000000000000000000000000000000000000000000000000000000100a000000000000000000000000000000000000000000000000000000000000180a000000000000000000000000000000000000000000000000000000000000200a000000000000000000000000000000000000000000000000000000000000280a000000000000000000000000000000000000000000000000000000000000300a000000000000000000000000000000000000000000000000000000000000380a000000000000000000000000000000000000000000000000000000000000400a000000000000000000000000000000000000000000000000000000000000480a000000000000000000000000000000000000000000000000000000000000500a000000000000000000000000000000000000000000000000000000000000580a000000000000000000000000000000000000000000000000000000000000600a000000000000000000000000000000000000000000000000000000000000680a000000000000000000000000000000000000000000000000000000000000700a000000000000000000000000000000000000000000000000000000000000780a000000000000000000000000000000000000000000000000000000000000800a000000000000000000000000000000000000000000000000000000000000880a000000000000000000000000000000000000000000000000000000000000900a000000000000000000000000000000000000000000000000000000000000980a000000000000000000000000000000000000000000000000000000000000a00a000000000000000000000000000000000000000000000000000000000000a80a000000000000000000000000000000000000000000000000000000000000b00a000000000000000000000000000000000000000000000000000000000000b80a000000000000000000000000000000000000000000000000000000000000c00a000000000000000000000000000000000000000000000000000000000000c80a000000000000000000000000000000000000000000000000000000000000d00a000000000000000000000000000000000000000000000000000000000000d80a000000000000000000000000000000000000000000000000000000000000e00a000000000000000000000000000000000000000000000000000000000000e80a000000000000000000000000000000000000000000000000000000000000f00a000000000000000000000000000000000000000000000000000000000000f80a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000080b000000000000000000000000000000000000000000000000000000000000100b000000000000000000000000000000000000000000000000000000000000180b000000000000000000000000000000000000000000000000000000000000200b000000000000000000000000000000000000000000000000000000000000280b000000000000000000000000000000000000000000000000000000000000300b000000000000000000000000000000000000000000000000000000000000380b000000000000000000000000000000000000000000000000000000000000400b000000000000000000000000000000000000000000000000000000000000480b000000000000000000000000000000000000000000000000000000000000500b000000000000000000000000000000000000000000000000000000000000580b000000000000000000000000000000000000000000000000000000000000600b000000000000000000000000000000000000000000000000000000000000680b000000000000000000000000000000000000000000000000000000000000700b000000000000000000000000000000000000000000000000000000000000780b000000000000000000000000000000000000000000000000000000000000800b000000000000000000000000000000000000000000000000000000000000880b000000000000000000000000000000000000000000000000000000000000900b000000000000000000000000000000000000000000000000000000000000980b000000000000000000000000000000000000000000000000000000000000a00b000000000000000000000000000000000000000000000000000000000000a80b000000000000000000000000000000000000000000000000000000000000b00b000000000000000000000000000000000000000000000000000000000000b80b000000000000000000000000000000000000000000000000000000000000c00b000000000000000000000000000000000000000000000000000000000000c80b000000000000000000000000000000000000000000000000000000000000d00b000000000000000000000000000000000000000000000000000000000000d80b000000000000000000000000000000000000000000000000000000000000e00b000000000000000000000000000000000000000000000000000000000000e80b000000000000000000000000000000000000000000000000000000000000f00b000000000000000000000000000000000000000000000000000000000000f80b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000080c000000000000000000000000000000000000000000000000000000000000100c000000000000000000000000000000000000000000000000000000000000180c000000000000000000000000000000000000000000000000000000000000200c000000000000000000000000000000000000000000000000000000000000280c000000000000000000000000000000000000000000000000000000000000300c000000000000000000000000000000000000000000000000000000000000380c000000000000000000000000000000000000000000000000000000000000400c000000000000000000000000000000000000000000000000000000000000480c000000000000000000000000000000000000000000000000000000000000500c000000000000000000000000000000000000000000000000000000000000580c000000000000000000000000000000000000000000000000000000000000600c000000000000000000000000000000000000000000000000000000000000680c000000000000000000000000000000000000000000000000000000000000700c000000000000000000000000000000000000000000000000000000000000780c000000000000000000000000000000000000000000000000000000000000800c000000000000000000000000000000000000000000000000000000000000880c000000000000000000000000000000000000000000000000000000000000900c000000000000000000000000000000000000000000000000000000000000980c000000000000000000000000000000000000000000000000000000000000a00c000000000000000000000000000000000000000000000000000000000000a80c000000000000000000000000000000000000000000000000000000000000b00c000000000000000000000000000000000000000000000000000000000000b80c000000000000000000000000000000000000000000000000000000000000c00c000000000000000000000000000000000000000000000000000000000000c80c000000000000000000000000000000000000000000000000000000000000d00c000000000000000000000000000000000000000000000000000000000000d80c000000000000000000000000000000000000000000000000000000000000e00c000000000000000000000000000000000000000000000000000000000000e80c000000000000000000000000000000000000000000000000000000000000f00c000000000000000000000000000000000000000000000000000000000000f80c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000080d000000000000000000000000000000000000000000000000000000000000100d000000000000000000000000000000000000000000000000000000000000180d000000000000000000000000000000000000000000000000000000000000200d000000000000000000000000000000000000000000000000000000000000280d000000000000000000000000000000000000000000000000000000000000300d000000000000000000000000000000000000000000000000000000000000380d000000000000000000000000000000000000000000000000000000000000400d000000000000000000000000000000000000000000000000000000000000480d000000000000000000000000000000000000000000000000000000000000500d000000000000000000000000000000000000000000000000000000000000580d000000000000000000000000000000000000000000000000000000000000600d000000000000000000000000000000000000000000000000000000000000680d000000000000000000000000000000000000000000000000000000000000700d000000000000000000000000000000000000000000000000000000000000780d000000000000000000000000000000000000000000000000000000000000800d000000000000000000000000000000000000000000000000000000000000880d000000000000000000000000000000000000000000000000000000000000900d000000000000000000000000000000000000000000000000000000000000980d000000000000000000000000000000000000000000000000000000000000a00d000000000000000000000000000000000000000000000000000000000000a80d000000000000000000000000000000000000000000000000000000000000b00d000000000000000000000000000000000000000000000000000000000000b80d000000000000000000000000000000000000000000000000000000000000c00d000000000000000000000000000000000000000000000000000000000000c80d000000000000000000000000000000000000000000000000000000000000d00d000000000000000000000000000000000000000000000000000000000000d80d000000000000000000000000000000000000000000000000000000000000e00d000000000000000000000000000000000000000000000000000000000000e80d000000000000000000000000000000000000000000000000000000000000f00d000000000000000000000000000000000000000000000000000000000000f80d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000080e000000000000000000000000000000000000000000000000000000000000100e000000000000000000000000000000000000000000000000000000000000180e000000000000000000000000000000000000000000000000000000000000200e000000000000000000000000000000000000000000000000000000000000280e000000000000000000000000000000000000000000000000000000000000300e000000000000000000000000000000000000000000000000000000000000380e000000000000000000000000000000000000000000000000000000000000400e000000000000000000000000000000000000000000000000000000000000480e000000000000000000000000000000000000000000000000000000000000500e000000000000000000000000000000000000000000000000000000000000580e000000000000000000000000000000000000000000000000000000000000600e000000000000000000000000000000000000000000000000000000000000680e000000000000000000000000000000000000000000000000000000000000700e000000000000000000000000000000000000000000000000000000000000780e000000000000000000000000000000000000000000000000000000000000800e000000000000000000000000000000000000000000000000000000000000880e000000000000000000000000000000000000000000000000000000000000900e000000000000000000000000000000000000000000000000000000000000980e000000000000000000000000000000000000000000000000000000000000a00e000000000000000000000000000000000000000000000000000000000000a80e000000000000000000000000000000000000000000000000000000000000b00e000000000000000000000000000000000000000000000000000000000000b80e000000000000000000000000000000000000000000000000000000000000c00e000000000000000000000000000000000000000000000000000000000000c80e000000000000000000000000000000000000000000000000000000000000d00e000000000000000000000000000000000000000000000000000000000000d80e000000000000000000000000000000000000000000000000000000000000e00e000000000000000000000000000000000000000000000000000000000000e80e000000000000000000000000000000000000000000000000000000000000f00e000000000000000000000000000000000000000000000000000000000000f80e000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000080f000000000000000000000000000000000000000000000000000000000000100f000000000000000000000000000000000000000000000000000000000000180f000000000000000000000000000000000000000000000000000000000000200f000000000000000000000000000000000000000000000000000000000000280f000000000000000000000000000000000000000000000000000000000000300f000000000000000000000000000000000000000000000000000000000000380f000000000000000000000000000000000000000000000000000000000000400f000000000000000000000000000000000000000000000000000000000000480f000000000000000000000000000000000000000000000000000000000000500f000000000000000000000000000000000000000000000000000000000000580f000000000000000000000000000000000000000000000000000000000000600f000000000000000000000000000000000000000000000000000000000000680f000000000000000000000000000000000000000000000000000000000000700f000000000000000000000000000000000000000000000000000000000000780f000000000000000000000000000000000000000000000000000000000000800f000000000000000000000000000000000000000000000000000000000000880f000000000000000000000000000000000000000000000000000000000000900f000000000000000000000000000000000000000000000000000000000000980f000000000000000000000000000000000000000000000000000000000000a00f000000000000000000000000000000000000000000000000000000000000a80f000000000000000000000000000000000000000000000000000000000000b00f000000000000000000000000000000000000000000000000000000000000b80f000000000000000000000000000000000000000000000000000000000000c00f000000000000000000000000000000000000000000000000000000000000c80f000000000000000000000000000000000000000000000000000000000000d00f000000000000000000000000000000000000000000000000000000000000d80f000000000000000000000000000000000000000000000000000000000000e00f000000000000000000000000000000000000000000000000000000000000e80f000000000000000000000000000000000000000000000000000000000000f00f000000000000000000000000000000000000000000000000000000000000f80f000000000000000000000000000000000000000000000000000000000000
LUTSelector Luminance
LineSelector Line1
LineMode Input
LineSelector Line2
LineMode Output
LineSelector Line3
LineMode Input
LineSelector Line4
LineMode Input
LineSelector Line1
LineSelector Line2
LineSource UserOutput1
LineSelector Line1
LineSelector Line1
LineInverter 0
LineSelector Line2
LineInverter 0
LineSelector Line3
LineInverter 0
LineSelector Line4
LineInverter 0
LineSelector Line1
LineSelector Line1
LineDebouncerTime 0.00000
LineSelector Line3
LineDebouncerTime 0.00000
LineSelector Line4
LineDebouncerTime 0.00000
LineSelector Line1
LineSelector Line2
LineMinimumOutputPulseWidth 0.000
LineSelector Line1
UserOutputValueAll 0
BslLightControlMode Off
TimerSelector Timer1
TimerDuration 10.0
TimerSelector Timer1
TimerSelector Timer1
TimerDelay 0.0
TimerSelector Timer1
TimerSelector Timer1
TimerTriggerSource ExposureStart
TimerSelector Timer1
CounterSelector Counter1
CounterEventSource FrameStart
CounterSelector Counter2
CounterEventSource FrameStart
CounterSelector Counter1
CounterSelector Counter1
CounterResetSource Off
CounterSelector Counter2
CounterResetSource Counter2End
CounterSelector Counter1
EventSelector ExposureEnd
EventNotification Off
EventSelector FrameStart
EventNotification Off
EventSelector FrameBurstStart
EventNotification Off
EventSelector FrameStartOvertrigger
EventNotification Off
EventSelector FrameBurstStartOvertrigger
EventNotification Off
EventSelector CriticalTemperature
EventNotification Off
EventSelector OverTemperature
EventNotification Off
EventSelector FrameStartWait
EventNotification Off
EventSelector FrameBurstStartWait
EventNotification Off
EventSelector ExposureEnd
UserDefinedValueSelector Value1
UserDefinedValue 0
UserDefinedValueSelector Value2
UserDefinedValue 0
UserDefinedValueSelector Value3
UserDefinedValue 0
UserDefinedValueSelector Value4
UserDefinedValue 0
UserDefinedValueSelector Value5
UserDefinedValue 0
UserDefinedValueSelector Value1
Good day Josh,
I can't build your plug-ins in Linux Ubuntu.
When i run cmake, i get the following error:
Could NOT find GStreamer (missing: GSTREAMER_LIBRARY GSTREAMER_INCLUDE_DIR
GSTREAMER_BASE_LIBRARY GSTREAMER_BASE_INCLUDE_DIR)
I know you mentioned that you ran and tested it on x86-64 Windows but do you know if i can run and build it under Linux Ubuntu 64?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.