static std::string ycbcr_enc2s(int val) { switch (val) { case V4L2_YCBCR_ENC_DEFAULT: return "Default"; case V4L2_YCBCR_ENC_601: return "ITU-R 601"; case V4L2_YCBCR_ENC_709: return "Rec. 709"; case V4L2_YCBCR_ENC_XV601: return "xvYCC 601"; case V4L2_YCBCR_ENC_XV709: return "xvYCC 709"; case V4L2_YCBCR_ENC_SYCC: return "sYCC"; case V4L2_YCBCR_ENC_BT2020: return "BT.2020"; case V4L2_YCBCR_ENC_BT2020_CONST_LUM: return "BT.2020 Constant Luminance"; case V4L2_YCBCR_ENC_SMPTE240M: return "SMPTE 240M"; default: return "Unknown (" + num2s(val) + ")"; } }
std::string colorspace2s(int val) { switch (val) { case V4L2_COLORSPACE_DEFAULT: return "Default"; case V4L2_COLORSPACE_SMPTE170M: return "SMPTE 170M"; case V4L2_COLORSPACE_SMPTE240M: return "SMPTE 240M"; case V4L2_COLORSPACE_REC709: return "Rec. 709"; case V4L2_COLORSPACE_BT878: return "Broken Bt878"; case V4L2_COLORSPACE_470_SYSTEM_M: return "470 System M"; case V4L2_COLORSPACE_470_SYSTEM_BG: return "470 System BG"; case V4L2_COLORSPACE_JPEG: return "JPEG"; case V4L2_COLORSPACE_SRGB: return "sRGB"; case V4L2_COLORSPACE_ADOBERGB: return "AdobeRGB"; case V4L2_COLORSPACE_DCI_P3: return "DCI-P3"; case V4L2_COLORSPACE_BT2020: return "BT.2020"; case V4L2_COLORSPACE_RAW: return "Raw"; default: return "Unknown (" + num2s(val) + ")"; } }
std::string field2s(int val) { switch (val) { case V4L2_FIELD_ANY: return "Any"; case V4L2_FIELD_NONE: return "None"; case V4L2_FIELD_TOP: return "Top"; case V4L2_FIELD_BOTTOM: return "Bottom"; case V4L2_FIELD_INTERLACED: return "Interlaced"; case V4L2_FIELD_SEQ_TB: return "Sequential Top-Bottom"; case V4L2_FIELD_SEQ_BT: return "Sequential Bottom-Top"; case V4L2_FIELD_ALTERNATE: return "Alternating"; case V4L2_FIELD_INTERLACED_TB: return "Interlaced Top-Bottom"; case V4L2_FIELD_INTERLACED_BT: return "Interlaced Bottom-Top"; default: return "Unknown (" + num2s(val) + ")"; } }
std::string buftype2s(int type) { switch (type) { case 0: return "Invalid"; case V4L2_BUF_TYPE_VIDEO_CAPTURE: return "Video Capture"; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: return "Video Capture Multiplanar"; case V4L2_BUF_TYPE_VIDEO_OUTPUT: return "Video Output"; case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: return "Video Output Multiplanar"; case V4L2_BUF_TYPE_VIDEO_OVERLAY: return "Video Overlay"; case V4L2_BUF_TYPE_VBI_CAPTURE: return "VBI Capture"; case V4L2_BUF_TYPE_VBI_OUTPUT: return "VBI Output"; case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: return "Sliced VBI Capture"; case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: return "Sliced VBI Output"; case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: return "Video Output Overlay"; case V4L2_BUF_TYPE_SDR_CAPTURE: return "SDR Capture"; case V4L2_BUF_TYPE_SDR_OUTPUT: return "SDR Output"; default: return "Unknown (" + num2s(type) + ")"; } }
static std::string quantization2s(int val) { switch (val) { case V4L2_QUANTIZATION_DEFAULT: return "Default"; case V4L2_QUANTIZATION_FULL_RANGE: return "Full Range"; case V4L2_QUANTIZATION_LIM_RANGE: return "Limited Range"; default: return "Unknown (" + num2s(val) + ")"; } }
std::string flags2s(unsigned val, const flag_def *def) { std::string s; while (def->flag) { if (val & def->flag) { if (s.length()) s += ", "; s += def->str; val &= ~def->flag; } def++; } if (val) { if (s.length()) s += ", "; s += num2s(val); } return s; }
static std::string xfer_func2s(int val) { switch (val) { case V4L2_XFER_FUNC_DEFAULT: return "Default"; case V4L2_XFER_FUNC_709: return "Rec. 709"; case V4L2_XFER_FUNC_SRGB: return "sRGB"; case V4L2_XFER_FUNC_ADOBERGB: return "AdobeRGB"; case V4L2_XFER_FUNC_DCI_P3: return "DCI-P3"; case V4L2_XFER_FUNC_SMPTE2084: return "SMPTE 2084"; case V4L2_XFER_FUNC_SMPTE240M: return "SMPTE 240M"; case V4L2_XFER_FUNC_NONE: return "None"; default: return "Unknown (" + num2s(val) + ")"; } }
std::string colorspace2s(int val) { switch (val) { case V4L2_COLORSPACE_SMPTE170M: return "Broadcast NTSC/PAL (SMPTE170M/ITU601)"; case V4L2_COLORSPACE_SMPTE240M: return "1125-Line (US) HDTV (SMPTE240M)"; case V4L2_COLORSPACE_REC709: return "HDTV and modern devices (ITU709)"; case V4L2_COLORSPACE_BT878: return "Broken Bt878"; case V4L2_COLORSPACE_470_SYSTEM_M: return "NTSC/M (ITU470/ITU601)"; case V4L2_COLORSPACE_470_SYSTEM_BG: return "PAL/SECAM BG (ITU470/ITU601)"; case V4L2_COLORSPACE_JPEG: return "JPEG (JFIF/ITU601)"; case V4L2_COLORSPACE_SRGB: return "SRGB"; default: return "Unknown (" + num2s(val) + ")"; } }