Tag Parser 12.3.1
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
|
Implementation of TagParser::AbstractTrack for raw FLAC streams. More...
#include <flacstream.h>
Public Member Functions | |
FlacStream (MediaFileInfo &mediaFileInfo, std::uint64_t startOffset) | |
Constructs a new track for the specified mediaFileInfo at the specified startOffset. | |
~FlacStream () override | |
TrackType | type () const override |
Returns the type of the track if known; otherwise returns TrackType::Unspecified. | |
VorbisComment * | vorbisComment () const |
Returns the Vorbis comment if one is present in the stream. | |
VorbisComment * | createVorbisComment () |
Creates a new Vorbis comment for the stream. | |
bool | removeVorbisComment () |
Removes the assigned Vorbis comment if one is assigned; does nothing otherwise. | |
std::uint32_t | paddingSize () const |
Returns the padding size. | |
std::uint32_t | streamOffset () const |
Returns the start offset of the actual FLAC frames. | |
std::streamoff | makeHeader (std::ostream &stream, Diagnostics &diag) |
Writes the FLAC metadata header to the specified outputStream. | |
Public Member Functions inherited from TagParser::AbstractTrack | |
virtual | ~AbstractTrack () |
Destroys the track. | |
std::istream & | inputStream () |
Returns the associated input stream. | |
void | setInputStream (std::istream &stream) |
Assigns another input stream. | |
std::ostream & | outputStream () |
Returns the associated output stream. | |
void | setOutputStream (std::ostream &stream) |
Assigns another output stream. | |
CppUtilities::BinaryReader & | reader () |
Returns a binary reader for the associated stream. | |
CppUtilities::BinaryWriter & | writer () |
Returns a binary writer for the associated stream. | |
std::uint64_t | startOffset () const |
Returns the start offset of the track in the associated stream. | |
TrackFlags | flags () const |
Returns flags (various boolean properties) of this track. | |
MediaFormat | format () const |
Returns the format of the track if known; otherwise returns MediaFormat::Unknown. | |
double | version () const |
Returns the version/level of the track if known; otherwise returns 0. | |
std::string_view | formatName () const |
Returns the format of the track as C-style string if known; otherwise returns the format abbreviation or an empty string. | |
std::string_view | formatAbbreviation () const |
Returns the a more or less common abbreviation for the format of the track if known; otherwise returns an empty string. | |
const std::string & | formatId () const |
Returns the format/codec ID. | |
MediaType | mediaType () const |
Returns the media type if known; otherwise returns MediaType::Other. | |
std::string_view | mediaTypeName () const |
Returns the string representation of the media type of the track. | |
std::uint64_t | size () const |
Returns the size in bytes if known; otherwise returns 0. | |
void | setSize (std::uint64_t size) |
Sets the size in bytes. | |
std::uint32_t | trackNumber () const |
Returns the track number if known; otherwise returns 0. | |
void | setTrackNumber (std::uint32_t trackNumber) |
Sets the track number. | |
std::uint64_t | id () const |
Returns the track ID if known; otherwise returns 0. | |
void | setId (std::uint64_t id) |
Sets the track ID. | |
const std::string | name () const |
Returns the track name if known; otherwise returns an empty string. | |
void | setName (std::string_view name) |
Sets the name. | |
const CppUtilities::TimeSpan & | duration () const |
Returns the duration if known; otherwise returns a TimeSpan of zero ticks. | |
double | bitrate () const |
Returns the average bitrate in kbit/s if known; otherwise returns zero. | |
double | maxBitrate () const |
Returns the maximum bitrate in kbit/s if known; otherwise returns zero. | |
const CppUtilities::DateTime & | creationTime () const |
Returns the creation time if known; otherwise returns a DateTime of zero ticks. | |
const CppUtilities::DateTime & | modificationTime () const |
Returns the time of the last modification if known; otherwise returns a DateTime of zero ticks. | |
const Locale & | locale () const |
Returns the locale of the track if known; otherwise returns an empty locale. | |
void | setLocale (const Locale &locale) |
Sets the locale of the track. | |
std::uint32_t | samplingFrequency () const |
Returns the number of samples per second if known; otherwise returns 0. | |
std::uint32_t | extensionSamplingFrequency () const |
Returns the number of samples per second if known; otherwise returns 0. | |
std::uint16_t | bitsPerSample () const |
Returns the number of bits per sample; otherwise returns 0. | |
std::uint16_t | channelCount () const |
Returns the number of channels if known; otherwise returns 0. | |
std::uint8_t | channelConfig () const |
Returns the channel configuration. | |
std::string_view | channelConfigString () const |
Returns a string with the channel configuration if available; otherwise returns nullptr. | |
std::uint8_t | extensionChannelConfig () const |
Returns the extension channel configuration if available; otherwise returns nullptr. | |
std::string_view | extensionChannelConfigString () const |
Returns a string with the extension channel configuration if available; otherwise returns nullptr. | |
std::uint64_t | sampleCount () const |
Returns the number of samples/frames if known; otherwise returns 0. | |
int | quality () const |
Returns the quality if known; otherwise returns 0. | |
const Size & | pixelSize () const |
Returns the size of the encoded video frames if known; otherwise returns a zero size. | |
const Size & | displaySize () const |
Returns the size of the video frames to display if known; otherwise returns a zero size. | |
const Size & | resolution () const |
Returns the resolution if known; otherwise returns a zero size. | |
const std::string & | compressorName () const |
Returns the compressor name if known; otherwise returns an empty string. | |
void | setCompressorName (std::string_view compressorName) |
Returns the compressor name if known; otherwise returns an empty string. | |
std::uint16_t | depth () const |
Returns the bit depth if known; otherwise returns 0. | |
std::uint32_t | fps () const |
Returns the number of frames per second if known; otherwise returns 0. | |
std::string_view | chromaFormat () const |
Returns the chroma subsampling format if known; otherwise returns nullptr. | |
const AspectRatio & | pixelAspectRatio () const |
Returns the pixel aspect ratio (PAR). | |
bool | isInterlaced () const |
Returns true if the video is interlaced; otherwise returns false. | |
std::uint32_t | timeScale () const |
Returns the time scale if known; otherwise returns 0. | |
bool | isEnabled () const |
Returns true if the track is marked as enabled; otherwise returns false. | |
void | setEnabled (bool enabled) |
Sets whether the track is enabled. | |
bool | isDefault () const |
Returns true if the track is marked as default; otherwise returns false. | |
void | setDefault (bool isDefault) |
Sets whether the track is a default track. | |
bool | isForced () const |
Returns true if the track is marked as forced; otherwise returns false. | |
void | setForced (bool forced) |
Sets whether the track is forced. | |
bool | hasLacing () const |
Returns true if the track has lacing; otherwise returns false. | |
bool | isEncrypted () const |
Returns true if the track is marked as encrypted; otherwise returns false. | |
std::uint32_t | colorSpace () const |
Returns the color space if known; otherwise returns 0. | |
const Margin & | cropping () const |
Returns the cropping if known; otherwise returns zero margins. | |
std::string | label () const |
Returns a label for the track. | |
std::string | description () const |
Returns a description about the track. | |
std::string | shortDescription () const |
Returns a short description about the track. | |
void | parseHeader (Diagnostics &diag, AbortableProgressFeedback &progress) |
Parses technical information about the track from the header. | |
bool | isHeaderValid () const |
Returns an indication whether the track header is valid. | |
Static Public Member Functions | |
static void | makePadding (std::ostream &stream, std::uint32_t size, bool isLast, Diagnostics &diag) |
Writes padding of the specified size to the specified stream. | |
Protected Member Functions | |
void | internalParseHeader (Diagnostics &diag, AbortableProgressFeedback &progress) override |
This method is internally called to parse header information. | |
Protected Member Functions inherited from TagParser::AbstractTrack | |
AbstractTrack (std::istream &inputStream, std::ostream &outputStream, std::uint64_t startOffset) | |
Constructs a new track. | |
AbstractTrack (std::iostream &stream, std::uint64_t startOffset) | |
Constructs a new track. | |
Implementation of TagParser::AbstractTrack for raw FLAC streams.
TagParser::FlacStream::FlacStream | ( | MediaFileInfo & | mediaFileInfo, |
std::uint64_t | startOffset ) |
Constructs a new track for the specified mediaFileInfo at the specified startOffset.
The stream of the mediaFileInfo instance is used as input stream.
Definition at line 31 of file flacstream.cpp.
|
inlineoverride |
Definition at line 39 of file flacstream.h.
VorbisComment * TagParser::FlacStream::createVorbisComment | ( | ) |
Creates a new Vorbis comment for the stream.
Definition at line 44 of file flacstream.cpp.
|
overrideprotectedvirtual |
This method is internally called to parse header information.
It needs to be implemented when subclassing this class.
Throws | std::ios_base::failure when an IO error occurs. |
Throws | TagParser::Failure or a derived exception when a parsing error occurs. |
Implements TagParser::AbstractTrack.
Definition at line 65 of file flacstream.cpp.
std::streamoff TagParser::FlacStream::makeHeader | ( | std::ostream & | stream, |
Diagnostics & | diag ) |
Writes the FLAC metadata header to the specified outputStream.
This basically copies all "METADATA_BLOCK_HEADER" of the current stream to the specified outputStream, except:
Definition at line 181 of file flacstream.cpp.
|
static |
Writes padding of the specified size to the specified stream.
Definition at line 303 of file flacstream.cpp.
|
inline |
Returns the padding size.
Definition at line 59 of file flacstream.h.
bool TagParser::FlacStream::removeVorbisComment | ( | ) |
Removes the assigned Vorbis comment if one is assigned; does nothing otherwise.
Definition at line 56 of file flacstream.cpp.
|
inline |
Returns the start offset of the actual FLAC frames.
Definition at line 68 of file flacstream.h.
|
inlineoverridevirtual |
Returns the type of the track if known; otherwise returns TrackType::Unspecified.
Reimplemented from TagParser::AbstractTrack.
Definition at line 43 of file flacstream.h.
|
inline |
Returns the Vorbis comment if one is present in the stream.
Definition at line 51 of file flacstream.h.