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

startPipeline deadlocks when two xlinkouts have the same stream name #469

Closed
jdavidberger opened this issue Apr 30, 2022 · 1 comment
Closed
Assignees

Comments

@jdavidberger
Copy link
Collaborator

After debugging for a while, it turns out that startPipeline will deadlock when you have two xlink nodes which share a streamname. While this configuration wouldn't make sense to run; it would be beneficial if this was validated and throws an exception instead of deadlocking.

@themarpe
Copy link
Collaborator

themarpe commented May 2, 2022

I agree, we'll add a check for this case

@themarpe themarpe self-assigned this May 2, 2022
diablodale added a commit to diablodale/depthai-core that referenced this issue Apr 14, 2023
saching13 added a commit that referenced this issue Jun 15, 2023
* WIP: Camera node

* Added capability to set XLink logging level via XLINK_LEVEL env var

* Replace "_CMAKE_" variables with "_DEPTHAI_" (#662)

"_CMAKE_" variables are reserved for internal use and should not be used.
This change also makes it harder for other CMake scripts to accidentall overwrite this variable.

Co-authored-by: Cameron Blomquist <cblomquist@lsa2.com>

* Add comments

* Update FW: Add missing python bindings for boundingBoxMapping

* Updated NETWORK Bootloader with dual protocol capabilities

* [FW] Fixed a bug in board downselection. OAK-D S2/Pro camera enumeration fix.

* [FW] Added support for Mono video/preview in Camera node

* CI - Fixed style & tidy jobs

* Updated dual BL to v0.0.23 temporary build

* Added OAK-D-LR support. WIP: Orientation capability

* [FW/XLink] Explicitly limited to single connection

* ImageManip added colormap capability. TODO min/max range selection

* Add option to override baseline and/or focal length for disparity to depth conversion

* [FW] OAK-D-LR - Fixed default image orientation

* Updated brief description that affects docs of the DetectionParser node.

* Modified API of Camera a bit

* Updated FW with Camera changes and warp capabilities

* Updated FW with Camera warp capabilities

* Added dai::span

* Added undistort/warp API to Camera node

* FW - Modifed watchdog to do a graceful reset instead

* Added additional API to retrieve timestamps at various exposure points

* Fixed documentation on ObjectTracker::setMaxObjectsToTrack

* WIP: mockIsp capabilities

* [FW] Fix for CAM_C not being detected

* Device - Added non exclusive boot option

* Slight Colormap API improvements

* [FW] Added OpenVINO version 'universal'

* Added DeviceBase convinience constructors taking name or deviceid as string

* Add mode and median support to SLC

* Disabled some of the functionality for now

* Tweaked getTimestamp & exposure offset API

* FW: IMX296 support, added THE_1440x1080 resolution

* FW: IMX296 Camera node, IMX378 1080p limited to 60fps

* Bump version to 2.20.0

* Applied formatting

* Temporary revert to macos-11 for CI due to Catch2 issues

* Update FW, API

* Update FW

* Modified OpenVINO::VERSION_UNIVERSAL

* Updated Bootloader to 0.0.24

* Bump version and FW to 2.20.1 (Status LEDs improvement)

* calibration_flash example fix

* Fixed api docs for Warp HW ids

* FW: fix crash with ColorCamera at high resolution and certain ISP scaling

* FW: fix crash with ColorCamera at high resolution and certain ISP scaling

* Bump version to 2.20.2

* Added an ColorCamera isp scale example, and modified test workflow

* Implement multi stereo support

* Implement brightness filter

* FW: fix OV9282 SW-sync on devices with OV9782 RGB camera

* Update FW: Fix OOM due to too many SIPP pipelines

* Modified default device config OpenVINO version to universal

* Merge branch 'catch2_update'

* FW: handle EEPROM `boardOptions` bit 7 for separate I2C on L/R

* FW: fix for IMX378/477/577 on sockets other than RGB

* Update FW: support for stereo alignment to original left or right inputs; OOM fix for 4 stereo nodes with median filter

* Update FW: parsing optimization and improvements for Yolo v6, v6r2, v8

* Update FW w/ syncing stall fix

* Update stereo with more robust frame sync

* Update FW with optional override of spec translation for stereo algorithm calculations

* Correct type

* Update SPIOut.hpp

to address error C4458: declaration of 'id' hides class member

* Expose center alignment scale factor for debug purposes

* Expose SIPP mempool configurable sizes

* Update FW

* Fixed usage of DeviceBootloader with incomplete DeviceInfo and added a convinience constructor

* Closes: #714

* Add alpha scaling option for StereoDepth

* Update FW before merge

* Update FW with RGB alignment fix

* Update FW with performance metrics when DEPTHAI_LEVEL=info is enabled; enable brightness filter for 0 intensity pixels by default

* Improve spatial calculation X and Y accuracy; fix RGB alignment when custom output depth size is specified

* [XLink] Increased max number of links from 32 to 64

* Add crash dump functionality

* Change API to return just crash dump

* Update FW with commit hash attached to crash dump

* Update FW with fix for serialization of thread name

* Add hasCrashDump API

* Update FW

* Update FW, crash dump contains device ID

* Enable MEDAIN spatial calculation method for SpatialDetectionNetwork

* Update FW

* Update docs

* FW: HW sync (trigger mode) enabled for OAK-D-LR, for cameras with matching FPS

* Change default SIPP buffer sizes

* Add 3A skipping option to reduce CPU usage

* Change API to be able to configure isp 3A FPS

* Update BoarConfig with limits

* Update script node python bindings

* Update FW: Add workaround for BNO sequence number limit of 256 (sensors sends uint8)

* FW: camera sensor improvements:
- AR0234 improved AE smoothness, increased max gain to 400x (first 25.6x analog),
- OV9782 on RGB/CAM-A socket max FPS: 120 (previously was only for OV9282), also improves image quality in very bright light,
- OV9782/9282 minimum exposure time decreased: 20us -> 10us, helps in very bright light. TODO update tuning to make use of it, currently only possible to use with manual exposure

* Update stereo_depth_video.cpp

* Enable interrupt mode: Update BMI driver with fixes from: boschsensortec/BMI270_SensorAPI#16

* Update ObjectTracker with improvements from rvc3

* Add API to set trackingPerClass in ObjectTracker node

* Update FW before merge

* Update FW with IMU fix for BNO

* Add IMU versioning; firmware versioning, firmware update status callbacks

* Update FW with fix for BMI timestamp

* Update FW: IMU support for OAK-D-SR

* Fix 'default constrictible' error on some compilers

* Update FW

* Add IMU FW update RPC

* Updated yolo description

* Update examples

* Update FW with deprecation warning for enableFirmwareUpdate

* Change imu version to imu type

* Update FW before merge

* Added C++14 requirement to examples & tests

* Tweaked crash_report example

* [FW] Added missing bindings for CameraControl and ImgFrame

* Update FW with fix for calibration load example

* fix stability_stress_test fail to link on ubuntu

- fixes #769

* fix isClosed/checkClosed threading, rpcClient exceptions

- remove thread-unsafe checkClosed()
- update isClosed() doxygen + comments
- protect DataInputQueue::maxDataSize with std::atomic
- remove unused dai::DeviceBase::rpcStream
- fixes #520

* fix var hides class member, this-> in constructors

- fix few compile warn 'ex' unreferenced local variable
- rename setBusId() param to not hide class member
- refactor XLinkConnection constructors
- partial fix #247

* fix: stdexcept header added for std::runtime_error

Signed-off-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>

* [FW] Removed UTF-8 degree sign from temperature prints. Closes: #773

* Move sipp buffer size from BoardConfig to GlobalProperties

* Update style

* Partially reverted bce1444 - only kept the C++14 specified in examples, tests already had the version specified

* [Stereo] Add option to invalidate edge pixels on disparity/depth frame

* Update FW: handle disparity flipping

* Update FW: support for stereo.setOutputSize when LEFT or RIGHT alignment is set

* Update FW: support for stereo between RGB and LEFT/RIGHT

* [FW] ImageManip CSC improvements, New boards and power cycle fix

* FW: fix for UART0 / '/dev/ttyS0' init failure in Script node

* Update FW with fix for USB devices stuck after reboot

* Release v2.21.0

* Fix device destructor

* Update FW: fix spatial location calculator for 400p/480p resolution

* Release v2.21.1

* FW: Fix camera intrinsics when RGB alignment is used

* Release v2.21.2

* FW: fix running 4 cameras with Ethernet,
4th cam enabled didn't stream due to device memory allocation

* prevent duplicate xlink stream names

- fixes #469
- add test case

* [FW] Fix for OAK-D-SR camera enumeration

* [FW] OAK-D-LR R1 preparation

* [FW / BL] Updated both FW & BL for OAK-D-LR R1. ETH fixes and moved to BNO086 IMU.

* [BL] Updated to 0.0.25 release

* Deprecated misleading board socket aliases

* [FW] Match shared

* Tweaked naming a bit more

* WIP: Refactoring constructors

* Added 2 additional board socket enums

* Removed ;

* Updated FW and fixed Device constructors

* Added more checks when parsing message and a test

* Add get/set to all config messages

* Refactored logging to use device logger and capability to modify log levels for a specific device

* Added custom spdlog logger library usage and exposed profiling data globally and per device

* Updated XLink with new functionality and increased PoE search time

* Added means of grabbing global profiling data as well

* Updated XLink with 255.255.255.255 discovery added

* Applied formatting

* [Stereo] Fix auto distortion correction for 400p

* [Stereo] Fix temporal filter crash on startup

* Add missing info log level

* Logging: fixed `DEPTHAI_DEBUG=1` causing a crash at init,
`__gnu_cxx::recursive_init_error` exception due to `logger::get_level()` call

* CrashDump: add optional clear of crash dump, enabled by default

* Color/Mono/Camera: add `setRawOutputPacked` config
-- cherry-picked, FW and shared updated in upcoming commit

* ImgFrame: handle RAW10/12/14 (unpacked) like RAW16

* ToF node with ToFConfig
-- cherry-picked and squashed

* `make clangformat`

* FW: UVC: H.264 with `ImgFrame::Type::BITSTREAM`, few more config checks

* Device: fix some constructors to forward pipeline DeviceConfig

* Modified XLink to a temporary branch

* Updated XLink with fixed winusb mxid retrieval

* FW: Stereo: handle queue blocking settings

* [FW] Updated for some devices and ToF

* Added filter by device name

* [FW] WIP for S2 PoE boards

* [FW] WIP for new SoMs

* Fixed build

* [FW] Fixed camera orientation

* Bump version to v2.22.0

* FW: update IMX296 tuning

* [FW] Fixed OAK-D-SR and OV9782 issues

* updated the version in package.xml

* updated the changelog

* merge bugs fix

---------

Signed-off-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>
Co-authored-by: moratom <47612463+moratom@users.noreply.github.com>
Co-authored-by: Martin Peterlin <martin.peterlin7@gmail.com>
Co-authored-by: camblomquist <cameron@blomqu.ist>
Co-authored-by: Cameron Blomquist <cblomquist@lsa2.com>
Co-authored-by: Tommy <tomprochazka0@gmail.com>
Co-authored-by: SzabolcsGergely <szabi@luxonis.com>
Co-authored-by: Erol444 <erol123444@gmail.com>
Co-authored-by: szabi-luxonis <60790666+szabi-luxonis@users.noreply.github.com>
Co-authored-by: alex-luxonis <alex@luxonis.com>
Co-authored-by: anonymous-1000 <124404305+anonymous-1000@users.noreply.github.com>
Co-authored-by: TheMarpe <martin@luxonis.com>
Co-authored-by: Dale Phurrough <dale@hidale.com>
Co-authored-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>
Co-authored-by: Florin Buica <florin.buica@luxonis.com>
Co-authored-by: alex-luxonis <60824841+alex-luxonis@users.noreply.github.com>
saching13 added a commit that referenced this issue Nov 15, 2023
* Update FW w/ syncing stall fix

* Update stereo with more robust frame sync

* Update FW with optional override of spec translation for stereo algorithm calculations

* Correct type

* Update SPIOut.hpp

to address error C4458: declaration of 'id' hides class member

* Expose center alignment scale factor for debug purposes

* Expose SIPP mempool configurable sizes

* Update FW

* Fixed usage of DeviceBootloader with incomplete DeviceInfo and added a convinience constructor

* Closes: #714

* Add alpha scaling option for StereoDepth

* Update FW before merge

* Update FW with RGB alignment fix

* Update FW with performance metrics when DEPTHAI_LEVEL=info is enabled; enable brightness filter for 0 intensity pixels by default

* Improve spatial calculation X and Y accuracy; fix RGB alignment when custom output depth size is specified

* [XLink] Increased max number of links from 32 to 64

* Add crash dump functionality

* Change API to return just crash dump

* Update FW with commit hash attached to crash dump

* Update FW with fix for serialization of thread name

* Add hasCrashDump API

* Update FW

* Update FW, crash dump contains device ID

* Enable MEDAIN spatial calculation method for SpatialDetectionNetwork

* Update FW

* Update docs

* FW: HW sync (trigger mode) enabled for OAK-D-LR, for cameras with matching FPS

* Change default SIPP buffer sizes

* Add 3A skipping option to reduce CPU usage

* Change API to be able to configure isp 3A FPS

* Update BoarConfig with limits

* Update script node python bindings

* Update FW: Add workaround for BNO sequence number limit of 256 (sensors sends uint8)

* FW: camera sensor improvements:
- AR0234 improved AE smoothness, increased max gain to 400x (first 25.6x analog),
- OV9782 on RGB/CAM-A socket max FPS: 120 (previously was only for OV9282), also improves image quality in very bright light,
- OV9782/9282 minimum exposure time decreased: 20us -> 10us, helps in very bright light. TODO update tuning to make use of it, currently only possible to use with manual exposure

* Update stereo_depth_video.cpp

* Enable interrupt mode: Update BMI driver with fixes from: boschsensortec/BMI270_SensorAPI#16

* Update ObjectTracker with improvements from rvc3

* Add API to set trackingPerClass in ObjectTracker node

* Update FW before merge

* Update FW with IMU fix for BNO

* Add IMU versioning; firmware versioning, firmware update status callbacks

* Update FW with fix for BMI timestamp

* Update FW: IMU support for OAK-D-SR

* Fix 'default constrictible' error on some compilers

* Update FW

* Add IMU FW update RPC

* Updated yolo description

* Update examples

* Update FW with deprecation warning for enableFirmwareUpdate

* Change imu version to imu type

* Update FW before merge

* Added C++14 requirement to examples & tests

* Tweaked crash_report example

* [FW] Added missing bindings for CameraControl and ImgFrame

* Update FW with fix for calibration load example

* fix stability_stress_test fail to link on ubuntu

- fixes #769

* fix isClosed/checkClosed threading, rpcClient exceptions

- remove thread-unsafe checkClosed()
- update isClosed() doxygen + comments
- protect DataInputQueue::maxDataSize with std::atomic
- remove unused dai::DeviceBase::rpcStream
- fixes #520

* fix var hides class member, this-> in constructors

- fix few compile warn 'ex' unreferenced local variable
- rename setBusId() param to not hide class member
- refactor XLinkConnection constructors
- partial fix #247

* fix: stdexcept header added for std::runtime_error

Signed-off-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>

* [FW] Removed UTF-8 degree sign from temperature prints. Closes: #773

* Move sipp buffer size from BoardConfig to GlobalProperties

* Update style

* Partially reverted bce1444 - only kept the C++14 specified in examples, tests already had the version specified

* [Stereo] Add option to invalidate edge pixels on disparity/depth frame

* Update FW: handle disparity flipping

* Update FW: support for stereo.setOutputSize when LEFT or RIGHT alignment is set

* Update FW: support for stereo between RGB and LEFT/RIGHT

* [FW] ImageManip CSC improvements, New boards and power cycle fix

* Update FW: support for configurable ImageManip interpolation type

* FW: fix for UART0 / '/dev/ttyS0' init failure in Script node

* Update API to use dai::Interpolation

* Update FW with latest develop fixes

* Update FW with fix for USB devices stuck after reboot

* Update shared

* Release v2.21.0

* Fix device destructor

* Update FW: fix spatial location calculator for 400p/480p resolution

* Release v2.21.1

* FW: Fix camera intrinsics when RGB alignment is used

* Release v2.21.2

* FW: fix running 4 cameras with Ethernet,
4th cam enabled didn't stream due to device memory allocation

* prevent duplicate xlink stream names

- fixes #469
- add test case

* [FW] Fix for OAK-D-SR camera enumeration

* [FW] OAK-D-LR R1 preparation

* [FW / BL] Updated both FW & BL for OAK-D-LR R1. ETH fixes and moved to BNO086 IMU.

* [BL] Updated to 0.0.25 release

* Deprecated misleading board socket aliases

* [FW] Match shared

* Tweaked naming a bit more

* WIP: Refactoring constructors

* Added 2 additional board socket enums

* Removed ;

* Updated FW and fixed Device constructors

* Added more checks when parsing message and a test

* Add get/set to all config messages

* Refactored logging to use device logger and capability to modify log levels for a specific device

* Added custom spdlog logger library usage and exposed profiling data globally and per device

* Updated XLink with new functionality and increased PoE search time

* Added means of grabbing global profiling data as well

* Updated XLink with 255.255.255.255 discovery added

* Applied formatting

* [Stereo] Fix auto distortion correction for 400p

* [Stereo] Fix temporal filter crash on startup

* Add missing info log level

* Logging: fixed `DEPTHAI_DEBUG=1` causing a crash at init,
`__gnu_cxx::recursive_init_error` exception due to `logger::get_level()` call

* CrashDump: add optional clear of crash dump, enabled by default

* Color/Mono/Camera: add `setRawOutputPacked` config
-- cherry-picked, FW and shared updated in upcoming commit

* ImgFrame: handle RAW10/12/14 (unpacked) like RAW16

* ToF node with ToFConfig
-- cherry-picked and squashed

* `make clangformat`

* FW: UVC: H.264 with `ImgFrame::Type::BITSTREAM`, few more config checks

* Device: fix some constructors to forward pipeline DeviceConfig

* Modified XLink to a temporary branch

* Updated XLink with fixed winusb mxid retrieval

* FW: Stereo: handle queue blocking settings

* [FW] Updated for some devices and ToF

* Added filter by device name

* [FW] WIP for S2 PoE boards

* [FW] WIP for new SoMs

* Fixed build

* [FW] Fixed camera orientation

* Add example for read calibration in script node

* Bump version to v2.22.0

* Add to cmake and fix errors

* FW: update IMX296 tuning

* [FW] Fixed OAK-D-SR and OV9782 issues

* Change printf to node.info in script node read calibration example

* ToF: Add median filter support

* Update FW to latest develop

* FW: Stereo: Apply alpha scaling parameter to RGB intrinsics when RGB alignment is enabled

* FW: fix CAM_D enumeration on OAK-FFC-4P R7

* Camera: move alpha parameter as optional to be consistent with stereo

* Update FW

* BMI: Fix accumulating latency due to slow xlink read

* Fix constructors overriding maxUsbSpeed

* hasAutofocus fix based on device name/lensPosition

* WIP: Device name improvements

* Added improvements to device naming

* Fixed device related logging

* Moved ts, tsDevice, and sequenceNum from descendants to RawBuffer

* Added getters and setters

* z_map for tof

* ts to tsDevice fix

* Updated ColorCamera's setSensorCrop comment for documentation

* Removed redundant getters and setters

* FW: add support for OAK-D-SR-PoE R1M1E1

* Fixed mistake in ImgFrame

* Ran ClangFormat

* Added DEPTHAI_ENABLE_LIBUSB option, to enable/disable USB protocol in build time

* Applied style

* Updated XLink library with some fixes

* FW: fix default fsync on OAK-D-SR-PoE. GPIO46 input by default

* hasautofocusIC

* FW: fix 4 cams crash on PoE due to memory allocation

* Update FW / shared

* FW: fix OAK-D-SR camera enum. IMX296 updates:
- support for RPi GS Cam paired with Luxonis SL6996 RPi camera adapter
- support for external trigger on XTR/XTRIG pin: active low, pulse width determines exposure time. Limitation:
needs an initial trigger shortly after start to avoid a crash, or `DEPTHAI_WATCHDOG=0` can be a workaround

* Attempt to fix serialization error on windows compiler

* Update FW

* Implemented timesync optimization

* Fixed new timesync bugs

* Moved treceive back to XLink

* Changes according to PR issue

* Clangformat

* Bump FW

* WIP: Device name improvements

* Added improvements to device naming

* FIXME: does not work on rpi

* Updated FW with changes

* Bump shared

* Fixed compiler error

* Changed struct timespec to custom struct to fix RPI size issues

* Bump shared

* FW, ColorCamera: add new almost-full-FOV resolutions for IMX378/477, scaled:
1352x1012, 4lane-only, 1/3 scaling
2024x1520, 1/2 binning

* Fixed incorrect warp in issue #882

* [FW] OAK-D SR PoE and ToF improvements

* [FW] Improved OV9782 fps handling

* Updated FW & XLink with backward compatible timestamping

* FW: fixes for AR0234 fsync, AR0234 AE max exposure: 16->33 ms,
more robust camera handling (especially in sync modes)

* fixed the order of translation multiplication

* clang update

* [FW] deviceName fixes and updated for EepromData changes

* Increased num XLink connections to 64

* Bumped num XLink connections to 64

* Update README.md

* Update changelog and package xml

* removed merge dubpicate

---------

Signed-off-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>
Co-authored-by: SzabolcsGergely <szabi@luxonis.com>
Co-authored-by: anonymous-1000 <124404305+anonymous-1000@users.noreply.github.com>
Co-authored-by: TheMarpe <martin@luxonis.com>
Co-authored-by: TheMarpe <martin.peterlin7@gmail.com>
Co-authored-by: alex-luxonis <alex@luxonis.com>
Co-authored-by: Erol444 <erol123444@gmail.com>
Co-authored-by: szabi-luxonis <60790666+szabi-luxonis@users.noreply.github.com>
Co-authored-by: Dale Phurrough <dale@hidale.com>
Co-authored-by: Onuralp SEZER <thunderbirdtr@fedoraproject.org>
Co-authored-by: Florin Buica <florin.buica@luxonis.com>
Co-authored-by: alex-luxonis <60824841+alex-luxonis@users.noreply.github.com>
Co-authored-by: Andrej Susnik <andrej.susnik@luxonis.com>
Co-authored-by: Aniel Alexa <aniel.alexa@luxonis.com>
Co-authored-by: AnielAlexa <139551403+AnielAlexa@users.noreply.github.com>
Co-authored-by: asahtik <asahtik@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants