hardcoded decklink mode fix

This commit is contained in:
Johanness
2026-05-28 23:43:26 +03:00
parent 96bef6cd32
commit 34f72c22f0
12 changed files with 222 additions and 35 deletions
+9 -3
View File
@@ -201,10 +201,15 @@ void DeckLinkOutNode::process() {
mxlFlowConfigInfo config{};
mxlFlowReaderGetConfigInfo(*reader_, &config);
auto grain_size = grain_info.grainSize;
auto height = config.discrete.grainCount > 0 ? 1080 : 1080;
auto row_bytes = grain_size / height;
schedule_frame(payload, 1920, height, row_bytes);
long height = 1080;
if (config.discrete.sliceSizes[0] > 0) {
height = grain_size / config.discrete.sliceSizes[0];
}
long row_bytes = (config.discrete.sliceSizes[0] > 0) ? static_cast<long>(config.discrete.sliceSizes[0]) : (grain_size / height);
long width = (row_bytes * 3) / 8;
schedule_frame(payload, width, height, row_bytes);
read_index_ = grain_info.index + 1;
grains_read_++;
@@ -221,6 +226,7 @@ nlohmann::json DeckLinkOutNode::status() const {
{"read_index", read_index_},
{"playing", playing_.load()},
{"has_reader", reader_.has_value()},
{"grain_rate", {{"numerator", grain_rate_.numerator}, {"denominator", grain_rate_.denominator}}},
};
}