69 using Properties = std::variant<std::monostate, Property::Video, Property::Audio>;
102 int Index() const noexcept {
return m_index; }
108 const class Codec&
Codec() const noexcept {
return m_codec; }
114 Type Type() const noexcept {
return m_codec.Type(); }
129 const std::optional<Property::Duration>&
Duration() const noexcept {
return m_duration; }
136 return std::get_if<Property::Video>(&m_properties);
144 return std::get_if<Property::Audio>(&m_properties);
151 const class Codec& m_codec;
153 mutable std::optional<Property::Duration> m_duration;
165 std::optional<Property::Duration> duration,
Properties properties) noexcept
166 : m_index(index), m_codec(codec), m_metadata(std::move(metadata)),
167 m_duration(std::move(duration)), m_properties(std::move(properties)) {}
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47