Skip to content

feat(decklink-input): expose profile, persistent-id, do-timestamp#551

Closed
srperens wants to merge 1 commit intomainfrom
feat/decklink-input-extra-props
Closed

feat(decklink-input): expose profile, persistent-id, do-timestamp#551
srperens wants to merge 1 commit intomainfrom
feat/decklink-input-extra-props

Conversation

@srperens
Copy link
Copy Markdown
Collaborator

@srperens srperens commented May 6, 2026

Summary

Three new properties on the DeckLink Input block, all defaults preserved so existing flows are unaffected:

  • profile (enum) — sub-device profile selection (one/two/four sub-devices, full/half-duplex). Default default keeps Desktop Video Setup config. Lets a flow control sub-device layout on Quad 2 / Duo 2 / 8K Pro cards without manual GUI changes.
  • persistent_id (i64) — stable device ID across reboots, profile changes, and PCIe re-enumeration. Higher priority than device_number when non-default. Default -1 falls back to device-number.
  • do_timestamp (bool) — when true, applies the pipeline clock to each buffer's PTS at capture. Required for absolute-timestamp setups (e.g. TAI pipeline clock + EFP/SRT 64-bit absolute timestamps). Default false.

Applied to both decklinkvideosrc and decklinkaudiosrc where each property exists. profile is video-only (audiosrc doesn't expose it).

DECKLINK_PROFILES constant + decklink_profile_enum_values() helper added to strom-types/block.rs, matching the existing DECKLINK_VIDEO_FORMATS pattern.

Test plan

  • cargo check clean
  • cargo test — all 408 pass (one volume-ramp flake re-passes in isolation, unrelated)
  • cargo test --test openapi_test clean
  • Pre-commit (fmt + clippy + secret scan) passes
  • Verify on str host: set profile from a flow definition and confirm the active card profile changes; set do_timestamp=true and confirm buffer PTS uses pipeline clock

🤖 Generated with Claude Code

Three new properties on the DeckLink Input block, all defaults preserved
so existing flows are unaffected:

- **profile**: sub-device profile selection (one-sub-device-full /
  one-sub-device-half / two-sub-devices-full / two-sub-devices-half /
  four-sub-devices-half). Default `default` keeps whatever profile
  Desktop Video Setup has configured. Lets a flow control sub-device
  layout on Quad 2 / Duo 2 / 8K Pro cards without requiring manual
  GUI changes on the host.

- **persistent_id**: DeckLink persistent device ID (i64). Stable across
  reboots, profile changes, and PCIe re-enumeration. Higher priority
  than `device_number` when set to a non-default value. Default `-1`
  keeps current device-number behaviour.

- **do_timestamp**: when true, the source applies the pipeline clock
  to each buffer's PTS at capture. Required for absolute-timestamp
  setups (TAI pipeline clock + EFP/SRT 64-bit absolute timestamps).
  Default `false` preserves GStreamer's standard stream-time behaviour.

Applied to both `decklinkvideosrc` and `decklinkaudiosrc` where each
property exists. `profile` is video-only (audiosrc doesn't expose it).

A new `DECKLINK_PROFILES` constant + `decklink_profile_enum_values()`
helper live in `strom-types/block.rs`, matching the existing
`DECKLINK_VIDEO_FORMATS` pattern.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@srperens srperens marked this pull request as draft May 7, 2026 13:49
@srperens srperens closed this May 8, 2026
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

Successfully merging this pull request may close these issues.

1 participant