|
StormByte C++ Library: Multimedia module 0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
|
Public multimedia types: codecs, containers, streams and files. More...
Namespaces | |
| namespace | Backend |
| namespace | Detail |
| namespace | FFmpeg |
| Private RAII wrappers over libav*. | |
| namespace | Metadata |
| Snapshot metadata for files and streams. | |
| namespace | OCR |
| namespace | Pipeline |
| Demux / decode / filter / encode / mux types. | |
| namespace | Property |
| Media property value types. | |
| namespace | Tables |
Classes | |
| class | Access |
| Bitmask of Operation flags for a codec. More... | |
| class | Attachment |
| Container attachment (cover, fonts). More... | |
| class | Codec |
| Immutable codec identity owned by Registry. More... | |
| class | CodecNotFoundException |
| Thrown when Registry::FindCodec does not resolve a key. More... | |
| class | Container |
| Immutable container identity owned by StormByte::Multimedia::Registry. More... | |
| class | ContainerNotFoundException |
| Thrown when Registry::FindContainer does not resolve a key. More... | |
| class | Exception |
| Base exception for the Multimedia module. More... | |
| class | Features |
| Bitmask of Feature flags. More... | |
| class | File |
| Snapshot of a media source: path or Consumer, container, streams and tags. More... | |
| class | FileBufferOpenException |
| Thrown when File::Open fails on a Consumer. More... | |
| class | FileOpenException |
| Thrown when File::Open fails (path or buffer). More... | |
| class | FilePathOpenException |
| Thrown when File::Open fails on a filesystem path. More... | |
| class | Registry |
| Process-wide catalog of codecs and containers. More... | |
| class | Stream |
| Public media stream snapshot. More... | |
| class | TranscodeException |
| Thrown when Transcode::Open or a configuration call fails. More... | |
Typedefs | |
| using | Attachments = std::vector< Attachment > |
| using | ExpectedCodec = StormByte::Expected< const Codec &, CodecNotFoundException > |
| Result of FindCodec. | |
| using | ExpectedContainer = StormByte::Expected< const Container &, ContainerNotFoundException > |
| Result of FindContainer. | |
| using | ExpectedFile = StormByte::Expected< File, FileOpenException > |
| Result of OpenFile. | |
| using | ExpectedTranscoder = StormByte::Expected< std::unique_ptr< Pipeline::Transcoder >, TranscodeException > |
| Result of Transcoder::Open. | |
| using | CodecRefs = std::vector< std::reference_wrapper< const Codec > > |
| List of codec references. | |
| using | ContainerRefs = std::vector< std::reference_wrapper< const Container > > |
| List of container references. | |
| using | Streams = std::vector< Stream > |
| Ordered streams. | |
Enumerations | |
| enum class | Feature : std::uint32_t { None = 0 , MultiThreaded = 1u << 0 , RealTime = 1u << 1 , LowDelay = 1u << 2 , ZeroCopy = 1u << 3 , HardwareAcceleration = 1u << 4 , HighQuality = 1u << 5 , PsychoVisual = 1u << 6 , AdaptiveQuantization = 1u << 7 , Lookahead = 1u << 8 , TwoPass = 1u << 9 , Lossless = 1u << 10 , ProfileBased = 1u << 11 , ContentTuning = 1u << 12 , TenBit = 1u << 13 , TwelveBit = 1u << 14 , HDR10 = 1u << 15 , HDR10Plus = 1u << 16 , WideGamut = 1u << 17 , SurroundSound = 1u << 18 , SideData = 1u << 19 , BFrames = 1u << 20 , IntraOnly = 1u << 21 , Interlaced = 1u << 22 , Slices = 1u << 23 , Streamable = 1u << 24 , Encodeable = 1u << 25 } |
| Handcrafted capability of one decoder or encoder implementation. More... | |
| enum class | Type { Audio , Video , Subtitle , Attachment , Unknown } |
| Kind of media stream or codec. More... | |
| enum class | Operation : std::uint8_t { None = 0 , Read = 1 << 0 , Write = 1 << 1 , Attach = 1 << 2 } |
| Read / write capability flags for a codec. More... | |
Functions | |
| constexpr const char * | ToString (Feature feature) noexcept |
| Converts a Feature to a stable token. | |
| constexpr const char * | ToString (Type type) noexcept |
| Converts a Type to a string literal. | |
Public multimedia types: codecs, containers, streams and files.
Public Multimedia module.
Public media types: codecs, containers, registry and stream kinds.
Public media types: codecs, registry and stream kinds.
| using StormByte::Multimedia::Attachments = typedef std::vector<Attachment> |
| using StormByte::Multimedia::CodecRefs = typedef std::vector<std::reference_wrapper<const Codec> > |
List of codec references.
| using StormByte::Multimedia::ContainerRefs = typedef std::vector<std::reference_wrapper<const Container> > |
List of container references.
| using StormByte::Multimedia::ExpectedCodec = typedef StormByte::Expected<const Codec&, CodecNotFoundException> |
Result of FindCodec.
| using StormByte::Multimedia::ExpectedContainer = typedef StormByte::Expected<const Container&, ContainerNotFoundException> |
Result of FindContainer.
| using StormByte::Multimedia::ExpectedFile = typedef StormByte::Expected<File, FileOpenException> |
Result of OpenFile.
| using StormByte::Multimedia::ExpectedTranscoder = typedef StormByte::Expected<std::unique_ptr<Pipeline::Transcoder>, TranscodeException> |
Result of Transcoder::Open.
| using StormByte::Multimedia::Streams = typedef std::vector<Stream> |
Ordered streams.
|
strong |
Handcrafted capability of one decoder or encoder implementation.
Preference is not a Feature; it lives on the table row. Bits must be disjoint: Has() is a real bitmask test. HDR10 / HDR10Plus / SideData mean the implementation surfaces that metadata on Pipeline::Frame (decode) or writes it (encode). Missing bits against source metadata is a failbit, never a silent drop.
| Enumerator | |
|---|---|
| None | |
| MultiThreaded | Frame or slice threading. |
| RealTime | Suitable for real-time use. |
| LowDelay | Low latency. |
| ZeroCopy | Zero-copy paths. |
| HardwareAcceleration | HW decode or encode. |
| HighQuality | High quality presets. |
| PsychoVisual | Psycho-visual tuning. |
| AdaptiveQuantization | Adaptive quantization. |
| Lookahead | Lookahead analysis. |
| TwoPass | Two-pass encoding. |
| Lossless | Lossless mode. |
| ProfileBased | Profile selection. |
| ContentTuning | Content-type tuning. |
| TenBit | 10-bit |
| TwelveBit | 12-bit |
| HDR10 | Static HDR10 metadata on the frame. |
| HDR10Plus | Dynamic HDR10+ side data on the frame. |
| WideGamut | Wide color gamut. |
| SurroundSound | Surround layouts. |
| SideData | Propagates packet or frame side data. |
| BFrames | B-frames. |
| IntraOnly | Intra-only. |
| Interlaced | Interlaced. |
| Slices | Slice coding. |
| Streamable | Streamable output. |
| Encodeable | Can encode (legacy; Write is Codec::HasAccess) |
|
strong |
Read / write capability flags for a codec.
| Enumerator | |
|---|---|
| None | No access. |
| Read | Decode / demux is available. |
| Write | At least one encoder / muxer exists. |
| Attach | Container can hold real attachments (covers, fonts) |
|
strong |
Kind of media stream or codec.
| Enumerator | |
|---|---|
| Audio | Audio stream or codec. |
| Video | Video stream or codec. |
| Subtitle | Subtitle stream or codec. |
| Attachment | Attachment / ancillary data. |
| Unknown | Unclassified type. |
|
constexprnoexcept |
Converts a Feature to a stable token.
| feature | Feature value. |
|
constexprnoexcept |
Converts a Type to a string literal.
| type | Value to convert. |
"Invalid". < Audio
< Video
< Subtitle
< Unknown
< Out of range