-
Notifications
You must be signed in to change notification settings - Fork 273
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
base: master
Are you sure you want to change the base?
Conversation
niklaspandersson
commented
Sep 23, 2024
•
edited
Loading
edited
- 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
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. |
There was a problem hiding this 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()) |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
// TODO: Add support for hdr frames | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// TODO: Add support for hdr frames |