basler / gst-plugin-pylon

The official GStreamer plug-in for Basler cameras
BSD 3-Clause "New" or "Revised" License
40 stars 9 forks source link

Change capsfilter in pylonsrc #90

Open rbnrtg opened 5 months ago

rbnrtg commented 5 months ago

Hi,

My camera is Basler daA3840-45uc (USB Model).

I am trying to modify the parameters of the capsfilter element of pylonsrc and I do it as follows:

GstCaps new_caps; GstElement f; gchar * caps_description;

caps_description = g_strdup_printf("video/x-raw, width=(int)1920, height=(int)1080"); new_caps = gst_caps_from_string(caps_description); g_free (caps_description);

f = gst_bin_get_by_name_recurse_up(GST_BIN(pipeline), "filter");

if (GST_IS_ELEMENT(f)) { g_object_set(G_OBJECT(f), "caps", new_caps, NULL); }

g_object_unref(f); gst_caps_unref(new_caps);

But when I run this program for the Pylonsrc library on a machine with ARM architecture, I get a Segmentation Fault that comes from the library and only occurs when I try to modify the caps element.

The error that i receive in GDB is:

0 0x0000fffff5ed84e8 in () at /opt/BASLER/lib/libpylonbase.so.7.4

1 0x0000fffff5eda7d8 in () at /opt/BASLER/lib/libpylonbase.so.7.4

2 0x0000fffff5d9271c in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()

at /opt/BASLER/lib/libpylonbase.so.7.4

3 0x0000fffff5ed69e8 in () at /opt/BASLER/lib/libpylonbase.so.7.4

4 0x0000fffff5ed363c in () at /opt/BASLER/lib/libpylonbase.so.7.4

5 0x0000fffff5edb158 in () at /opt/BASLER/lib/libpylonbase.so.7.4

6 0x0000fffff5d9271c in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()

at /opt/BASLER/lib/libpylonbase.so.7.4

7 0x0000fffff5ed2608 in Pylon::CGrabResultPtr::~CGrabResultPtr() ()

at /opt/BASLER/lib/libpylonbase.so.7.4

8 0x0000fffff6be4074 in Pylon::CDeviceSpecificGrabResultPtr::~CDeviceSpecificGrabResultPtr() (this=0xffffc8000fc0, __in_chrg=)

at /opt/BASLER/include/pylon/private/DeviceSpecificGrabResultPtr.h:277

9 Pylon::CBaslerUniversalGrabResultPtr::~CBaslerUniversalGrabResultPtr()

(this=0xffffc8000fc0, __in_chrg=<optimized out>)
at /opt/BASLER/include/pylon/BaslerUniversalGrabResultPtr.h:27

10 Pylon::CBaslerUniversalGrabResultPtr::~CBaslerUniversalGrabResultPtr()

(this=0xffffc8000fc0, __in_chrg=<optimized out>)
at /opt/BASLER/include/pylon/BaslerUniversalGrabResultPtr.h:27

11 free_ptr_grab_result(gpointer) (data=0xffffc8000fc0) at ../ext/pylon/gstpylon.cpp:474

12 0x0000fffff7e8e5c0 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

13 0x0000fffff7ed83a0 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

14 0x0000fffff7e9a188 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

15 0x0000fffff6b4067c in () at /usr/lib/aarch64-linux-gnu/libgstbase-1.0.so.0

16 0x0000fffff6b3fd74 in () at /usr/lib/aarch64-linux-gnu/libgstbase-1.0.so.0

17 0x0000fffff7edcbf0 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

18 0x0000fffff7edec38 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

19 0x0000fffff7ee6728 in gst_pad_push () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

20 0x0000fffff6b3fe84 in () at /usr/lib/aarch64-linux-gnu/libgstbase-1.0.so.0

21 0x0000fffff7edcbf0 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

22 0x0000fffff7edec38 in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

23 0x0000fffff7ee6728 in gst_pad_push () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

24 0x0000fffff6b3b75c in () at /usr/lib/aarch64-linux-gnu/libgstbase-1.0.so.0

25 0x0000fffff7f1902c in () at /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0

26 0x0000fffff7d1e3c8 in () at /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0

27 0x0000fffff7d1d8f4 in () at /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0

28 0x0000fffff7c76648 in start_thread (arg=0xfffff09a0ab0) at pthread_create.c:477

29 0x0000fffff7bccfdc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Has anyone else had something similar happen to them? Or am I doing something wrong in changing the caps parameters?

Thank you!