36 lines
896 B
C++
36 lines
896 B
C++
#include "NdiInputFormat.h"
|
|
|
|
#include <array>
|
|
#include <cstdint>
|
|
|
|
namespace RenderCadenceCompositor
|
|
{
|
|
const char* NdiFourCcName(NDIlib_FourCC_video_type_e fourCc)
|
|
{
|
|
static thread_local std::array<char, 5> text = {};
|
|
const auto value = static_cast<uint32_t>(fourCc);
|
|
text[0] = static_cast<char>(value & 0xff);
|
|
text[1] = static_cast<char>((value >> 8) & 0xff);
|
|
text[2] = static_cast<char>((value >> 16) & 0xff);
|
|
text[3] = static_cast<char>((value >> 24) & 0xff);
|
|
text[4] = '\0';
|
|
return text.data();
|
|
}
|
|
|
|
bool MapNdiFourCcToVideoIOPixelFormat(NDIlib_FourCC_video_type_e fourCc, VideoIOPixelFormat& pixelFormat)
|
|
{
|
|
switch (fourCc)
|
|
{
|
|
case NDIlib_FourCC_video_type_BGRA:
|
|
case NDIlib_FourCC_video_type_BGRX:
|
|
pixelFormat = VideoIOPixelFormat::Bgra8;
|
|
return true;
|
|
case NDIlib_FourCC_video_type_UYVY:
|
|
pixelFormat = VideoIOPixelFormat::Uyvy8;
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
}
|