Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with Daheng Gigevision camera #983

Open
bug-programmer opened this issue Feb 14, 2025 · 2 comments
Open

Problem with Daheng Gigevision camera #983

bug-programmer opened this issue Feb 14, 2025 · 2 comments
Labels
1. Device support 2. Needs informations Needs additional informations 5. Gstreamer Issue in GStreamer plugin

Comments

@bug-programmer
Copy link

bug-programmer commented Feb 14, 2025

Describe the bug

I have a Daheng Imaging-MER2-507-23GC-P GigE vision camera. It works on the arv-viewer but when using a simple gstreamer pipeline i get an error.

[10:42:19.578] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100010 not found

To Reproduce
Gstreamer pipeline -
ARV_DEBUG=all gst-launch-1.0 aravissrc ! videoconvert ! autovideosink

Another pipeline -

gst-launch-1.0 \
    aravissrc camera-name="192.168.1.188"  \
    ! video/x-bayer,width=3088,height=2048,framerate=100/5 \
    ! bayer2rgb \
    ! queue \
    ! videoconvert \
    ! queue ! fpsdisplaysink text-overlay=0 video-sink=autovideosink -v sync=false
[10:42:19.369] 🅸 interface> Found 0 USB3Vision device (among 19 USB devices)
[10:42:19.370] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[10:42:19.370] 🅸 interface> [GvDiscoverSocket::new] Add interface 172.18.0.1 (172.18.255.255)
[10:42:19.370] 🅸 interface> [GvDiscoverSocket::new] Add interface 172.17.0.1 (172.17.255.255)
[10:42:19.370] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.1.192 (192.168.1.255)
[10:42:19.370] 🅸 interface> [GvInterface::discovery] Device 'Daheng Imaging-MER2-507-23GC-P-' found (interface 192.168.1.192) user_id 'mycam' - MAC '00:21:49:f6:b6:8e'
[10:42:19.370] 🅸 device> [GvDevice::new] Interface address = 192.168.1.192
[10:42:19.370] 🅸 device> [GvDevice::new] Device address = 192.168.1.188
[10:42:19.373] 🅸 device> [GvDevice::load_genicam] xml url = 'Local:MER2_GIGE_V2.4.12.zip;41a30000;890a' at 0x200
[10:42:19.373] 🅸 device> [GvDevice::load_genicam] Xml address = 0x41a30000 - size = 0x890a - MER2_GIGE_V2.4.12.zip
[10:42:19.536] 🅸 device> [GvDevice::load_genicam] Zipped xml data
[10:42:19.537] 🅸 dom> [GcFeature::set_attribute] Unknown attribute 'Comment'
--
[10:42:19.546] 🅸 dom> [GcFeature::set_attribute] Unknown attribute 'Comment'
[10:42:19.547] 🅸 dom> [Genicam::create_element] Unknown tag (SwapEndianess)
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceManufacturerInfo'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceID'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'GevTimestampTickFrequency'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPHostPort'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSDoNotFragment'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSBigEndian'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCSP'
[10:42:19.547] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPAddrCalc'
[10:42:19.548] 🅸 device> [GvDevice::new] Device endianness = big
[10:42:19.548] 🅸 device> [GvDevice::new] Packet resend     = yes
[10:42:19.548] 🅸 device> [GvDevice::new] Write memory      = yes
[10:42:19.548] 🅸 device> [GvDevice::new] Legacy endianness handling = yes

** (gst-launch-1.0:441855): CRITICAL **: 10:42:19.550: arv_camera_uv_set_usb_mode: assertion 'arv_camera_is_uv_device (camera)' failed
Setting pipeline to PAUSED ...
[10:42:19.578] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100010 not found
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.219013586 441855 0x613b6501e060 WARN                 basesrc gstbasesrc.c:3127:gst_base_src_loop:<aravis0> error: Internal data stream error.
0:00:00.219028053 441855 0x613b6501e060 WARN                 basesrc gstbasesrc.c:3127:gst_base_src_loop:<aravis0> error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstAravis:aravis0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.000168625
Setting pipeline to NULL ...
Freeing pipeline ...

Expected behavior
I figured it should work normally with GigE vision cameras too. Perhaps something wrong with the expected pixel format - i assume daheng is expecting something non-standard.

Camera description:

  • Daheng Imaging
  • MER2-507-23GC-P
  • GigE vision

Platform description:

  • Aravis version: 0.8.20
  • OS: Ubuntu 22.04
  • Hardware: x86_64 / arm64

Additional context
Works with the vendor's viewer - Galaxy viewer and arv-viewer-0.8.

I did some more testing and when using arv-viewer-0.8 i also see a different error line displayed but however i'm able to view the video stream.

(arv-viewer-0.8:526487): GStreamer-Video-CRITICAL **: 06:49:23.753: gst_video_center_rect: assertion 'src->h != 0' failed

(arv-viewer-0.8:526487): GStreamer-Video-CRITICAL **: 06:49:23.786: gst_video_center_rect: assertion 'src->h != 0' failed

Interestingly, when launching arv-viewer with the ARV_DEBUG=all flag set, I also see the same error line

[06:55:59.743] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100010 not found

The full log for reference:

[06:55:54.436] 🅸 interface> Found 0 USB3Vision device (among 18 USB devices)
[06:55:54.436] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[06:55:54.436] 🅸 interface> [GvDiscoverSocket::new] Add interface 172.18.0.1 (172.18.255.255)
[06:55:54.436] 🅸 interface> [GvDiscoverSocket::new] Add interface 172.17.0.1 (172.17.255.255)
[06:55:54.436] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.1.192 (192.168.1.255)
[06:55:54.436] 🅸 interface> [GvInterface::discovery] Device 'Daheng Imaging-MER2-507-23GC-P-FBZ24110091' found (interface 192.168.1.192) user_id 'mycam' - MAC '00:21:49:06:b6:8e'
[06:55:59.489] 🅸 interface> Found 0 USB3Vision device (among 18 USB devices)
[06:55:59.489] 🅸 device> [GvDevice::new] Interface address = 192.168.1.192
[06:55:59.489] 🅸 device> [GvDevice::new] Device address = 192.168.1.188
[06:55:59.491] 🅸 device> [GvDevice::load_genicam] xml url = 'Local:MER2_GIGE_V2.4.12.zip;41a30000;890a' at 0x200
[06:55:59.491] 🅸 device> [GvDevice::load_genicam] Xml address = 0x41a30000 - size = 0x890a - MER2_GIGE_V2.4.12.zip
[06:55:59.655] 🅸 device> [GvDevice::load_genicam] Zipped xml data
[06:55:59.656] 🅸 dom> [GcFeature::set_attribute] Unknown attribute 'Comment'
--
[06:55:59.664] 🅸 dom> [GcFeature::set_attribute] Unknown attribute 'Comment'
[06:55:59.664] 🅸 dom> [Genicam::create_element] Unknown tag (SwapEndianess)
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceManufacturerInfo'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceID'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'GevTimestampTickFrequency'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPHostPort'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSDoNotFragment'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSBigEndian'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCSP'
[06:55:59.664] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPAddrCalc'
[06:55:59.666] 🅸 device> [GvDevice::new] Device endianness = big
[06:55:59.666] 🅸 device> [GvDevice::new] Packet resend     = yes
[06:55:59.666] 🅸 device> [GvDevice::new] Write memory      = yes
[06:55:59.666] 🅸 device> [GvDevice::new] Legacy endianness handling = yes
[06:55:59.743] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100010 not found
[06:56:05.495] 🅸 device> [GvDevice::create_stream] Number of stream channels = 1
[06:56:05.495] 🅸 device> [GvDevice::auto_packet_size] No GevSCPSFireTestPacket feature found
[06:56:05.498] 🅸 device> [GvStream::stream_new] Packet size = 1500 byte(s)
[06:56:05.499] 🅸 stream> [GvStream::stream_new] Destination stream port = 60624
[06:56:05.499] 🅸 stream> [GvStream::stream_new] Source stream port = 11220
[06:56:05.499] 🅸 stream> [GvStream::loop] Standard socket method
[06:56:13.804] 🅸 stream>     bins    ;frame_retent; packet_time;inter_packet
                                    0;           0;       29744;      604229
                                 2000;           0;       28169;           0
                                 4000;           0;       28179;           0
                                 6000;           0;       28418;           0
                                 8000;           0;       28736;           0
                                10000;           0;       28231;           0
                                12000;           0;       28555;           0
                                14000;           0;       28230;           0
                                16000;           0;       28164;           0
                                18000;           0;       28196;           0
                                20000;           1;       28488;           0
                                22000;           0;       28452;           0
                                24000;           0;       28142;           0
                                26000;           0;       28358;           0
                                28000;           0;       28017;           0
                                30000;           0;       28013;           0
                                32000;           0;       28051;           0
                                34000;           0;       28563;           0
                                36000;           0;       28242;           0
                                38000;           0;       28234;           0
                                40000;           0;       28279;           0
                                42000;         175;        8944;           0
                         -------------
                         >=     44000;           0;           0;           0
                         <          0;           0;           0;           0
                         min         :       21016;           0;           0
                         max         :       42828;       42828;         883
                         last max at :          25;       89543;      351186
                         counter     :         176:      604405:      604229
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_completed_buffers    = 175
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_failures             = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_underruns            = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_timeouts             = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_aborteds             = 1
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_missing_frames       = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_received_packets     = 604405
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_missing_packets      = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_error_packets        = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_ignored_packets      = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_resend_requests      = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_resent_packets       = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_resend_disabled      = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_duplicated_packets   = 0
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_transferred_bytes    = 889136032
[06:56:13.804] 🅸 stream> [GvStream::finalize] n_ignored_bytes        = 0
[06:56:13.804] 🅸 stream> [Stream::finalize] Flush 9 buffer[s] in input queue
[06:56:13.804] 🅸 stream> [Stream::finalize] Flush 1 buffer[s] in output queue

Please let me know if there's any further information I can provide or if you'd like me to run any further tests. Thank you in advance for taking the time to look into this!

I also have a USB3 Vision camera from daheng and that works with the all pipelines mentioned above (without the ip addresss) without any problem / errors.

@bug-programmer bug-programmer changed the title Error when running daheng gigevision camera Error with daheng gigevision camera Feb 14, 2025
@bug-programmer bug-programmer changed the title Error with daheng gigevision camera Problem with Daheng Gigevision camera Feb 15, 2025
@EmmanuelP
Copy link
Contributor

What pixel formats are supported by your camera ?

@EmmanuelP EmmanuelP added 2. Needs informations Needs additional informations 1. Device support 5. Gstreamer Issue in GStreamer plugin labels Feb 16, 2025
@bug-programmer
Copy link
Author

Hello, Thank you for the response.

The output of arv-tool-0.8 features PixelFormat is

Daheng Imaging-MER2-507-23GC (192.168.1.188)
        Enumeration : 'PixelFormat'
            EnumEntry   : 'BayerGR12'
            EnumEntry   : 'BayerGR8'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. Device support 2. Needs informations Needs additional informations 5. Gstreamer Issue in GStreamer plugin
Projects
None yet
Development

No branches or pull requests

2 participants