StormByte C++ Library: Multimedia module 0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
StormByte::Multimedia::Property Namespace Reference

Media property value types. More...

Classes

class  Audio
 Per-stream audio properties. More...
 
class  AVRational
 Pair {num, den} matching libavutil AVRational. More...
 
class  Color
 Pixel format plus colorimetry. More...
 
class  Duration
 Media duration stored as nanoseconds. More...
 
class  HDR10
 Mastering display and content light level metadata. More...
 
class  Point
 Integer 2D point (chromaticity / luminance pair). More...
 
class  Resolution
 Frame width and height. More...
 
class  Video
 Per-stream video properties. More...
 

Enumerations

enum class  ChannelLayout {
  Unknown , Mono , Stereo , TwoPointOne ,
  ThreePointZero , FourPointZero , Quad , FivePointZero ,
  FivePointOne , SixPointOne , SevenPointOne , SevenPointOneW ,
  Octagonal , TwentyTwoPointTwo
}
 Curated speaker layouts. More...
 
enum class  Range { Unspecified , TV , Full , Unknown }
 Luma/chroma sample range. More...
 
enum class  Space {
  Unspecified , RGB , BT709 , FCC ,
  BT470BG , SMPTE170M , SMPTE240M , YCgCo ,
  BT2020NCL , BT2020CL , SMPTE2085 , ChromaDerivedNCL ,
  ChromaDerivedCL , ICtCp , Unknown
}
 YUV / RGB matrix coefficients. More...
 
enum class  Primaries {
  Unspecified , BT709 , BT470M , BT470BG ,
  SMPTE170M , SMPTE240M , Film , BT2020 ,
  SMPTE428 , SMPTE431 , SMPTE432 , EBU3213 ,
  Unknown
}
 Chromaticity primaries. More...
 
enum class  Transfer {
  Unspecified , BT709 , Gamma22 , Gamma28 ,
  SMPTE170M , SMPTE240M , Linear , Log ,
  LogSqrt , IEC61966_2_4 , BT1361 , IEC61966_2_1 ,
  BT2020_10 , BT2020_12 , SMPTE2084 , SMPTE428 ,
  ARIB_B67 , Unknown
}
 Transfer characteristics. More...
 
enum class  PixelFormat {
  Unknown , YUV420P , YUV422P , YUV444P ,
  YUV420P10 , YUV422P10 , YUV444P10 , YUV420P12 ,
  YUV422P12 , YUV444P12 , NV12 , NV21 ,
  P010 , RGB24 , BGR24 , RGBA ,
  BGRA , GRAY8 , GRAY10 , GRAY16
}
 Curated pixel formats. More...
 

Functions

constexpr const char * ToString (ChannelLayout layout) noexcept
 Converts a ChannelLayout to a string.
 
constexpr unsigned ChannelCount (ChannelLayout layout) noexcept
 Channel count of a standard layout.
 
constexpr const char * ToString (Range range) noexcept
 Converts a Range to a string.
 
constexpr const char * ToString (Space space) noexcept
 Converts a Space to a string.
 
constexpr const char * ToString (Primaries primaries) noexcept
 Converts Primaries to a string.
 
constexpr const char * ToString (Transfer transfer) noexcept
 Converts Transfer to a string.
 
constexpr const char * ToString (PixelFormat format) noexcept
 Converts a PixelFormat to a string.
 
constexpr std::uint8_t BitDepth (PixelFormat format) noexcept
 Component bit depth of format.
 

Detailed Description

Media property value types.

Enumeration Type Documentation

◆ ChannelLayout

Curated speaker layouts.

Unknown covers unlisted AVChannelLayout values.

Enumerator
Unknown 

Unlisted or missing.

Mono 

1.0

Stereo 

2.0

TwoPointOne 

2.1

ThreePointZero 

3.0

FourPointZero 

4.0

Quad 

Quad.

FivePointZero 

5.0

FivePointOne 

5.1

SixPointOne 

6.1

SevenPointOne 

7.1

SevenPointOneW 

7.1 wide

Octagonal 

8.0 octagonal

TwentyTwoPointTwo 

22.2

◆ PixelFormat

Curated pixel formats.

Unknown covers unlisted AVPixelFormat values.

Enumerator
Unknown 

Unlisted or missing.

YUV420P 

Planar YUV 4:2:0 8-bit.

YUV422P 

Planar YUV 4:2:2 8-bit.

YUV444P 

Planar YUV 4:4:4 8-bit.

YUV420P10 

Planar YUV 4:2:0 10-bit.

YUV422P10 

Planar YUV 4:2:2 10-bit.

YUV444P10 

Planar YUV 4:4:4 10-bit.

YUV420P12 

Planar YUV 4:2:0 12-bit.

YUV422P12 

Planar YUV 4:2:2 12-bit.

YUV444P12 

Planar YUV 4:4:4 12-bit.

NV12 

Semi-planar YUV 4:2:0 8-bit.

NV21 

Semi-planar YUV 4:2:0 8-bit (VU)

P010 

Semi-planar YUV 4:2:0 10-bit.

RGB24 

Packed RGB 8-bit.

BGR24 

Packed BGR 8-bit.

RGBA 

Packed RGBA 8-bit.

BGRA 

Packed BGRA 8-bit.

GRAY8 

Gray 8-bit.

GRAY10 

Gray 10-bit.

GRAY16 

Gray 16-bit.

◆ Primaries

Chromaticity primaries.

Enumerator
Unspecified 

Not signaled.

BT709 

BT.709.

BT470M 

BT.470 M.

BT470BG 

BT.470 BG.

SMPTE170M 

SMPTE 170M.

SMPTE240M 

SMPTE 240M.

Film 

Film.

BT2020 

BT.2020.

SMPTE428 

SMPTE 428.

SMPTE431 

SMPTE 431 (DCI-P3)

SMPTE432 

SMPTE 432 (Display P3)

EBU3213 

EBU 3213.

Unknown 

Unlisted backend value.

◆ Range

Luma/chroma sample range.

Enumerator
Unspecified 

Not signaled.

TV 

Limited / MPEG.

Full 

Full / JPEG.

Unknown 

Unlisted backend value.

◆ Space

YUV / RGB matrix coefficients.

Enumerator
Unspecified 

Not signaled.

RGB 

RGB.

BT709 

BT.709.

FCC 

FCC.

BT470BG 

BT.470 BG.

SMPTE170M 

SMPTE 170M.

SMPTE240M 

SMPTE 240M.

YCgCo 

YCgCo.

BT2020NCL 

BT.2020 non-constant luminance.

BT2020CL 

BT.2020 constant luminance.

SMPTE2085 

SMPTE 2085.

ChromaDerivedNCL 

Chroma-derived NCL.

ChromaDerivedCL 

Chroma-derived CL.

ICtCp 

ICtCp.

Unknown 

Unlisted backend value.

◆ Transfer

Transfer characteristics.

Enumerator
Unspecified 

Not signaled.

BT709 

BT.709.

Gamma22 

Gamma 2.2.

Gamma28 

Gamma 2.8.

SMPTE170M 

SMPTE 170M.

SMPTE240M 

SMPTE 240M.

Linear 

Linear.

Log 

Log.

LogSqrt 

Log sqrt.

IEC61966_2_4 

IEC 61966-2-4.

BT1361 

BT.1361.

IEC61966_2_1 

IEC 61966-2-1 (sRGB)

BT2020_10 

BT.2020 10-bit.

BT2020_12 

BT.2020 12-bit.

SMPTE2084 

PQ.

SMPTE428 

SMPTE 428.

ARIB_B67 

HLG.

Unknown 

Unlisted backend value.

Function Documentation

◆ BitDepth()

constexpr std::uint8_t StormByte::Multimedia::Property::BitDepth ( PixelFormat  format)
constexprnoexcept

Component bit depth of format.

Parameters
formatPixel format.
Returns
Bits per component, or 0 if unknown.

◆ ChannelCount()

constexpr unsigned StormByte::Multimedia::Property::ChannelCount ( ChannelLayout  layout)
constexprnoexcept

Channel count of a standard layout.

Parameters
layoutLayout.
Returns
Channel count, or 0 if unknown.

◆ ToString() [1/6]

constexpr const char * StormByte::Multimedia::Property::ToString ( ChannelLayout  layout)
constexprnoexcept

Converts a ChannelLayout to a string.

Parameters
layoutValue to convert.
Returns
Null-terminated string literal.

◆ ToString() [2/6]

constexpr const char * StormByte::Multimedia::Property::ToString ( PixelFormat  format)
constexprnoexcept

Converts a PixelFormat to a string.

Parameters
formatValue to convert.
Returns
Null-terminated string literal.

◆ ToString() [3/6]

constexpr const char * StormByte::Multimedia::Property::ToString ( Primaries  primaries)
constexprnoexcept

Converts Primaries to a string.

Parameters
primariesValue to convert.
Returns
Null-terminated string literal.

◆ ToString() [4/6]

constexpr const char * StormByte::Multimedia::Property::ToString ( Range  range)
constexprnoexcept

Converts a Range to a string.

Parameters
rangeValue to convert.
Returns
Null-terminated string literal.

◆ ToString() [5/6]

constexpr const char * StormByte::Multimedia::Property::ToString ( Space  space)
constexprnoexcept

Converts a Space to a string.

Parameters
spaceValue to convert.
Returns
Null-terminated string literal.

◆ ToString() [6/6]

constexpr const char * StormByte::Multimedia::Property::ToString ( Transfer  transfer)
constexprnoexcept

Converts Transfer to a string.

Parameters
transferValue to convert.
Returns
Null-terminated string literal.