30 AbstractTrack::AbstractTrack(istream &inputStream, ostream &outputStream, std::uint64_t startOffset)
31 : m_istream(&inputStream)
32 , m_ostream(&outputStream)
33 , m_reader(BinaryReader(&inputStream))
34 , m_writer(BinaryWriter(&outputStream))
35 , m_startOffset(startOffset)
45 , m_samplingFrequency(0)
46 , m_extensionSamplingFrequency(0)
51 , m_extensionChannelConfig(0)
92 return std::string_view();
113 return std::string_view();
126 ss <<
"ID: " <<
id();
128 if (!
name().empty()) {
129 ss <<
", name: \"" <<
name() <<
"\"";
132 ss <<
", language: " <<
language <<
"";
138 string AbstractTrack::makeDescription(
bool verbose)
const
149 auto additionalInfoRef = std::string_view();
150 auto level = std::string();
164 level =
"@L" + numberToString(
version());
174 if (
const auto &localeName =
locale().someAbbreviatedName(); !localeName.empty()) {
179 }
else if (
const auto &localeName =
locale().someAbbreviatedName(); !localeName.empty()) {
180 additionalInfoRef = localeName;
186 if (!additionalInfoRef.empty()) {
187 return argsToString(
formatName, level,
'-', additionalInfoRef);
206 return makeDescription(
true);
220 return makeDescription(
false);
The AbortableProgressFeedback class provides feedback about an ongoing operation via callbacks.
The AbstractTrack class parses and stores technical information about video, audio and other kinds of...
std::uint64_t id() const
Returns the track ID if known; otherwise returns 0.
std::string label() const
Returns a label for the track.
std::uint8_t m_extensionChannelConfig
const Locale & locale() const
Returns the locale of the track if known; otherwise returns an empty locale.
std::string_view extensionChannelConfigString() const
Returns a string with the extension channel configuration if available; otherwise returns nullptr.
std::string_view formatName() const
Returns the format of the track as C-style string if known; otherwise returns the format abbreviation...
const Size & displaySize() const
Returns the size of the video frames to display if known; otherwise returns a zero size.
double version() const
Returns the version/level of the track if known; otherwise returns 0.
const Size & pixelSize() const
Returns the size of the encoded video frames if known; otherwise returns a zero size.
std::uint8_t extensionChannelConfig() const
Returns the extension channel configuration if available; otherwise returns nullptr.
AbstractTrack(std::istream &inputStream, std::ostream &outputStream, std::uint64_t startOffset)
Constructs a new track.
std::uint8_t m_channelConfig
std::string shortDescription() const
Returns a short description about the track.
std::string_view mediaTypeName() const
Returns the string representation of the media type of the track.
std::uint64_t m_startOffset
void parseHeader(Diagnostics &diag, AbortableProgressFeedback &progress)
Parses technical information about the track from the header.
std::uint16_t channelCount() const
Returns the number of channels if known; otherwise returns 0.
std::string_view channelConfigString() const
Returns a string with the channel configuration if available; otherwise returns nullptr.
virtual void internalParseHeader(Diagnostics &diag, AbortableProgressFeedback &progress)=0
This method is internally called to parse header information.
const std::string name() const
Returns the track name if known; otherwise returns an empty string.
std::string description() const
Returns a description about the track.
MediaFormat format() const
Returns the format of the track if known; otherwise returns MediaFormat::Unknown.
virtual ~AbstractTrack()
Destroys the track.
The Diagnostics class is a container for DiagMessage.
The class inherits from std::exception and serves as base class for exceptions thrown by the elements...
std::string_view abbreviation() const
Returns an abbreviation for the current instance, eg.
constexpr TAG_PARSER_EXPORT std::string_view language()
TAG_PARSER_EXPORT std::string_view channelConfigString(std::uint8_t config)
Returns the string representation for the specified MPEG-4 channel config.
Contains all classes and functions of the TagInfo library.
TAG_PARSER_EXPORT std::string_view mpegChannelModeString(MpegChannelMode channelMode)
Returns the string representation for the specified channelMode.
MediaType
The MediaType enum specifies the type of media data (audio, video, text, ...).
MpegChannelMode
Specifies the channel mode.
TrackFlags
The TrackFlags enum specifies miscellaneous boolean properties of a track.