Skip to content

Astra2 multi-camera streaming freezes after long runtime with hardware trigger sync #202

@AnasMobasher2

Description

@AnasMobasher2

Describe the bug

When using OrbbecViewer or the SDK to stream multiple Astra2 cameras with hardware trigger synchronization, individual camera streams randomly freeze after extended runtime (~3 hours). When this occurs, the affected camera stops responding and requires restarting the stream to recover.

The same behavior is also observed when configuring the cameras programmatically using the SDK (C++) with the same stream types (OB_STREAM_DEPTH, OB_STREAM_COLOR, OB_STREAM_IR).

Freezing of secondary camera streams occurs more frequently when stopping and restarting the primary camera stream.

Additionally, using OB_FORMAT_Y16 for the depth stream increases the likelihood of freezes, while OB_FORMAT_ANY reduces (but does not eliminate) the issue.


Reproduction Steps
Steps to reproduce the behavior:

  1. Connect 12 Astra2 cameras across 2 hardware trigger hubs (each camera connected to a different computer).
  2. Configure:
    • 1 camera as primary
    • 11 cameras as secondary_sync
    • 5000 µs delay between secondary cameras
  3. Configure each camera with:
    • FPS: 10
    • Color: 1920×1080
    • Depth: 1600×1200 (OB_FORMAT_Y16)
    • IR: 1600×1200
  4. Start streaming on all cameras.
  5. Let the system run continuously (~2 hours or more).

Observed behavior

  • One camera stream freezes randomly.
  • Over time, additional cameras freeze.
  • Restarting the primary camera stream increases the frequency of freezes on secondary cameras.
  • Recovery requires restarting pipelines/streams.

Additional reproduction (SDK)
The same issue occurs when using the SDK in C++ with:

  • enableVideoStream for:
    • OB_STREAM_DEPTH (1600×1200, OB_FORMAT_Y16)
    • OB_STREAM_COLOR (1920×1080, OB_FORMAT_RGB)
    • OB_STREAM_IR (1600×1200, OB_FORMAT_Y16)

The behavior is consistent with OrbbecViewer results.

Log Output

  • No consistent error messages observed.
  • When a freeze occurs:
    • Frames stop updating for affected camera(s).
    • Pipelines remain active, but no new frames are received.
    • When querying camera temperature, the following warning appears:
[02/05 12:54:56.235076][warning][30476][obException.hpp:48] Request failed, statusCode: 5, msg: Device response with bad magic, magic=0x0, expectOpCode=0x4252
  • Recovers after stream pipeline restart

System Environment:

  • OS: Windows 11
  • Architecture: x86_64
  • Compiler: Microsoft Visual Studio 2022 (MSVC)

Tool/SDK Version:

  • SDK: v2
  • OrbbecViewer:
    • v1.10.22
    • v2.5.5

Device Information:

  • Model: Astra2
  • Firmware Version: 2.8.20

Additional context

  • Issue is reproducible in both OrbbecViewer and SDK-based applications.
  • Appears related to:
    • Hardware trigger synchronization
    • Multi-camera streaming load
    • Depth stream format (OB_FORMAT_Y16 vs OB_FORMAT_ANY)
  • Using OB_FORMAT_ANY reduces the frequency but does not fully resolve the issue.
  • Restarting pipelines is currently the only recovery method.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions