Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • cali
  • dev
  • master
3 results

Target

Select target project
  • sugu/vimba
1 result
Select Git revision
  • cali
  • dev
  • master
3 results
Show changes
Commits on Source (1)
#include "console.h"
#include "qcoreapplication.h"
#include "qnamespace.h"
#include "../utils.h"
#include <QDebug>
#include <QCoreApplication>
......@@ -20,18 +23,30 @@ void Console::listenKeys()
}
}
void Console::updateCam(const QStringList& camInfo )
void Console::print(const QString& str )
{
qDebug() << str;
}
void Console::printList(QStringList& list )
{
qDebug() << camInfo;
for ( auto& str : list )
{
str.replace(DELIM," ");
qDebug() << str << " ";
}
}
Controller::Controller()
{
Console *console = new Console;
Console* console = new Console;
console->moveToThread(&thread);
connect(&thread, &QThread::finished, console, &QObject::deleteLater);
connect(this, &Controller::operate, console, &Console::listenKeys);
connect(console, &Console::keyPressed, this, &Controller::keyPress);
connect(this, &Controller::print, console, &Console::print, Qt::DirectConnection); //just delegate to console
connect(this, &Controller::printList, console, &Console::printList, Qt::DirectConnection); //just delegate to console
thread.start();
}
......@@ -44,14 +59,33 @@ Controller::~Controller()
void Controller::keyPress(const QChar& key)
{
qDebug() << __FUNCTION__ << "u pressed " << key;
switch (key.unicode())
qDebug() << __FUNCTION__ << ": " << key;
if ( key.isDigit() )
{
case 'l':
emit listCams();
break;
case 'q':
qApp->quit();
break;
emit selectCam(key.digitValue());
}
else
{
switch (key.unicode())
{
case 'h':
emit printHelp();
break;
case 'o':
emit openCam();
break;
case 'l':
emit listCams();
break;
case 'v':
emit printVersion();
break;
case 'q':
qApp->quit();
break;
}
}
}
......@@ -11,8 +11,10 @@ class Console : public QObject
Q_OBJECT
public slots:
void updateCam(const QStringList &);
void listenKeys();
void print(const QString&);
void printList(QStringList&);
// ...
signals:
void keyPressed(const QChar &key);
......@@ -33,8 +35,21 @@ class Controller : public QObject
signals:
void operate();
void print(const QString&);
void printList(QStringList&);
void listCams();
void printVersion();
void openCam();
void printHelp();
void selectCam(int);
// void openCam();
// void calibrateCam();
// void startRecording();
// void stopRecording();
// void loadSettings();
// void storeSettings();
// ... more signals here
};
......@@ -6,7 +6,6 @@
#include <VmbCPP/VmbCPP.h>
// #include "qglobal.h"
#include <QDebug>
using namespace VmbCPP;
......@@ -15,20 +14,18 @@ Core::Core() :
apiStarted( false ),
sys( VmbSystem::GetInstance() ), // Create and get Vimba singleton
cameras( CameraPtrVector() ), // Holds camera handles
camIdx(0)
camIdx(-1),
curCam(NULL)
{
if ( VmbErrorSuccess == sys.Startup() )
{
apiStarted = true;
qDebug() << "init API :)";
}
else
if ( VmbErrorSuccess != sys.Startup() )
{
qDebug() << "Couldn't initialize API";
exit(1); //add err code
}
apiStarted = true;
qDebug() << "init API :)";
initCams();
}
......@@ -37,6 +34,12 @@ void Core::initCams()
if ( VmbErrorSuccess == sys.GetCameras( cameras ) )
{
qDebug() << "found " << cameras.size() << " cameras";
if (cameras.size())
{
camIdx = 0; //dflt to 1rst
curCam = cameras.at(camIdx);
}
}
else
{
......@@ -71,48 +74,60 @@ void Core::setCam(ulong idx)
void Core::listCams()
{
qDebug() << __FUNCTION__ << "():" << __LINE__;
if( !apiStarted )
return;
// id,name,model,serial,interfaceID
std::for_each( cameras.begin(), cameras.end(), [this](const CameraPtr & camera)
// id,name,model,serial,interfaceID,state
QStringList allCamInfo;
auto idx=0UL;
for ( auto camera : cameras )
{
std::string str;
QStringList camInfo;
QString curCamInfo;
if (idx == camIdx )
curCamInfo += "[*]" + DELIM;
else
curCamInfo += "[ ]" + DELIM;
VmbErrorType err = camera->GetID( str );
if( VmbErrorSuccess != err )
str = errorCodeToMessage(err).toStdString();
camInfo << QString::fromStdString(str);
curCamInfo += QString::fromStdString(str) + DELIM;
err = camera->GetName( str );
if( VmbErrorSuccess != err )
str = errorCodeToMessage(err).toStdString();
camInfo << QString::fromStdString(str);
curCamInfo += QString::fromStdString(str) + DELIM;
err = camera->GetModel( str );
if( VmbErrorSuccess != err )
str = errorCodeToMessage(err).toStdString();
camInfo << QString::fromStdString(str);
curCamInfo += QString::fromStdString(str) + DELIM;
err = camera->GetSerialNumber( str );
if( VmbErrorSuccess != err )
str = errorCodeToMessage(err).toStdString();
camInfo << QString::fromStdString(str);
curCamInfo += QString::fromStdString(str) + DELIM;
err = camera->GetInterfaceID( str );
if( VmbErrorSuccess != err )
str = errorCodeToMessage(err).toStdString();
camInfo << QString::fromStdString(str);
camInfo << "closed"; //initially cams are closed, right?
curCamInfo += QString::fromStdString(str) + DELIM;
curCamInfo += "closed"; //initially cams are closed, right? XXX how to find out?
qDebug() << camInfo;
emit camsDetected(camInfo);
} );
allCamInfo << curCamInfo;
idx++;
}
// qDebug() << __LINE__ << "-" << __PRETTY_FUNCTION__ << allCamInfo;
emit camsListed(allCamInfo);
}
void Core::printVersion()
{
auto version = getVersionString();
emit versionPrinted(version);
}
#pragma once
#include "VmbCPP/SharedPointerDefines.h"
#include "qglobal.h"
#include <QObject>
#include <VmbCPP/Interface.h>
......@@ -19,9 +20,12 @@ class Core : public QObject
public slots:
void listCams();
void printVersion();
signals:
void camsDetected(const QStringList &);
void camsListed(QStringList &);
void versionPrinted(const QString &);
// ... more signals here
private:
void initCams();
......@@ -33,4 +37,5 @@ class Core : public QObject
VmbCPP::VmbSystem& sys;
VmbCPP::CameraPtrVector cameras;
ulong camIdx;
CameraPtr curCam;
};
......@@ -48,16 +48,19 @@ bool maybeCreateDir(QDir out_dir)
QCoreApplication::setApplicationName("recorder");
Controller controller;
QTimer::singleShot(0, &controller, SIGNAL(operate()));
Core core;
QObject::connect(&controller, &Controller::listCams, &core, &Core::listCams);
QObject::connect(&core, &Core::camsDetected, &console, &Console::updateCam);
//ui (controller) -> vmb (core)
QObject::connect(&controller, &Controller::listCams, &core, &Core::listCams);
QObject::connect(&controller, &Controller::printVersion, &core, &Core::printVersion);
//vmb (core) -> ui (controller)
QObject::connect(&core, &Core::camsListed, &controller, &Controller::printList);
QObject::connect(&core, &Core::versionPrinted, &controller, &Controller::print);
// for testing:
QTimer::singleShot(0, &core, SLOT(listCams()));
QTimer::singleShot(0, &controller, SIGNAL(operate()));
QTimer::singleShot(10, &core, SLOT(printVersion())); // for testing
QTimer::singleShot(15, &core, SLOT(listCams())); // for testing
......
......@@ -28,7 +28,6 @@ const QString getVersionString()
return s;
}
const QString errorCodeToMessage( VmbError_t err )
{
QString msg = "error: ";
......
......@@ -8,4 +8,6 @@ const QString getVersionString();
const QString errorCodeToMessage( VmbError_t );
QString randomString();
const QChar DELIM='|';
#endif
......@@ -342,89 +342,89 @@ extern "C" {
typedef enum VmbPixelFormatType
{
// mono formats
VmbPixelFormatMono8 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy8Bit) | 0x0001, //!< Monochrome, 8 bits (PFNC: Mono8)
VmbPixelFormatMono10 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0003, //!< Monochrome, 10 bits in 16 bits (PFNC: Mono10)
VmbPixelFormatMono10p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0046, //!< Monochrome, 10 bits in 16 bits (PFNC: Mono10p)
VmbPixelFormatMono12 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0005, //!< Monochrome, 12 bits in 16 bits (PFNC: Mono12)
VmbPixelFormatMono12Packed = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0006, //!< Monochrome, 2x12 bits in 24 bits (GEV:Mono12Packed)
VmbPixelFormatMono12p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0047, //!< Monochrome, 2x12 bits in 24 bits (PFNC: MonoPacked)
VmbPixelFormatMono14 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0025, //!< Monochrome, 14 bits in 16 bits (PFNC: Mono14)
VmbPixelFormatMono16 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0007, //!< Monochrome, 16 bits (PFNC: Mono16)
VmbPixelFormatMono8 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit) | 0x0001, //!< Monochrome, 8 bits (PFNC: Mono8)
VmbPixelFormatMono10 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0003, //!< Monochrome, 10 bits in 16 bits (PFNC: Mono10)
VmbPixelFormatMono10p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0046, //!< Monochrome, 10 bits in 16 bits (PFNC: Mono10p)
VmbPixelFormatMono12 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0005, //!< Monochrome, 12 bits in 16 bits (PFNC: Mono12)
VmbPixelFormatMono12Packed = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0006, //!< Monochrome, 2x12 bits in 24 bits (GEV:Mono12Packed)
VmbPixelFormatMono12p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0047, //!< Monochrome, 2x12 bits in 24 bits (PFNC: MonoPacked)
VmbPixelFormatMono14 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0025, //!< Monochrome, 14 bits in 16 bits (PFNC: Mono14)
VmbPixelFormatMono16 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0007, //!< Monochrome, 16 bits (PFNC: Mono16)
// bayer formats
VmbPixelFormatBayerGR8 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy8Bit) | 0x0008, //!< Bayer-color, 8 bits, starting with GR line (PFNC: BayerGR8)
VmbPixelFormatBayerRG8 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy8Bit) | 0x0009, //!< Bayer-color, 8 bits, starting with RG line (PFNC: BayerRG8)
VmbPixelFormatBayerGB8 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy8Bit) | 0x000A, //!< Bayer-color, 8 bits, starting with GB line (PFNC: BayerGB8)
VmbPixelFormatBayerBG8 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy8Bit) | 0x000B, //!< Bayer-color, 8 bits, starting with BG line (PFNC: BayerBG8)
VmbPixelFormatBayerGR10 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000C, //!< Bayer-color, 10 bits in 16 bits, starting with GR line (PFNC: BayerGR10)
VmbPixelFormatBayerRG10 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000D, //!< Bayer-color, 10 bits in 16 bits, starting with RG line (PFNC: BayerRG10)
VmbPixelFormatBayerGB10 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000E, //!< Bayer-color, 10 bits in 16 bits, starting with GB line (PFNC: BayerGB10)
VmbPixelFormatBayerBG10 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000F, //!< Bayer-color, 10 bits in 16 bits, starting with BG line (PFNC: BayerBG10)
VmbPixelFormatBayerGR12 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0010, //!< Bayer-color, 12 bits in 16 bits, starting with GR line (PFNC: BayerGR12)
VmbPixelFormatBayerRG12 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0011, //!< Bayer-color, 12 bits in 16 bits, starting with RG line (PFNC: BayerRG12)
VmbPixelFormatBayerGB12 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0012, //!< Bayer-color, 12 bits in 16 bits, starting with GB line (PFNC: BayerGB12)
VmbPixelFormatBayerBG12 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0013, //!< Bayer-color, 12 bits in 16 bits, starting with BG line (PFNC: BayerBG12)
VmbPixelFormatBayerGR12Packed = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002A, //!< Bayer-color, 2x12 bits in 24 bits, starting with GR line (GEV:BayerGR12Packed)
VmbPixelFormatBayerRG12Packed = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002B, //!< Bayer-color, 2x12 bits in 24 bits, starting with RG line (GEV:BayerRG12Packed)
VmbPixelFormatBayerGB12Packed = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002C, //!< Bayer-color, 2x12 bits in 24 bits, starting with GB line (GEV:BayerGB12Packed)
VmbPixelFormatBayerBG12Packed = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002D, //!< Bayer-color, 2x12 bits in 24 bits, starting with BG line (GEV:BayerBG12Packed)
VmbPixelFormatBayerGR10p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0056, //!< Bayer-color, 10 bits continuous packed, starting with GR line (PFNC: BayerGR10p)
VmbPixelFormatBayerRG10p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0058, //!< Bayer-color, 10 bits continuous packed, starting with RG line (PFNC: BayerRG10p)
VmbPixelFormatBayerGB10p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0054, //!< Bayer-color, 10 bits continuous packed, starting with GB line (PFNC: BayerGB10p)
VmbPixelFormatBayerBG10p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0052, //!< Bayer-color, 10 bits continuous packed, starting with BG line (PFNC: BayerBG10p)
VmbPixelFormatBayerGR12p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0057, //!< Bayer-color, 12 bits continuous packed, starting with GR line (PFNC: BayerGR12p)
VmbPixelFormatBayerRG12p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0059, //!< Bayer-color, 12 bits continuous packed, starting with RG line (PFNC: BayerRG12p)
VmbPixelFormatBayerGB12p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0055, //!< Bayer-color, 12 bits continuous packed, starting with GB line (PFNC: BayerGB12p)
VmbPixelFormatBayerBG12p = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0053, //!< Bayer-color, 12 bits continuous packed, starting with BG line (PFNC: BayerBG12p)
VmbPixelFormatBayerGR16 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x002E, //!< Bayer-color, 16 bits, starting with GR line (PFNC: BayerGR16)
VmbPixelFormatBayerRG16 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x002F, //!< Bayer-color, 16 bits, starting with RG line (PFNC: BayerRG16)
VmbPixelFormatBayerGB16 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0030, //!< Bayer-color, 16 bits, starting with GB line (PFNC: BayerGB16)
VmbPixelFormatBayerBG16 = static_cast<uint8_t>(VmbPixelMono) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0031, //!< Bayer-color, 16 bits, starting with BG line (PFNC: BayerBG16)
VmbPixelFormatBayerGR8 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit) | 0x0008, //!< Bayer-color, 8 bits, starting with GR line (PFNC: BayerGR8)
VmbPixelFormatBayerRG8 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit) | 0x0009, //!< Bayer-color, 8 bits, starting with RG line (PFNC: BayerRG8)
VmbPixelFormatBayerGB8 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit) | 0x000A, //!< Bayer-color, 8 bits, starting with GB line (PFNC: BayerGB8)
VmbPixelFormatBayerBG8 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit) | 0x000B, //!< Bayer-color, 8 bits, starting with BG line (PFNC: BayerBG8)
VmbPixelFormatBayerGR10 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000C, //!< Bayer-color, 10 bits in 16 bits, starting with GR line (PFNC: BayerGR10)
VmbPixelFormatBayerRG10 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000D, //!< Bayer-color, 10 bits in 16 bits, starting with RG line (PFNC: BayerRG10)
VmbPixelFormatBayerGB10 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000E, //!< Bayer-color, 10 bits in 16 bits, starting with GB line (PFNC: BayerGB10)
VmbPixelFormatBayerBG10 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000F, //!< Bayer-color, 10 bits in 16 bits, starting with BG line (PFNC: BayerBG10)
VmbPixelFormatBayerGR12 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0010, //!< Bayer-color, 12 bits in 16 bits, starting with GR line (PFNC: BayerGR12)
VmbPixelFormatBayerRG12 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0011, //!< Bayer-color, 12 bits in 16 bits, starting with RG line (PFNC: BayerRG12)
VmbPixelFormatBayerGB12 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0012, //!< Bayer-color, 12 bits in 16 bits, starting with GB line (PFNC: BayerGB12)
VmbPixelFormatBayerBG12 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0013, //!< Bayer-color, 12 bits in 16 bits, starting with BG line (PFNC: BayerBG12)
VmbPixelFormatBayerGR12Packed = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002A, //!< Bayer-color, 2x12 bits in 24 bits, starting with GR line (GEV:BayerGR12Packed)
VmbPixelFormatBayerRG12Packed = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002B, //!< Bayer-color, 2x12 bits in 24 bits, starting with RG line (GEV:BayerRG12Packed)
VmbPixelFormatBayerGB12Packed = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002C, //!< Bayer-color, 2x12 bits in 24 bits, starting with GB line (GEV:BayerGB12Packed)
VmbPixelFormatBayerBG12Packed = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002D, //!< Bayer-color, 2x12 bits in 24 bits, starting with BG line (GEV:BayerBG12Packed)
VmbPixelFormatBayerGR10p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0056, //!< Bayer-color, 10 bits continuous packed, starting with GR line (PFNC: BayerGR10p)
VmbPixelFormatBayerRG10p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0058, //!< Bayer-color, 10 bits continuous packed, starting with RG line (PFNC: BayerRG10p)
VmbPixelFormatBayerGB10p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0054, //!< Bayer-color, 10 bits continuous packed, starting with GB line (PFNC: BayerGB10p)
VmbPixelFormatBayerBG10p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0052, //!< Bayer-color, 10 bits continuous packed, starting with BG line (PFNC: BayerBG10p)
VmbPixelFormatBayerGR12p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0057, //!< Bayer-color, 12 bits continuous packed, starting with GR line (PFNC: BayerGR12p)
VmbPixelFormatBayerRG12p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0059, //!< Bayer-color, 12 bits continuous packed, starting with RG line (PFNC: BayerRG12p)
VmbPixelFormatBayerGB12p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0055, //!< Bayer-color, 12 bits continuous packed, starting with GB line (PFNC: BayerGB12p)
VmbPixelFormatBayerBG12p = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0053, //!< Bayer-color, 12 bits continuous packed, starting with BG line (PFNC: BayerBG12p)
VmbPixelFormatBayerGR16 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x002E, //!< Bayer-color, 16 bits, starting with GR line (PFNC: BayerGR16)
VmbPixelFormatBayerRG16 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x002F, //!< Bayer-color, 16 bits, starting with RG line (PFNC: BayerRG16)
VmbPixelFormatBayerGB16 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0030, //!< Bayer-color, 16 bits, starting with GB line (PFNC: BayerGB16)
VmbPixelFormatBayerBG16 = static_cast<VmbUint8_t>(VmbPixelMono) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0031, //!< Bayer-color, 16 bits, starting with BG line (PFNC: BayerBG16)
// rgb formats
VmbPixelFormatRgb8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0014, //!< RGB, 8 bits x 3 (PFNC: RGB8)
VmbPixelFormatBgr8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0015, //!< BGR, 8 bits x 3 (PFNC: BGR8)
VmbPixelFormatRgb10 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x0018, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatBgr10 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x0019, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatRgb12 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x001A, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatBgr12 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x001B, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatRgb14 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x005E, //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatBgr14 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x004A, //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatRgb16 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x0033, //!< RGB, 16 bits x 3 (PFNC: RGB16)
VmbPixelFormatBgr16 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x004B, //!< RGB, 16 bits x 3 (PFNC: RGB16)
VmbPixelFormatRgb8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0014, //!< RGB, 8 bits x 3 (PFNC: RGB8)
VmbPixelFormatBgr8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0015, //!< BGR, 8 bits x 3 (PFNC: BGR8)
VmbPixelFormatRgb10 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x0018, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatBgr10 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x0019, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatRgb12 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x001A, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatBgr12 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x001B, //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatRgb14 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x005E, //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatBgr14 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x004A, //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
VmbPixelFormatRgb16 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x0033, //!< RGB, 16 bits x 3 (PFNC: RGB16)
VmbPixelFormatBgr16 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x004B, //!< RGB, 16 bits x 3 (PFNC: RGB16)
// rgba formats
VmbPixelFormatArgb8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy32Bit) | 0x0016, //!< ARGB, 8 bits x 4 (PFNC: RGBa8)
VmbPixelFormatArgb8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy32Bit) | 0x0016, //!< ARGB, 8 bits x 4 (PFNC: RGBa8)
VmbPixelFormatRgba8 = VmbPixelFormatArgb8, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy32Bit) | 0x0017, //!< BGRA, 8 bits x 4 (PFNC: BGRa8)
VmbPixelFormatRgba10 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x005F, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra10 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x004C, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatRgba12 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0061, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra12 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x004E, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatRgba14 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0063, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra14 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0050, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatRgba16 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0064, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra16 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0051, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy32Bit) | 0x0017, //!< BGRA, 8 bits x 4 (PFNC: BGRa8)
VmbPixelFormatRgba10 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x005F, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra10 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x004C, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatRgba12 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0061, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra12 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x004E, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatRgba14 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0063, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra14 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0050, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatRgba16 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0064, //!< RGBA, 8 bits x 4, legacy name
VmbPixelFormatBgra16 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0051, //!< RGBA, 8 bits x 4, legacy name
// yuv/ycbcr formats
VmbPixelFormatYuv411 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x001E, //!< YUV 4:1:1 with 8 bits (PFNC: YUV411_8_UYYVYY, GEV:YUV411Packed)
VmbPixelFormatYuv422 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x001F, //!< YUV 4:2:2 with 8 bits (PFNC: YUV422_8_UYVY, GEV:YUV422Packed)
VmbPixelFormatYuv444 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0020, //!< YUV 4:4:4 with 8 bits (PFNC: YUV8_UYV, GEV:YUV444Packed)
VmbPixelFormatYuv422_8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0032, //!< YUV 4:2:2 with 8 bits Channel order YUYV (PFNC: YUV422_8)
VmbPixelFormatYCbCr8_CbYCr = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x003A, //!< YCbCr 4:4:4 with 8 bits (PFNC: YCbCr8_CbYCr) - identical to VmbPixelFormatYuv444
VmbPixelFormatYCbCr422_8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x003B, //!< YCbCr 4:2:2 8-bit YCbYCr (PFNC: YCbCr422_8)
VmbPixelFormatYCbCr411_8_CbYYCrYY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x003C, //!< YCbCr 4:1:1 with 8 bits (PFNC: YCbCr411_8_CbYYCrYY) - identical to VmbPixelFormatYuv411
VmbPixelFormatYCbCr601_8_CbYCr = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x003D, //!< YCbCr601 4:4:4 8-bit CbYCrt (PFNC: YCbCr601_8_CbYCr)
VmbPixelFormatYCbCr601_422_8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x003E, //!< YCbCr601 4:2:2 8-bit YCbYCr (PFNC: YCbCr601_422_8)
VmbPixelFormatYCbCr601_411_8_CbYYCrYY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x003F, //!< YCbCr601 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr601_411_8_CbYYCrYY)
VmbPixelFormatYCbCr709_8_CbYCr = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0040, //!< YCbCr709 4:4:4 8-bit CbYCr (PFNC: YCbCr709_8_CbYCr)
VmbPixelFormatYCbCr709_422_8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0041, //!< YCbCr709 4:2:2 8-bit YCbYCr (PFNC: YCbCr709_422_8)
VmbPixelFormatYCbCr709_411_8_CbYYCrYY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0042, //!< YCbCr709 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr709_411_8_CbYYCrYY)
VmbPixelFormatYCbCr422_8_CbYCrY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0043, //!< YCbCr 4:2:2 with 8 bits (PFNC: YCbCr422_8_CbYCrY) - identical to VmbPixelFormatYuv422
VmbPixelFormatYCbCr601_422_8_CbYCrY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0044, //!< YCbCr601 4:2:2 8-bit CbYCrY (PFNC: YCbCr601_422_8_CbYCrY)
VmbPixelFormatYCbCr709_422_8_CbYCrY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0045, //!< YCbCr709 4:2:2 8-bit CbYCrY (PFNC: YCbCr709_422_8_CbYCrY)
VmbPixelFormatYCbCr411_8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x005A, //!< YCbCr 4:1:1 8-bit YYCbYYCr (PFNC: YCbCr411_8)
VmbPixelFormatYCbCr8 = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x005B, //!< YCbCr 4:4:4 8-bit YCbCr (PFNC: YCbCr8)
VmbPixelFormatYuv411 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x001E, //!< YUV 4:1:1 with 8 bits (PFNC: YUV411_8_UYYVYY, GEV:YUV411Packed)
VmbPixelFormatYuv422 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x001F, //!< YUV 4:2:2 with 8 bits (PFNC: YUV422_8_UYVY, GEV:YUV422Packed)
VmbPixelFormatYuv444 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0020, //!< YUV 4:4:4 with 8 bits (PFNC: YUV8_UYV, GEV:YUV444Packed)
VmbPixelFormatYuv422_8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0032, //!< YUV 4:2:2 with 8 bits Channel order YUYV (PFNC: YUV422_8)
VmbPixelFormatYCbCr8_CbYCr = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x003A, //!< YCbCr 4:4:4 with 8 bits (PFNC: YCbCr8_CbYCr) - identical to VmbPixelFormatYuv444
VmbPixelFormatYCbCr422_8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x003B, //!< YCbCr 4:2:2 8-bit YCbYCr (PFNC: YCbCr422_8)
VmbPixelFormatYCbCr411_8_CbYYCrYY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x003C, //!< YCbCr 4:1:1 with 8 bits (PFNC: YCbCr411_8_CbYYCrYY) - identical to VmbPixelFormatYuv411
VmbPixelFormatYCbCr601_8_CbYCr = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x003D, //!< YCbCr601 4:4:4 8-bit CbYCrt (PFNC: YCbCr601_8_CbYCr)
VmbPixelFormatYCbCr601_422_8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x003E, //!< YCbCr601 4:2:2 8-bit YCbYCr (PFNC: YCbCr601_422_8)
VmbPixelFormatYCbCr601_411_8_CbYYCrYY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x003F, //!< YCbCr601 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr601_411_8_CbYYCrYY)
VmbPixelFormatYCbCr709_8_CbYCr = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0040, //!< YCbCr709 4:4:4 8-bit CbYCr (PFNC: YCbCr709_8_CbYCr)
VmbPixelFormatYCbCr709_422_8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0041, //!< YCbCr709 4:2:2 8-bit YCbYCr (PFNC: YCbCr709_422_8)
VmbPixelFormatYCbCr709_411_8_CbYYCrYY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0042, //!< YCbCr709 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr709_411_8_CbYYCrYY)
VmbPixelFormatYCbCr422_8_CbYCrY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0043, //!< YCbCr 4:2:2 with 8 bits (PFNC: YCbCr422_8_CbYCrY) - identical to VmbPixelFormatYuv422
VmbPixelFormatYCbCr601_422_8_CbYCrY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0044, //!< YCbCr601 4:2:2 8-bit CbYCrY (PFNC: YCbCr601_422_8_CbYCrY)
VmbPixelFormatYCbCr709_422_8_CbYCrY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0045, //!< YCbCr709 4:2:2 8-bit CbYCrY (PFNC: YCbCr709_422_8_CbYCrY)
VmbPixelFormatYCbCr411_8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x005A, //!< YCbCr 4:1:1 8-bit YYCbYYCr (PFNC: YCbCr411_8)
VmbPixelFormatYCbCr8 = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x005B, //!< YCbCr 4:4:4 8-bit YCbCr (PFNC: YCbCr8)
VmbPixelFormatLast,
} VmbPixelFormatType;
......