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

Decklink: Use v210 in high bitdepth color path #1573

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

niklaspandersson
Copy link
Member

@niklaspandersson niklaspandersson commented Sep 23, 2024

  • Update decklink consumer to use v210 as pixelformat when using high bit-depth colors
  • Refactor decklink consumer by introducing a format strategy pattern to separate code paths for 8bpc and 16bpc color frames
  • Simplify bringing the "HDR" code path to feature parity with the 8bpc path
  • Bumps the simd instruction set requirements to avx2. I don't know how you feel about this
  • Better performance than 10RGBXLE

@deadbeef84
Copy link
Contributor

Perhaps important to mention here, the motivation for making this change was that 10RGBXLE doesn't work with all formats, for 4Kp30 and above decklink requires you to use v210.

Copy link
Member

@Julusian Julusian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no objection to requiring AVX2. Especially as it has been around since 2013, which is longer than the version of opengl we require.

@@ -455,6 +465,7 @@ struct decklink_secondary_port final : public IDeckLinkVideoOutputCallback
int device_sync_group)
: config_(config)
, output_config_(std::move(output_config))
, format_strategy_(new sdr_bgra_strategy())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be hardcoded as sdr?


namespace caspar { namespace decklink {

class hdr_v210_strategy
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's already the format_strategy interface, perhaps instead of using the pimpl pattern here it would be easier to use a loose create_hdr_v210_strategy function?

I don't mind either way, just wondering if the extra boilerplate that this approach has is beneficial.

Comment on lines +82 to +83
// TODO: Add support for hdr frames

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// TODO: Add support for hdr frames

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.

3 participants