#include "jetson_plane_layout.h"
namespace livekit {
int ResolvePlaneStride(const PlaneLayoutHints& hints,
int expected_height,
int min_stride,
int fallback) {
if (hints.fmt_stride >= min_stride) {
return hints.fmt_stride;
}
if (hints.probed_pitch >= min_stride) {
return hints.probed_pitch;
}
int best = 0;
if (hints.plane_length > 0) {
if (hints.fmt_height > 0) {
const int derived = hints.plane_length / hints.fmt_height;
if (derived >= min_stride) {
best = derived;
}
}
if (best == 0 && expected_height > 0) {
const int derived = hints.plane_length / expected_height;
if (derived >= min_stride) {
best = derived;
}
}
}
int stride = best > 0 ? best : fallback;
if (stride < min_stride) {
stride = min_stride;
}
if (expected_height > 0 && hints.plane_length > 0) {
const int max_stride = hints.plane_length / expected_height;
if (max_stride > 0 && stride > max_stride) {
stride = max_stride;
}
}
return stride;
}
int ResolvePlaneHeight(bool have_probe, int probed_height, int expected_height) {
if (have_probe && probed_height >= expected_height) {
return probed_height;
}
return expected_height;
}
}