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

Public media stream snapshot. More...

#include <StormByte/multimedia/stream.hxx>

Public Types

using Properties = std::variant< std::monostate, Property::Video, Property::Audio >
 Per-stream typed properties.
 

Public Member Functions

 Stream (const Stream &)=default
 Copy constructor.
 
 Stream (Stream &&)=default
 Move constructor.
 
 ~Stream ()=default
 Destructor.
 
Streamoperator= (const Stream &)=delete
 Copy assignment (deleted: Codec is a reference).
 
Streamoperator= (Stream &&)=delete
 Move assignment (deleted: Codec is a reference).
 
int Index () const noexcept
 Container stream index (avformat).
 
const class CodecCodec () const noexcept
 Codec of this stream.
 
Type Type () const noexcept
 Media kind of the codec.
 
const Metadata::StreamMetadata () const noexcept
 Per-stream tags captured at Open.
 
const std::optional< Property::Duration > & Duration () const noexcept
 Stream duration.
 
const Property::VideoVideo () const noexcept
 Video properties when this stream is video.
 
const Property::AudioAudio () const noexcept
 Audio properties when this stream is audio.
 

Friends

class File
 

Detailed Description

Public media stream snapshot.

One media stream: registry Codec, duration, properties and tags.

Copies share the same Codec instance. The Codec outlives every Stream. Assignment is deleted because Codec is held by reference.

Member Typedef Documentation

◆ Properties

Per-stream typed properties.

Constructor & Destructor Documentation

◆ Stream() [1/2]

StormByte::Multimedia::Stream::Stream ( const Stream )
default

Copy constructor.

◆ Stream() [2/2]

StormByte::Multimedia::Stream::Stream ( Stream &&  )
default

Move constructor.

◆ ~Stream()

StormByte::Multimedia::Stream::~Stream ( )
default

Destructor.

Member Function Documentation

◆ Audio()

const Property::Audio * StormByte::Multimedia::Stream::Audio ( ) const
inlinenoexcept

Audio properties when this stream is audio.

Returns
Pointer to properties, or nullptr.

◆ Codec()

const class Codec & StormByte::Multimedia::Stream::Codec ( ) const
inlinenoexcept

Codec of this stream.

Returns
Registry codec.

◆ Duration()

const std::optional< Property::Duration > & StormByte::Multimedia::Stream::Duration ( ) const
inlinenoexcept

Stream duration.

Returns
Duration, or empty if unknown.

Header value from Open, or a value filled by File::Duration() after a packet scan. Empty if it cannot be determined.

◆ Index()

int StormByte::Multimedia::Stream::Index ( ) const
inlinenoexcept

Container stream index (avformat).

Not the position in File::Streams().

Returns
Index used by packets and Decoder.

◆ Metadata()

const Metadata::Stream & StormByte::Multimedia::Stream::Metadata ( ) const
inlinenoexcept

Per-stream tags captured at Open.

Returns
Metadata snapshot.

◆ operator=() [1/2]

Stream & StormByte::Multimedia::Stream::operator= ( const Stream )
delete

Copy assignment (deleted: Codec is a reference).

Returns
*this.

◆ operator=() [2/2]

Stream & StormByte::Multimedia::Stream::operator= ( Stream &&  )
delete

Move assignment (deleted: Codec is a reference).

Returns
*this.

◆ Type()

Type StormByte::Multimedia::Stream::Type ( ) const
inlinenoexcept

Media kind of the codec.

Returns
Audio, Video, Subtitle, Attachment or Unknown.

◆ Video()

const Property::Video * StormByte::Multimedia::Stream::Video ( ) const
inlinenoexcept

Video properties when this stream is video.

Returns
Pointer to properties, or nullptr.

Friends And Related Symbol Documentation

◆ File

friend class File
friend

The documentation for this class was generated from the following file: