Giter Site home page Giter Site logo

zingmars / gst-pylonsrc Goto Github PK

View Code? Open in Web Editor NEW
14.0 5.0 7.0 42 KB

A gstreamer plugin for image capture from Basler's USB3 cameras. Please read the README before using.

License: Other

Makefile 0.54% Shell 0.50% M4 2.42% C 96.55%
gstreamer gst pylon basler usb3 plugin

gst-pylonsrc's Introduction

gst-pylonsrc

Repository deprecation note

This plugin has been merged in https://github.com/joshdoe/gst-plugins-vision, where it will be updated and maintained by a new maintainer. The maintained version includes support for more parameters, compatibility with Microsoft Windows, and some internal fixes. This version is still functional, and can be used if for some reason you dislike CMake, and/or need to run the plugin only on Linux. If you find a problem with the version in this repository please try the version in the gst-plugins-vision repository first, and raise any issues in that repository if the issue is still present.

Original description

This is a gstreamer element that allows using Basler's USB3 Vision cameras using gstreamer.

This package also includes a simple plugin to check the framerate of any given pipeline called fpsfilter.

These plugins were open sourced by PlayGineering Ltd. on June 12, 2018.

Requirements

To run

To compile

  • All of the above plus
  • gcc 4.8 or newer (Tested with gcc 4.8.5). Note that this plugin will only compile with gcc or clang.
  • GNU Make 3.8 or newer (Tested with gnu make 3.8.1)
  • autoconf 2.69 or newer (Tested with autoconf 2.69)
  • automake 1.14 or newer (Tested with automake 1.14.1)
  • libtool 2.4 or newer (Tested with libtool 2.4.2)

Compiling

After cloning the repository run the autogen.sh file in the root directory of the project. Autoconf will generate everything required for compilation. After it completes simply run the make command in the root directory and it should compile.

Installation

After compiling there are two ways to install this plugin - automated and manual.

To install automatically simply run sudo make install inside the root directory of this project and Automake will automatically install the plugin.

To install manually you need copy, move or symlink the following files

  • ./plugins/libgstpylonsrc.la
  • ./plugins/.libs/libgstpylonsrc.so

to either of these locations:

  • ~/.local/share/gstreamer-1.0/plugins/ if you only want your user to be able to use this plugin
  • /usr/local/lib/gstreamer-1.0/ if you want this plugin to be available to every user.

Note that these are the default locations which might be different if you installed gstreamer with a custom location prefix.

Usage

To test whether this plugin was installed correctly use the gst-inspect-1.0 pylonsrc command. If it returns information about the plugin, then it's installed successfully and can be used like any other gstreamer source.

An example pipeline with this plugin for an older camera with no rgb8 support would be gst-launch-1.0 -v pylonsrc ! bayer2rgb ! videoconvert ! xvimagesink.

You set the parameters the same way one would set parameters for any other gstreamer pipeline element - by appending key=value to the plugin. For example, to get ycbcr422_8 output from the camera, you would write your pipeline like this - gst-launch-1.0 pylonsrc imageformat=rgb8 ! videoconvert ! xvimagesink.

Formats

This plugin supports the following output formats:

  • Bayer 8 (default) (value: bayer8)
  • Bayer 10 (value: bayer10)
  • Bayer 10 packed (value: bayer10p)
  • RGB8 (value: rgb8)
  • BGR8 (value: bgr8)
  • Mono8 (Greyscale) (value: mono8)
  • YcbCr422 8 (value: ycbcr422_8)

To change the output format simply set the imageformat parameter to the value of one of the formats above. Note that with the bayer formats you want to use the bayer2rgb plugin available in gst-plugins-bad (followed by videoconvert if you want the stream in YUY2 or similar format). RGB, BGR and Mono8 streams might require videoconvert for output to screen (video sinks such as xvimagesink only seems to play nice with YUY2 despite claiming to work with RGB).

Properties

If you have multiple cameras you can specify the camera you want to use using the camera parameter. To find out the IDs for each camera simply launch the pipeline without specifying the camera parameter, and the plugin will output them.

Each camera has a custom field that is saved on the camera called userid. This parameter allows user to quickly identify cameras on the field. This parameter will be listed when connecting to a camera or listing the devices. It can be set by either passing the userid parameter to the plugin, or by setting it in the Pylon Viewer App (camera -> Device Control -> Device User ID).

If you want to set a custom resolution you can do so with the width and height parameters. To find out the maximum resolution of the camera either refer to camera's technical specs or simply launch the plugin with logging tuned to loglevel4 (GST_DEBUG=pylonsrc:4), and it will output the maximum resolution the camera is capable of. Please note that the camera actually saves the resolution you set, so if you launch a pipeline with a camera once while specifying a resolution then the following runs will use the same resolution unless you either reconnect the device or specify a different resolution.

You can also specify resolution offsets to slightly move the image. Possible offsets are calculated max(width|height)-current(width|height). The parameters to specify offsets are offsetx and offsety. If you want to center the image you can use centerx and centery. Note that setting the centering parameters will cause the plugin to ignore the offset values.

The limitbandwidth parameter can be used to disable bandwidth limitations on the cameras. Basler cameras seem to limit themselves to 300MB/s (which is approx 130fps with a 1920x1200 resolution). Depending on the camera, it might be required to change the sensor readout mode (sensorreadoutmode) to fast for this to have any effect, as the default settings are usually close to the normal readout mode's maximum values. The possible values for this are either on or off. If you want to limit bandwidth to a specific number then set this property to on (or just don't specify it as on is the default) and use the maxbandwidth parameter which takes in the number of bytes per second that the camera will send data at. Note that setting the value too low will cause the camera to send data at a lower framerate than it is capable of, while setting it too high will in most cases have no discernible effect as the camera will only use as much bandwidth as it needs for the specified resolution and framerate. To see the bandwidth use run the pipeline with debugging level set to 4 (i.e. by adding GST_DEBUG=pylonsrc:4 before the gst-launch-1.0 command) and all of the information related to framerate and bandwidth will be printed to screen during the initialisation procedure.

To achieve the full potential of the camera it might be required to set the sensor readout mode to fast. To do this use the sensorreadoutmode parameter which takes in either fast or normal as values. As the name implies, fast allows for higher framerates, while normal is the safe (and default) option.

To change the framerate use the fps property.

To have the camera send a test pattern instead of a video stream you can use the testimage property. It accepts values from 1-6 all of which correspond to different test patterns.

There are two modes for picture capture - trigger mode and continuous. Trigger mode asks for each frame seperately which while continuous mode makes the camera capture frames without software input. Continuous is default, but it can be disabled by setting the continuous parameter to false (default - true).

NOTE: Some of the parameters are saved to the camera. Running the pipeline multiple times without either reconnecting the device or using the reset parameter might cause weird behaviour. See the gst-inspect-1.0 output for more details.

Image settings

To fine tune the image you can use the following properties:

  • lightsource - Available values are off, 2800k, (default)5000k and 6500k. Changes the colour temperature of the video to have the best visibility in the given environment.
  • autoexposure - Available values are (default)off, once and continuous. Enable automatic exposure. Overrides the exposure setting.
  • exposurelowerlimit, exposureupperlimit - Sets the limit for auto exposure function. Values range from 105.0 to 1000000.0.
  • exposure - Accepts a number (microseconds). Sets the exposure time for each frame. autoexposure must be set to off for this to have any effect.
  • autowhitebalance - Available values are off, once and continuous. Determines whether or not the camera will try to determine the best colour balance settings.
  • balancered, balancegreen and balanceblue - Accepts a floating point number from 0 to 15,9. Changes the colour balance for the specific colour. Defaults to whatever is set on the camera.
  • colorredhue, coloryellowhue, colorgreenhue, colorcyanhue, colorbluehue and colormagentahue - Accepts a floating point number from -4 to 3.9. Changes the hue for the specific colour. Defaults to whatever is set on the camera.
  • colorredsaturation, coloryellowsaturation, colorgreensaturation, colorcyansaturation, colorbluesaturation and colormagentasaturation - Accepts a floating point number from 0 to 1.9. Changes the saturation for the specific colour. Defaults to whatever is set on the camera.
  • transformationselector - Sets the type of colour transformation used. This is used when using the transformation parameters. Available values are rgbrgb, rgbyuv and yuvrgb. The first colour is the origin format, the second format is the format that the colour will be transformed to.
  • transformation00, transformation01, transformation02, transformation10, transformation11, transformation12, transformation20, transformation21, transformation22 allows for colour transformations within each colour channel. It's recommended to play around with the sliders in PylonViewerApp to find the values desired.
  • autogain - Available values are off, once and continuous. Determines whether or not the camera will automatically adjust the gain option.
  • gainupperlimit, gainlowerlimit - Sets the limit for auto gain function. Values range from 0 to 12.00921.
  • gain - Accepts a floating point number (dB) from 0 to 12. Changes the amount of gain that will be added to the picture before it will be sent to the computer. autogain must be set to off for this to have any effect.
  • autobrightnesstarget - Sets the target value for auto exposure function. Values range between 0.19608 and 0.80392.
  • blacklevel - Accepts a floating point number (DN) from 0 to 63.75. Determines colour black's level.
  • gamma - Accepts values from 0 to 3.9. Changes the gamma of the picture.
  • sharpnessenhancement - Uses basler's post-processing system to apply sharpness enhancement. This will only work if the imageformat is not bayer*. Values range from 1.0 to 3.98. demosaicing must be set to true first.
  • noisereduction - Uses basler's post-processing system to apply noise reduction. This will only work if the imageformat is not bayer*. Values range from 0 to 2.0. demosaicing must be set to true fist.
  • autoprofile - Determines whether the automatic brightness etc. functions will prioritise minimising gain or exposure. Values are gain and exposure.

Example pipelines

Output to screen: GST_DEBUG=pylonsrc:5 gst-launch-1.0 pylonsrc imageformat=ycbcr422_8 ! xvimagesink

Recording: GST_DEBUG=pylonsrc:5 gst-launch-1.0 pylonsrc camera=0 ! bayer2rgb ! videoconvert ! x264enc noise-reduction=10000 pass=4 quantizer=22 bitrate=32768 speed-preset=0 byte-stream=true ! matroskamux ! filesink location='recording.mkv' sync=false

Record a video at 150fps: GST_DEBUG=pylonsrc:5 gst-launch-1.0 pylonsrc limitbandwidth=off sensorreadoutmode=fast fps=150 ! bayer2rgb ! videoconvert ! matroskamux ! filesink location='recording.mkv

fpsfilter

This package includes a simple plugin called fpsfilter. To use it simply plug it in any pipeline you want.

For example - GST_DEBUG=pylonsrc:5 gst-launch-1.0 pylonsrc ! fpsfilter ! bayer2rgb ! videoconvert ! xvimagesink.

The output is displayed in the console. You can control the frequency of the reports using reporttime parameter, which (in miliseconds) defines the time between messages that are sent to the screen. (default - 1000ms).

Misc

If you need to reset the camera(s) quickly but don't want to reset it(them) using the reset parameter, you can use the reset.sh file in the tools directory which will reset the USB devices.

TODO

  • Rather than set every parameter ourselves, first get the value from camera and use that one if applicable.
  • Convert all string literals to gstrings.

gst-pylonsrc's People

Contributors

nibeh avatar zingmars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gst-pylonsrc's Issues

UDP Stream cuts out after one second

Hello, my name is Frank and i have been playing with your plugin for the last few weeks. I can successfully display my Basler camera on my host machine using xvimagesink. My goal is to be able to stream the cameras image over UDP with the lowest latency possible. After trying many different pipelines, I was finally able to send a UDP stream to another computer. The stream only comes up for about one second and then dies. This is the pipeline I am currently running:

gst-launch-1.0 -c -v pylonsrc imageformat=mono8 ! "video/x-raw,format=GRAY8" ! decodebin ! videoconvert ! x264enc tune=zerolatency ! rtph264pay ! udpsink host=192.168.0.44 port=5000

As you can see it is nothing too crazy. I ran a GST_DEBUG=pylonsrc:5 command and go these results:

GST_DEBUG=pylonsrc:5 gst-launch-1.0 -c -v pylonsrc imageformat=mono8 ! "video/x-raw,format=GRAY8" ! decodebin ! videoconvert ! x264enc tune=zerolatency ! rtph264pay ! udpsink host=192.168.0.44 port=5000
0:00:00.014948009 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:407:gst_pylonsrc_init:<GstPylonsrc@0x5627a37c38e0> Initialising defaults
0:00:00.014975256 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:489:gst_pylonsrc_set_property:<pylonsrc0> Setting a property.
0:00:00.018648026 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:895:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.018658038 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:897:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:00.018672705 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:895:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.018676089 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:897:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:00.018686528 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:895:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.018692039 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:897:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
Setting pipeline to PAUSED ...
0:00:00.277341070 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:977:gst_pylonsrc_start:<pylonsrc0> pylonsrc: found 1 Basler device(s).
0:00:00.277381749 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2224:pylonc_connect_camera:<pylonsrc0> Connecting to the camera...
0:00:00.453028250 25125 0x5627a3799530              pylonsrc gstpylonsrc.c:2269:pylonc_print_camera_info:<pylonsrc0> Status: Using camera "daA1600-60um" (serial number: 22720403, id: 0). Custom ID: None
0:00:00.453070418 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1067:gst_pylonsrc_start:<pylonsrc0> Setting horizontal binning to 1
0:00:00.466538411 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1070:gst_pylonsrc_start:<pylonsrc0> Setting vertical binning to 1
0:00:00.482873790 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1100:gst_pylonsrc_start:<pylonsrc0> Max resolution is 1600x1200.
0:00:00.487613002 25125 0x5627a3799530              pylonsrc gstpylonsrc.c:1129:gst_pylonsrc_start:<pylonsrc0> Setting resolution to 1600x1200.
0:00:00.487849165 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:1141:gst_pylonsrc_start:<pylonsrc0> The camera doesn't seem to allow offset centering. Skipping...
0:00:00.490453327 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1193:gst_pylonsrc_start:<pylonsrc0> Flipping X: False, Flipping Y: False.
0:00:00.490547673 25125 0x5627a3799530              pylonsrc gstpylonsrc.c:1253:gst_pylonsrc_start:<pylonsrc0> Using Mono8 image format.
0:00:00.506502190 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1264:gst_pylonsrc_start:<pylonsrc0> Pixel is 8 bits large.
0:00:00.506571957 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:1284:gst_pylonsrc_start:<pylonsrc0> The camera doesn't support test image mode.
0:00:00.506602598 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:1305:gst_pylonsrc_start:<pylonsrc0> Camera does not support changing the readout mode.
0:00:00.506836614 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1311:gst_pylonsrc_start:<pylonsrc0> Limiting camera's bandwidth.
0:00:00.508356259 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:1386:gst_pylonsrc_start:<pylonsrc0> This camera doesn't have any lightsource presets
0:00:00.508474011 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1393:gst_pylonsrc_start:<pylonsrc0> Disabling automatic exposure.
0:00:00.508996807 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1417:gst_pylonsrc_start:<pylonsrc0> Disabling automatic gain.
0:00:00.509485747 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:1458:gst_pylonsrc_start:<pylonsrc0> This camera doesn't support automatic white balance.
0:00:00.509529365 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1529:gst_pylonsrc_start:<pylonsrc0> Using the auto profile currently saved on the device.
0:00:00.509560342 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1700:gst_pylonsrc_start:<pylonsrc0> This camera doesn't support adjusting colours. Skipping...
0:00:00.509579753 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1822:gst_pylonsrc_start:<pylonsrc0> This camera doesn't support transforming colours. Skipping...
0:00:00.509664973 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1833:gst_pylonsrc_start:<pylonsrc0> Exposure property not set, using the saved exposure setting.
0:00:00.509738944 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1845:gst_pylonsrc_start:<pylonsrc0> Setting gain to 0.00
0:00:00.511129385 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1857:gst_pylonsrc_start:<pylonsrc0> Setting black level to 0.00
0:00:00.512892869 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1866:gst_pylonsrc_start:<pylonsrc0> Setting gamma to 1.00
0:00:00.527165833 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1910:gst_pylonsrc_start:<pylonsrc0> Basler's PGI is not supported. Skipping.
0:00:00.527186000 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1914:gst_pylonsrc_start:<pylonsrc0> Setting trigger mode.
0:00:00.528561322 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:1958:gst_pylonsrc_start:<pylonsrc0> Using "FrameStart" trigger selector. Software trigger mode is Off.
0:00:00.532853935 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:2039:gst_pylonsrc_start:<pylonsrc0> Couldn't determine link speed.
0:00:00.532874297 25125 0x5627a3799530 WARN                pylonsrc gstpylonsrc.c:2051:gst_pylonsrc_start:<pylonsrc0> Couldn't determine sensor readout time.
0:00:00.533073381 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2061:gst_pylonsrc_start:<pylonsrc0> The resulting framerate is 60 fps.
0:00:00.533092392 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2062:gst_pylonsrc_start:<pylonsrc0> Each frame is 1920000 bytes big (1.9 MB). That's 114.9MB/s.
0:00:00.535110592 25125 0x5627a3799530              pylonsrc gstpylonsrc.c:2076:gst_pylonsrc_start:<pylonsrc0> Initialised successfully.
Pipeline is live and does not need PREROLL ...
0:00:00.535302155 25125 0x5627a37d3630 DEBUG               pylonsrc gstpylonsrc.c:895:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.535332798 25125 0x5627a37d3630 DEBUG               pylonsrc gstpylonsrc.c:934:gst_pylonsrc_get_caps:<pylonsrc0> The following caps were sent: video/x-raw, GRAY8, 1600x1200, variable fps.
0:00:00.535379742 25125 0x5627a37d3630 DEBUG               pylonsrc gstpylonsrc.c:945:gst_pylonsrc_set_caps:<pylonsrc0> Setting caps to video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstPylonsrc:pylonsrc0.GstPad:src: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
New clock: GstSystemClock
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1600, height=(int)1200, framerate=(fraction)0/1, format=(string)Y444
Redistribute latency...
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps = video/x-raw, width=(int)1600, height=(int)1200, framerate=(fraction)0/1, format=(string)Y444
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstDecodePad:src_0.GstProxyPad:proxypad1: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)GRAY8, width=(int)1600, height=(int)1200, framerate=(fraction)0/1
0:00:00.604895874 25125 0x5627a37d3630 DEBUG               pylonsrc gstpylonsrc.c:895:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.604931874 25125 0x5627a37d3630 DEBUG               pylonsrc gstpylonsrc.c:934:gst_pylonsrc_get_caps:<pylonsrc0> The following caps were sent: video/x-raw, GRAY8, 1600x1200, variable fps.
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264, codec_data=(buffer)01f40028ffe1001d67f40028919640190097b016a0202028000003000bb9aca00078c1924001000568ebcc4480, stream-format=(string)avc, alignment=(string)au, level=(string)4, profile=(string)high-4:4:4, width=(int)1600, height=(int)1200, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/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)f40028, sprop-parameter-sets=(string)"Z/QAKJGWQBkAl7AWoCAgKAAAAwALuaygAHjBkkA\=\,aOvMRIA\=", payload=(int)96, ssrc=(uint)1945388410, timestamp-offset=(uint)1437368984, seqnum-offset=(uint)32064
/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)f40028, sprop-parameter-sets=(string)"Z/QAKJGWQBkAl7AWoCAgKAAAAwALuaygAHjBkkA\=\,aOvMRIA\=", payload=(int)96, ssrc=(uint)1945388410, timestamp-offset=(uint)1437368984, seqnum-offset=(uint)32064
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, codec_data=(buffer)01f40028ffe1001d67f40028919640190097b016a0202028000003000bb9aca00078c1924001000568ebcc4480, stream-format=(string)avc, alignment=(string)au, level=(string)4, profile=(string)high-4:4:4, width=(int)1600, height=(int)1200, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 1437371943
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 32064
0:00:01.356149721 25125 0x5627a37d3630 ERROR               pylonsrc gstpylonsrc.c:2136:gst_pylonsrc_create:<pylonsrc0> Error in the image processing loop.
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.820767721
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:01.371119497 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2154:gst_pylonsrc_stop:<pylonsrc0> stop
0:00:01.422230471 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2200:pylonc_disconnect_camera:<pylonsrc0> Camera disconnected.
Setting pipeline to NULL ...
Freeing pipeline ...
0:00:01.423028394 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2165:gst_pylonsrc_dispose:<pylonsrc0> dispose
0:00:01.423061434 25125 0x5627a3799530 DEBUG               pylonsrc gstpylonsrc.c:2173:gst_pylonsrc_finalize:<pylonsrc0> finalize

The error message that comes up is "Error in the image processing loop."
I have looked at this in issue #5 but that solution did not work for me. I did exactly as instructed in that thread but it did not fix my issue.

This is the pipeline I am running on the external machine to display the UDP stream. I used it to play a recorded video file from the Basler camera and it works fine.

gst-launch-1.0 -v udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false

I am not sure if this is the correct way of doing things.Any help will be greatly appreciated.

Thank you,
Frank

pipeline for generating rtsp stream from pylon camera is failing

Hi,
Below is the command I am running, it is failing.
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 ...

Mono8 to BGR24 conversion is getting failed

I have Basler acA1920-40gm camera. I need to convert mono8 video from camera to BGR24 in order to feed video into my application for further processing. First I tried with gst-launch-1.0 command to view stream from camera in PC.
gst-launch-1.0 -v pylonsrc width=1280 height=720 fps=10 imageformat=mono8 ! videoconvert ! 'video/x-raw,format=(string)BGR24' ! xvimagesink

Getting the following error
WARNING: erroneous pipeline: could not link videoconvert0 to xvimagesink0, videoconvert0 can't handle caps video/x-raw, format=(string)BGR24.
(If format is specified as YV12 it is working fine.)
pylon version : 5.1.0
Linux 18.04 64 bit.

HW triggering parameter

There are two modes for picture capture - trigger mode and continuous. Trigger mode asks for each frame seperately which while continuous mode makes the camera capture frames without software input. Continuous is default, but it can be disabled by setting the continuous parameter to false (default - true).
I'm trying to implement panorama video application using this api.

reading this, the Trigger mode sounds like hw triggering. then, should I set the trigger line parameters using pylonviewerapp, and then set the continuous=false in the gstreamer pipeline?

Thank you.

Cannot find proper location on Jeston baord

I'm using Jetson board and cannot find gstreamer-1.0/ folder...
do you have any experience related with this?

To install manually you need copy, move or symlink the following files

./plugins/libgstpylonsrc.la
./plugins/.libs/libgstpylonsrc.so
to either of these locations:

~/.local/share/gstreamer-1.0/plugins/ if you only want your user to be able to use this plugin
/usr/local/lib/gstreamer-1.0/ if you want this plugin to be available to every user.
Note that these are the default locations which might be different if you installed gstreamer with a custom location prefix.

limitbandwidth not implemented for all cameras?

Software: pylon 5.0.12 Camera Software Suite Linux x86 (64 bit)
Camera: acA720-520uc

When using the "limitbandwidth" parameter in the above setup I get:
WARNING: erroneous pipeline: could not set property "limitbandwidth" in element "pylonsrc0" to "off"

Is limitbandwidth not implemented for all cameras, or maybe got renamed?
I can see that a default camera bandwidthlimit of ~300MB/s is active.

Internal data stream error

Hi,

I'm fairly new to this gstreamer environment. I have a Basler Dart DaA2500-14uc camera, which I'm trying to use with your plugin. I got the plugin installed but when I try to use it I run into an error.
I'm not sure if I have wrong parameters for the pipeline or if it just doesn't work with this camera or what.

 GST_DEBUG=pylonsrc:5 gst-launch-1.0 pylonsrc imageformat=rgb8 ! videoconvert ! xvimagesink
0:00:00.023555791 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:397:gst_pylonsrc_init:<GstPylonsrc@0x561ac5b198e0> Initialising defaults
0:00:00.023627568 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:477:gst_pylonsrc_set_property:<pylonsrc0> Setting a property.
0:00:00.027650815 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:871:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.027706758 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:873:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:00.028473710 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:871:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.028509208 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:873:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:00.029213740 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:871:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.029247419 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:873:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
0:00:00.029968453 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:871:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:00.030003856 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:873:gst_pylonsrc_get_caps:<pylonsrc0> Could not send caps - no camera connected.
Setting pipeline to PAUSED ...
0:00:00.322640192 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:953:gst_pylonsrc_start:<pylonsrc0> pylonsrc: found 1 Basler device(s).
0:00:00.322752984 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2188:pylonc_connect_camera:<pylonsrc0> Connecting to the camera...
0:00:01.104606590 23212 0x561ac5aefb50              pylonsrc gstpylonsrc.c:2233:pylonc_print_camera_info:<pylonsrc0> Status: Using camera "daA2500-14uc" (serial number: 40011783, id: 0). Custom ID: None
0:00:01.109571007 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1064:gst_pylonsrc_start:<pylonsrc0> Max resolution is 2592x1944.
0:00:01.119576182 23212 0x561ac5aefb50              pylonsrc gstpylonsrc.c:1093:gst_pylonsrc_start:<pylonsrc0> Setting resolution to 2592x1944.
0:00:01.120048410 23212 0x561ac5aefb50 WARN                pylonsrc gstpylonsrc.c:1105:gst_pylonsrc_start:<pylonsrc0> The camera doesn't seem to allow offset centering. Skipping...
0:00:01.125322837 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1157:gst_pylonsrc_start:<pylonsrc0> Flipping X: False, Flipping Y: False.
0:00:01.125537505 23212 0x561ac5aefb50              pylonsrc gstpylonsrc.c:1217:gst_pylonsrc_start:<pylonsrc0> Using RGB8 image format.
0:00:01.157915881 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1228:gst_pylonsrc_start:<pylonsrc0> Pixel is 24 bits large.
0:00:01.158021521 23212 0x561ac5aefb50 WARN                pylonsrc gstpylonsrc.c:1248:gst_pylonsrc_start:<pylonsrc0> The camera doesn't support test image mode.
0:00:01.158041429 23212 0x561ac5aefb50 WARN                pylonsrc gstpylonsrc.c:1269:gst_pylonsrc_start:<pylonsrc0> Camera does not support changing the readout mode.
0:00:01.158143913 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1275:gst_pylonsrc_start:<pylonsrc0> Limiting camera's bandwidth.
0:00:01.161548144 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1337:gst_pylonsrc_start:<pylonsrc0> Setting light preset to Daylight 5000k (Daylight).
0:00:01.164393119 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1357:gst_pylonsrc_start:<pylonsrc0> Disabling automatic exposure.
0:00:01.165516549 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1381:gst_pylonsrc_start:<pylonsrc0> Disabling automatic gain.
0:00:01.166680824 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1405:gst_pylonsrc_start:<pylonsrc0> Disabling automatic white balance.
0:00:01.167849957 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1493:gst_pylonsrc_start:<pylonsrc0> Using the auto profile currently saved on the device.
0:00:01.167987874 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1507:gst_pylonsrc_start:<pylonsrc0> Using current settings for the colour red.
0:00:01.168006912 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1518:gst_pylonsrc_start:<pylonsrc0> Using current settings for the colour green.
0:00:01.168017278 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1529:gst_pylonsrc_start:<pylonsrc0> Using current settings for the colour blue.
0:00:01.168108934 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1664:gst_pylonsrc_start:<pylonsrc0> This camera doesn't support adjusting colours. Skipping...
0:00:01.168276076 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1786:gst_pylonsrc_start:<pylonsrc0> This camera doesn't support transforming colours. Skipping...
0:00:01.168400716 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1797:gst_pylonsrc_start:<pylonsrc0> Exposure property not set, using the saved exposure setting.
0:00:01.168487682 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1809:gst_pylonsrc_start:<pylonsrc0> Setting gain to 0.00
0:00:01.171548421 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1821:gst_pylonsrc_start:<pylonsrc0> Setting black level to 0.00
0:00:01.174865352 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1830:gst_pylonsrc_start:<pylonsrc0> Setting gamma to 1.00
0:00:01.195797557 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1874:gst_pylonsrc_start:<pylonsrc0> Basler's PGI is not supported. Skipping.
0:00:01.195872455 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1878:gst_pylonsrc_start:<pylonsrc0> Setting trigger mode.
0:00:01.198783503 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:1922:gst_pylonsrc_start:<pylonsrc0> Using "FrameStart" trigger selector. Software trigger mode is Off.
0:00:01.219962786 23212 0x561ac5aefb50 WARN                pylonsrc gstpylonsrc.c:2003:gst_pylonsrc_start:<pylonsrc0> Couldn't determine link speed.
0:00:01.220045167 23212 0x561ac5aefb50 WARN                pylonsrc gstpylonsrc.c:2015:gst_pylonsrc_start:<pylonsrc0> Couldn't determine sensor readout time.
0:00:01.220574243 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2025:gst_pylonsrc_start:<pylonsrc0> The resulting framerate is 2 fps.
0:00:01.220616757 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2026:gst_pylonsrc_start:<pylonsrc0> Each frame is 15116544 bytes big (15.1 MB). That's 31.9MB/s.
0:00:01.225357502 23212 0x561ac5aefb50              pylonsrc gstpylonsrc.c:2040:gst_pylonsrc_start:<pylonsrc0> Initialised successfully.
Pipeline is live and does not need PREROLL ...
0:00:01.226320876 23212 0x561ac5b2d140 DEBUG               pylonsrc gstpylonsrc.c:871:gst_pylonsrc_get_caps:<pylonsrc0> Received a request for caps.
0:00:01.226432252 23212 0x561ac5b2d140 DEBUG               pylonsrc gstpylonsrc.c:910:gst_pylonsrc_get_caps:<pylonsrc0> The following caps were sent: video/x-raw, RGB, 2592x1944, variable fps.
Setting pipeline to PLAYING ...
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 not-negotiated (-4)
Execution ended after 0:00:00.000101969
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:01.227614958 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2118:gst_pylonsrc_stop:<pylonsrc0> stop
0:00:01.257343105 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2164:pylonc_disconnect_camera:<pylonsrc0> Camera disconnected.
Setting pipeline to NULL ...
Freeing pipeline ...
0:00:01.287594041 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2129:gst_pylonsrc_dispose:<pylonsrc0> dispose
0:00:01.287679337 23212 0x561ac5aefb50 DEBUG               pylonsrc gstpylonsrc.c:2137:gst_pylonsrc_finalize:<pylonsrc0> finalize

Camera couldn't prepare buffer in time. Probably Dead.

Hi,

I was wondering if have ever ran into this problem before? I created a new ubuntu VM and for some reason keep running into this error trying to use the basler camera. I know for sure the camera isn't dead. When i switch to my first VM with the same command everything works fine. I'm not sure where to look to resolve this issue.

gst-launch-1.0 pylonsrc imageformat=ycbcr422_8 width=1280 height=720 ! videorate ! video/x-raw, framerate=5/1 ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
0:00:01.290903935 16138 0x55a82c70f590              pylonsrc gstpylonsrc.c:2233:pylonc_print_camera_info:<pylonsrc0> Status: Using camera "daA2500-14uc" (serial number: 23145676, id: 0). Custom ID: None
0:00:01.331273863 16138 0x55a82c70f590              pylonsrc gstpylonsrc.c:1093:gst_pylonsrc_start:<pylonsrc0> Setting resolution to 1280x720.
0:00:01.338057008 16138 0x55a82c70f590              pylonsrc gstpylonsrc.c:1217:gst_pylonsrc_start:<pylonsrc0> Using YCbCr422_8 image format.
0:00:01.479749323 16138 0x55a82c70f590              pylonsrc gstpylonsrc.c:2040:gst_pylonsrc_start:<pylonsrc0> Initialised successfully.
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:05.285173734 16138 0x55a82c707230              pylonsrc gstpylonsrc.c:2061:gst_pylonsrc_create:<pylonsrc0> Camera couldn't prepare the buffer in time. Probably dead.
ERROR: from element /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2695): gst_base_src_get_range (): /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0:
Subclass GstPylonsrc neither returned a buffer nor submitted a buffer list from its create function
Execution ended after 0:00:03.805648074
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

gstpylonsrc.c : Error in the image processing loop

I am using gst-pylonsrc for streaming Basler 1920 40 gm camera. I have added pylonsrc element and streaming video successfully. But after few min/few seconds stream stops and getting the following error.
"Error in the image processing loop"
I found that this error is coming when the grabresult is equal to failed even for single frame.
I want to skip this error and need to stream video continuously without any errors.
(Sometimes camera will stream for an hour and then throwing the error, and sometimes this happen within few seconds also.)

Kindly help me .

No such element or plugin 'pylonsrc'

I have compiled adn installed the libraries. but while running the following command
gst-inspect-1.0 pylonsrc

I am facing the issue and pylonsrc is not getting detected.

No such element or plugin 'pylonsrc'.

Any help would be appreciated.

Can't set continuous to false

Hi,
I can't seem to set continuous to false. Whenever I do it crashes.

gst-launch-1.0 pylonsrc imageformat=ycbcr422_8 continuous=0 width=1920 height=1080 ! videorate ! video/x-raw, framerate=5/1 ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
0:00:01.084715768 120211 0x55a38aedf990              pylonsrc gstpylonsrc.c:2235:pylonc_print_camera_info:<pylonsrc0> Status: Using camera "daA2500-14uc" (serial number: 40011783, id: 0). Custom ID: None
0:00:01.114690408 120211 0x55a38aedf990              pylonsrc gstpylonsrc.c:1093:gst_pylonsrc_start:<pylonsrc0> Setting resolution to 1920x1080.
0:00:01.119438100 120211 0x55a38aedf990              pylonsrc gstpylonsrc.c:1217:gst_pylonsrc_start:<pylonsrc0> Using YCbCr422_8 image format.
0:00:01.183060782 120211 0x55a38aedf990              pylonsrc gstpylonsrc.c:1920:gst_pylonsrc_start:<pylonsrc0> PylonC error: PylonC error #c2000005 'There is no node named 'AcquisitionStatusSelector'' (0xc2000005).

0:00:01.183179846 120211 0x55a38aedf990              pylonsrc gstpylonsrc.c:1920:gst_pylonsrc_start:<pylonsrc0> PylonC error: Function 'GenApiNodeMapGetNodeWithCheck' failed in source file '/home/jenkins/workspace/pylon_release_5.2/Pylon/PylonC/PylonC/ImplHelpers.h' line #226

ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3452): gst_base_src_start (): /GstPipeline:pipeline0/GstPylonsrc:pylonsrc0:
Failed to start
Setting pipeline to NULL ...
Freeing pipeline ...

gst-pylonsrc not found

I tried to install your package by following the instructions:

  1. autogen.sh
  2. make
  3. sudo make install

and everything compiled fine, but gst-inspect can not find pylonsrc, and I'm not sure why.
I can clearly see libgstpylonsrc.la and libgstpylonsrc.so files in /usr/local/lib/gstreamer1.0 directory, and this folder is added to both PATH and LD_LIBRARY_PATH.

I am using gstreamer 1.8.3 and Ubuntu 16.04, can you please help me? Thank you

Bayer RG 8 supported?

Hi,

I have a acA720-520uc camera using Pylon 5 and can select "Bayer RG 8" in the PylonViewerApp.
When trying to use it with gst-pylonsrc, I get:
start:<pylonsrc0> error: Camera doesn't support Bayer8.
The pipeline works with rgb8 without issues.

I wonder if the "Bayer RG 8" format listed in the PylonViewerApp is somehow different from "bayer8" here?

Peter

Contrast

How do i adjust contrast?
Do i need to add it myself?

Related project gst-plugins-vision

Hello, I have a project gst-plugins-vision that contains many video source plugins for interfaces like Camera Link, GigE Vision, USB3 Vision, etc. I currently have support for GigE Vision via National Instruments IMAQdx, Matrox, Pleora, and IDS uEye. The last one only works with IDS uEye cameras, and the first four require a license (unless you have a Pleora-powered device).

I'm planning to create a plugin for Basler cameras, however I just came across your project here. I've been focusing on supporting Windows devices, though most plugins should be able to be built on Linux without too much effort (at least if the corresponding SDK supports it!). I imagine the same is true for your project, I believe Pylon should work nearly the same on Windows.

I use CMake for my build system (though might add support for meson soon), and would need to do so for your project. I'm opening this issue to get your thoughts on how best to incorporate your project. Just fork your code to my project (both are LGPL projects), or add CMake to your project and do any necessary fixes to get Windows supported.

Thanks for open sourcing your work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.