StormByte C++ Library: Multimedia module 0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
Loading...
Searching...
No Matches
StormByte::Multimedia::Pipeline::Config::Video Class Reference

#include <StormByte/multimedia/pipeline/config/video.hxx>

Inheritance diagram for StormByte::Multimedia::Pipeline::Config::Video:
Collaboration diagram for StormByte::Multimedia::Pipeline::Config::Video:

Public Member Functions

PointerType Clone () const override
 Deep copy.
PointerType Move () override
 Move into a new pointer.
Lifecycle
constexpr Video () noexcept
 Empty video config (Remux until Codec is set).
 Video (const Video &other) noexcept=default
 Copy constructor.
 Video (Video &&other) noexcept=default
 Move constructor.
virtual ~Video () noexcept override=default
 Destructor.
Video & operator= (const Video &other) noexcept=default
 Copy assignment.
Video & operator= (Video &&other) noexcept=default
 Move assignment.
Encode
const StormByte::Multimedia::Codec * Codec () const noexcept
 Destination codec.
void Codec (const StormByte::Multimedia::Codec &codec) noexcept
 Sets the destination codec (Encode).
const std::optional< int > & CRF () const noexcept
 CRF/CQ.
void CRF (int value) noexcept
 Sets CRF/CQ and clears BitRate.
const std::optional< std::int64_t > & BitRate () const noexcept
 Target bitrate.
void BitRate (std::int64_t bits_per_second) noexcept
 Sets target bitrate and clears CRF.
const std::optional< std::int64_t > & MaxBitRate () const noexcept
 VBV ceiling.
void MaxBitRate (std::int64_t bits_per_second) noexcept
 Sets VBV ceiling.
const std::optional< std::string > & Preset () const noexcept
 Encoder preset.
void Preset (std::string name) noexcept
 Sets the preset.
const std::optional< std::string > & Tune () const noexcept
 Content tune.
void Tune (std::string name) noexcept
 Sets the tune.
const std::map< std::string, std::string > & FineTune () const noexcept
 Vendor leftovers.
void FineTune (std::map< std::string, std::string > options) noexcept
 Replaces the vendor dict.
Public Member Functions inherited from StormByte::Multimedia::Pipeline::Config::Base
 Base (const Base &other) noexcept=default
 Copy constructor.
 Base (Base &&other) noexcept=default
 Move constructor.
virtual ~Base () noexcept override=default
 Destructor.
Base & operator= (const Base &other) noexcept=default
 Copy assignment.
Base & operator= (Base &&other) noexcept=default
 Move assignment.
constexpr enum StormByte::Multimedia::Type Type () const noexcept
 Media stamped by the leaf constructor.
const std::optional< std::string > & Language () const noexcept
 Language override.
void Language (std::string language) noexcept
 Sets the language override.
const std::optional< std::string > & Title () const noexcept
 Title override.
void Title (std::string title) noexcept
 Sets the title override.
const std::optional< bool > & Default () const noexcept
 Default-disposition override.
void Default (std::optional< bool > value) noexcept
 Sets or clears the default-disposition override.
const std::optional< bool > & Forced () const noexcept
 Forced-disposition override.
void Forced (std::optional< bool > value) noexcept
 Sets or clears the forced-disposition override.
const struct Implementation & Implementation () const noexcept
 Decoder / encoder pins.
void Implementation (struct Implementation implementation) noexcept
 Replaces both pins.

Additional Inherited Members

Protected Member Functions inherited from StormByte::Multimedia::Pipeline::Config::Base
constexpr Base (enum StormByte::Multimedia::Type type) noexcept
 Empty overrides; media fixed for the leaf lifetime.

Constructor & Destructor Documentation

◆ Video() [1/3]

StormByte::Multimedia::Pipeline::Config::Video::Video ( )
inlineconstexprnoexcept

Empty video config (Remux until Codec is set).

◆ Video() [2/3]

StormByte::Multimedia::Pipeline::Config::Video::Video ( const Video & other)
defaultnoexcept

Copy constructor.

Parameters
otherSource config.

◆ Video() [3/3]

StormByte::Multimedia::Pipeline::Config::Video::Video ( Video && other)
defaultnoexcept

Move constructor.

Parameters
otherConfig to take.

◆ ~Video()

virtual StormByte::Multimedia::Pipeline::Config::Video::~Video ( )
overridevirtualdefaultnoexcept

Destructor.

Member Function Documentation

◆ BitRate() [1/2]

const std::optional< std::int64_t > & StormByte::Multimedia::Pipeline::Config::Video::BitRate ( ) const
inlinenoexcept

Target bitrate.

Returns
Bits per second, or empty.

◆ BitRate() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::BitRate ( std::int64_t bits_per_second)
noexcept

Sets target bitrate and clears CRF.

Parameters
bits_per_secondBits per second.

◆ Clone()

PointerType StormByte::Multimedia::Pipeline::Config::Video::Clone ( ) const
inlineoverride

Deep copy.

Returns
Owning pointer to a new Video.

◆ Codec() [1/2]

const StormByte::Multimedia::Codec * StormByte::Multimedia::Pipeline::Config::Video::Codec ( ) const
inlinenoexcept

Destination codec.

Returns
Registry codec, or nullptr if this track is Remux.

◆ Codec() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::Codec ( const StormByte::Multimedia::Codec & codec)
inlinenoexcept

Sets the destination codec (Encode).

Parameters
codecRegistry codec. Must be video at Plan validation.

◆ CRF() [1/2]

const std::optional< int > & StormByte::Multimedia::Pipeline::Config::Video::CRF ( ) const
inlinenoexcept

CRF/CQ.

Incompatible with BitRate.

Returns
Value, or empty.

◆ CRF() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::CRF ( int value)
noexcept

Sets CRF/CQ and clears BitRate.

Parameters
valueQuality value.

◆ FineTune() [1/2]

const std::map< std::string, std::string > & StormByte::Multimedia::Pipeline::Config::Video::FineTune ( ) const
inlinenoexcept

Vendor leftovers.

Not CRF / preset / tune / bufsize.

Returns
Key/value map.

◆ FineTune() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::FineTune ( std::map< std::string, std::string > options)
inlinenoexcept

Replaces the vendor dict.

Parameters
optionsKey/value pairs.

◆ MaxBitRate() [1/2]

const std::optional< std::int64_t > & StormByte::Multimedia::Pipeline::Config::Video::MaxBitRate ( ) const
inlinenoexcept

VBV ceiling.

Returns
Bits per second, or empty.

◆ MaxBitRate() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::MaxBitRate ( std::int64_t bits_per_second)
inlinenoexcept

Sets VBV ceiling.

bufsize is derived by the encoder.

Parameters
bits_per_secondMax bitrate.

◆ Move()

PointerType StormByte::Multimedia::Pipeline::Config::Video::Move ( )
inlineoverride

Move into a new pointer.

Returns
Owning pointer to the moved Video.

◆ operator=() [1/2]

Video & StormByte::Multimedia::Pipeline::Config::Video::operator= ( const Video & other)
defaultnoexcept

Copy assignment.

Parameters
otherSource config.
Returns
*this.

◆ operator=() [2/2]

Video & StormByte::Multimedia::Pipeline::Config::Video::operator= ( Video && other)
defaultnoexcept

Move assignment.

Parameters
otherConfig to take.
Returns
*this.

◆ Preset() [1/2]

const std::optional< std::string > & StormByte::Multimedia::Pipeline::Config::Video::Preset ( ) const
inlinenoexcept

Encoder preset.

Returns
Name, or empty.

◆ Preset() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::Preset ( std::string name)
noexcept

Sets the preset.

Empty clears it.

Parameters
namePreset name (medium, p4, …).

◆ Tune() [1/2]

const std::optional< std::string > & StormByte::Multimedia::Pipeline::Config::Video::Tune ( ) const
inlinenoexcept

Content tune.

Returns
Name, or empty.

◆ Tune() [2/2]

void StormByte::Multimedia::Pipeline::Config::Video::Tune ( std::string name)
noexcept

Sets the tune.

Empty clears it.

Parameters
nameTune name (animation, film, …).

The documentation for this class was generated from the following file:
  • lib/public/StormByte/multimedia/pipeline/config/video.hxx