Skip to content
Snippets Groups Projects
bitrates.cpp 1.14 KiB
Newer Older
#include <ftl/codecs/codecs.hpp>
#include <cmath>

using ftl::codecs::definition_t;
using ftl::codecs::codec_t;

static const float kAspectRatio = 1.777778f;

struct Resolution {
	int width;
	int height;
};

static const Resolution resolutions[] = {
	7680, 4320,		// UHD8k
	3840, 2160,		// UHD4k
	1920, 1080,		// HD1080
	1280, 720,		// HD720
	1024, 576,		// SD576
	854, 480,		// SD480
Sebastian Hahta's avatar
Sebastian Hahta committed
	640, 360,		// LD360
	0, 0,			// ANY
	1852, 2056,		// HTC_VIVE
	0, 0
};

int ftl::codecs::getWidth(definition_t d) {
	return resolutions[static_cast<int>(d)].width;
}

int ftl::codecs::getHeight(definition_t d) {
	return resolutions[static_cast<int>(d)].height;
}

Nicolas Pope's avatar
Nicolas Pope committed
definition_t ftl::codecs::findDefinition(int width, int height) {
	int best = 0;

	for(const Resolution res : resolutions) {
		if ((res.width == width) && (res.height == height)) {
			return static_cast<definition_t>(best);
		}
		best++;
	}

	return definition_t::Invalid;
definition_t ftl::codecs::findDefinition(int height) {
	int best = 0;

	for(const Resolution res : resolutions) {
		if (res.height == height) {
			return static_cast<definition_t>(best);
		}
		best++;
	}

	return definition_t::Invalid;
}