-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gstpylonsrc.c : Error in the image processing loop #5
Comments
It's interesting that it fails to grab the frame. Have you tried debugging it by adding Either way, to achieve what want you will need to modify the source file (gstpylonsrc.c) and recompile the plugin. One option would be to simply replace the line at gst-pylonsrc/plugins/gstpylonsrc.c Line 2101 in 2073177
return GST_FLOW_OK; , but I'm not quite sure how other gstreamer plugins will react if they receive an empty buffer.
A better alternative would be to set a label (syntax - gst-pylonsrc/plugins/gstpylonsrc.c Line 2097 in 2073177
Sadly I no longer have access to Basler cameras and I can't really test it myself. |
FYI if it helps, when I use GStreamer & pylon together, I use pylon's GrabStrategy_LatestImageOnly and try to set the framerate of the camera faster than what my pipeline needs. That way, the camera is always acquiring and transmitting, and Pylon is only holding the most recent image for retrieval. When the next one comes in, if the previous hasn't been retrieved it's just overwritten in memory. This can kind of give the best of both worlds (ignore the error and run with no errors is actually mutually exclusive :)) - if I'm acquiring at 60fps and running my pipeline at 30fps, then if I come across a bad image, I can log the error and hopefully the next good image comes in before the pipeline actually requests it. |
Thanks for the reply.
Actually I could not find the grab strategy currently using in pylonsrc. How can I set the grabbing strategy? Thanks very much. |
Hi all, with this I am able to stream vidoe successfully. But I want to feed the video frames to my application for further processing (using appsink _pylonsrc height=720 width=1280 fps=25 imageformat=mono8 ! videoconvert ! video/x-raw,format=BGR ! appsink max-buffers=5 drop=1 ).But its not working ,it seems like application is not receiving video frames at all. I can see few warning messages in the log. attaching the log below:
I am totally unsure of what is going wrong. I hope you can guide me on this issue that I am facing. I really appreciate your help. |
It seems that you just copied the buffer copying code from the above block, at which point it was easier to just get rid of the if block altogether. The thing is, there's probably a reason why Pylon didn't mark the frame as grabbed, and you're probably getting incomplete frame there. That said, if it works for you, it's fine.
From what I can see in the docs GrabStrategy is a setting for the C++ API, while this plugin implements the C API. My guess the analogue would be to switch to trigger mode (
There doesn't seem to be anything wrong in the log. Is this log from a normal run? Also a suggestion for the future, put all code and logs inbetween triple grave accents (```).
This will make things slightly more readable as it doesn't wrap the lines. |
Hi zingmars,
In else block I have omitted the line
Please let me know if you need anything else from me. |
There doesn't seem to be anything that indicates an error in that log. In fact, the command you used for that log sent all output to autovideosink (which as I understand works for you) and not appskink. It's also a bit hard to tell what's going on with your appsink without knowing how you're pulling data and what's happening (is no data being buffered? can you even get GstSample out of it?). Tbf even then I'm not sure if I can help much with appsink, as we used this plugin to write to shared memory instead. |
Does this mean that pylonsrc plugin has limitations to use with appsink? |
No, It just means it was never tested with it so I don't really know what the issue could be.
…On Mon, Apr 1, 2019, 08:28 DevySyam ***@***.***> wrote:
we used this plugin to write to shared memory instead.
Does this mean that pylonsrc plugin has any limitations to use with
appsink?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#5 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA3-hv6QBwNgHhJC6ko89MECB5EzM4jFks5vcZj0gaJpZM4cM-NJ>
.
|
Camera: Basler acA1300-75gc
Error:
UPD: Adding Full output
|
I've merged pylonsrc into gst-plugins-vision, and have been making some modifications including more comprehensive pixel format support, GStreamer caps negotiation instead of manually setting As best I can tell, the 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. I created a new issue on gst-plugins-vision for anyone who wants to give input. |
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 .
The text was updated successfully, but these errors were encountered: