basler / gst-plugin-pylon Goto Github PK
View Code? Open in Web Editor NEWThe official GStreamer plug-in for Basler cameras
License: BSD 3-Clause "New" or "Revised" License
The official GStreamer plug-in for Basler cameras
License: BSD 3-Clause "New" or "Revised" License
Describe the bug
Cannot compile plugin, ninja -C builddir with below error. I installed pylon 6.2 as well because system comes with pylon5, changed all LD_LIBRARY_PATH and PYLON_ROOT
To Reproduce
e.g. a gst-launch-1.0 pylonsrc | ....
pipeline definition
ninja -C builddir
Expected behavior
A clear and concise description of what you expected to happen.
should build
Environment
gst-inspect-1.0 pylonsrc | grep -E "Descr.*pylon.*|\s+Version\s+[0-9]+"
-0.70adlink@localhost:~/github/gst-plugin-pylon$ ninja -C builddir
ninja: Entering directory `builddir'
[19/34] Compiling C++ object ext/pylon/libgstpylon.so.p/gstpylon.cpp.o
FAILED: ext/pylon/libgstpylon.so.p/gstpylon.cpp.o
c++ -Iext/pylon/libgstpylon.so.p -Iext/pylon -I../ext/pylon -I. -I.. -Igst-libs -I../gst-libs -I/opt/nvidia/deepstream/deepstream/sources/includes -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4 -I/opt/pylon6/include -I/usr/local/cuda/include -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -O2 -g -fvisibility=hidden -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -fPIC -pthread -DHAVE_CONFIG_H -DNVMM_ENABLED -MD -MQ ext/pylon/libgstpylon.so.p/gstpylon.cpp.o -MF ext/pylon/libgstpylon.so.p/gstpylon.cpp.o.d -o ext/pylon/libgstpylon.so.p/gstpylon.cpp.o -c ../ext/pylon/gstpylon.cpp
In file included from ../ext/pylon/gstpylon.cpp:39:0:
../ext/pylon/gstpylondsnvmmbufferfactory.h:55:3: error: ‘NvBufSurfaceAllocateParams’ does not name a type; did you mean ‘NvBufSurfaceCreateParams’?
NvBufSurfaceAllocateParams create_params;
^~~~~~~~~~~~~~~~~~~~~~~~~~
NvBufSurfaceCreateParams
[23/34] Compiling C++ object ext/pylon...so.p/gstpylondsnvmmbufferfactory.cpp.o
FAILED: ext/pylon/libgstpylon.so.p/gstpylondsnvmmbufferfactory.cpp.o
c++ -Iext/pylon/libgstpylon.so.p -Iext/pylon -I../ext/pylon -I. -I.. -Igst-libs -I../gst-libs -I/opt/nvidia/deepstream/deepstream/sources/includes -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4 -I/opt/pylon6/include -I/usr/local/cuda/include -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -O2 -g -fvisibility=hidden -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -fPIC -pthread -DHAVE_CONFIG_H -DNVMM_ENABLED -MD -MQ ext/pylon/libgstpylon.so.p/gstpylondsnvmmbufferfactory.cpp.o -MF ext/pylon/libgstpylon.so.p/gstpylondsnvmmbufferfactory.cpp.o.d -o ext/pylon/libgstpylon.so.p/gstpylondsnvmmbufferfactory.cpp.o -c ../ext/pylon/gstpylondsnvmmbufferfactory.cpp
In file included from ../ext/pylon/gstpylondsnvmmbufferfactory.cpp:33:0:
../ext/pylon/gstpylondsnvmmbufferfactory.h:55:3: error: ‘NvBufSurfaceAllocateParams’ does not name a type; did you mean ‘NvBufSurfaceCreateParams’?
NvBufSurfaceAllocateParams create_params;
^~~~~~~~~~~~~~~~~~~~~~~~~~
NvBufSurfaceCreateParams
../ext/pylon/gstpylondsnvmmbufferfactory.cpp: In member function ‘virtual void GstPylonDsNvmmBufferFactory::SetConfig(const GstCaps*)’:
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:68:3: error: ‘create_params’ was not declared in this scope
create_params.params.gpuId = this->gpu_id;
^~~~~~~~~~~~~
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:68:3: note: suggested alternative: ‘sched_param’
create_params.params.gpuId = this->gpu_id;
^~~~~~~~~~~~~
sched_param
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:77:26: error: ‘NvBufSurfaceTag_CAMERA’ was not declared in this scope
create_params.memtag = NvBufSurfaceTag_CAMERA;
^~~~~~~~~~~~~~~~~~~~~~
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:77:26: note: suggested alternative: ‘NvBufSurfaceCopy’
create_params.memtag = NvBufSurfaceTag_CAMERA;
^~~~~~~~~~~~~~~~~~~~~~
NvBufSurfaceCopy
../ext/pylon/gstpylondsnvmmbufferfactory.cpp: In member function ‘virtual void GstPylonDsNvmmBufferFactory::AllocateBuffer(size_t, void**, intptr_t&)’:
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:87:3: error: ‘create_params’ was not declared in this scope
create_params.params.size = buffer_size;
^~~~~~~~~~~~~
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:87:3: note: suggested alternative: ‘sched_param’
create_params.params.size = buffer_size;
^~~~~~~~~~~~~
sched_param
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:100:3: error: ‘NvBufSurfaceAllocate’ was not declared in this scope
NvBufSurfaceAllocate(&surf, batch_size, &create_params);
^~~~~~~~~~~~~~~~~~~~
../ext/pylon/gstpylondsnvmmbufferfactory.cpp:100:3: note: suggested alternative: ‘NvBufSurfaceCreate’
NvBufSurfaceAllocate(&surf, batch_size, &create_params);
^~~~~~~~~~~~~~~~~~~~
NvBufSurfaceCreate
[26/34] Compiling C++ object bindings/...gnu.so.p/src_bindaccessfunctions.cpp.o
ninja: build stopped: subcommand failed.
I'm trying to build pylonsrc plugin in my Linux machine (ubuntu 18, x86_64) and face some problems.
my steps are:
I installed Basler ver 7.1.0
sudo apt remove meson ninja-build
sudo -H python3 -m pip install meson ninja --upgrade
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev cmake
export PYLON_ROOT=/opt/pylon
meson builddir --prefix /usr/
error: there is no messon.build directory
could you pls help with it?
System : Windows 10
VS 2019
meson build --prefix=%GSTREAMER_1_0_ROOT_MSVC_X86_64%
D:\gst-plugin-pylon-main\gst-plugin-pylon-main>meson build --prefix=%GSTREAMER_1_0_ROOT_MSVC_X86_64%
The Meson build system
Version: 0.63.3
Source dir: D:\gst-plugin-pylon-main\gst-plugin-pylon-main
Build dir: D:\gst-plugin-pylon-main\gst-plugin-pylon-main\build
Build type: native build
Project name: gst-plugin-pylon
Project version: 0.4.0
C compiler for the host machine: cl (msvc 19.29.30140 "Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30140 for x86")
C linker for the host machine: link link 14.29.30140.0
C++ compiler for the host machine: cl (msvc 19.29.30140 "Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30140 for x86")
C++ linker for the host machine: link link 14.29.30140.0
Host machine cpu family: x86
Host machine cpu: x86
Found pkg-config: D:\gstreamer\1.0\msvc_x86_64\\bin\pkg-config.EXE (0.29.2)
Run-time dependency gstreamer-1.0 found: YES 1.20.3
Message: Building against GStreamer 1.20.3
Compiler for C supports arguments /utf-8: YES
Compiler for C supports link arguments -Wl,-Bsymbolic-functions: NO
Compiler for C supports arguments -fvisibility=hidden: NO
Compiler for C supports arguments -fno-strict-aliasing: NO
Message: Disabling GLib cast checks
Checking for size of "char" : 1
Checking for size of "int" : 4
Checking for size of "long" : 4
Checking for size of "short" : 2
Checking for size of "void*" : 4
Checking for size of "off_t" : -1
Compiler for C supports arguments -Wmissing-declarations: NO
Compiler for C++ supports arguments -Wmissing-declarations: NO
Compiler for C supports arguments -Wredundant-decls: NO
Compiler for C++ supports arguments -Wredundant-decls: NO
Compiler for C supports arguments -Wwrite-strings: NO
Compiler for C++ supports arguments -Wwrite-strings: NO
Compiler for C supports arguments -Winit-self: NO
Compiler for C++ supports arguments -Winit-self: NO
Compiler for C supports arguments -Wmissing-include-dirs: NO
Compiler for C++ supports arguments -Wmissing-include-dirs: NO
Compiler for C supports arguments -Wno-multichar: NO
Compiler for C++ supports arguments -Wno-multichar: NO
Compiler for C supports arguments -Wvla: NO
Compiler for C++ supports arguments -Wvla: NO
Compiler for C supports arguments -Wpointer-arith: NO
Compiler for C++ supports arguments -Wpointer-arith: NO
Compiler for C supports arguments -Wmissing-prototypes: NO
Compiler for C supports arguments -Wdeclaration-after-statement: NO
Compiler for C supports arguments -Wold-style-definition: NO
Compiler for C supports arguments -Waggregate-return: NO
Run-time dependency gstreamer-base-1.0 found: YES 1.20.3
Run-time dependency gstreamer-check-1.0 found: YES 1.20.3
Run-time dependency gstreamer-pbutils-1.0 found: YES 1.20.3
Run-time dependency gstreamer-allocators-1.0 found: YES 1.20.3
Run-time dependency gstreamer-video-1.0 found: YES 1.20.3
Run-time dependency glib-2.0 found: YES 2.62.6
Run-time dependency gobject-2.0 found: YES 2.62.6
Header "gst/gstconfig.h" has symbol "GST_DISABLE_GST_DEBUG" with dependency gstreamer-1.0: NO
Message: GStreamer debug system is enabled
Program python3 found: YES (C:\Program Files\Meson\meson.exe runpython)
Found CMake: C:\Program Files\CMake\bin\cmake.EXE (3.23.2)
Run-time dependency pylon (modules: pylon::GCBase, pylon::GenApi, pylon::PylonBase, pylon::PylonUtility) found: YES 7.1.0
Run-time dependency valgrind found: NO (tried pkgconfig)
Run-time dependency gstreamer-plugins-base-1.0 found: YES 1.20.3
Program D:/gstreamer/1.0/msvc_x86_64/libexec/gstreamer-1.0/gst-plugins-doc-cache-generator found: NO
docs\meson.build:32: WARNING: GStreamer plugin inspector for documentation not found, can't update the cache
Program hotdoc found: NO
Message: Hotdoc not found, not building the documentation
Configuring config.h using configuration
Build targets in project: 3
gst-plugin-pylon 0.4.0
Plugins: pylon
User defined options
prefix : D:\gstreamer\1.0\msvc_x86_64\
Found ninja-1.11.1 at .\ninja.EXE
I am trying to execute the following command.
ninja -C build
However I have encountered following error.
D:\gst-plugin-pylon-main\gst-plugin-pylon-main>ninja -C build
ninja: Entering directory `build'
[3/15] Compiling C object tests/check/generic_states.exe.p/generic_states.c.obj
cl : Command line warning D9025 : overriding '/DG_DISABLE_CAST_CHECKS' with '/UG_DISABLE_CAST_CHECKS'
[5/15] Linking target tests/examples/pylon/pylonsrc.exe
FAILED: tests/examples/pylon/pylonsrc.exe tests/examples/pylon/pylonsrc.pdb
"link" /MACHINE:x86 /OUT:tests/examples/pylon/pylonsrc.exe tests/examples/pylon/pylonsrc.exe.p/pylonsrc.c.obj "/nologo" "/release" "/nologo" "/DEBUG" "/PDB:tests\examples\pylon\pylonsrc.pdb" "D:/gstreamer/1.0/msvc_x86_64/lib/gstvideo-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstbase-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstreamer-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gobject-2.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/glib-2.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/intl.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_error_free referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_setenv referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_free referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_main_loop_new referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_main_loop_run referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_main_loop_quit referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_main_loop_unref referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_source_remove referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_timeout_add_seconds referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_return_if_fail_warning referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_print referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_printerr referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol _g_object_set referenced in function _toggle_pattern
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_object_unref referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_message_parse_error referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_message_parse_warning referenced in function _bus_callback
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_bus_add_watch referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_element_set_state referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_bin_get_by_name referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_child_proxy_get referenced in function _toggle_pattern
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_child_proxy_set referenced in function _toggle_pattern
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_pipeline_get_bus referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_parse_launch_full referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_init referenced in function _main
pylonsrc.c.obj : error LNK2019: unresolved external symbol __imp__gst_deinit referenced in function _main
D:\gstreamer\1.0\msvc_x86_64\lib\gstvideo-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstbase-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gobject-2.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\intl.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
tests\examples\pylon\pylonsrc.exe : fatal error LNK1120: 25 unresolved externals
[6/15] Linking target tests/check/generic_states.exe
FAILED: tests/check/generic_states.exe tests/check/generic_states.pdb
"link" /MACHINE:x86 /OUT:tests/check/generic_states.exe tests/check/generic_states.exe.p/generic_states.c.obj "/nologo" "/release" "/nologo" "/DEBUG" "/PDB:tests\check\generic_states.pdb" "D:/gstreamer/1.0/msvc_x86_64/lib/gstreamer-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gobject-2.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/glib-2.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/intl.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstbase-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstcheck-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstvideo-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstpbutils-1.0.lib" "D:/gstreamer/1.0/msvc_x86_64/lib/gstaudio-1.0.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
generic_states.c.obj : error LNK2019: unresolved external symbol _g_getenv referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol _g_free referenced in function _teardown
generic_states.c.obj : error LNK2019: unresolved external symbol _g_list_free referenced in function _teardown
generic_states.c.obj : error LNK2019: unresolved external symbol _g_list_prepend referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol _g_print referenced in function ___gst_tcase_add_test
generic_states.c.obj : error LNK2019: unresolved external symbol _g_str_has_prefix referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol _g_strdup referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol _g_strsplit referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol _g_strfreev referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol _g_type_check_instance_cast referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol _g_type_check_instance_is_a referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_object_get_type referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_object_unref referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_task_cleanup_all referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_plugin_get_name referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_plugin_get_source referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_plugin_list_free referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_plugin_feature_list_free referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_element_factory_get_type referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_element_factory_make referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_element_set_state referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_debug_log referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_pipeline_get_type referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_registry_get referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_registry_get_plugin_list referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_registry_get_feature_list_by_plugin referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__suite_create referenced in function _main
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__suite_add_tcase referenced in function _main
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__tcase_create referenced in function _main
generic_states.c.obj : error LNK2019: unresolved external symbol __imp___tcase_add_test referenced in function ___gst_tcase_add_test
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__tcase_add_checked_fixture referenced in function _main
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__tcase_fn_start referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp___ck_assert_failed referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp___mark_point referenced in function _test_state_changes_down_seq
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_check_init referenced in function _main
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__gst_check_run_suite referenced in function _maingeneric_states.c.obj : error LNK2019: unresolved external symbol __imp___gst_check_run_test_func referenced in function ___gst_tcase_add_test
generic_states.c.obj : error LNK2019: unresolved external symbol __imp___gst_debug_min referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp__check_debug referenced in function _setup
generic_states.c.obj : error LNK2019: unresolved external symbol __imp___gst_check_list_tests referenced in function ___gst_tcase_add_test
D:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gobject-2.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\intl.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstbase-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstcheck-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstvideo-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstpbutils-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
D:\gstreamer\1.0\msvc_x86_64\lib\gstaudio-1.0.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
tests\check\generic_states.exe : fatal error LNK1120: 40 unresolved externals
[14/15] Compiling C++ object ext/pylon/gstpylon.dll.p/gstpylon.cpp.obj
../ext/pylon/gstpylon.cpp(840): warning C4101: 'e': unreferenced local variable
ninja: build stopped: subcommand failed.
Somehow my pylon plugin broke after I updated to v0.7.0. Please find the output below. What could have happened?
As far as I remember the hotfix was working: https://github.com/basler/gst-plugin-pylon/tree/hotfix/v0.6.2_set_offset_xy_from_props
$ ./test camera
[Warn 0.018940 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0.283679 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,013834 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,278346 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,555618 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,825468 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
Leitung wird auf PAUSIERT gesetzt ...
[Warn 1,101997 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
FEHLER: Von Element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Failed to start camera.
Zusätzliche Fehlerdiagnoseinformation:
../ext/pylon/gstpylonsrc.cpp(820): gst_pylon_src_start (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
No devices found matching the specified criteria
FEHLER: Leitung läuft nicht vor.
FEHLER: Von Element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: GStreamer-Fehler: Zustandswechsel schlug fehl und einige Elemente gaben keine richtige Fehlernachricht mit einer Ursachenbegründung.
Zusätzliche Fehlerdiagnoseinformation:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
Failed to start
FEHLER: Leitung läuft nicht vor.
Failed to set pipeline to PAUSED.
Leitung wird auf NULL gesetzt ...
Leitung wird geleert ...
$ gst-inspect-1.0 pylonsrc
[Warn 0,013844 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,277869 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
Factory Details:
Rank none (0)
Long-name Basler/Pylon source element
Klass Source/Video/Hardware
Description Source element for Basler cameras
Author Basler AG <[email protected]>
Plugin Details:
Name pylon
Description Basler/Pylon plugin for pylon SDK 6.2.0(18677)
Filename /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstpylon.so
Version 0.7.0
License BSD
Source module gst-plugin-pylon
Binary package GStreamer Pylon Plug-in source release
Origin URL https://github.com/basler/gst-plugin-pylon
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstPushSrc
+----GstPylonSrc
Implemented Interfaces:
GstChildProxy
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
video/x-raw
format: { (string)GRAY8, (string)RGB, (string)BGR, (string)YUY2, (string)UYVY }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-bayer
format: { (string)rggb, (string)bggr, (string)gbgr, (string)grgb }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
SRC: 'src'
Pad Template: 'src'
Element Properties:
blocksize : Size in bytes to read per buffer (-1 = default)
flags: lesbar, schreibbar
Unsigned Integer. Range: 0 - 4294967295 Default: 4096
cam : The camera to use.
According to the selected camera different properties will be available.
These properties can be accessed using the "cam::<property>" syntax.
No valid cameras where found connected to the system.
flags: lesbar
Object of type "GObject"
capture-error : The strategy to use in case of a camera capture error.
flags: lesbar, schreibbar, regelbar
Enum "GstPylonCaptureErrorEnum" Default: 2, "Stop pipeline in case of any capture error"
(0): Use partial or corrupt buffers - keep
(1): Skip partial or corrupt buffers. A maximum of 100 buffers can be skipped before the pipeline aborts. - skip
(2): Stop pipeline in case of any capture error - abort
device-index : The index of the device to use.This index applies to the resulting device list after applying the other device selection properties. The index is mandatory if multiple devices match the given search criteria.
flags: lesbar, schreibbar, änderbar nur in den Status NULL oder BEREIT
Integer. Range: -1 - 2147483647 Default: -1
device-serial-number: The serial number of the device to use. May be combined with other device selection properties to reduce the search.
flags: lesbar, schreibbar, änderbar nur in den Status NULL oder BEREIT
String. Default: null
device-user-name : The user-defined name of the device to use. May be combinedwith other device selection properties to reduce the search.
flags: lesbar, schreibbar, änderbar nur in den Status NULL oder BEREIT
String. Default: null
do-timestamp : Apply current stream time to buffers
flags: lesbar, schreibbar
Boolean. Default: false
enable-correction : If enabled, the values from other parameters will be automatically corrected. If any of the properties holds an incorrect value given an specific configuration it will be corrected
flags: lesbar, schreibbar, änderbar nur in den Status NULL oder BEREIT
Boolean. Default: true
name : The name of the object
flags: lesbar, schreibbar, 0x2000
String. Default: "pylonsrc0"
num-buffers : Number of buffers to output before sending EOS (-1 = unlimited)
flags: lesbar, schreibbar
Integer. Range: -1 - 2147483647 Default: -1
parent : The parent of the object
flags: lesbar, schreibbar, 0x2000
Object of type "GstObject"
pfs-location : The filepath to the PFS file from which to load the device configuration. Setting this property will override the user set property if also set.
flags: lesbar, schreibbar, änderbar nur in den Status NULL oder BEREIT
String. Default: null
stream : The stream grabber to use.
According to the selected stream grabber different properties will be available.
These properties can be accessed using the "stream::<property>" syntax.
No valid cameras where found connected to the system.
flags: lesbar
Object of type "GObject"
typefind : Run typefind before negotiating (deprecated, non-functional)
flags: lesbar, schreibbar, veraltet
Boolean. Default: false
user-set : The user-defined configuration set to use. Leaving this property unset, or using 'Auto' result in selecting the power-on default camera configuration.
flags: lesbar, schreibbar, änderbar nur in den Status NULL oder BEREIT
String. Default: null
Hi, I noticed considerable amount of latency (~140ms) when using the following pipelines on the same device.
Sender pipeline:
gst-launch-1.0 pylonsrc ! 'video/x-raw, width=1920, height=1080, format=YUY2, framerate=60/1' ! nvvidconv ! nvv4l2h265enc bitrate=5000000 insert-sps-pps=1 idrinterval=30 insert-vui=1 maxperf-enable=true ! 'video/x-h265, stream-format=(string)byte-stream' ! h265parse ! rtph265pay mtu=1320 ! udpsink host=192.168.1.114 port=15000 sync=false async=false -e
Receiver pipeline:
gst-launch-1.0 -e udpsrc port=15000 ! 'application/x-rtp, encoding-name=H265, payload=96' ! rtph265depay ! h265parse ! nvv4l2decoder enable-max-performance=1 ! nvvidconv ! autovideosink sync=false async=false
What do you guys think the latency is from? I asked on NVIDIA developer forum, they think the latency mainly comes from the pylonsrc
, which is the plugin itself, is it possible that's the case? Also, is there any suggestion in regards to the reduction of that latency? Any help is greatly appreciated.
Describe the bug
We need to change OffsetX and OffsetY parameters on start and would also like to change these values dynamically during runtime. However, it seems none of the cam:: parameters are applied. We added the parameters as described in the documentation.
It seems to work somehow if a pfs is also added. However, still it is buggy and only some parameters work.
To Reproduce
Does not work: gst-launch-1.0 pylonsrc cam::OffsetX=1144 cam::OffsetY=1016 ! "video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1" ! queue ! waylandsink
Works partly (but still some cam:: parameters are not working; in this case cam::OffsetX ist not applied): gst-launch-1.0 pylonsrc pfs-location=test.pfs cam::OffsetX=1144 cam::OffsetY=1016 ! "video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1" ! queue ! waylandsink
Expected behavior
Plugin should apply the parameters without using any pfs file and should also overwrite any defaults.
Environment
Description
We are running some stress tests on our platform. Running multiple power-off/on tests in a row, after several successful camera tests, we have a failure with the following error. After a reboot it usually works again (power remained).
Command: gst-launch-1.0 pylonsrc cam::OffsetX=1144 cam::OffsetY=1016 ! "video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1" ! queue ! waylandsink
Any idea, which direction this could be?
Error
Console:
$ /opt/bin/test camera
[Warn 0,019248 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,284149 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,559721 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,829524 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
Leitung wird auf PAUSIERT gesetzt ...
[Warn 1,110596 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
FEHLER: Von Element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Failed to start camera.
Zusätzliche Fehlerdiagnoseinformation:
../ext/pylon/gstpylonsrc.cpp(820): gst_pylon_src_start (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
No devices found matching the specified criteria
FEHLER: Leitung läuft nicht vor.
FEHLER: Von Element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: GStreamer-Fehler: Zustandswechsel schlug fehl und einige Elemente gaben keine richtige Fehlernachricht mit einer Ursachenbegründung.
Zusätzliche Fehlerdiagnoseinformation:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
Failed to start
FEHLER: Leitung läuft nicht vor.
Failed to set pipeline to PAUSED.
Leitung wird auf NULL gesetzt ...
Leitung wird geleert ...
$ gst-inspect-1.0 pylonsrc | grep -E "Descr.*pylon.*|\s+Version\s+[0-9]+"
[Warn 0,013857 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
[Warn 0,277909 GenTLProducer::Core] No explicit support for this platform, trying generic pipeline handler. Some features might not work as expected.
Description Basler/Pylon plugin for pylon SDK 6.2.0(18677)
Version 0.7.0
Journal (can't find any other line related to pylon or gst - this one seems to be there in ANY cases):
Mai 31 17:45:06 tavla kernel: capability: warning: `gst-launch-1.0' uses 32-bit capabilities (legacy support in use)
Environment
Camera: Basler daA4200-30mci-AF90-AR1335
Plugin Version: 0.7.0; Basler/Pylon plugin for pylon SDK 6.2.0 (18677)
Platform: i.MX8MP on Custom Board
OS: Custom Debian with Custom Kernel 5.10
I want to install on Raspberry OS/64bit (Linux pi103 5.15.76-v8+ #1597 SMP PREEMPT Fri Nov 4 12:16:41 GMT 2022 aarch64 GNU/Linux).
As described in the README.md I have installed: https://www.baslerweb.com/en/downloads/software-downloads/software-pylon-7-2-1-linux-arm-64bit-debian/
Also dependencies (meson and gstreamer) are properly installed for a Debian-based systems as described in the README.md
Finally the files are in /opt/pylon and the export PYLON_ROOT=/opt/pylon is all set
Now here I am lost:
The README.md description is a bit unclear from that point onwards and I am stuck in finding the folder in which to invoke the command
meson builddir --prefix /usr/
and where is the file: meson_options.txt.
Somehow I suppose I am missing a download - but which?
I realize that I have downloaded pylon 7.2.1 whereas 7.1 and 6.2 is supported - that could be a problem. Is it? If so how do I uninstall 7.2.1
Thanks for any hints.
Currently we use: /usr/bin/gst-launch-1.0 pylonsrc cam::OffsetX=1144 cam::OffsetY=1016 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1 ! tee ! queue ! v4l2sink device=/dev/video9
Actually we don't need tee
, I would like to remove it. But then I receive the following error:
Jun 11 21:00:31 VIDEO[7205]: New clock: GstSystemClock
Jun 11 21:00:31 VIDEO[7205]: FEHLER: Von Element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Internal data stream error.
Jun 11 21:00:31 VIDEO[7205]: Zusätzliche Fehlerdiagnoseinformation:
Jun 11 21:00:31 VIDEO[7205]: ../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
Jun 11 21:00:31 VIDEO[7205]: streaming stopped, reason not-negotiated (-4)
Jun 11 21:00:31 VIDEO[7205]: Execution ended after 0:00:00.434628856
Jun 11 21:00:31 VIDEO[7205]: Leitung wird auf NULL gesetzt ...
Jun 11 21:00:31 VIDEO[7205]: Leitung wird geleert ...
/dev/video9
is a v4l2loopback device.
I have added files to create a debian package, and it succeeds in building, however, when it is installed, gstreamer lists the plugin as blacklisted. I am wondering if you might have any advice on whether there is an issue with my configuration. Thank you.
When I use this command to specify trigger source as hardware trigger from Line3, the pipeline can be controlled to start playing by Line3 signal, however the frame rate won't change according to hardware trigger signal frequency. Could developer confirm whether frame rate can change according to hardware trigger signal from GPIO or not?
The pipeline I am working on is as follow:
GST_DEBUG=2 gst-launch-1.0 -v pylonsrc ! bayer2rgb ! videoconvert ! ximagesink
This works for me but when I change debug level to 3 or higher, I get
Unable to install property error for my device which is "acA1300-60gc"
At the end I get 'GenICam_3_1_Basler_pylon::AccessException.
Hi Basler Software Team,
I am interestedin using a Basler blaze as a Source in Gstreamer, potentially Deepsteam. Any chance this could work out of the box?
I spoke with a sales rep a while ago. Hewas suggesting that it may actually not be that difficult to implement given the data format (640x480x1 Data stream of depth data).
Do you have any info on that?
I'm trying to start a pipeline using gst1-java-core: https://github.com/gstreamer-java/gst1-java-core
The following pipeline works when I start it from command line: gst-launch-1.0 pylonsrc cam::OffsetX=1144 cam::OffsetY=1016 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1 ! tee ! queue ! v4l2sink device=/dev/video9
However, when I try to start it using gst1-java-core I get the following error output:
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:01.799958577 17585 0xffff240cf800 INFO GST_STATES gstbin.c:2513:gst_bin_element_set_state:<pylonsrc0> current READY pending VOID_PENDING, desired next PAUSED
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:01.800016704 17585 0xffff240cf800 INFO pylonsrc gstpylonsrc.cpp:680:gst_pylon_src_start:<pylonsrc0> Attempting to create camera device with the following configuration:
Mai 07 23:44:04 tavla TAVLA[17585]: name: (null)
Mai 07 23:44:04 tavla TAVLA[17585]: serial number: (null)
Mai 07 23:44:04 tavla TAVLA[17585]: index: -1
Mai 07 23:44:04 tavla TAVLA[17585]: user set: (null)
Mai 07 23:44:04 tavla TAVLA[17585]: PFS filepath: (null)
Mai 07 23:44:04 tavla TAVLA[17585]: Enable correction: True.
Mai 07 23:44:04 tavla TAVLA[17585]: If defined, the PFS file will override the user set configuration.
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.057971090 17585 0xffff240cf800 WARN pylonsrc gstpylonsrc.cpp:724:gst_pylon_src_start:<pylonsrc0> error: Failed to start camera.
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.058056842 17585 0xffff240cf800 WARN pylonsrc gstpylonsrc.cpp:724:gst_pylon_src_start:<pylonsrc0> error: No devices found matching the specified criteria
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.058115468 17585 0xffff240cf800 INFO GST_ERROR_SYSTEM gstelement.c:2234:gst_element_message_full_with_details:<pylonsrc0> posting message: Failed to start camera.
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.058646980 17585 0xffff240cf800 INFO GST_ERROR_SYSTEM gstelement.c:2261:gst_element_message_full_with_details:<pylonsrc0> posted error message: Failed to start camera.
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.058717232 17585 0xffff240cf800 WARN basesrc gstbasesrc.c:3556:gst_base_src_start:<pylonsrc0> error: Failed to start
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.058803984 17585 0xffff240cf800 INFO GST_ERROR_SYSTEM gstelement.c:2234:gst_element_message_full_with_details:<pylonsrc0> posting message: GStreamer-Fehler: Zustandswechsel schlug fehl und einige Elemente gaben keine ri>
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059243618 17585 0xffff240cf800 INFO GST_ERROR_SYSTEM gstelement.c:2261:gst_element_message_full_with_details:<pylonsrc0> posted error message: GStreamer-Fehler: Zustandswechsel schlug fehl und einige Elemente gaben kei>
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059309495 17585 0xffff240cf800 WARN basesrc gstbasesrc.c:3912:gst_base_src_activate_push:<pylonsrc0> Failed to start in push mode
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059343121 17585 0xffff240cf800 INFO GST_PADS gstpad.c:1276:activate_mode_internal:<pylonsrc0:src> failed to activate in push mode
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059373121 17585 0xffff240cf800 WARN GST_PADS gstpad.c:1142:gst_pad_set_active:<pylonsrc0:src> Failed to activate pad
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059406747 17585 0xffff240cf800 INFO GST_STATES gstelement.c:3054:gst_element_change_state:<pylonsrc0> have FAILURE change_state return
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059440873 17585 0xffff240cf800 INFO GST_STATES gstelement.c:2641:gst_element_abort_state:<pylonsrc0> aborting state from READY to PAUSED
Mai 07 23:44:04 tavla TAVLA[17585]: 0:00:02.059509124 17585 0xffff240cf800 INFO GST_STATES gstbin.c:2978:gst_bin_change_state_func:<pipeline0> child 'pylonsrc0' failed to go to state 3(PAUSED)
I'm developing a gstreamer application and can successfully launch a sample pipeline with gst-launch-1.0 pylonsrc device-index=0 ! autovideosink
but when I try to profile the pipeline with gst-shark with GST_DEBUG="GST_TRACER:7" GST_TRACERS="framerate" gst-launch-1.0 pylonsrc device-index=0 ! autovideosink
it launches a blank (black) screen
I see a message as below
(gst-launch-1.0:137728): GLib-GObject-WARNING **: 14:55:51.636: When installing property: type '_2676_ba02_2_2_3' already has a property named 'ColorSpace'
Could you please help with this ? Not sure if there is a conflict or not?
System:
Nvidia Orin AGX
Jetpack 5.0.2
Hello,
I am trying to use the camera daA2500-60mc on an i.MX8M Mini based board.
I have ported the kernel patches from Basler github repository to the kernel I am using.
I have adapted my device tree.
I have the Basler camera driver installed.
The camera is detected:
# dmesg | grep Basler
[ 7.959195] ABRM: Manufactuturer: Basler, Model: daA2500-60mc, Device: 108483-01, Serial: basler:40147311
[ 7.977670] basler-camera 1-0036: Basler Camera Driver v1.6.3 loaded successfully
On the system, I have installed pylon and the GenTL producer.
Gstreamer doesn't find the camera:
# export GENICAM_GENTL64_PATH=/opt/dart-bcon-mipi/lib/
# gst-launch-1.0 pylonsrc ! fakesink
[Warn 0.062798 GenTLProducer::Core] Could not use /dev/video0: Basler Interface version mismatch: expected: 1.1, got: 0.0
[Warn 0.075844 GenTLProducer::Core] Could not use /dev/video0: Basler Interface version mismatch: expected: 1.1, got: 0.0
[Warn 0.585704 GenTLProducer::Core] Could not use /dev/video0: Basler Interface version mismatch: expected: 1.1, got: 0.0
[Warn 0.589103 GenTLProducer::Core] Could not use /dev/video0: Basler Interface version mismatch: expected: 1.1, got: 0.0
Setting pipeline to PAUSED ...
[ 1885.648864] capability: warning: `gst-launch-1.0' uses 32-bit capabilities (legacy support in use)
[Warn 1.260880 GenTLProducer::Core] Could not use /dev/video0: Basler Interface version mismatch: expected: 1.1, got: 0.0
[Warn 1.264486 GenTLProducer::Core] Could not use /dev/video0: Basler Interface version mismatch: expected: 1.1, got: 0.0
ERROR: from element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Failed to start camera.
Additional debug info:
../ext/pylon/gstpylonsrc.c(700): gst_pylon_src_start (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
No devices found matching the specified criteria
ERROR: pipeline doesn't want to preroll.
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:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
Also, v4l2-ctl returns some errors:
# v4l2-ctl -d /dev/v4l-subdev0 --all
Driver Info:
Driver version : 5.15.52
Capabilities : 0x00000000
User Controls
basler_interface_version 0x00981001 (int) : min=0 max=4294967295 step=1 default=65537 value=65537 flags=read-only
error 5 getting ext_ctrl basler-access-register
basler_device_information 0x00981003 (unknown): type=370de8ca dims=[1] flags=read-only, volatile, has-payload
basler_csi_information 0x00981004 (unknown): type=370de8ca dims=[1] flags=read-only, volatile, has-payload
Any idea ?
Regards,
I have multiple cameras and I am trying to publish stream from cameras to RTSP server. Most of them works fine, but daA3840-45uc camera seems to fail when using Jetson Orin Developer Kit. In Windows 10 all cameras work. All cameras also work fine in both Jetson and Windows when using another pipeline. What could be the problem?
Here is the GStreamer short log, longer debug log is attached:
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://localhost:8554/40257292
Progress: (open) Retrieving server options
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending RECORD request
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
H264: Profile = 66, Level = 0
NVMEDIA: Need to set EMC bandwidth : 141000
NVMEDIA_ENC: bBlitMode is set to TRUE
ERROR: from element /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0: Failed to get caps.
Additional debug info:
../ext/pylon/gstpylonsrc.c(467): gst_pylon_src_get_caps (): /GstPipeline:pipeline0/GstPylonSrc:pylonsrc0:
Node is not writable.
Execution ended after 0:00:00.759384283
Setting pipeline to NULL ...
GStreamer pipelines that I have used for testing in Jetson Orin:
daA3840-45uc => NOT WORKING
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="40198132" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! nvvidconv ! nvv4l2h264enc ! queue ! rtspclientsink location = rtsp://localhost:8554/40198132
daA1920-160uc => OK
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="40165426" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! nvvidconv ! nvv4l2h264enc ! queue ! rtspclientsink location = rtsp://localhost:8554/40165426
Another daA3840-45uc => NOT WORKING
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="40257292" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! nvvidconv ! nvv4l2h264enc ! queue ! rtspclientsink location = rtsp://localhost:8554/40257292
a2A1920-51gcBAS => OK
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="40204286" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! nvvidconv ! nvv4l2h264enc ! queue ! rtspclientsink location = rtsp://localhost:8554/40204286
acA2500-14gc => OK
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="23751808" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! nvvidconv ! nvv4l2h264enc ! queue ! rtspclientsink location = rtsp://localhost:8554/23751808
Pipeline that works in Windows 10 with all cameras:
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="40257292" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! videoconvert ! x264enc ! queue ! rtspclientsink location = rtsp://localhost:8554/40257292
Pipeline that works in all cameras in Jetson Orin
gst-launch-1.0 pylonsrc capture-error=skip device-serial-number="40198132" ! "video/x-raw,width=1920,height=1080,framerate=5/1,format=YUY2" ! nvvidconv ! queue ! nvjpegenc ! queue ! tcpclientsink host=localhost port=50006
In
gst-plugin-pylon/ext/pylon/gstpylonsrc.c
Line 903 in f5e7966
Describe the bug
I am trying to cross build this plugin for arm64 platform. It is not easy and I have not yet got it running. I am also using a build specific chroot environment using debootstrap where pylon is installed.
With my current setup I get the following error message: gst-libs/gst/pylon/meson.build:15:3: ERROR: Problem encountered: Pylon SDK not found, is it installed? If you installed it in alternative location you may specify it using -Dpylon-path=
However, if I add this argument, I get: meson.build:1:0: ERROR: Unknown options: "pylon-path"
I can also not find this option in https://github.com/basler/gst-plugin-pylon/blob/main/meson_options.txt
I have also set the two environment variables (but this did not help):
export PYLON_ROOT=/opt/pylon
export PYLON_DEV_DIR=${ROOTDIR}/opt/pylon
To Reproduce
meson setup build -D pylon-path=${ROOTDIR}/opt/pylon --prefix /usr
Just for your information, my full command: meson setup build -D pylon-path=${ROOTDIR}/opt/pylon --prefix /usr --libdir lib/aarch64-linux-gnu --includedir include/aarch64-linux-gnu --cross-file ${RECIPEDIR}/../../../../resource/meson-cross-arm64.txt
And here the meson-cross-arm64.txt
Expected behavior
It should use either the environment variable or the argument (-D) to specify a custom pylon path during cross build. In case the argument is not existing (anymore), there should not be any error message with such an instruction.
Environment
Hey,
nice work!
But camera "Basler Emulation (0815-0000)" does not show up with "gst-inspect-1.0 pylonsrc".
Will it work with the "Basler Camera Emulation" for evaluation purposes in future?
Thanks a million,
Steven
Hi,
Following this intruction to use it as a the local gstreamer's plugin
https://github.com/basler/gst-plugin-pylon#integrating-with-gstreamer-monorepo
it never success to configuration with this script.
PYLON_ROOT=/opt/pylon meson builddir --prefix /usr -Dcustom_subprojects=gst-plugin-pylon
Here is the log
Executing subproject gst-plugin-pylon
gst-plugin-pylon| Project name: gst-plugin-pylon
gst-plugin-pylon| Project version: 0.3.0
gst-plugin-pylon| C compiler for the host machine: cc (gcc 7.5.0 "cc (Ubuntu/Linaro 7.5.0-3ubuntu118.04) 7.5.0")18.04) 7.5.0")
gst-plugin-pylon| C linker for the host machine: cc ld.bfd 2.30
gst-plugin-pylon| C++ compiler for the host machine: c++ (gcc 7.5.0 "c++ (Ubuntu/Linaro 7.5.0-3ubuntu1
gst-plugin-pylon| C++ linker for the host machine: c++ ld.bfd 2.30
gst-plugin-pylon| Dependency gstreamer-1.0 found: YES 1.21.0.1 (overridden)
gst-plugin-pylon| Message: Building against GStreamer 1.21.0.1
gst-plugin-pylon| Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -fvisibility=hidden: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -fno-strict-aliasing: YES (cached)
gst-plugin-pylon| Message: Disabling deprecated GLib API
gst-plugin-pylon| Checking for size of "char" : 1
gst-plugin-pylon| Checking for size of "int" : 4
gst-plugin-pylon| Checking for size of "long" : 8
gst-plugin-pylon| Checking for size of "short" : 2
gst-plugin-pylon| Checking for size of "void*" : 8
gst-plugin-pylon| Checking for size of "off_t" : 8
gst-plugin-pylon| Compiler for C supports arguments -Wmissing-declarations: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wmissing-declarations: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wredundant-decls: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wredundant-decls: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wwrite-strings: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wwrite-strings: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Winit-self: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Winit-self: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wmissing-include-dirs: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wmissing-include-dirs: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wno-multichar: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wno-multichar: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wvla: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wvla: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wpointer-arith: YES (cached)
gst-plugin-pylon| Compiler for C++ supports arguments -Wpointer-arith: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wmissing-prototypes: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wdeclaration-after-statement: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Wold-style-definition: YES (cached)
gst-plugin-pylon| Compiler for C supports arguments -Waggregate-return: YES (cached)
gst-plugin-pylon| Dependency gstreamer-base-1.0 found: YES 1.21.0.1 (overridden)
gst-plugin-pylon| Dependency gstreamer-check-1.0 found: YES 1.21.0.1 (overridden)
gst-plugin-pylon| Dependency gstreamer-pbutils-1.0 found: YES 1.21.0.1 (overridden)
gst-plugin-pylon| Dependency gstreamer-allocators-1.0 found: YES 1.21.0.1 (overridden)
gst-plugin-pylon| Dependency gstreamer-video-1.0 found: YES 1.21.0.1 (overridden)
gst-plugin-pylon| Dependency glib-2.0 found: YES 2.72.2 (overridden)
gst-plugin-pylon| Dependency gobject-2.0 found: YES 2.72.2 (overridden)
gst-plugin-pylon| Message: GStreamer debug system is enabled
gst-plugin-pylon| Program python3 found: YES (/usr/bin/python3.7)
gst-plugin-pylon| Run-time dependency pylon found: NO (tried cmake)
gst-plugin-pylon| Message: fallback to detect pylon 6.x
gst-plugin-pylon| Run-time dependency pylon found: NO (tried cmake)
subprojects/gst-plugin-pylon/ext/pylon/meson.build:25:4: ERROR: Dependency "pylon" not found, tried cmake
Hi @thiesmoeller,
I tried to follow your new macOS installation instructions, but unfortunately got stuck at ninja -C build
. The pylon libraries (such as pylon/BaslerUniversalInstantCamera.h) are not being found even though they do exist in /Users/<username>/Library/Frameworks/pylon.framework/Versions/A/Headers
. I noticed the similarity with the "RPATH" comment, but wasn't quite sure how to solve it. Any suggestion?
Cheers,
Sam
P.S. Minor comments:
. ./unpack_pylon7.3.1.sh -d pylon_7_3_1_0011.dmg -t /Users/<username>/Library/Frameworks
could have --accept
added to save reading the code.gst-plugin-pylon
directory needs to be cloned before cd gst-plugin-pylon
of course. I assume no particular location...?Describe the bug
I am trying to execute the simple pipeline
gst-launch-1.0 pylonsrc cam::ExposureTime=20000 cam::Gain=10.3 ! "video/x-raw,width=640,height=480,framerate=10/1,format=GRAY8" ! videoconvert ! autovideosink
As a result, I see the following SIGSEGV
arun@arun:~/DeepStream-Yolo$ gst-launch-1.0 pylonsrc cam::ExposureTime=20000 cam::Gain=10.3 ! "video/x-raw,width=640,height=480,framerate=10/1,format=GRAY8" ! videoconvert ! autovideosink
Caught SIGSEGV
Spinning. Please run 'gdb gst-launch-1.0 19979' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core
Environment
Camera: I am using Basler Ace2 camera
plugin version info from gst-inspect-1.0 pylonsrc | grep -E "Descr.*pylon.*|\s+Version\s+[0-9]+"
Description Basler/Pylon plugin for pylon SDK 7.3.0(19429)
Version 0.7.0
Platform: Hardware platform used
Jetson NX platform
Model: NVIDIA Jetson Xavier NX Developer Kit - Jetpack 5.0.2 GA [L4T 35.1.0]
NV Power Mode[8]: MODE_20W_6CORE
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
P-Number: p3668-0001
Module: NVIDIA Jetson Xavier NX
Platform:
Distribution: Ubuntu 20.04 focal
Release: 5.10.104-tegra
jtop:
Version: 4.2.1
Service: Active
Libraries:
CUDA: 11.4.239
cuDNN: 8.4.1.50
TensorRT: 8.4.1.5
VPI: 2.1.6
Vulkan: 1.3.203
OpenCV: 4.5.2 - with CUDA: NO
I see that its not able to find the pylon on system, but I already installed the Pylon7 from Basler.
I am not sure why this crash ! Could you please help to make the things back to normal again.
thanks
Arun
Had an issue with running pylonsrc with an acA4112-8gmACS
. In which gst-inspect-1.0 and gst-launch-1.0 will hang for ever.
Running GST_DEBUG=7 gst-inspect-1.0 pylonsrc
will show the following being printed forever,
0:00:03.375394130 62113 0x55bbe02f2c00 LOG GST_PLUGIN_LOADING gstpluginloader.c:1150:exchange_packets: Poll res = 0. 0 bytes pending for write
0:00:03.375420875 62113 0x55bbe02f2c00 DEBUG GST_POLL gstpoll.c:1241:gst_poll_fd_has_error: 0x55bbe035cc00: fd (fd:8, idx:2) 0
0:00:03.375425291 62113 0x55bbe02f2c00 DEBUG GST_POLL gstpoll.c:1266:gst_poll_fd_can_read_unlocked: 0x55bbe035cc00: fd (fd:8, idx:2) 0
0:00:03.375428694 62113 0x55bbe02f2c00 DEBUG GST_POLL gstpoll.c:1195:gst_poll_fd_has_closed: 0x55bbe035cc00: fd (fd:8, idx:2) 0
0:00:03.375433174 62113 0x55bbe02f2c00 DEBUG GST_POLL gstpoll.c:1414:gst_poll_wait: 0x55bbe035cc00: timeout :0:00:01.000000000
0:00:03.004880865 62114 0x55a3b9f97400 DEBUG pylonsrc gstpylonintrospection.cpp:644:gst_pylon_find_limits: failed to set action
0:00:03.005573104 62114 0x55a3b9f97400 DEBUG pylonsrc gstpylonintrospection.cpp:644:gst_pylon_find_limits: failed to set action
0:00:03.006255033 62114 0x55a3b9f97400 DEBUG pylonsrc gstpylonintrospection.cpp:644:gst_pylon_find_limits: failed to set action
0:00:03.006863032 62114 0x55a3b9f97400 DEBUG pylonsrc gstpylonintrospection.cpp:644:gst_pylon_find_limits: failed to set action
0:00:03.007512652 62114 0x55a3b9f97400 DEBUG pylonsrc gstpylonintrospection.cpp:644:gst_pylon_find_limits: failed to set action
...
Tested with both gstreamer 1.16 and 1.20.
Ran a git bisect
to find that this commit 14ed081, seems to be the cause of the issue. Reverting that commit seems to solve the issue with gst-inspect-1.0
and gst-launch-1.0
It seems I am very close to achieve my goal of streaming from Pylon GStreamer plugin to Chromium. I would like to share my approach and maybe receive some help with the last step.
My platform is a custom board with NXP i.MX8MP. Camera daA4200-30mci-AF90-AR1335 is connected via CSI-2. OS is a custom Debian 11 and Kernel is 5.10 with some patches from NXP. We had to customize the device tree to get the camera supported.
I can stream the camera to wayland directly and this works well: gst-launch-1.0 pylonsrc cam::OffsetX=1144 cam::OffsetY=1016 ! "video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1" ! queue ! waylandsink
Now my goal is to get the camera stream available via HTML / JavaScript media device within Chromium and also use the camera stream for WebRTC media sessions (video calls / conference).
As far as I understand, currently there is no direct support in Chromium for hardware decoders / encoders (especially H.264). However, there seem to be some patches from NXP close to be final which bring this support (but not for 5.10 kernel, some later kernel). In case of hardware encoder support in Chromium, it should be possible to stream raw video to the v4l2loopback device and Chromium should handle everything else (if I am right?). Also if there is no hardware support, it should use its internal software encode / decoder (which will result in some CPU load). I postponed this approach to later.
However, in my case I have a GStreamer plugin provided by NXP (vpuenc_h264) which can encode the raw stream to H.264. My idea now is, to start a GStreamer pipeline which takes the raw video from pylonsrc then encodes it to H.264 (hardware encoder) and forwards it to the v4l2loopback device. It looks like this: gst-launch-1.0 pylonsrc cam::OffsetX=1144 cam::OffsetY=1016 ! "video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1" ! queue ! vpuenc_h264 ! v4l2sink device=/dev/video9
The pipeline is running. However, unfortunately on my first try Chromium did not find the media device. I need to say, that I am using some special Chromium build and there I can also change some configuration regarding media streams (i.e. audio and video capture).
Maybe this can help someone, and maybe someone has an idea, if this approach should actually work and what could be wrong?
I have a Jetson Orin AGX Devkit (running Jetpack 5.0.2) and three acA1920-48gc cameras, connected via 10 gigabit ethernet switch. When connecting with multiple cameras sequentially, everything works as expected. When attempting to launch multiple different pipelines simultaneously, gst-launch-1.0 segfaults while attempting to set the pylonsrc element to the PAUSED state. (This happens for both pipelines, one after the other.) This behavior seems to depend on the order in which the pipelines are started - specifically, how that order relates to the alphabetical order of the camera device names.
My network looks like this:
(s1) -- "L3"
|
| /-- "L2"
ORIN -- (s2) -- "L1"
The pipeline I used to test this is also the minimum possible pipeline:
gst-launch-1.0 pylonsrc device-serial-number=XXXXXXXX ! fakesink
There are two ethernet switches, nicknamed "s1" and "s2". There is one Jetson Orin AGX Devkit, nicknamed "ORIN". There are three acA10920-48gc cameras, nicknamed "L1", "L2", and "L3". (Though these aren't the actual names of the cameras, these nicknames do preserve alphabetical order.)
When connecting two (or more!) cameras sequentially (launching one pipeline, waiting for the pylonsrc
element to successfully hit the PAUSED state, launching the next pipeline), everything works as expected.
I ran these tests by starting one pipeline in one terminal window and immediately switching to a second terminal window and starting a second pipeline. This bug doesn't seem to require specific timing - it happens so long as two pylonsrc elements are attempting to connect to cameras at the same time, even if those elements are started on different machines (which are on the same network).
When connecting to camera L1 first and L3 second, both pipelines always crashed. When connecting to camera L3 first and camera L1 second, both pipelines always ran successfully.
When connecting to camera L1 first and L2 second, both pipelines always crashed. When connecting to camera L2 first and camera L1 second, both pipelines always ran successfully.
When connecting to camera L2 and L3, the pipeline started first always succeeded and the pipeline started second always failed.
Might be relevant: even when both pipelines successfully ran, they only started one at a time. Also, the cameras' serial numbers are in this order when sorted numerically: L3 < L1 < L2
Thanks for taking a look at this! Let me know if you need any more details.
Is there a means to have the plugin periodically attempt to connect to a camera if it is not connected at startup or if it is disconnected while running?
I don't have a minimal working example, so this may just be an issue with my code. The source is here: https://git.ligo.org/patrick.thomas/gige-gst-epics
This allows the remote setting of the exposure time through an EPICS process variable (https://epics.anl.gov/). I am using it with a Basler acA720-290gm GigE camera. If the pipeline is running and I set the exposure time to the maximum of the range (10000000) then it reports an error and closes:
** (gige_gst_epics:27536): CRITICAL **: 08:59:51.340: gst_plyon_src_add_metadata: assertion 'buf' failed
Error received from element pylonsrc: Failed to create buffer.
Debugging information: ../ext/pylon/gstpylonsrc.c(704): gst_pylon_src_create (): /GstPipeline:pipeline/GstPylonSrc:pylonsrc:
Grab timed out. Possible reasons are: The image transport from the camera device is not working properly, e.g., all GigE network packets for streaming are dropped; The camera uses explicit triggering (see TriggerSelector for more information) and has not been triggered; Single frame acquisition mode is used and one frame has already been acquired; The acquisition has not been started or has been stopped.
My guess is that the exposure time is just longer than the image grab timeout time. Is the image grab timeout time configurable through the plugin?
debug.txt
Using a daA2500-60mc or daA3840-30mc and trying to set the resolution to VGA with BslScaleingEnable = true, I got an error message that the node is not writeable. Here is the pipeline and the debug output:
# GST_DEBUG=2,pylon*:9 gst-launch-1.0 pylonsrc cam::BslScalingEnable=true ! "video/x-raw, width=640,height=480,format=YUY2" ! vpuenc_h264 ! mpegtsmux name=mux1 ! filesink location=daA3840_640_scaling.ts
The same happens, when loading a PFS-file with BslScalingEnable=true. With BslScalingEnable=false the PFS-file loads just fine.
Debug-text attached.
P.S.: when using "gst-inspect-1.0 pylonsrc
" the naming for SensorWidth and SensorHeight is not correct, . Probably "Width" and "Height" is correct, but "cam::Width=640" has no effect on my side.
Hi,
my system is the following:
With gst-plugin-pylon version 0.4.0, gst-inspect.exe pylonsrc
did show ExposureTime/Gain in the property list.
Since I upgraded to version 0.5.1
these two properties are missing. I was not able to set those properties in version 0.5.1
in application. In the Pylon Viewer, i can change the properties.
With an ace1 everything works as expected
Do I miss something here?
Thanks a lot
gst_pylon_logs040.txt
gst_pylon_logs051.txt
Describe the bug
On version 7.0 (but not 6.1.0), the pylonsrc plugin is unstable when attempting to dynamically destroy and create plugins within the same pipeline. Specifically, the plugin seems to crash whenever attempting to connect to a camera which had been previously connected to, even if the old plugin has been totally unallocated.
To Reproduce
This python script reproduces the issue:
(Note that this script reproduces the issue in pylonsrc 7.0, but works as intended with pylonsrc 6.1. I haven't tested on other versions of pylonsrc.)
import gi, time, os, sys
from datetime import datetime
from threading import local, Thread, Lock
gi.require_version('Gst', '1.0')
from gi.repository import GLib, Gst
def bus_call(bus, message, loop):
t = message.type
if t == Gst.MessageType.EOS:
sys.stdout.write("End-of-stream\n")
loop.quit()
elif t==Gst.MessageType.WARNING:
err, debug = message.parse_warning()
sys.stderr.write("Warning: %s: %s\n" % (err, debug))
elif t == Gst.MessageType.ERROR:
err, debug = message.parse_error()
sys.stderr.write("Error: %s: %s\n" % (err, debug))
now = datetime.utcnow()
nowstr = now.strftime('%Y-%m-%dT%H-%M-%S.%f')[:-3]
sys.stderr.write("Time: {}\n".format(nowstr))
loop.quit()
return True
Gst.init(None)
pipeline = Gst.Pipeline()
def create_cam():
pylon = Gst.ElementFactory.make("pylonsrc", "source")
pylon.set_property('device-serial-number', '40302373')
return pylon
def probe(pad, info):
global pipeline, pylon, sink
pad.remove_probe(info.id)
pylon.set_state(Gst.State.NULL)
pipeline.remove(pylon)
pylon = None
time.sleep(1)
pylon = create_cam()
pipeline.add(pylon)
pylon.link(sink)
return Gst.PadProbeReturn.PASS
sink = Gst.ElementFactory.make("fakesink", "sink")
pylon = create_cam()
pipeline.add(pylon)
pipeline.add(sink)
pylon.link(sink)
loop = GLib.MainLoop()
bus = pipeline.get_bus()
bus.add_signal_watch()
bus.connect ("message", bus_call, loop)
def run_loop_thread(loop):
try:
loop.run()
except Exception as e:
print(e)
loop_Thread = Thread(target=run_loop_thread, args=(loop,))
loop_Thread.start()
pipeline.set_state(Gst.State.PLAYING)
print("playing")
time.sleep(1)
sink.get_static_pad("sink").add_probe(Gst.PadProbeType.BLOCK, probe)
pipeline.set_state(Gst.State.PLAYING)
time.sleep(1)
pipeline.set_state(Gst.State.NULL)
print("exiting")
loop.quit()
loop_Thread.join()
Expected behavior
The expected behavior was that the new plugin would successfully connect to the camera, given that the old plugin had been unallocated and has disconnected from the camera.
Pylonsrc 6.1.0 works as expected in this regard.
Environment
gst-inspect-1.0 pylonsrc | grep -E "Descr.*pylon.*|\s+Version\s+[0-9]+"
: 0.7.0-localIt seems to me that there are no instructions to build the gst-plugin-python into the meta-basler-tools even if this is what is mentioned in the current readme.
how do we cross-build the plugin in YOCTO ?
If the capture-error
property is set to keep
or skip
, is there a notification when a capture error occurs?
I am playing with Basler darts camera and trying to encode it and send stream over rtsp from Raspberry pi 4. I tried to the following pipeline:
(pylonsrc ! "video/x-raw,width=640,height=480,framerate=10/1,format=GRAY8" ! videoconvert ! "video/x-raw,format=I420" ! avenc_mpeg4 ! rtpmp4vpay config-interval=1 name=pay0 pt=96)
then, it works fine.
However, when I tried to use x264enc
,
( pylonsrc ! "video/x-raw,width=640,height=480,framerate=10/1,format=GRAY8" ! videoconvert ! "video/x-raw,format=I420" ! x264enc ! rtph264pay config-interval=1 name=pay0 pt=96 )
then, it will show up some error message like this when a client is trying to request the stream:
stream ready at rtsp://127.0.0.1:8554/test
0:00:06.333204859 28374 0xacfbc60 ERROR rtspclient rtsp-client.c:2187:handle_play_request: client 0xad083b0: media not found
0:00:06.334283006 28374 0xacfbc60 ERROR rtspclient rtsp-client.c:1522:handle_teardown_request: client 0xad083b0: no media for uri
0:00:07.808557989 28374 0xacfbc60 WARN rtspmedia rtsp-media.c:4885:gst_rtsp_media_set_state: media 0x7fb40f31c0 was not prepared
0:00:07.825773881 28374 0x7fb4003b00 WARN pylonsrc gstpylonsrc.cpp:820:gst_pylon_src_start: error: Failed to start camera.
0:00:07.825926389 28374 0x7fb4003b00 WARN pylonsrc gstpylonsrc.cpp:820:gst_pylon_src_start: error: TLFactory not instanciated, you must call PylonInitialize()
0:00:07.826059155 28374 0x7fb4003b00 WARN basesrc gstbasesrc.c:3556:gst_base_src_start: error: Failed to start
0:00:07.826145696 28374 0x7fb4003b00 WARN basesrc gstbasesrc.c:3912:gst_base_src_activate_push: Failed to start in push mode
0:00:07.826192828 28374 0x7fb4003b00 WARN GST_PADS gstpad.c:1142:gst_pad_set_active:pylonsrc1:src Failed to activate pad
0:00:07.826665408 28374 0x7fb4003b00 WARN rtspmedia rtsp-media.c:3555:start_preroll: failed to preroll pipeline
0:00:07.826741060 28374 0x7fb4003b00 WARN rtspmedia rtsp-media.c:3743:start_prepare: failed to preroll pipeline
0:00:07.826803378 28374 0xacfbc60 WARN rtspmedia rtsp-media.c:3576:wait_preroll: failed to preroll pipeline
0:00:07.826836713 28374 0xacfbc60 WARN rtspmedia rtsp-media.c:3946:gst_rtsp_media_prepare: failed to preroll pipeline
0:00:07.827567083 28374 0xacfbc60 ERROR rtspclient rtsp-client.c:1087:find_media: client 0xad08630: can't prepare media
0:00:07.828193282 28374 0xacfbc60 ERROR rtspclient rtsp-client.c:3346:handle_describe_request: client 0xad08630: no media
0:00:11.892276118 28374 0xad099e0 WARN pylonsrc gstpylonsrc.cpp:820:gst_pylon_src_start: error: Failed to start camera.
0:00:11.892408865 28374 0xad099e0 WARN pylonsrc gstpylonsrc.cpp:820:gst_pylon_src_start: error: TLFactory not instanciated, you must call PylonInitialize()
0:00:11.892693861 28374 0xad099e0 WARN basesrc gstbasesrc.c:3556:gst_base_src_start: error: Failed to start
0:00:11.892890871 28374 0xad099e0 WARN basesrc gstbasesrc.c:3912:gst_base_src_activate_push: Failed to start in push mode
0:00:11.893019637 28374 0xad099e0 WARN GST_PADS gstpad.c:1142:gst_pad_set_active:pylonsrc2:src Failed to activate pad
0:00:11.894260329 28374 0xad099e0 WARN rtspmedia rtsp-media.c:3555:start_preroll: failed to preroll pipeline
0:00:11.894434763 28374 0xad099e0 WARN rtspmedia rtsp-media.c:3743:start_prepare: failed to preroll pipeline
0:00:11.895275009 28374 0xacfbe40 WARN rtspmedia rtsp-media.c:3576:wait_preroll: failed to preroll pipeline
0:00:11.895405646 28374 0xacfbe40 WARN rtspmedia rtsp-media.c:3946:gst_rtsp_media_prepare: failed to preroll pipeline
0:00:11.895704587 28374 0xad099e0 WARN rtspmedia rtsp-media.c:3250:default_handle_message: 0x7f7c00c1e0: got error Failed to start camera. (../ext/pylon/gstpylonsrc.cpp(820): gst_pylon_src_start (): /GstPipeline:media-pipeline/GstBin:bin2/GstPylonSrc:pylonsrc2:
TLFactory not instanciated, you must call PylonInitialize())
0:00:11.895989638 28374 0xad099e0 WARN rtspmedia rtsp-media.c:3250:default_handle_message: 0x7f7c00c1e0: got error GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure. (../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:media-pipeline/GstBin:bin2/GstPylonSrc:pylonsrc2:
Failed to start)
0:00:11.897624442 28374 0xacfbe40 ERROR rtspclient rtsp-client.c:1087:find_media: client 0xad084f0: can't prepare media
0:00:11.899197540 28374 0xacfbe40 ERROR rtspclient rtsp-client.c:3064:handle_setup_request: client 0xad084f0: media '/test' not found
0:00:11.939079399 28374 0xacfbe40 WARN pylonsrc gstpylonsrc.cpp:820:gst_pylon_src_start: error: Failed to start camera.
0:00:11.939241907 28374 0xacfbe40 WARN pylonsrc gstpylonsrc.cpp:820:gst_pylon_src_start: error: TLFactory not instanciated, you must call PylonInitialize()
0:00:11.939400360 28374 0xacfbe40 WARN basesrc gstbasesrc.c:3556:gst_base_src_start: error: Failed to start
0:00:11.939518421 28374 0xacfbe40 WARN basesrc gstbasesrc.c:3912:gst_base_src_activate_push: Failed to start in push mode
0:00:11.939580554 28374 0xacfbe40 WARN GST_PADS gstpad.c:1142:gst_pad_set_active:pylonsrc3:src Failed to activate pad
0:00:11.940548362 28374 0xacfbe40 WARN rtspmedia rtsp-media.c:3555:start_preroll: failed to preroll pipeline
0:00:11.940627847 28374 0xacfbe40 WARN rtspmedia rtsp-media.c:3743:start_prepare: failed to preroll pipeline
0:00:11.940729927 28374 0xad099e0 WARN rtspmedia rtsp-media.c:3576:wait_preroll: failed to preroll pipeline
0:00:11.940800615 28374 0xad099e0 WARN rtspmedia rtsp-media.c:3946:gst_rtsp_media_prepare: failed to preroll pipeline
0:00:11.942314080 28374 0xad099e0 ERROR rtspclient rtsp-client.c:1087:find_media: client 0xad08770: can't prepare media
0:00:11.943336484 28374 0xad099e0 ERROR rtspclient rtsp-client.c:3346:handle_describe_request: client 0xad08770: no media
Could you please help me walk through this error? Thanks in advance.
Are there any plans to expose a way to trigger basler camera's commands, like TimestampLatch
and SoftwareSignalPulse
through either a glib object signal or exposing the underlying camera device pointer for pylon? As I have seen the wiki page on Gige cameras for software triggered acquisition via actions commands, I was looking for something more general that includes the other commands as well as support USB3.0 cameras.
Hi I'm trying to build the plugin on Linux but it fails with the following log file:
Log of Meson test suite run on 2022-10-19T17:09:42.456467
Inherited environment: LESSOPEN='| /usr/bin/lesspipe %s' LANGUAGE=en_CA:en USER=andrea SSH_CLIENT='192.168.68.148 6189 22' XDG_SESSION_TYPE=tty GIT_ASKPASS=/home/andrea/.vscode-server/bin/d045a5eda657f4d7b676dedbfa7aab8207f8a075/extensions/git/dist/askpass.sh SHLVL=1 BROWSER=/home/andrea/.vscode-server/bin/d045a5eda657f4d7b676dedbfa7aab8207f8a075/bin/helpers/browser.sh MOTD_SHOWN=pam HOME=/home/andrea CONDA_SHLVL=0 OLDPWD=/media/andrea/Disk_21/Desktop/ARES TERM_PROGRAM_VERSION=1.72.2 VSCODE_IPC_HOOK_CLI=/run/user/1000/vscode-ipc-517acefa-f891-48c0-bd43-54de1f92c2df.sock VSCODE_GIT_ASKPASS_MAIN=/home/andrea/.vscode-server/bin/d045a5eda657f4d7b676dedbfa7aab8207f8a075/extensions/git/dist/askpass-main.js PS1='[�]633;A�](env) [�]633;A�][�]633;A�][\e]0;\u@\h: \w\a]${debian_chroot:+(
==================================== 1/1 =====================================
test: generic_states
start time: 21:09:42
duration: 10.60s
result: exit status 2
command: GST_PLUGIN_SCANNER_1_0=gst-plugin-scanner MALLOC_PERTURB_=59 GST_REGISTRY=/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states.registry GST_STATE_IGNORE_ELEMENTS='
' GSETTINGS_BACKEND=memory GST_PLUGIN_SYSTEM_PATH_1_0='' GST_PLUGIN_PATH_1_0=/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir:/usr/lib/x86_64-linux-gnu/gstreamer-1.0:/usr/lib/x86_64-linux-gnu/gstreamer-1.0 CK_DEFAULT_TIMEOUT=20 GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base:gst-plugin-pylon@/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir /media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states
----------------------------------- stdout -----------------------------------
Running suite(s): states_good
Unexpected critical/warning: When installing property: type '_Basler_a2A1920_51gcPRO_00305336D3E2_169_254_127_34_3956' already has a property named 'BslColorSpace'
Stack trace:
/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x6bb9c) [0x7ff9e0fe5b9c]
/lib/x86_64-linux-gnu/libgstcheck-1.0.so.0(+0xbf13) [0x7ff9e0dd7f13]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_logv+0x21c) [0x7ff9e0e4a55c]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_log+0x93) [0x7ff9e0e4a743]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x19deb) [0x7ff9e0f33deb]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(_ZN21GstPylonFeatureWalker18install_propertiesEP13_GObjectClassRN23GenApi_3_1_Basler_pylon8INodeMapEPKc+0x592) [0x7ff9e09b87b2]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x214f2) [0x7ff9e09aa4f2]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_type_class_ref+0x471) [0x7ff9e0f531d1]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new_with_properties+0x368) [0x7ff9e0f35c38]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new+0xc1) [0x7ff9e0f366f1]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x261cc) [0x7ff9e09af1cc]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x26577) [0x7ff9e09af577]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x2738d) [0x7ff9e09b038d]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x1ffdf) [0x7ff9e09a8fdf]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_type_class_ref+0x471) [0x7ff9e0f531d1]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new_valist+0x681) [0x7ff9e0f365e1]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new+0x9d) [0x7ff9e0f366cd]
/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(gst_element_factory_create+0xa1) [0x7ff9e0fde1f1]
/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(gst_element_factory_make+0x5e) [0x7ff9e0fde44e]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states(+0x2cc8) [0x5565778b2cc8]
/lib/x86_64-linux-gnu/libgstcheck-1.0.so.0(srunner_run_tagged+0x4c5) [0x7ff9e0de5275]
/lib/x86_64-linux-gnu/libgstcheck-1.0.so.0(gst_check_run_suite+0x63) [0x7ff9e0dd9553]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states(+0x2597) [0x5565778b2597]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7ff9e0bfe083]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states(+0x25ce) [0x5565778b25ce]
Unexpected critical/warning: When installing property: type '_Basler_a2A1920_51gcPRO_00305336D3E5_169_254_66_96_3956' already has a property named 'BslColorSpace'
Stack trace:
/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(+0x6bb9c) [0x7ff9e0fe5b9c]
/lib/x86_64-linux-gnu/libgstcheck-1.0.so.0(+0xbf13) [0x7ff9e0dd7f13]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_logv+0x21c) [0x7ff9e0e4a55c]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_log+0x93) [0x7ff9e0e4a743]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x19deb) [0x7ff9e0f33deb]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(_ZN21GstPylonFeatureWalker18install_propertiesEP13_GObjectClassRN23GenApi_3_1_Basler_pylon8INodeMapEPKc+0x592) [0x7ff9e09b87b2]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x214f2) [0x7ff9e09aa4f2]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_type_class_ref+0x471) [0x7ff9e0f531d1]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new_with_properties+0x368) [0x7ff9e0f35c38]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new+0xc1) [0x7ff9e0f366f1]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x261cc) [0x7ff9e09af1cc]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x26577) [0x7ff9e09af577]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x2738d) [0x7ff9e09b038d]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/ext/pylon/libgstpylon.so(+0x1ffdf) [0x7ff9e09a8fdf]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_type_class_ref+0x471) [0x7ff9e0f531d1]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new_valist+0x681) [0x7ff9e0f365e1]
/lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_object_new+0x9d) [0x7ff9e0f366cd]
/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(gst_element_factory_create+0xa1) [0x7ff9e0fde1f1]
/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0(gst_element_factory_make+0x5e) [0x7ff9e0fde44e]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states(+0x2a38) [0x5565778b2a38]
/lib/x86_64-linux-gnu/libgstcheck-1.0.so.0(srunner_run_tagged+0x4c5) [0x7ff9e0de5275]
/lib/x86_64-linux-gnu/libgstcheck-1.0.so.0(gst_check_run_suite+0x63) [0x7ff9e0dd9553]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states(+0x2597) [0x5565778b2597]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7ff9e0bfe083]
/media/andrea/Disk_21/Desktop/ARES/gst-plugin-pylon/builddir/tests/check/generic_states(+0x25ce) [0x5565778b25ce]
33%: Checks: 3, Failures: 2, Errors: 0
gstcheck.c:286:F:general:test_state_changes_up_and_down_seq:0: Unexpected critical/warning: When installing property: type '_Basler_a2A1920_51gcPRO_00305336D3E2_169_254_127_34_3956' already has a property named 'BslColorSpace'
gstcheck.c:286:F:general:test_state_changes_up_seq:0: Unexpected critical/warning: When installing property: type '_Basler_a2A1920_51gcPRO_00305336D3E5_169_254_66_96_3956' already has a property named 'BslColorSpace'
Check suite states ran in 5.595s (tests failed: 2)
----------------------------------- stderr -----------------------------------
(gst-plugin-scanner:128750): GLib-GObject-WARNING **: 17:09:43.454: When installing property: type '_Basler_a2A1920_51gcPRO_00305336D3E2_169_254_127_34_3956' already has a property named 'BslColorSpace'
Summary of Failures:
1/1 generic_states FAIL 10.60s exit status 2
Ok: 0
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Previously I successfully installed the gst-plugin-pylon onto BananaPi but due to no available hw encoder I need to switch to OrangePi5.
However the same install could not work. Not sure what kind of problem it is? After gst-launch-1.0 pylonsrc ! videoconvert ! autovideosink, it quickly quit with below error message:
Any idea what might be the cause? OS is Ubuntu Jammy
Are calls to gst_child_proxy_set
and gst_child_proxy_get
asynchronous? That is, is it possible to call set and then get and have the call to get return the unchanged value from before the set?
For example, is it appropriate to do this in a fast loop?
gst_child_proxy_set(
pylonsrc_child_proxy,
"cam::ExposureAuto", exposure_auto,
"cam::ExposureTimeRaw", exposure_time_raw,
"cam::GainAuto", gain_auto,
"cam::GainRaw", gain_raw,
NULL);
gst_child_proxy_get(
pylonsrc_child_proxy,
"cam::ExposureAuto", &exposure_auto,
"cam::ExposureTimeRaw", &exposure_time_raw,
"cam::GainAuto", &gain_auto,
"cam::GainRaw", &gain_raw,
NULL);
Don't seem to be able to change ROI with gst-launch-1.0, can get desired width and height with the caps filter, and other features with UserSet or pfs files, but not the OffsetY or OffsetX, am I missing something obvious?
This is not an issue with this project, but I am hoping that I can ask for help from your expertise in combining Pylon and GStreamer.
I am trying to find the cause of an issue that I am seeing in my attempt to use Pylon as an appsrc in GStreamer. This occurs when using a Basler camera model acA640-90gm, but not an acA720-290gm. I suspect that it is happening in the conversion of the Pylon grabbed images to GStreamer buffers, since if I save one of the grabbed images to a png file before it is converted, then it looks fine. The issue is that the video from GStreamer has a diagonal line that the image seems to be split at. I have attached a screenshot and a copy of the code. The hardcoded image width and height are changed to match that of the camera being tested. For the acA640-90gm it is 659 x 494. For the acA720-290gm it is 720 x 540.
#include <mutex>
#include <thread>
#include <unistd.h>
extern "C" {
#include <gst/gst.h>
#include <gst/video/video-frame.h>
}
#include <pylon/PylonIncludes.h>
std::mutex image_mutex;
Pylon::CPylonImage pylon_image;
struct gstreamer_data {
guint source_id;
GstElement* appsrc;
GstElement* capsfilter;
GstElement* queue;
GstElement* videoconvert;
GstElement* autovideosink;
GstElement* pipeline;
GMainLoop* main_loop;
};
static gboolean push_data(gstreamer_data* data) {
if (image_mutex.try_lock()) {
if (pylon_image.IsValid()) {
GstBuffer* buffer = gst_buffer_new_wrapped_full(
(GstMemoryFlags) GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS,
(gpointer) pylon_image.GetBuffer(),
pylon_image.GetImageSize(),
0,
pylon_image.GetImageSize(),
NULL,
NULL
);
gst_buffer_add_video_meta(
buffer,
GST_VIDEO_FRAME_FLAG_NONE,
GST_VIDEO_FORMAT_GRAY8,
pylon_image.GetWidth(),
pylon_image.GetHeight()
);
GstFlowReturn ret;
g_signal_emit_by_name(data->appsrc, "push-buffer", buffer, &ret);
if (ret != GST_FLOW_OK) {
g_printerr("Error\n");
gst_buffer_unref(buffer);
pylon_image.Release();
image_mutex.unlock();
return false;
}
gst_buffer_unref(buffer);
pylon_image.Release();
}
image_mutex.unlock();
}
usleep(1);
return true;
}
static void start_feed(GstElement* source, guint size, gstreamer_data* data) {
(void) source;
(void) size;
if (data->source_id == 0) {
//g_print("Start feeding\n");
data->source_id = g_idle_add((GSourceFunc) push_data, data);
}
}
static void stop_feed(GstElement* source, gstreamer_data* data) {
(void) source;
if (data->source_id != 0) {
//g_print("Stop feeding\n");
g_source_remove(data->source_id);
data->source_id = 0;
}
}
gboolean bus_callback(GstBus* bus, GstMessage* message, gpointer user_data) {
(void) bus;
GMainLoop* main_loop = ((gstreamer_data*) user_data)->main_loop;
switch (GST_MESSAGE_TYPE(message)) {
case GST_MESSAGE_EOS: {
g_print("End of stream\n");
g_main_loop_quit(main_loop);
break;
}
case GST_MESSAGE_ERROR: {
GError *error;
gchar *debug;
gst_message_parse_error(message, &error, &debug);
g_printerr("Error received from element %s: %s\n", GST_OBJECT_NAME(message->src), error->message);
g_error_free(error);
g_printerr("Debugging information: %s\n", debug ? debug : "none");
g_free(debug);
g_main_loop_quit(main_loop);
break;
}
case GST_MESSAGE_WARNING: {
GError *error;
gchar *debug;
gst_message_parse_warning(message, &error, &debug);
g_printerr("Warning received from element %s: %s\n", GST_OBJECT_NAME(message->src), error->message);
g_error_free(error);
g_printerr("Debugging information: %s\n", debug ? debug : "none");
g_free(debug);
break;
}
default:
//g_print("%s %s\n", GST_MESSAGE_SRC_NAME(message), GST_MESSAGE_TYPE_NAME(message));
break;
}
return TRUE;
}
static GstFlowReturn overrun_callback(GstElement* queue, gpointer udata) {
g_printerr("%s overrun\n", queue->object.name);
return GST_FLOW_OK;
}
void process_pylon() {
try {
Pylon::CInstantCamera camera(Pylon::CTlFactory::GetInstance().CreateFirstDevice());
GenApi::INodeMap& node_map = camera.GetNodeMap();
camera.Open();
GenApi::CIntegerPtr width = node_map.GetNode("Width");
std::cout << "Width: " << width->GetValue() << std::endl;
GenApi::CIntegerPtr height = node_map.GetNode("Height");
std::cout << "Height: " << height->GetValue() << std::endl;
camera.StartGrabbing(Pylon::GrabStrategy_LatestImageOnly);
Pylon::CGrabResultPtr ptrGrabResult;
int loop = 0;
while (camera.IsGrabbing()) {
loop++;
camera.RetrieveResult(5000, ptrGrabResult, Pylon::TimeoutHandling_ThrowException);
if (ptrGrabResult->GrabSucceeded()) {
if (image_mutex.try_lock()) {
pylon_image.AttachGrabResultBuffer(ptrGrabResult);
if (loop == 20) {
pylon_image.Save(Pylon::EImageFileFormat::ImageFileFormat_Png, "test.png");
}
image_mutex.unlock();
}
}
else {
std::cout << "Error: " << std::hex << ptrGrabResult->GetErrorCode() << std::dec << " " << ptrGrabResult->GetErrorDescription() << std::endl;
}
}
}
catch (const Pylon::GenericException& e) {
std::cerr << "An exception occurred." << std::endl << e.GetDescription() << std::endl;
exit(-1);
}
}
int main(int argc, char *argv[]) {
gst_init(NULL, NULL);
Pylon::PylonAutoInitTerm autoInitTerm;
gstreamer_data data;
data.appsrc = gst_element_factory_make("appsrc", "appsrc");
if (!data.appsrc) {
g_printerr("Failed to create element 'appsrc'\n");
return -1;
}
data.capsfilter = gst_element_factory_make("capsfilter", "capsfilter");
if (!data.capsfilter) {
g_printerr("Failed to create element 'capsfilter'\n");
return -1;
}
data.queue = gst_element_factory_make("queue", "queue");
if (!data.queue) {
g_printerr("Failed to create element 'appsink_queue'\n");
return -1;
}
data.videoconvert = gst_element_factory_make("videoconvert", "videoconvert");
if (!data.videoconvert) {
g_printerr("Failed to create element 'videoconvert'\n");
return -1;
}
data.autovideosink = gst_element_factory_make("autovideosink", "autovideosink");
if (!data.autovideosink) {
g_printerr("Failed to create element 'autovideosink'\n");
return -1;
}
// This had to be explicitly set in order to get the 'start_feed' and 'stop_feed' functions to be called more than once.
data.source_id = 0;
g_object_set(G_OBJECT(data.appsrc),
"stream-type", 0, // GST_APP_STREAM_TYPE_STREAM,
"format", GST_FORMAT_TIME,
"is-live", TRUE,
"do-timestamp", TRUE, // needed for the pipeline to run
NULL
);
g_signal_connect(data.appsrc, "need-data", G_CALLBACK(start_feed), &data);
g_signal_connect(data.appsrc, "enough-data", G_CALLBACK(stop_feed), &data);
g_object_set(G_OBJECT(data.capsfilter),
"caps",
gst_caps_new_simple("video/x-raw",
"width", G_TYPE_INT, 659,
"height", G_TYPE_INT, 494,
"framerate", GST_TYPE_FRACTION, 0, 1,
"format", G_TYPE_STRING, "GRAY8",
NULL
),
NULL
);
g_signal_connect(data.queue, "overrun", G_CALLBACK(overrun_callback), NULL);
data.pipeline = gst_pipeline_new("pipeline");
if (!data.pipeline) {
g_printerr("Failed to create pipeline\n");
return -1;
}
gst_bin_add_many(
GST_BIN(data.pipeline),
data.appsrc,
data.capsfilter,
data.queue,
data.videoconvert,
data.autovideosink,
NULL
);
if (
gst_element_link_many(
data.appsrc,
data.capsfilter,
data.queue,
data.videoconvert,
data.autovideosink,
NULL
) != TRUE
)
{
g_printerr("Elements could not be linked.\n");
gst_object_unref(data.pipeline);
return -1;
}
data.main_loop = g_main_loop_new(NULL, FALSE);
GstBus* bus = gst_element_get_bus(data.pipeline);
guint bus_watch_id = gst_bus_add_watch(bus, (GstBusFunc) bus_callback, &data);
gst_object_unref(bus);
GstStateChangeReturn ret = gst_element_set_state(data.pipeline, GST_STATE_PLAYING);
if (ret == GST_STATE_CHANGE_FAILURE) {
g_printerr("Unable to set the pipeline to the playing state.\n");
gst_object_unref(data.pipeline);
g_source_remove(bus_watch_id);
g_main_loop_unref(data.main_loop);
return -1;
}
std::thread pylon_thread(process_pylon);
g_print("Starting main loop.\n");
g_main_loop_run(data.main_loop);
pylon_thread.join();
gst_element_set_state(data.pipeline, GST_STATE_NULL);
gst_object_unref(data.pipeline);
g_source_remove(bus_watch_id);
g_main_loop_unref(data.main_loop);
return 0;
}
hi,can you provide some examples to demonstrate how to use cmakelist to build c++projects?
Hi,
I have a camera (acA4024-29uc) and load a specific user-set to have a fixed OffsetX/OffsetY
.
Right after the camera I have a capsfilter in order to keep the image width/height as desired.
However, the OffsetX/OffsetY
are always set to zero. Is there a way (perhaps a property in capsfilter) to keep the desired Offsets?
Btw. when commenting line 631/632
in gstpylon.cpp
the offsets are kept as desired.
Thanks a lot for your hints.
Hello, I am testing this plugin with CAMEMU in order to implement it on a OpenCV project on a Jetson Nano. However it seems that, despite running without issues on gst-launch-1.0, it crashes with OpenCV's VideoCap function.
Here is my code:
import cv2
import gi
from gi.repository import GObject, Gst
gi.require_version('Gst', '1.0')
def gstreamer_pipeline(
):
return (
"pylonsrc device-index=0 ! video/x-raw, format=(string)BGR ! queue ! videoconvert ! appsink"
)
def show_camera():
Gst.debug_set_active(True)
Gst.debug_set_default_threshold(3)
cap = cv2.VideoCapture(gstreamer_pipeline(), cv2.CAP_GSTREAMER)
if cap.isOpened():
window_handle = cv2.namedWindow("Camera", cv2.WINDOW_AUTOSIZE)
# Window
while cv2.getWindowProperty("Camera", 0) >= 0:
ret_val, img = cap.read()
cv2.imshow("Camera", img)
# This also acts as
keyCode = cv2.waitKey(30) & 0xFF
# Stop the program on the ESC key
if keyCode == 27:
break
cap.release()
cv2.destroyAllWindows()
else:
print("Unable to open camera")
if __name__ == "__main__":
show_camera()
Log:
0:00:00.000073647 GST_INIT gst.c:586:init_pre:[00m Initializing GStreamer Core Library version 1.14.5
0:00:00.000119950 GST_INIT gst.c:587:init_pre:[00m Using library installed in /usr/lib/aarch64-linux-gnu
0:00:00.000143180 GST_INIT gst.c:607:init_pre:[00m Linux user-desktop 4.9.253-tegra #1 SMP PREEMPT Tue May 17 09:07:08 UTC 2022 aarch64
0:00:00.000535949 GST_INIT gstmessage.c:127:_priv_gst_message_initialize:[00m init messages
0:00:00.001574563 GST_INIT gstcontext.c:84:_priv_gst_context_initialize:[00m init contexts
0:00:00.001914727 GST_PLUGIN_LOADING gstplugin.c:317:_priv_gst_plugin_initialize:[00m registering 0 static plugins
0:00:00.002161763 GST_PLUGIN_LOADING gstplugin.c:225:gst_plugin_register_static:[00m registered static plugin "staticelements"
0:00:00.002307391 GST_PLUGIN_LOADING gstplugin.c:227:gst_plugin_register_static:[00m added static plugin "staticelements", result: 1
0:00:00.002415622 GST_REGISTRY gstregistry.c:1727:ensure_current_registry:[00m reading registry cache: /home/user/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.047110229 GST_REGISTRY gstregistrybinary.c:621:priv_gst_registry_binary_read_cache:[00m loaded /home/user/.cache/gstreamer-1.0/registry.aarch64.bin in 0.044579 seconds
0:00:00.047274972 GST_REGISTRY gstregistry.c:1583:scan_and_update_registry:[00m Validating plugins from registry cache: /home/user/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.053070402 GST_REGISTRY gstregistry.c:1685:scan_and_update_registry:[00m Registry cache has not changed
0:00:00.053114830 GST_REGISTRY gstregistry.c:1762:ensure_current_registry:[00m registry reading and updating done, result = 1
0:00:00.053133997 GST_INIT gst.c:807:init_post:[00m GLib runtime version: 2.56.4
0:00:00.053152643 GST_INIT gst.c:809:init_post:[00m GLib headers version: 2.56.4
0:00:00.053164102 GST_INIT gst.c:810:init_post:[00m initialized GStreamer successfully
0:00:00.053258166 0x3f8b5ec0 [36mINFO [00m [00;01;37;ST_PIPELINE gstparse.c:337:gst_parse_launch_full:[00m parsing pipeline description 'pylonsrc device-index=0 ! video/x-raw, format=(string)BGR ! queue ! videoconvert ! appsink'
0:00:00.077546890 GST_PLUGIN_LOADING gstplugin.c:901:_priv_gst_plugin_load_file_for_registry:[00m plugin "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstpylon.so" loaded
0:00:00.077598453 0x3f8b5ec0 [36mINFO [00m [00;01;37;GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create:[00m creating element "pylonsrc"
0:00:00.471130622 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0000)": Unsupported node of type 4
0:00:00.471285625 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0000)": Unsupported node of type 4
0:00:00.517494273 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0000)": Unsupported node of type 4
0:00:00.635336201 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0000)": Unsupported node of type 4
0:00:00.764184811 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0001)": Unsupported node of type 4
0:00:00.764341793 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0001)": Unsupported node of type 4
0:00:00.811331238 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0001)": Unsupported node of type 4
0:00:00.933181789 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0001)": Unsupported node of type 4
0:00:01.076381836 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0002)": Unsupported node of type 4
0:00:01.076515745 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0002)": Unsupported node of type 4
0:00:01.123542535 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0002)": Unsupported node of type 4
0:00:01.233425759 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0002)": Unsupported node of type 4
0:00:01.353073140 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0003)": Unsupported node of type 4
0:00:01.353204132 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0003)": Unsupported node of type 4
0:00:01.399135691 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0003)": Unsupported node of type 4
0:00:01.508430674 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0003)": Unsupported node of type 4
0:00:01.630270339 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0004)": Unsupported node of type 4
0:00:01.630403883 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0004)": Unsupported node of type 4
0:00:01.685627454 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0004)": Unsupported node of type 4
0:00:01.805417911 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0004)": Unsupported node of type 4
0:00:01.927240440 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0005)": Unsupported node of type 4
0:00:01.927373047 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0005)": Unsupported node of type 4
0:00:01.973030017 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0005)": Unsupported node of type 4
0:00:02.093665491 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0005)": Unsupported node of type 4
0:00:02.218282661 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0006)": Unsupported node of type 4
0:00:02.218422299 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0006)": Unsupported node of type 4
0:00:02.265819929 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0006)": Unsupported node of type 4
0:00:02.376767394 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0006)": Unsupported node of type 4
0:00:02.499345928 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0007)": Unsupported node of type 4
0:00:02.499479368 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0007)": Unsupported node of type 4
0:00:02.545168631 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0007)": Unsupported node of type 4
0:00:02.657721961 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0007)": Unsupported node of type 4
0:00:02.800772422 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0008)": Unsupported node of type 4
0:00:02.800927321 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0008)": Unsupported node of type 4
0:00:02.853843658 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0008)": Unsupported node of type 4
0:00:02.976338440 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0008)": Unsupported node of type 4
0:00:03.104715113 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center X" on device "Emulation (0815-0009)": Unsupported node of type 4
0:00:03.104882356 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Center Y" on device "Emulation (0815-0009)": Unsupported node of type 4
0:00:03.151738986 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Generate Software Trigger" on device "Emulation (0815-0009)": Unsupported node of type 4
0:00:03.261083293 pylonsrc gstpylonfeaturewalker.cpp:262:install_properties:[00m Unable to install property "Force Failed Buffer" on device "Emulation (0815-0009)": Unsupported node of type 4
0:00:03.735366479 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstBaseSrc@0x3fd53710>[00m adding pad 'src'
0:00:03.737338134 GST_PLUGIN_LOADING gstplugin.c:901:_priv_gst_plugin_load_file_for_registry:[00m plugin "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstcoreelements.so" loaded
0:00:03.737386312 GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create:[00m creating element "queue"
0:00:03.737663609 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstQueue@0x3fc24060>[00m adding pad 'sink'
0:00:03.737726892 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstQueue@0x3fc24060>[00m adding pad 'src'
0:00:03.738842904 GST_PLUGIN_LOADING gstplugin.c:901:_priv_gst_plugin_load_file_for_registry:[00m plugin "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstvideoconvert.so" loaded
0:00:03.738990771 GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create:[00m creating element "videoconvert"
0:00:03.739682452 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstBaseTransform@0x3fb905d0>[00m adding pad 'sink'
0:00:03.739832768 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstBaseTransform@0x3fb905d0>[00m adding pad 'src'
0:00:03.740798725 GST_PLUGIN_LOADING gstplugin.c:901:_priv_gst_plugin_load_file_for_registry:[00m plugin "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstapp.so" loaded
0:00:03.740928884 GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create:[00m creating element "appsink"
0:00:03.741390404 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstBaseSink@0x3fd61520>[00m adding pad 'sink'
0:00:03.741576032 GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create:[00m creating element "pipeline"
0:00:03.741888174 GST_PIPELINE grammar.y:652:gst_parse_perform_link:[00m linking some pad of GstPylonSrc named pylonsrc0 to some pad of GstQueue named queue0 (0/0) with caps "video/x-raw, format=(string)BGR"
0:00:03.742001718 GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create:[00m creating element "capsfilter"
0:00:03.742362663 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstBaseTransform@0x3fb8a280>[00m adding pad 'sink'
0:00:03.742515791 GST_ELEMENT_PADS gstelement.c:670:gst_element_add_pad:<GstBaseTransform@0x3fb8a280>[00m adding pad 'src'
0:00:03.742640742GST_STATES gstbin.c:2089:gst_bin_get_state_func:<pipeline0>[00m getting state
0:00:03.742775067GST_STATES gstelement.c:2676:gst_element_continue_state:<capsfilter0>[00m completed state change to NULL
0:00:03.742878923 GST_EVENT gstevent.c:1517:gst_event_new_reconfigure:[00m creating reconfigure event
0:00:03.742990384 GST_ELEMENT_PADS gstutils.c:1774:gst_element_link_pads_full:[00m trying to link element pylonsrc0:(any) to element capsfilter0:sink
0:00:03.743067156 GST_ELEMENT_PADS gstelement.c:920:gst_element_get_static_pad:[00m found pad capsfilter0:sink
0:00:03.743137054 GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting:[00m pylonsrc0 and capsfilter0 in same bin, no need for ghost pads
0:00:03.743242108 GST_PADS gstpad.c:2378:gst_pad_link_prepare:[00m trying to link pylonsrc0:src and capsfilter0:sink
0:00:03.743367267 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.743471383 GST_PADS gstpad.c:4232:gst_pad_peer_query:<capsfilter0:src>[00m pad has no peer
0:00:03.743580552 GST_PADS gstpad.c:2586:gst_pad_link_full:[00m linked pylonsrc0:src and capsfilter0:sink, successful
0:00:03.743656804 GST_EVENT gstevent.c:1517:gst_event_new_reconfigure:[00m creating reconfigure event
0:00:03.743728732 GST_EVENT gstpad.c:5808:gst_pad_send_event_unchecked:<pylonsrc0:src>[00m Received event on flushing pad. Discarding
0:00:03.743826599 GST_ELEMENT_PADS gstutils.c:1774:gst_element_link_pads_full:[00m trying to link element capsfilter0:src to element queue0:(any)
0:00:03.743909257 GST_ELEMENT_PADS gstelement.c:920:gst_element_get_static_pad:[00m found pad capsfilter0:src
0:00:03.744014415 GST_PADS gstutils.c:1035:gst_pad_check_link:[00m trying to link capsfilter0:src and queue0:sink
0:00:03.744134209 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.744255566 GST_PADS gstpad.c:4232:gst_pad_peer_query:<queue0:src>[00m pad has no peer
0:00:03.744348328 GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting:[00m capsfilter0 and queue0 in same bin, no need for ghost pads
0:00:03.744432809 GST_PADS gstpad.c:2378:gst_pad_link_prepare:[00m trying to link capsfilter0:src and queue0:sink
0:00:03.744539582 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.744661460 GST_PADS gstpad.c:4232:gst_pad_peer_query:<queue0:src>[00m pad has no peer
0:00:03.744760524 GST_PADS gstpad.c:2586:gst_pad_link_full:[00m linked capsfilter0:src and queue0:sink, successful
0:00:03.744826515 GST_EVENT gstevent.c:1517:gst_event_new_reconfigure:[00m creating reconfigure event
0:00:03.744900215 GST_EVENT gstpad.c:5808:gst_pad_send_event_unchecked:<capsfilter0:src>[00m Received event on flushing pad. Discarding
0:00:03.745024280 GST_PIPELINE grammar.y:652:gst_parse_perform_link:[00m linking some pad of GstQueue named queue0 to some pad of GstVideoConvert named videoconvert0 (0/0) with caps "(NULL)"
0:00:03.745105896 GST_ELEMENT_PADS gstutils.c:1774:gst_element_link_pads_full:[00m trying to link element queue0:(any) to element videoconvert0:(any)
0:00:03.745187668 GST_PADS gstutils.c:1035:gst_pad_check_link:[00m trying to link queue0:src and videoconvert0:sink
0:00:03.745308921 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.745428871 GST_PADS gstpad.c:4232:gst_pad_peer_query:<videoconvert0:src>[00m pad has no peer
0:00:03.747912255 GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting:[00m queue0 and videoconvert0 in same bin, no need for ghost pads
0:00:03.748138301 GST_PADS gstpad.c:2378:gst_pad_link_prepare:[00m trying to link queue0:src and videoconvert0:sink
0:00:03.748295075 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.748429713 GST_PADS gstpad.c:4232:gst_pad_peer_query:<videoconvert0:src>[00m pad has no peer
0:00:03.750772313 GST_PADS gstpad.c:2586:gst_pad_link_full:[00m linked queue0:src and videoconvert0:sink, successful
0:00:03.750897472 GST_EVENT gstevent.c:1517:gst_event_new_reconfigure:[00m creating reconfigure event
0:00:03.750974869 GST_EVENT gstpad.c:5808:gst_pad_send_event_unchecked:<queue0:src>[00m Received event on flushing pad. Discarding
0:00:03.751126122 GST_PIPELINE grammar.y:652:gst_parse_perform_link:[00m linking some pad of GstVideoConvert named videoconvert0 to some pad of GstAppSink named appsink0 (0/0) with caps "(NULL)"
0:00:03.751210187 GST_ELEMENT_PADS gstutils.c:1774:gst_element_link_pads_full:[00m trying to link element videoconvert0:(any) to element appsink0:(any)
0:00:03.751294824 GST_PADS gstutils.c:1035:gst_pad_check_link:[00m trying to link videoconvert0:src and appsink0:sink
0:00:03.751428264 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.751805980 GST_PADS gstutils.c:1588:prepare_link_maybe_ghosting:[00m videoconvert0 and appsink0 in same bin, no need for ghost pads
0:00:03.751933222 GST_PADS gstpad.c:2378:gst_pad_link_prepare:[00m trying to link videoconvert0:src and appsink0:sink
0:00:03.752064683 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.752565370 GST_PADS gstpad.c:2586:gst_pad_link_full:[00m linked videoconvert0:src and appsink0:sink, successful
0:00:03.752711155 GST_EVENT gstevent.c:1517:gst_event_new_reconfigure:[00m creating reconfigure event
0:00:03.752825584 GST_EVENT gstpad.c:5808:gst_pad_send_event_unchecked:<videoconvert0:src>[00m Received event on flushing pad. Discarding
0:00:03.753024807 GST_ELEMENT_PADS gstelement.c:920:gst_element_get_static_pad:[00m found pad appsink0:sink
0:00:03.753226790 pylonsrc gstpylonsrc.c:441:gst_pylon_src_get_caps:<pylonsrc0>[00m Camera not open yet, returning src template caps video/x-raw, format=(string){ GRAY8, RGB, BGR, YUY2, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ rggb, bggr, gbgr, grgb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:03.753725498GST_STATES gstbin.c:2506:gst_bin_element_set_state:<appsink0>[00m current NULL pending VOID_PENDING, desired next READY
0:00:03.753842376GST_STATES gstelement.c:2676:gst_element_continue_state:<appsink0>[00m completed state change to READY
0:00:03.753921023GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<appsink0>[00m notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.754027536GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'appsink0' changed state to 2(READY) successfully
0:00:03.754126548GST_STATES gstbin.c:2506:gst_bin_element_set_state:<videoconvert0>[00m current NULL pending VOID_PENDING, desired next READY
0:00:03.754238946GST_STATES gstelement.c:2676:gst_element_continue_state:<videoconvert0>[00m completed state change to READY
0:00:03.754327958GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<videoconvert0>[00m notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.754427075GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'videoconvert0' changed state to 2(READY) successfully
0:00:03.754521816GST_STATES gstbin.c:2506:gst_bin_element_set_state:<queue0>[00m current NULL pending VOID_PENDING, desired next READY
0:00:03.754601037GST_STATES gstelement.c:2676:gst_element_continue_state:<queue0>[00m completed state change to READY
0:00:03.754669580GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<queue0>[00m notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.754759321GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'queue0' changed state to 2(READY) successfully
0:00:03.754846094GST_STATES gstbin.c:2506:gst_bin_element_set_state:<capsfilter0>[00m current NULL pending VOID_PENDING, desired next READY
0:00:03.754920679GST_STATES gstelement.c:2676:gst_element_continue_state:<capsfilter0>[00m completed state change to READY
0:00:03.754989430GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<capsfilter0>[00m notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.755131100GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'capsfilter0' changed state to 2(READY) successfully
0:00:03.755227352GST_STATES gstbin.c:2506:gst_bin_element_set_state:<pylonsrc0>[00m current NULL pending VOID_PENDING, desired next READY
0:00:03.755303499GST_STATES gstelement.c:2676:gst_element_continue_state:<pylonsrc0>[00m completed state change to READY
0:00:03.755371052GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<pylonsrc0>[00m notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.755455742GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'pylonsrc0' changed state to 2(READY) successfully
0:00:03.755533920GST_STATES gstelement.c:2651:gst_element_continue_state:<pipeline0>[00m committing state from NULL to READY, pending PLAYING, next PAUSED
0:00:03.755601890GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<pipeline0>[00m notifying about state-changed NULL to READY (PLAYING pending)
0:00:03.755679913GST_STATES gstelement.c:2658:gst_element_continue_state:<pipeline0>[00m continue state change READY to PAUSED, final PLAYING
0:00:03.755777102GST_STATES gstbin.c:2506:gst_bin_element_set_state:<appsink0>[00m current READY pending VOID_PENDING, desired next PAUSED
0:00:03.755873250GST_STATES gstbin.c:2960:gst_bin_change_state_func:<pipeline0>[00m child 'appsink0' is changing state asynchronously to PAUSED
0:00:03.755951377GST_STATES gstbin.c:2506:gst_bin_element_set_state:<videoconvert0>[00m current READY pending VOID_PENDING, desired next PAUSED
0:00:03.756034295GST_STATES gstelement.c:2676:gst_element_continue_state:<videoconvert0>[00m completed state change to PAUSED
0:00:03.756102630GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<videoconvert0>[00m notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:03.756182996GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'videoconvert0' changed state to 3(PAUSED) successfully
0:00:03.756267373GST_STATES gstbin.c:2506:gst_bin_element_set_state:<queue0>[00m current READY pending VOID_PENDING, desired next PAUSED
0:00:03.756382531 task gsttask.c:457:gst_task_set_lock:[00m setting stream lock 0x3fb7a5f0 on task 0x3fc1f050
0:00:03.756459408 GST_PADS gstpad.c:6154:gst_pad_start_task:<queue0:src>[00m created task 0x3fc1f050
0:00:03.756635714GST_STATES gstelement.c:2676:gst_element_continue_state:<queue0>[00m completed state change to PAUSED
0:00:03.756724101GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<queue0>[00m notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:03.756813998GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'queue0' changed state to 3(PAUSED) successfully
0:00:03.756932230GST_STATES gstbin.c:2506:gst_bin_element_set_state:<capsfilter0>[00m current READY pending VOID_PENDING, desired next PAUSED
0:00:03.757035982GST_STATES gstelement.c:2676:gst_element_continue_state:<capsfilter0>[00m completed state change to PAUSED
0:00:03.757113536GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<capsfilter0>[00m notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:03.757201454GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'capsfilter0' changed state to 3(PAUSED) successfully
0:00:03.757283748GST_STATES gstbin.c:2506:gst_bin_element_set_state:<pylonsrc0>[00m current READY pending VOID_PENDING, desired next PAUSED
0:00:03.757379270 pylonsrc gstpylonsrc.c:664:gst_pylon_src_start:<pylonsrc0>[00m Attempting to create camera device with the following configuration:
name: (null)
serial number: (null)
index: 0
user set: (null)
PFS filepath: (null). If defined, the PFS file will override the user set configuration.
0:00:04.030558211 basesrc gstbasesrc.c:1358:gst_base_src_do_seek:<pylonsrc0>[00m seeking: time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:04.030633785 task gsttask.c:457:gst_task_set_lock:[00m setting stream lock 0x3fb7a150 on task 0x3fc1f170
0:00:04.030651963 GST_PADS gstpad.c:6154:gst_pad_start_task:<pylonsrc0:src>[00m created task 0x3fc1f170
0:00:04.030838321GST_STATES gstelement.c:2676:gst_element_continue_state:<pylonsrc0>[00m completed state change to PAUSED
0:00:04.030902228GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<pylonsrc0>[00m notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:04.030949729GST_STATES gstbin.c:2997:gst_bin_change_state_func:<pipeline0>[00m child 'pylonsrc0' changed state to 3(PAUSED) successfully without preroll
0:00:04.030987959GST_STATES gstelement.c:2651:gst_element_continue_state:<pipeline0>[00m committing state from READY to PAUSED, pending PLAYING, next PLAYING
0:00:04.031007699GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<pipeline0>[00m notifying about state-changed READY to PAUSED (PLAYING pending)
0:00:04.031017231 ST_ELEMENT_PADS gstelement.c:917:gst_element_get_static_pad:[00m no such pad 'sink' in element "pylonsrc0"
0:00:04.031086607GST_STATES gstelement.c:2658:gst_element_continue_state:<pipeline0>[00m continue state change PAUSED to PLAYING, final PLAYING
0:00:04.031111712 default gstutils.c:3981:gst_pad_create_stream_id_internal:<pylonsrc0:src>[00m Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:04.031260621 GST_EVENT gstevent.c:1388:gst_event_new_latency:[00m creating latency event 0:00:00.000000000
0:00:04.031382915 in gstbin.c:2783:gst_bin_do_latency_func:<pipeline0>[00m configured latency of 0:00:00.000000000
0:00:04.031436510GST_STATES gstbin.c:2506:gst_bin_element_set_state:<appsink0>[00m current READY pending PAUSED, desired next PLAYING
0:00:04.031455521GST_STATES gstbin.c:2960:gst_bin_change_state_func:<pipeline0>[00m child 'appsink0' is changing state asynchronously to PLAYING
0:00:04.031479323GST_STATES gstbin.c:2506:gst_bin_element_set_state:<videoconvert0>[00m current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:04.031498074GST_STATES gstelement.c:2676:gst_element_continue_state:<videoconvert0>[00m completed state change to PLAYING
0:00:04.031514428GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<videoconvert0>[00m notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:04.031543387GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'videoconvert0' changed state to 4(PLAYING) successfully
0:00:04.031982875GST_STATES gstbin.c:2506:gst_bin_element_set_state:<queue0>[00m current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:04.032014438GST_STATES gstelement.c:2676:gst_element_continue_state:<queue0>[00m completed state change to PLAYING
0:00:04.032031314GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<queue0>[00m notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:04.032077356 src gstpylonsrc.c:462:gst_pylon_src_get_caps:<pylonsrc0>[00m Returning caps video/x-raw, format=(string){ GRAY8, BGR, RGB }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], framerate=(fraction)[ 1/100, 10000/1 ]; video/x-bayer, format=(string){ grbg, rggb, gbrg, bggr }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], framerate=(fraction)[ 1/100, 10000/1 ]
0:00:04.032077929GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'queue0' changed state to 4(PLAYING) successfully
0:00:04.032214599GST_STATES gstbin.c:2506:gst_bin_element_set_state:<capsfilter0>[00m current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:04.032236839GST_STATES gstelement.c:2676:gst_element_continue_state:<capsfilter0>[00m completed state change to PLAYING
0:00:04.032253558GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<capsfilter0>[00m notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:04.032280069GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'capsfilter0' changed state to 4(PLAYING) successfully
0:00:04.032319913GST_STATES gstelement.c:2676:gst_element_continue_state:<pylonsrc0>[00m completed state change to PLAYING
0:00:04.032336737GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<pylonsrc0>[00m notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:04.032361529GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0>[00m child 'pylonsrc0' changed state to 4(PLAYING) successfully
0:00:04.032397259GST_STATES gstbin.c:2089:gst_bin_get_state_func:<pipeline0>[00m getting state
0:00:04.032412051GST_STATES gstelement.c:2392:gst_element_get_state_func:<pipeline0>[00m waiting for element to commit state
0:00:04.032754870 src gstpylonsrc.c:538:gst_pylon_src_fixate:<pylonsrc0>[00m Fixated caps to video/x-raw, format=(string)BGR, width=(int)1024, height=(int)1040, framerate=(fraction)30/1
0:00:04.032797267 src gstpylonsrc.c:558:gst_pylon_src_set_caps:<pylonsrc0>[00m Setting new caps: video/x-raw, format=(string)BGR, width=(int)1024, height=(int)1040, framerate=(fraction)30/1
0:00:04.035066063 GST_EVENT gstevent.c:814:gst_event_new_caps:[00m creating caps event video/x-raw, format=(string)BGR, width=(int)1024, height=(int)1040, framerate=(fraction)30/1
0:00:04.035648887 etransform gstbasetransform.c:1308:gst_base_transform_setcaps:<capsfilter0>[00m reuse caps
0:00:04.035917851 GST_EVENT gstevent.c:814:gst_event_new_caps:[00m creating caps event video/x-raw, format=(string)BGR, width=(int)1024, height=(int)1040, framerate=(fraction)30/1
0:00:04.036894538 basetransform gstbasetransform.c:1308:gst_base_transform_setcaps:<videoconvert0>[00m reuse caps
0:00:04.037425225 34mGST_EVENT gstevent.c:814:gst_event_new_caps:[00m creating caps event video/x-raw, format=(string)BGR, width=(int)1024, height=(int)1040, framerate=(fraction)30/1
0:00:04.037550176 34mGST_EVENT gstevent.c:814:gst_event_new_caps:[00m creating caps event video/x-raw, format=(string)BGR, width=(int)1024, height=(int)1040, framerate=(fraction)30/1
0:00:04.039300420 GST_ELEMENT_PADS gstpad.c:2134:gst_pad_unlink:[00m unlinking pylonsrc0:src(0x3fb7a0e0) and capsfilter0:sink(0x3fb7aec0)
0:00:04.039368702 GST_ELEMENT_PADS gstpad.c:2188:gst_pad_unlink:[00m unlinked pylonsrc0:src and capsfilter0:sink
0:00:04.039409224 GST_ELEMENT_PADS gstpad.c:2134:gst_pad_unlink:[00m unlinking capsfilter0:src(0x3fb7b110) and queue0:sink(0x3fb7a330)
0:00:04.039436152 GST_ELEMENT_PADS gstpad.c:2188:gst_pad_unlink:[00m unlinked capsfilter0:src and queue0:sink
0:00:04.039463444GST_PARENTAGE gstbin.c:1801:gst_bin_remove_func:<pipeline0>[00m removed child "capsfilter0"
0:00:04.039507768 44m GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<capsfilter0>[00m 0x3fb8a280 dispose
(python3:2713): GStreamer-CRITICAL **: 19:04:38.361:
Trying to dispose element capsfilter0, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
0:00:04.039614593 44m GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<capsfilter0>[00m 0x3fb8a280 finalize
0:00:04.039634437 44m GST_REFCOUNTING gstelement.c:3334:gst_element_finalize:<capsfilter0>[00m 0x3fb8a280 finalize parent
0:00:04.039672198 GST_ELEMENT_PADS gstpad.c:2134:gst_pad_unlink:[00m unlinking videoconvert0:src(0x3fb7aa20) and appsink0:sink(0x3fb7ac70)
0:00:04.039705845 GST_ELEMENT_PADS gstpad.c:2188:gst_pad_unlink:[00m unlinked videoconvert0:src and appsink0:sink
0:00:04.039735585GST_PARENTAGE gstbin.c:1801:gst_bin_remove_func:<pipeline0>[00m removed child "appsink0"
0:00:04.039776784 GST_ELEMENT_PADS gstpad.c:2134:gst_pad_unlink:[00m unlinking queue0:src(0x3fb7a580) and videoconvert0:sink(0x3fb7a7d0)
0:00:04.039815430 GST_ELEMENT_PADS gstpad.c:2188:gst_pad_unlink:[00m unlinked queue0:src and videoconvert0:sink
0:00:04.039853139GST_PARENTAGE gstbin.c:1801:gst_bin_remove_func:<pipeline0>[00m removed child "videoconvert0"
0:00:04.039886473GST_PARENTAGE gstbin.c:1801:gst_bin_remove_func:<pipeline0>[00m removed child "queue0"
0:00:04.039917672 44m GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<queue0>[00m 0x3fc24060 dispose
(python3:2713): GStreamer-CRITICAL **: 19:04:38.362:
Trying to dispose element queue0, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
0:00:04.039983975 44m GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<queue0>[00m 0x3fc24060 finalize
0:00:04.040000382 44m GST_REFCOUNTING gstelement.c:3334:gst_element_finalize:<queue0>[00m 0x3fc24060 finalize parent
0:00:04.040029914GST_PARENTAGE gstbin.c:1801:gst_bin_remove_func:<pipeline0>[00m removed child "pylonsrc0"
0:00:04.040055748 44m GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<pylonsrc0>[00m 0x3fd53710 dispose
(python3:2713): GStreamer-CRITICAL **: 19:04:38.362:
Trying to dispose element pylonsrc0, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
0:00:04.040107520 44m GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<pylonsrc0>[00m 0x3fd53710 finalize
0:00:04.040122155 44m GST_REFCOUNTING gstelement.c:3334:gst_element_finalize:<pylonsrc0>[00m 0x3fd53710 finalize parent
0:00:04.040138458 44m GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<pipeline0>[00m 0x3fb640e0 dispose
(python3:2713): GStreamer-CRITICAL **: 19:04:38.362:
Trying to dispose element pipeline0, but it is in PAUSED instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
0:00:04.040180281 44m GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<pipeline0>[00m 0x3fb640e0 finalize
0:00:04.040194813 44m GST_REFCOUNTING gstelement.c:3334:gst_element_finalize:<pipeline0>[00m 0x3fb640e0 finalize parent
[ WARN:[email protected]] global /media/user/f84bee7b-8e2b-492f-9cdc-15323efd340d/opencv/modules/videoio/src/cap_gstreamer.cpp (1356) open OpenCV | GStreamer warning: unable to start pipeline
0:00:04.040280127 44m GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<videoconvert0>[00m 0x3fb905d0 dispose
(python3:2713): GStreamer-CRITICAL **: 19:04:38.362:
Trying to dispose element videoconvert0, but it is in PLAYING instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
0:00:04.040344556 44m GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<videoconvert0>[00m 0x3fb905d0 finalize
0:00:04.040362264 44m GST_REFCOUNTING gstelement.c:3334:gst_element_finalize:<videoconvert0>[00m 0x3fb905d0 finalize parent
[ WARN:[email protected]] global /media/user/f84bee7b-8e2b-492f-9cdc-15323efd340d/opencv/modules/videoio/src/cap_gstreamer.cpp (862) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
0:00:04.040427578 44m GST_REFCOUNTING gstelement.c:3251:gst_element_dispose:<appsink0>[00m 0x3fd61520 dispose
(python3:2713): GStreamer-CRITICAL **: 19:04:38.362:
Trying to dispose element appsink0, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
0:00:04.040480652 44m GST_REFCOUNTING gstelement.c:3328:gst_element_finalize:<appsink0>[00m 0x3fd61520 finalize
0:00:04.040497111 44m GST_REFCOUNTING gstelement.c:3334:gst_element_finalize:<appsink0>[00m 0x3fd61520 finalize parent
If I attempt to read the cam::DeviceUserID
property, then I receive the error in the title. Is there another way to read this?
From the change log:
Remove fixed grab timeout of 5s. pylonsrc will now wait forever. If required timeout/underrun detection can be handled in the gstreamer pipeline. ( e.g. via queue underrun )
So there is no direct support for a grab-timeout
from the plugin at the moment. In future release, will the plugin support setting frame grab-timeout
? My use case is as follow:
grab-timeout
), if there is no trigger, then the plugin sends EOS.gst_element_set_state(pipeline, GST_STATE_NULL)
is not blocked waiting for grab-timeout
to timeout)How do I support this use case with "queue underrun" from gstreamer pipeline as suggested in the change log? The pylon API provides a WaitObject that is interruptible, why don't we use it instead?
At the moment, when I need to set the capabilities (pixel format, image width, image height and acquisition framerate), I need to use a capsfilter
. Even though this approach work fines, it's redundant when the provided .pfs
file has all of these configurations as well. I don't want to hard-code any of these values so the work-around is to read these values from the .pfs
file to set the capsfilter
.
Is there currently a way to make plugin uses the provided .pfs
file to set pixel format, image width, image height and acquisition framerate instead of having to use a capsfilter
?
I suggest that when user provide a .pfs
file, it's used to set the capabilities, however, if the user also provide a capsfilter
then the capsfilter
takes precedence over what is set in the .pfs
file.
Hi, I have USB cam acA5472-17uc on Jetson TX2 with Ubuntu 20.04. Works with pylon sw. Installed gst-plugin-pylon, gst-inspect shows plugin and camera info, but there is no device when running gst-device-monitor-1.0, also no pipe with pylonsrc woks. Am I missing something?
Camera: acA1440-220um
OS: Ubuntu 20.04
Interface: C++ library
Hi,
Not sure if this is the right place to post this question but I figured someone here could offer some assistance.
I am using the C++ API to grab frames from the said pylon camera in 1440x1080@200FPS.
When I go over the data, I see that there multiple cases where there are identical lines between concurrent frames.
I was wondering if it might be a wrong configuration on my part. Here is the init code I wrote:
void FrameCapture::start_pylon_camera(camera_params_t camera_params)
{
std::cout << "Using device " << m_camera.GetDeviceInfo().GetModelName() << std::endl;
m_camera.Open();
m_camera.MaxNumBuffer = 2000;
// Enable chunks in general.
if (!m_camera.ChunkModeActive.TrySetValue(true))
{
throw std::runtime_error("The camera doesn't support chunk features");
}
// Enable time stamp chunks.
m_camera.ChunkSelector.SetValue(Basler_UniversalCameraParams::ChunkSelector_Timestamp);
m_camera.ChunkEnable.SetValue(true);
GenApi::INodeMap[and] nodemap = m_camera.GetNodeMap();
Pylon::CIntegerParameter(nodemap, "Width").SetValue(m_camera_params.width);
Pylon::CIntegerParameter(nodemap, "Height").SetValue(m_camera_params.height);
Pylon::CEnumParameter(nodemap, "ExposureTimeMode").SetValue("Standard");
Pylon::CFloatParameter(nodemap, "ExposureTime").SetValue(camera_params.exposure);
Pylon::CFloatParameter(nodemap, "Gain").SetValue(camera_params.gain);
Pylon::CBooleanParameter(nodemap, "AcquisitionFrameRateEnable").SetValue(true);
Pylon::CFloatParameter(nodemap, "AcquisitionFrameRate").SetValue(camera_params.fps);
Pylon::CEnumParameter(nodemap, "AcquisitionMode").SetValue("Continuous");
Pylon::CEnumParameter(nodemap, "TriggerSelector").SetValue("FrameStart");
Pylon::CEnumParameter(nodemap, "TriggerMode").SetValue("Off");
Pylon::CEnumParameter(nodemap, "TriggerSource").SetValue("Line1");
Pylon::CCommandParameter(nodemap, "AcquisitionStart").Execute();
m_camera.StartGrabbing();
}
How soon until we are likely to get a release of gst-plugin-pylon for kirkstone Yocto?
Thanks
Hello,
I am trying to setup the Python code for the Basler to run the Gstreamer pipeline using Deepstream 6.1.
When I execute the Pipeline, it runs without issue:
gst-launch-1.0 pylonsrc capture-error=skip cam::ExposureTime=20000 cam::Gain=10.3 ! "video/x-raw(memory:NVMM),width=640,height=480,framerate=10/1, format=GRAY8" ! videoconvert ! nvvideoconvert ! m.sink_0 nvstreammux name=m batch-size=1 width=640 height=480 ! nvinfer config-file-path=/home/arun/Documents/DeepStream-Yolo/config_infer_primary_yoloV5.txt ! nvdsosd ! nvegltransform ! nveglglessink sync=0
Now I am preparing the equivalent Python code to get the Bounding box coordinates from my Yolo detector via nvdsosd. below is my python script:
The camera class is attached please see camera.txt (its a python file)
import sys
import os
sys.path.append('../')
import gi
import configparser
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst
from gi.repository import GLib
from common.is_aarch_64 import is_aarch64
from common.bus_call import bus_call
from cameras import Cameras
def main():
# No matter where this program is called from, use local paths
local_path = os.path.dirname(os.path.abspath(__file__))
# imports important only to this function
import math
import pypylon
from pypylon import genicam
[cameras.txt](https://github.com/basler/gst-plugin-pylon/files/12096416/cameras.txt)
from pypylon import pylon
# Get the transport layer factory.
tlFactory = pylon.TlFactory.GetInstance()
# Get all attached devices and exit application if no device is found.
devices = tlFactory.EnumerateDevices()
print("Detected Basler Cameras")
print([device.GetFriendlyName() for device in devices])
print("Building list by serial number")
cameras = [device.GetSerialNumber() for device in devices]
Gst.init(None)
# Create gstreamer elements */
# Create Pipeline element that will form a connection of other elements
print("Creating Pipeline \n ")
pipeline = Gst.Pipeline()
if not pipeline:
sys.stderr.write(" Unable to create Pipeline \n")
print("Creating nvvidconv \n ")
nvvidconv = Gst.ElementFactory.make("nvvideoconvert", "convertor")
if not nvvidconv:
sys.stderr.write(" Unable to create nvvidconv \n")
print("Creating streamux \n ")
# Create nvstreammux instance to form batches from one or more sources.
streammux = Gst.ElementFactory.make("nvstreammux", "Stream-muxer")
if not streammux:
sys.stderr.write(" Unable to create NvStreamMux \n")
pipeline.add(streammux)
cams = Cameras(pipeline=pipeline, devices=cameras)
cams.attach_to(streammux)
print("Creating Pgie \n ")
pgie = Gst.ElementFactory.make("nvinfer", "primary-inference")
if not pgie:
sys.stderr.write(" Unable to create pgie \n")
pgie.set_property('config-file-path', "/home/arun/Documents/DeepStream-Yolo/config_infer_primary_yoloV5.txt")
print("Creating nvosd \n ")
nvosd = Gst.ElementFactory.make("nvdsosd", "onscreendisplay")
if not nvosd:
sys.stderr.write(" Unable to create nvosd \n")
if(is_aarch64()):
print("Creating transform \n ")
transform=Gst.ElementFactory.make("nvegltransform", "nvegl-transform")
if not transform:
sys.stderr.write(" Unable to create transform \n")
print("Creating EGLSink \n")
sink = Gst.ElementFactory.make("nveglglessink", "nvvideo-renderer")
if not sink:
sys.stderr.write(" Unable to create egl sink \n")
streammux.set_property('width', 640)
streammux.set_property('height', 480)
streammux.set_property('batch-size', 1)
streammux.set_property('batched-push-timeout', 4000000)
pipeline.add(nvvidconv)
print("Adding elements to Pipeline \n")
pipeline.add(pgie)
pipeline.add(nvosd)
if is_aarch64():
pipeline.add(transform)
pipeline.add(sink)
print("Linking elements in the Pipeline \n")
streammux.link(pgie)
pgie.link(nvosd)
if is_aarch64():
nvosd.link(transform)
transform.link(sink)
else:
nvosd.link(sink)
# create an event loop and feed gstreamer bus mesages to it
loop = GLib.MainLoop()
bus = pipeline.get_bus()
bus.add_signal_watch()
bus.connect ("message", bus_call, loop)
# Lets add probe to get informed of the meta data generated, we add probe to
# the sink pad of the osd element, since by that time, the buffer would have
# had got all the metadata.
osdsinkpad = nvosd.get_static_pad("sink")
if not osdsinkpad:
sys.stderr.write(" Unable to get sink pad of nvosd \n")
# start play back and listen to events
print("Starting pipeline .... \n")
pipeline.set_state(Gst.State.PLAYING)
try:
loop.run()
except:
pass
# cleanup
pipeline.set_state(Gst.State.NULL)
if __name__ == '__main__':
sys.exit(main())
When I execute this pipeline, I get the Segmentation fault like:
arun@ubuntu:~/Documents/DeepStream-Yolo/python$ python3 myPipeline.py
Detected Basler Cameras
['Basler a2A1920-51gcBAS (40122507)']
Building list by serial number
Creating Pipeline
Creating nvvidconv
Creating streamux
Building GStreamer infrastructure for ['40122507']
Creating pipeline for device 40122507
Creating Source
Creating Video Converter
Attaching 1 cameras to <class '__gi__.GstNvStreamMux'>
Attaching 40122507
Creating Pgie
Creating nvosd
Creating transform
Creating EGLSink
Adding elements to Pipeline
Linking elements in the Pipeline
Starting pipeline ....
Using winsys: x11
0:00:12.087228857 6456 0xc6ba750 INFO nvinfer gstnvinfer.cpp:646:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1909> [UID = 1]: deserialized trt engine from :/home/arun/Documents/DeepStream-Yolo/model_b1_gpu0_fp32.engine
WARNING: [TRT]: The getMaxBatchSize() function should not be used with an engine built from a network created with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag. This function will always return 1.
INFO: [Implicit Engine Info]: layers num: 4
0 INPUT kFLOAT input 3x640x640
1 OUTPUT kFLOAT boxes 25200x4
2 OUTPUT kFLOAT scores 25200x1
3 OUTPUT kFLOAT classes 25200x1
0:00:12.150700626 6456 0xc6ba750 INFO nvinfer gstnvinfer.cpp:646:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2012> [UID = 1]: Use deserialized engine model: /home/arun/Documents/DeepStream-Yolo/model_b1_gpu0_fp32.engine
0:00:12.163352081 6456 0xc6ba750 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:/home/arun/Documents/DeepStream-Yolo/config_infer_primary_yoloV5.txt sucessfully
Segmentation fault (core dumped)
I am trying for past two days, and in the end, I need your help to debug this issue, Could you please help to pointout the problem.
UPDATED:
The Debug logs with GST_DEBUG=3 are also shown below:
arun@ubuntu:~/Documents/DeepStream-Yolo/python$ GST_DEBUG=3 python3 myPipeline.py
Detected Basler Cameras
['Basler a2A1920-51gcBAS (40122507)']
Building list by serial number
Creating Pipeline
Creating nvvidconv
Creating streamux
Building GStreamer infrastructure for ['40122507']
Creating pipeline for device 40122507
Creating Source
0:00:01.835360876 4958 0x473c070 WARN default gstpyloncache.cpp:166:GetDoubleAttribute: Could not read values for feature ChunkGain from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkGain”
0:00:01.908749885 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature ChunkLineStatusAll from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkLineStatusAll”
0:00:01.942007701 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature ChunkFrameID from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkFrameID”
0:00:01.978985288 4958 0x473c070 WARN default gstpyloncache.cpp:166:GetDoubleAttribute: Could not read values for feature ChunkExposureTime from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkExposureTime”
0:00:02.026015845 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature BslChunkTimestampValue from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “BslChunkTimestampValue”
0:00:02.087580441 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature BslChunkTimestampValue from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “BslChunkTimestampValue”
0:00:02.148472161 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature BslChunkTimestampValue from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “BslChunkTimestampValue”
0:00:02.209990196 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature ChunkCounterValue from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkCounterValue”
0:00:02.269796938 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature ChunkCounterValue from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkCounterValue”
0:00:02.331931047 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature ChunkPayloadCRC16 from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “ChunkPayloadCRC16”
0:00:02.871811687 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature BslPtpUcPortAddrIndex from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “BslPtpUcPortAddrIndex”
0:00:02.909591431 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature BslPtpUcPortAddr from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “BslPtpUcPortAddr”
0:00:02.969141869 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature PtpOffsetFromMaster from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “PtpOffsetFromMaster”
0:00:03.009569167 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature PtpClockID from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “PtpClockID”
0:00:03.053887666 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature PtpParentClockID from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “PtpParentClockID”
0:00:03.095840973 4958 0x473c070 WARN default gstpyloncache.cpp:150:GetIntegerAttribute: Could not read values for feature PtpGrandmasterClockID from file /home/arun/.cache/gstpylon/55e64db268643a27bcf9c4bf7fea78f9b3c715b0cc2f69c6185db24f7975897b.config: Key file does not have group “PtpGrandmasterClockID”
Creating Video Converter
Attaching 1 cameras to <class '__gi__.GstNvStreamMux'>
Attaching 40122507
Creating Pgie
Unknown or legacy key specified 'unique-id' for group [property]
Creating nvosd
Creating transform
Creating EGLSink
Adding elements to Pipeline
Linking elements in the Pipeline
Starting pipeline ....
Using winsys: x11
WARNING: [TRT]: Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors.
0:00:11.651170983 4958 0x473c070 INFO nvinfer gstnvinfer.cpp:646:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:1909> [UID = 1]: deserialized trt engine from :/home/arun/Documents/DeepStream-Yolo/model_b1_gpu0_fp32.engine
WARNING: [TRT]: The getMaxBatchSize() function should not be used with an engine built from a network created with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag. This function will always return 1.
INFO: [Implicit Engine Info]: layers num: 4
0 INPUT kFLOAT input 3x640x640
1 OUTPUT kFLOAT boxes 25200x4
2 OUTPUT kFLOAT scores 25200x1
3 OUTPUT kFLOAT classes 25200x1
0:00:11.718167188 4958 0x473c070 INFO nvinfer gstnvinfer.cpp:646:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2012> [UID = 1]: Use deserialized engine model: /home/arun/Documents/DeepStream-Yolo/model_b1_gpu0_fp32.engine
0:00:11.730642666 4958 0x473c070 INFO nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:/home/arun/Documents/DeepStream-Yolo/config_infer_primary_yoloV5.txt sucessfully
0:00:12.448095840 4958 0x47ba300 FIXME default gstutils.c:3980:gst_pad_create_stream_id_internal:<pylon-source0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
Segmentation fault (core dumped)
arun@ubuntu:~/Documents/DeepStream-Yolo/python$
Thank you very much for your kind support.
Arun
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.