Code Monkey home page Code Monkey logo

aravis's People

Contributors

casperroo avatar cmarmo avatar coretl avatar de-vri-es avatar dmitryalferov avatar emmanuelp avatar eudoxos avatar exzombie avatar feuerste avatar fixstars-iizuka avatar fixstars-momoko avatar hackel6 avatar highperformancecoder avatar johannesbeck avatar kohtala avatar lu-zero avatar marv-cz avatar mcguire-steve avatar mdavidsaver avatar mirosnik1 avatar mpruett avatar mshr-h avatar n115 avatar nzjrs avatar piotrdrag avatar rffontenelle avatar romainreignier avatar sh0 avatar thecaptury avatar tis-edgar avatar

Stargazers

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

Watchers

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

aravis's Issues

MatrixVision camera support

arv_buffer_get_payload_type () is always returning -1 (ARV_BUFFER_PAYLOAD_TYPE_UNKNOWN)

camera is:
MatrixVision mvBlueCOUGAR-x102eC
part no 08787
rev 1.04
firmware version is 2.18.651.0
GenAPI version 3.01 standard.

Our application is working well with previous version of the same camera model, but different firmware 1.6.1.

versionInfo.txt

Wrong documentation directory

In Makefile.am ... this line needs changed from:

aravisdocdir = ${prefix}/doc/aravis-@ARAVIS_API_VERSION@

... to ...

aravisdocdir = ${docdir}/aravis-@ARAVIS_API_VERSION@

My distro (Debian Testing) stores documents in /usr/share/doc.

Running ldconfig after make install

Hi, could you add running ldconfig to the install target? On Ubuntu 16.04, aravis executables cannot be run after doing make install (e.g. arv-tool-0.6: error while loading shared libraries: libaravis-0.6.so.0: cannot open shared object file: No such file or directory). This is fixed by running ldconfig (as root).

install instructions for ubuntu 16.04

I'm not very familiar with compiling software with the GNU build system, and I'm having troubling following the instructions in the readme.

I naively tried to download the zip of the repository, extract it, and run the ./configure in the root extracted directory. Of course there is no such file, so it doesn't work. Should I be doing something before that, or am I running it in the wrong place?

Thanks

Cannot install on macOS Sierra

Followed the instructions on the README and was yet unable to install on macOS Sierra. After moving a few header files in place I finally got stumped at:

<snip>
  CC       arvgvinterface.lo
  CC       arvgvdevice.lo
arvgvdevice.c:39:10: fatal error: 'linux/ip.h' file not found
#include <linux/ip.h>
         ^
1 error generated.
make[2]: *** [arvgvdevice.lo] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

Viewer is broken under wayland

On a wayland session, the video area is displayed in a separate window instead of being integrated in the main window.

Error building aravis under RHEL6

Hi,

I'm trying to build the aravis library under RHEL6 and I am facing the following error:

Making all in src
make[1]: Entering directory `/afs/slac.stanford.edu/g/lcls/vol9/package/aravis/0.5.8/build/rhel6-x86_64/src'
make  all-am
make[2]: Entering directory `/afs/slac.stanford.edu/g/lcls/vol9/package/aravis/0.5.8/build/rhel6-x86_64/src'
  CC     arvgvstream.lo
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:793: error: field 'h1' has incomplete type
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c: In function '_ring_buffer_loop':
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:801: error: storage size of 'req' isn't known
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:818: error: 'TPACKET_V3' undeclared (first use in this function)
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:818: error: (Each undeclared identifier is reported only once
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:818: error: for each function it appears in.)
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:830: error: 'TP_FT_REQ_FILL_RXHASH' undeclared (first use in this function)
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:890: error: dereferencing pointer to incomplete type
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:898: error: dereferencing pointer to incomplete type
../../../src/aravis-ARAVIS_0_5_8/src/arvgvstream.c:801: warning: unused variable 'req'
make[2]: *** [arvgvstream.lo] Error 1
make[2]: Leaving directory `/afs/slac.stanford.edu/g/lcls/vol9/package/aravis/0.5.8/build/rhel6-x86_64/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/afs/slac.stanford.edu/g/lcls/vol9/package/aravis/0.5.8/build/rhel6-x86_64/src'
make: *** [all-recursive] Error 1

Information about the system:
Kernel: 2.6.32-573.18.1.el6.x86_64
Glib version: 2.52.0
Config Line: PKG_CONFIG_PATH=/afs/slac/g/lcls/package/glib/2.52.0/rhel6-x86_64/lib/pkgconfig/ ../../src/aravis-ARAVIS_0_5_8/autogen.sh --prefix=/afs/slac/g/lcls/package/aravis/0.5.8/rhel6-x86_64 --disable-gst-plugin --disable-viewer

The output of the configure and also full output of make can be found in here: https://gist.github.com/hhslepicka/ef73fc8e276ffd23f93dc1046028c0de

Thank you!

Aravis does a float division while integer division is expected

Hello,

I have installed Avaris 0.4 and 0.6 and arv-viewer from 0.6. When I open arv-viewer I see my camera: Teledyne Dalsa Nano-M1940.

When I try to view the image stream I see nothing.

I have run the viewer in debug mode: $ arv-viewer -d all

I notice a few interesting things:
Failed to connect make realtime: org.freedesktop.DBus.Error.AccessDenied
[GvStream::check_frame_completion] Timeout for frame 1 at dt = 133258

Here is the full output: arv-viewer_debug.txt

Note: I am trying to get the camera to work in ROS using camera_avaris, which uses Avaris 0.4. But at this point I can't get anything to work.

Thanks for the help.

arv_uv_device_get_type undefined.

On HEAD of master, 53a6a54, starting at 33805d1. I get the following error:

make[2]: Entering directory '/home/rublee/code/aravis/src'
  CCLD     arv-fake-gv-camera-0.6
./.libs/libaravis-0.6.so: undefined reference to `arv_uv_device_get_type'
collect2: error: ld returned 1 exit status

MSVC 2015 Compiler Errors

Hi,
I want to compile Aravis SDK 0.4.1 (not GUI stuff) on Windows platform with MSVC2015 using QtCreator. I downloaded GLib from http://ftp.gnome.org/pub/GNOME/binaries/win64/glib/2.26/ .
I put related include paths and .lib paths of both GLib and Aravis but I got tons of compiler errors like:
C:\Users\user\Documents\Aravis\arvgvsp.h(99): error C2054: expected '(' to follow 'packed'
C:\Users\user\Documents\Aravis\arvgvsp.h(119): error C2059: syntax error: ''
C:\Users\user\Documents\Aravis\arvgvsp.h(138): error C2059: syntax error: ''
C:\Users\user\Documents\Aravis\arvgvsp.h(152): error C2059: syntax error: ''
C:\Users\user\Documents\Aravis\arvgvsp.h(159): error C2143: syntax error: missing '{' before '*'
.
.
.

I know these errors are directly related to Aravis SDK and I could successfully build the same code on Ubuntu. What might be the problem and how can I solve it?

Implement quirk files

Cameras don't always use the standard names for the most common features, like exposure, image rate, etc...

Currently, ArvCamera checks for vendor and model, and behave differently when needed. The drawback of this method is when we want to add a new behaviour for a new camera, it has to be included in the code, and it will not be easily available to users until the next release.

It could be improved by instead using quirk files, in the form of genicam xml patches. This quirk files would be bundled in the aravis distribution, but could also be read in a defined user directory.

The search path would be:

$XDG_DATA_DIRS/aravis
$prefix/share/aravis

The patch file will be named using the camera genicam filename with a .patch extension added.

Not everything will be possible with these quirk files, but it could be possible to make new camera work without additional code.

Multiple GigE cameras (not working all together)

I am using three GigE cameras from imaging source and they are connected via GigE switch. I can get the video stream from all cameras individually but when I try all cameras together I received nothing. What can be the reason behind this?

Set of errors printed while starting app

Using Aravis from HEAD (5.7 in arvversion.h) and camera TIS DMK 23GX236, here is a list of the failed assertions that are printed on terminal every time I start my app.

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

(Sample:16576): Aravis-CRITICAL **: arv_gc_feature_node_get_value_type: assertion 'ARV_IS_GC_FEATURE_NODE (node)' failed

Install on Mac using macports

Hi,

I would like to install and run Aravis on my mac (since there is no pymba/vimba option).

Though I saw there is a homebrew method, I was wondering if there is a method to do the same but using macports. Since macports is my current python package manager I would like to stick with it, and brew + ports simply do not live well together on a mac.

Any help would be appreciated.

OSX build fail

based on the readme I tried compiling on OSX 10.10.5:

brew install gettext intltool gtk-doc automake
brew link --force gettext
aclocal
autoconf
autoheader
glibtoolize --copy
brew install glibtoolize
brew install libtool
glibtoolize --copy
automake --add-missing
intltoolize
export CPPFLAGS="-I/usr/local/Cellar/libxml2/2.9.4_3/include/libxml2/"
./configure
make

but it fails with

  CCLD     arv-camera-test
  CCLD     arv-chunk-parser-test
  CCLD     arv-heartbeat-test
  CCLD     arv-acquisition-test
  CCLD     arv-auto-packet-size-test
  CCLD     realtime-test
  CCLD     load-http-test
  CCLD     arv-device-test
  CCLD     arv-example
Undefined symbols for architecture x86_64:
  "_sched_getparam", referenced from:
      _print_status in realtimetest.o
  "_sched_getscheduler", referenced from:
      _print_status in realtimetest.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [realtime-test] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all-recursive] Error 1

Connection issue with acA1920-155um (U3V) on Manjaro 16.10

I am running on Manjaro with Kernel 4.4.19 or 4.9.?? and libusb 1.0.21 and I am getting thje following messages when connecting with the camera:

(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_TIMEOUT
(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_TIMEOUT
(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_TIMEOUT
(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_TIMEOUT
(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_TIMEOUT
(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_TIMEOUT
(lt-arv-viewer:24459): Aravis-CRITICAL **: arv_device_read_memory: assertion 'buffer != NULL' failed
(lt-arv-viewer:24459): Aravis-CRITICAL **: arv_dom_document_new_from_memory: assertion 'buffer != NULL' failed
(lt-arv-viewer:24459): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
โ€ฆ.

(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_IO
(lt-arv-viewer:24459): Aravis-WARNING **: [UvDevice::read_memory] Ack reception error: LIBUSB_ERROR_IO
(lt-arv-viewer:24459): XML-CRITICAL **: Document is empty
(lt-arv-viewer:24459): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

Other PtGrey-U3V cameras work w/o a problem - Good job !
The acA1920-155um works fine with Basler's pylon software.
Attached are logfiles with libusb debug messages turned on.
aca1920-155-logs.tar.gz

Any ideas ?

Possible memory leak in arv_gv_interface_discover()

This and #37 are the only "definite" leaks flagged for my test program. I don't see any problem in arv_gv_interface_discover() or handling of ArvGvInterfaceDeviceInfos, but the manual ref. counting and my not being familiar with the semantics of GHashTable, keep me from dismissing this as a false positive.

 33 bytes in 1 blocks are definitely lost in loss record 338 of 706
    at 0x4C28C20: malloc (vg_replace_malloc.c:296)
    by 0x53347C9: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
    by 0x534D127: g_strndup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
    by 0x4E66E11: arv_gv_interface_discover (in /usr/lib/x86_64-linux-gnu/libaravis-0.6.so.0.0.0)
    by 0x4E67217: arv_gv_interface_open_device (in /usr/lib/x86_64-linux-gnu/libaravis-0.6.so.0.0.0)
    by 0x4E4AE7D: arv_open_device (in /usr/lib/x86_64-linux-gnu/libaravis-0.6.so.0.0.0)
    by 0x4E54235: arv_camera_new (in /usr/lib/x86_64-linux-gnu/libaravis-0.6.so.0.0.0)
    by 0x402587: main (inspectcam.cpp:105)

Memleak in update_device_list

Hi,

I just want to let you know, that valgrind reports a memleak in my application after calling update_device_list.
I could also verify with the arv-viewer. Note that I use ARAVIS_0_5_7 on Ubuntu 16.04.

Here the relevant valgrind ouput:

arv-viewer:

==24843== 33 bytes in 1 blocks are definitely lost in loss record 6,687 of 14,378
==24843== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24843== by 0x6D3D718: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24843== by 0x6D56567: g_strndup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24843== by 0x70306E0: arv_gv_interface_device_infos_new (arvgvinterface.c:224)
==24843== by 0x70306E0: arv_gv_interface_discover (arvgvinterface.c:330)
==24843== by 0x7030E48: arv_gv_interface_update_device_list (arvgvinterface.c:384)
==24843== by 0x702C312: arv_interface_update_device_list (arvinterface.c:86)
==24843== by 0x4068BE: update_device_list_cb (arvviewer.c:685)
==24843== by 0x408201: activate (arvviewer.c:1221)
==24843== by 0x6AAB1D3: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC59A5: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC608E: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x67C0AF5: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4800.2)

==24843== 48 bytes in 1 blocks are definitely lost in loss record 8,323 of 14,378
==24843== at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24843== by 0x6D3D770: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24843== by 0x7030ED1: arv_gv_interface_update_device_list (arvgvinterface.c:396)
==24843== by 0x702C312: arv_interface_update_device_list (arvinterface.c:86)
==24843== by 0x4068BE: update_device_list_cb (arvviewer.c:685)
==24843== by 0x408201: activate (arvviewer.c:1221)
==24843== by 0x6AAB1D3: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC59A5: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC608E: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x67C0AF5: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4800.2)
==24843== by 0x67C0CE1: g_application_run (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4800.2)
==24843== by 0x40514C: main (main.c:107)

==24843== 99 bytes in 3 blocks are definitely lost in loss record 12,116 of 14,378
==24843== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24843== by 0x6D3D718: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24843== by 0x6D56567: g_strndup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24843== by 0x70306E0: arv_gv_interface_device_infos_new (arvgvinterface.c:224)
==24843== by 0x70306E0: arv_gv_interface_discover (arvgvinterface.c:330)
==24843== by 0x7030E48: arv_gv_interface_update_device_list (arvgvinterface.c:384)
==24843== by 0x702C312: arv_interface_update_device_list (arvinterface.c:86)
==24843== by 0x4068BE: update_device_list_cb (arvviewer.c:685)
==24843== by 0x6AAB1D3: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC59A5: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC6554: g_signal_emit_by_name (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AAB1D3: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)
==24843== by 0x6AC59A5: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2)

my app:

==24991== 33 bytes in 1 blocks are definitely lost in loss record 624 of 1,233
==24991== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24991== by 0x68E9718: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24991== by 0x6902567: g_strndup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24991== by 0x4E6B6E0: arv_gv_interface_device_infos_new (arvgvinterface.c:224)
==24991== by 0x4E6B6E0: arv_gv_interface_discover (arvgvinterface.c:330)
==24991== by 0x4E6BE48: arv_gv_interface_update_device_list (arvgvinterface.c:384)
==24991== by 0x4E67312: arv_interface_update_device_list (arvinterface.c:86)
==24991== by 0x50938C1: GetDeviceInterfaces (in /usr/local/lib/libmescan.so.1.0)
==24991== by 0x40179E: main (in /home/v2d3d/development/examples/GetProfilesCallback/GetProfilesCallback)
==24991==
==24991== 48 bytes in 1 blocks are definitely lost in loss record 670 of 1,233
==24991== at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24991== by 0x68E9770: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2)
==24991== by 0x4E6BED1: arv_gv_interface_update_device_list (arvgvinterface.c:396)
==24991== by 0x4E67312: arv_interface_update_device_list (arvinterface.c:86)
==24991== by 0x50938C1: GetDeviceInterfaces (in /usr/local/lib/libmescan.so.1.0)
==24991== by 0x40179E: main (in /home/v2d3d/development/examples/GetProfilesCallback/GetProfilesCallback)

Greetings and thank you!

aravis viewer shows blank picture

Great project so far!
I am using the following camera:
vendor name = ContrasTech
model name = Mars 1300-210uc

For the most part, this camera seems to work fine, but on occasion, the camera shows a blank screen in the viewer. I find that disconnecting and reconnecting the camera (sometimes a few times) gets it to work again.

Could anyone offer up some useful troubleshooting steps?
The only thing I've been able to find so far was when running 'arv-device-test'
I got the following output:
Looking for the first available camera
vendor = ContrasTech
model = Mars 1300-210uc

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_string_get_value: assertion 'ARV_IS_GC_STRING (gc_string)' failed
device id = (null)
sensor width = 1280
sensor height = 1024
image width = 1280 (max:1280)
image height = 1024 (max:1024)

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_integer_get_value: assertion 'ARV_IS_GC_INTEGER (gc_integer)' failed

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_integer_get_max: assertion 'ARV_IS_GC_INTEGER (gc_integer)' failed

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_integer_get_min: assertion 'ARV_IS_GC_INTEGER (gc_integer)' failed
horizontal binning = 0 (min:0 - max:0)

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_integer_get_value: assertion 'ARV_IS_GC_INTEGER (gc_integer)' failed

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_integer_get_max: assertion 'ARV_IS_GC_INTEGER (gc_integer)' failed

(lt-arv-device-test:948): Aravis-CRITICAL **: arv_gc_integer_get_min: assertion 'ARV_IS_GC_INTEGER (gc_integer)' failed
vertical binning = 0 (min:0 - max:0)
exposure = 1000 (min:-1.79769e+308 - max:1.79769e+308)
exposure auto mode = Off

I also note that the light on the back of the camera flashes as it its still grabbing frames.
If i disconnect and reconnect the camera, the light returns to a non flashing state.
To be honest, I'm not sure if these 2 things are related.

Feedback appreciated
Steve

ArvBuffer has no member named 'data', "frame_id", 'size', 'timestamp_ns'

Hello,

I am new with aravis and I got following errors. what can be the possible reason?
Using arv_get_device_id, I can see the camera name which means probably library is properly linked.

error: 'ArvBuffer' has no member named 'data'
error: 'ArvBuffer' has no member named 'frame_id'
error: 'ArvBuffer' has no member named 'size'
error: 'ArvBuffer' has no member named 'timestamp_ns'

Thanks in advance.

arv-example returning payload value of 0

Camera model: Teledyne Genie Nano C1940 (G3-GC10-C1940)
Using aravis-0.4

arv_camera_get_payload is returning 0 when arv-example is run.

buffer_count is running smoothly at 30 Hz, but the buffer sizes are all 0.

Please find the Genie XML file attached (generated from arv-tool-0.4 -n <camera name> genicam).

Teledyne_Nano.txt

handle to ArvInterface

I've used several versions (0.3.x, 0.4.x, 0.5.x) of aravis to control GigEVision cameras in the past.
Since I needed some low-level control, I've used functions like arv_interface_update_device_list(), arv_interface_get_device_address(), arv_interface_get_device_physical_id().
All of these need a ArvInterface pointer as a parameter, that I got by calling
arv_gv_interface_get_instance().
In the current release (0.5.7) this function was removed.
I can't see how to get a valid ArvInterface* anymore.
Do I have missed something?

Thanks

Colour channels split

Hi Emmanuel,
Wondering if you could offer your expert opinion on this one - not sure if it relates to your project or not, but I am using the aravis module in python to grab some images.

Here is my code on python 3.4
import sys
import aravis
import cv2
import numpy as np

cam = aravis.Camera()
cam.set_feature('Width', 1280)
cam.set_feature('Height', 720)
cam.set_feature('ExposureTime', 18000)
cam.set_feature('AcquisitionFrameCount', 1)
cam.set_feature('AcquisitionFrameRate', 60)
cam.set_feature('AcquisitionFrameRateEnable', True)
cam.set_feature('PixelFormat', 'BayerRG8')
cam.set_feature('PixelSize', 'Bpp8')
cam.set_feature('PixelColorFilter', 'BayerRG')

cam.start_acquisition()
frame = cam.pop_frame()
npimg = np.asarray(frame)
print(npimg.shape)
b = 'testpic.png'
print(b)
cv2.imwrite(b, npimg)
cam.stop_acquisition()

Here is the picture (see attachment)
testpic

I want to grab images to manipulate in opencv.
In this case, it looks like the colour channels are split and I'm not sure where to start looking. The colour of the ball is supposed to be yellow (for reference)

Also note that the picture grabbed should be 1280 x 720 - the frame is the right size, but the image has shrunk

Appreciate any suggestion - just want to know if the issue might be related to the module or not and how I might go about proving it one way or another?

Thanks
Steve

EnumEntry is not listed.

Hi,

When using a TIS 33GX149e the enumeration "DeviceTemperatureSelector" is not correctly handled.
arv_device_get_available_enumeration_feature_values_as_strings only lists:
Mainboard
The enum has the entries "Mainboard" and "Sensor".

When querying the current value arv-tool-0.6 control DeviceTemperatureSelector -n "The Imaging Source-42619966" returns DeviceTemperatureSelector = Sensor.

You can find the xml description here. This has been tested on the wip/emmanuel/convert-enum branch.

Video not correctly displayed in the viewer

It looks like the gtkglsink or gtksinks element don't like video with size bigger than the window size. In this case, the allocated size of the video widget created by these elements is bigger than necessary, and the video is shifted to the bottom of the window.

Gstreamer plugin 'bayer2rgb' is missing. (on Ubuntu 14.04)

I compiled the latest version on an Ubuntu 14.04 machine.

commit 64bbbf8
Author: Emmanuel Pacaud [email protected]
Date: Sun Mar 19 11:45:55 2017 +0100
tests: put longer tests at the end of the list

When I try to run the viewer it is unable to find the bayer2rgb plugin, although gst-inspect reports that it is installed:

awagner@hal:/home/awagner/src/aravis/viewer
$ ./arv-viewer

** (lt-arv-viewer:12663): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-H6XDrK3475: Connection refused
Gstreamer plugin 'bayer2rgb' is missing.
Check your gstreamer installation.

awagner@hal:/home/awagner/src/aravis/viewer
$ gst-inspect | grep bayer
bayer: bayer2rgb: Bayer to RGB decoder for cameras
bayer: rgb2bayer: RGB to Bayer converter

Among the other dependencies, I did install the gstreamer "bad" plugins set, which contains the bayer conversion plugins:

$ aptitude search gstreamer-plugins-bad
i libgstreamer-plugins-bad0.10-0 - GStreamer shared libraries from the "bad" set
p libgstreamer-plugins-bad0.10-0:i386 - GStreamer shared libraries from the "bad" set
i libgstreamer-plugins-bad0.10-dev - GStreamer development files for libraries from the "bad" set
p libgstreamer-plugins-bad0.10-dev:i386 - GStreamer development files for libraries from the "bad" set
i libgstreamer-plugins-bad1.0-0 - GStreamer development files for libraries from the "bad" set
p libgstreamer-plugins-bad1.0-0:i386 - GStreamer development files for libraries from the "bad" set
i libgstreamer-plugins-bad1.0-dev - GStreamer development files for libraries from the "bad" set
p libgstreamer-plugins-bad1.0-dev:i386 - GStreamer development files for libraries from the "bad" set

I'm new to gstreamer, but it seems I can launch a gstreamer pipeline containing bayer2rgb:

$ gst-launch "bayer2rgb"
Setting pipeline to PAUSED ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

I suspect it is unrelated, but to get through the configure script I had to lower the required version of gtk+-3.0 to >= 3.10 in configure.ac.

Thanks!

Implement set_value_from_string for [Int]Converter nodes

arv-tool can not set the value of a [Int]Converter node because it doesn't implement GcFeatureNode::set_value_from_string.

Example:

  <Converter Name="MinimumFrameTime">
    <DisplayName>Minimum frame time</DisplayName>
    <Visibility>Expert</Visibility>
     <FormulaTo> ((FROM * 63000)/83+500)/1000 </FormulaTo>
     <FormulaFrom>TO * 83 / 63</FormulaFrom>
     <pValue>MinimumFrameTimeReg</pValue>
  </Converter>

Aravis with Basler daA2500-14uc (U3V)

Hi,

I'm having trouble using my Basler daA2500-14uc USB3.0 camera with Aravis. With both arv-viewer and the aravissrc plugin on Gstreamer, it has performance issues at higher resolutions. I can open the camera stream at 30fps for resolutions up to about 1280x720, without issues, but once I start trying 1920x1080 or any higher resolutions, the video is very choppy, and only achieves a few frames per second. I am using YCbCr_422 (YUY2) colorspace.

The Basler camera works just fine in Pylon5 in the exact same mode; it will display the camera stream at 1920x1080, 30fps with no problem. I've also got other cameras working through arv-viewer and aravissrc just fine. For example, with my Pixelink camera I can operate 1920x1080 in a similar colorspace at 30fps or more without any choppiness.

Here's some additional platform info
Platform: Intel Joule 570x
kernel 4.4.0-1000-joule on Ubuntu SMP PREEMPT x86_64 (this is the default distro from Intel)
aravis version 0.5.9
libusb-1.0-0 version 1.0.20-1
libxml2 version 2.9.3+dfsg1-1ubuntu0.2
libglib2.0-0 version 2.48.2-0ubuntu1

Is there any advice you can give me?

Thanks
Lucas Kinion

set_camera_feature not working in python

I tried to set the camera features in python for this camera:
Camera vendor: Point Grey Research
Camera model: Blackfly BFLY-PGE-09S2C

device = camera.get_device ()

device.set_integer_feature_value ("Width", 1024)
device.set_integer_feature_value ("Height", 1024)

print("Width =  {}".format(device.get_integer_feature_value ("Width")))
print("Height = {}".format(device.get_integer_feature_value ("Height")))

The output I get:
Width = 128
Height = 128

I do not get any errors either.
Can I somehow check what is not working?

SwissKnife evaluation error

Hi Emmanuel,

I am getting wrong results when querying the framerate for different resolutions.
The camera in question is a TIS DMK 33GP1300.
As you might know TIS gige cameras allow you to set TestWidth and TestHeight to change the FPS range without actually changing the used format.

When setting the test resolution to 1280x1024 (the maximum resolution) I still get 5 - 15151.5152 fps, which is what I would expect for the minimum resolution

I have attached the output of arv-tool-0.6 control FPS -n "The Imaging Source-23519996" -d evaluator:3.
From what I can see the SwissKnife 'ResultingFrameClocks' is not correctly evaluated.

You can find the genicam xml here.

23519996_control_FPS_debug_evaluator_3.txt

Instructions on how to contribute with translations

Damned Lies send translators to Aravis wiki to look for instructions on how to submit translations, but there is no instructions in there. It would be nice to have some information specifying if one should open an issue attaching PO file, create a pull request etc.

Switching pixel format on fly freezes grabbing

Assuming grabbing is active, changing of pixel format on fly using following code:

arv_camera_abort_acquisition(camera);
g_object_unref(stream);
stream = NULL;
arv_camera_set_pixel_format(camera, newFormat);
stream = arv_camera_create_stream(camera, NULL, NULL);
payload = arv_camera_get_payload (camera);
for (int i = 0; i < 50; i++)
   arv_stream_push_buffer(stream, arv_buffer_new(payload, NULL));

makes app unable to get arv_buffer, i.e. arv_stream_timeout_pop_buffer times outs all the time.

However this happens only when fps is set to value larger than 10.

Race in stream new-buffer signal leads to self destruction

It seems that g_signal_emit() manipulates the ref. count of ArvStream instances. This means that it is possible for the stream thread to have the last reference, and to attempt to destroy the stream. This triggers an assert() failure from g_thread_join() when the stream thread attempts to join itself.

This is fairly difficult to trigger. I've encountered it twice in ~2 weeks of destruct testing involving triggering cleanup while still streaming frames.

The symptom is

(process:23937): GLib-ERROR **: file /build/glib2.0-y6934K/glib2.0-2.42.1/./glib/gthread-posix.c: line 1218 (g_system_thread_wait): error 'Resource deadlock avoided' during 'pthread_join (pt->system_thread, NULL)'

A stack trace of the faulting thread is.

#0  0x00007fe5374f2d30 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe5374f2f6f in g_log () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe53753039e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe537512c95 in g_thread_join ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fe537a39fee in arv_gv_stream_finalize (object=0x7fe4ec0c62d0)
    at arvgvstream.c:1188
#5  0x00007fe5377c626a in g_object_unref ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007fe5377db494 in g_signal_emit_valist ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007fe5377db9df in g_signal_emit ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007fe537a387df in _close_frame (
    thread_data=thread_data@entry=0x7fe4ec081960, 
    frame=frame@entry=0x7fe51001dc00) at arvgvstream.c:499
#9  0x00007fe537a38fb2 in _check_frame_completion (
    current_frame=<optimized out>, time_us=1488981195843477, 
    thread_data=0x7fe4ec081960) at arvgvstream.c:540
#10 _loop (thread_data=0x7fe4ec081960) at arvgvstream.c:715
#11 arv_gv_stream_thread (data=0x7fe4ec081960) at arvgvstream.c:933
#12 0x00007fe537512845 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007fe53728d0a4 in start_thread (arg=0x7fe4a7bf8700)

Add pixel format controller in arv-viewer

Emmeran wrote:


I found the information on my own by now. The problem wasn't in the lib
at all, but in the viewer. You might wanna consider the case that the
viewer cannot find a capability for the image stream (Bayer8 in my
case). In that situation your viewer will just silently stop setting up
the camera and display a random image / not redraw the widget.

This happens in viewer/arvviewer.c:508

Regards,
Emmeran

On 03/31/2012 07:44 PM, Emmeran Sollner wrote:

Hi Emmanuel,

I stumbled upon your Aravis library and am trying to get it working with
my Prosilica GE4000C. It's detecting the camera but doesn't receive an
image.

I looked at the data traffic via wireshark and noticed, that the
SampleViewer from the proprietary SDK (PvAPI from AVT) writes 0x00000001
to register 0x000130f4 before the data stream is incoming and stops it
by writing 0x00000000 after closing the SampleViewer preview window.

You library is not sending this command, which I assume is
AcquisitionStart. I'm still going through your code trying to understand
it, but I noticed with debug that I might be missing a xml file for my
specific camera: prosilica_022091C_1.42.xml

I'm not quite sure how to proceed, whether this xml is important or not.
Maybe you could help me out by pointing me in the right direction.

Best regards,
Emmeran

Can't detect Basler USB Camera on Nvidia Jetson TX1

I've compiled aravis on Ubuntu 16.04, x86_64 desktop PC and tested it with two cameras:
Basler acA1920-150um (USB camera) and Basler avA2300-25gm (Ethernet camera).
Both cameras works well on that machine. But my primary interest is to use aravis on Jetson TX1 (instead of Balser Pylon SDK which currently doesn't support x64 ARM arch). Therefore I've compiled aravis on Jetson TX1 with Ubuntu 16.04, aarch64 ARM, but aravis can't detect USB camera, though Ethernet camera works fine.

Hardware trigger - "Could not create image stream"

I have successfully configured the three cameras and can get the stream. Now I am trying to trigger all cameras simultaneously with hardware interrupt and I am getting error: "Could not create image stream"
I used following lines to activate the hardware trigger mode.
arv_device_set_string_feature_value(Device, "TriggerMode", "On");
arv_device_set_string_feature_value(Device, "TriggerSource", "Line1");
arv_device_set_string_feature_value(Device, "TriggerActivation", "RisingEdge");
arv_device_set_string_feature_value(Device, "AcquisitionMode", "Continuous");

For triggering I am generating PWM using arduino.

Swissknife does not handle expressions correctly

Hi,
When reading values from a TIS 33G P1300e some values are incorrectly evaluated and are thus returned as 0.

When executing:
arv-tool-0.6 control FPS -n "The Imaging Source-47619971"

The result is:

The Imaging Source-47619971 (192.168.0.180)
FPS = 5 (min:5;max:0)

You can find the xml description of the camera here.

This has been tested with current master.

If you require any additional information, please let me know.

Underrrun destroys frames?

This is definitely not a camera problem (checked with wireshark).

When app is not able to grab frames and return buffer eventually a underrun condition arise.
According to source files (version 0.6) this shall start ignoring frames.

The thing is that during this unusual situation, received frames are corrupted, i.e. horizontal white or black bars starts to appear. Below is screenshot from my simple motion detection application.
Screen shot
Top left is feed from camera, top right a difference between 2 successive frames. Bottom not important.
Orange label, second row shows that for some time app was able to grab frames with speed of 12fps, while camera has produced frames with 20fps.

After some time situation stabilizes (i.e app feeds aravis with buffers), but there is constant delay (depending on situation 1-2 sec) - no more real time video footage. This continues until the app/aravis is restarted.

As mentioned I am using aravis-0.6. Initialized 50 buffers, so for 20fps it gives max 2.5s delay.
Code used for grabbing frames:

bool CvCaptureCAM_Aravis::grabFrame()
{
    // remove content of previous frame
    framebuffer = NULL;

    if(stream) {
        ArvBuffer *arv_buffer = NULL;
        int max_tries = 10;
        int tries = 0;
        for(; tries < max_tries; tries ++) {
            arv_buffer = arv_stream_timeout_pop_buffer (stream, 200000);
            if (arv_buffer != NULL && arv_buffer_get_status (arv_buffer) != ARV_BUFFER_STATUS_SUCCESS) {
                arv_stream_push_buffer (stream, arv_buffer);
            } else break;
        }
        if (tries < max_tries) {
            size_t buffer_size;
            framebuffer = (void*)arv_buffer_get_data (arv_buffer, &buffer_size);

            arv_buffer_get_image_region (arv_buffer, NULL, NULL, &width, &height);

            arv_stream_push_buffer(stream, arv_buffer);
            return true;
        }
    }
    return false;
}

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

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

  • D3 photo D3

    Data-Driven Documents codes.