StormByte C++ Library: Multimedia module 0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
Loading...
Searching...
No Matches
Public Member Functions | List of all members
StormByte::Multimedia::Pipeline::Config::Video Class Reference

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

Inheritance diagram for StormByte::Multimedia::Pipeline::Config::Video:
Inheritance graph
[legend]
Collaboration diagram for StormByte::Multimedia::Pipeline::Config::Video:
Collaboration graph
[legend]

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.
 
Videooperator= (const Video &other) noexcept=default
 Copy assignment.
 
Videooperator= (Video &&other) noexcept=default
 Move assignment.
 
Encode
const StormByte::Multimedia::CodecCodec () 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.
 
Baseoperator= (const Base &other) noexcept=default
 Copy assignment.
 
Baseoperator= (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 ImplementationImplementation () 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]

constexpr 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: