Fix decoration for static builds
This commit is contained in:
parent
0541c08864
commit
0cf30edbff
|
@ -13,7 +13,7 @@ namespace Media {
|
||||||
|
|
||||||
class MediaFileInfo;
|
class MediaFileInfo;
|
||||||
|
|
||||||
class LIB_EXPORT StreamDataBlock
|
class TAG_PARSER_EXPORT StreamDataBlock
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
StreamDataBlock(const std::function<std::istream & ()> &stream,
|
StreamDataBlock(const std::function<std::istream & ()> &stream,
|
||||||
|
@ -88,7 +88,7 @@ inline void StreamDataBlock::discardBuffer()
|
||||||
m_buffer.reset();
|
m_buffer.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT FileDataBlock : public StreamDataBlock
|
class TAG_PARSER_EXPORT FileDataBlock : public StreamDataBlock
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FileDataBlock(const std::string &path);
|
FileDataBlock(const std::string &path);
|
||||||
|
@ -103,7 +103,7 @@ inline const MediaFileInfo *FileDataBlock::fileInfo() const
|
||||||
return m_fileInfo.get();
|
return m_fileInfo.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT AbstractAttachment : public StatusProvider
|
class TAG_PARSER_EXPORT AbstractAttachment : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
const std::string &description() const;
|
const std::string &description() const;
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT AbstractChapter : public StatusProvider
|
class TAG_PARSER_EXPORT AbstractChapter : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~AbstractChapter();
|
virtual ~AbstractChapter();
|
||||||
|
|
|
@ -26,7 +26,7 @@ class AbstractTrack;
|
||||||
class AbstractChapter;
|
class AbstractChapter;
|
||||||
class AbstractAttachment;
|
class AbstractAttachment;
|
||||||
|
|
||||||
class LIB_EXPORT AbstractContainer : public StatusProvider
|
class TAG_PARSER_EXPORT AbstractContainer : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~AbstractContainer();
|
virtual ~AbstractContainer();
|
||||||
|
|
|
@ -37,7 +37,7 @@ enum class TrackType
|
||||||
FlacStream, /**< The track is a Media::FlacStream. */
|
FlacStream, /**< The track is a Media::FlacStream. */
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT AbstractTrack : public StatusProvider
|
class TAG_PARSER_EXPORT AbstractTrack : public StatusProvider
|
||||||
{
|
{
|
||||||
friend class MpegAudioFrameStream;
|
friend class MpegAudioFrameStream;
|
||||||
friend class WaveAudioStream;
|
friend class WaveAudioStream;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#ifndef MEDIA_ADTSFRAME_H
|
#ifndef MEDIA_ADTSFRAME_H
|
||||||
#define MEDIA_ADTSFRAME_H
|
#define MEDIA_ADTSFRAME_H
|
||||||
|
|
||||||
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
#include <c++utilities/application/global.h>
|
|
||||||
|
|
||||||
namespace IoUtilities {
|
namespace IoUtilities {
|
||||||
class BinaryReader;
|
class BinaryReader;
|
||||||
|
@ -10,7 +11,7 @@ class BinaryReader;
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT AdtsFrame
|
class TAG_PARSER_EXPORT AdtsFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AdtsFrame();
|
AdtsFrame();
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT AdtsStream : public AbstractTrack
|
class TAG_PARSER_EXPORT AdtsStream : public AbstractTrack
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AdtsStream(std::iostream &stream, uint64 startOffset);
|
AdtsStream(std::iostream &stream, uint64 startOffset);
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
#ifndef MEDIA_ASPECTRATIO_H
|
#ifndef MEDIA_ASPECTRATIO_H
|
||||||
#define MEDIA_ASPECTRATIO_H
|
#define MEDIA_ASPECTRATIO_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
struct LIB_EXPORT AspectRatio {
|
struct TAG_PARSER_EXPORT AspectRatio {
|
||||||
AspectRatio();
|
AspectRatio();
|
||||||
AspectRatio(byte aspectRatioType);
|
AspectRatio(byte aspectRatioType);
|
||||||
AspectRatio(uint16 numerator, uint16 denominator);
|
AspectRatio(uint16 numerator, uint16 denominator);
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace Media {
|
||||||
|
|
||||||
class MediaFormat;
|
class MediaFormat;
|
||||||
|
|
||||||
struct LIB_EXPORT AvcConfiguration
|
struct TAG_PARSER_EXPORT AvcConfiguration
|
||||||
{
|
{
|
||||||
AvcConfiguration();
|
AvcConfiguration();
|
||||||
byte profileIndication;
|
byte profileIndication;
|
||||||
|
|
|
@ -22,7 +22,7 @@ typedef uint32 ugolomb;
|
||||||
*/
|
*/
|
||||||
typedef int32 sgolomb;
|
typedef int32 sgolomb;
|
||||||
|
|
||||||
struct LIB_EXPORT TimingInfo {
|
struct TAG_PARSER_EXPORT TimingInfo {
|
||||||
TimingInfo();
|
TimingInfo();
|
||||||
uint32 unitsInTick;
|
uint32 unitsInTick;
|
||||||
uint32 timeScale;
|
uint32 timeScale;
|
||||||
|
@ -43,7 +43,7 @@ inline int64 TimingInfo::defaultDuration() const
|
||||||
return 1000000000ll * unitsInTick / timeScale;
|
return 1000000000ll * unitsInTick / timeScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct LIB_EXPORT HrdParameters {
|
struct TAG_PARSER_EXPORT HrdParameters {
|
||||||
HrdParameters();
|
HrdParameters();
|
||||||
ugolomb cpbCount;
|
ugolomb cpbCount;
|
||||||
byte bitRateScale;
|
byte bitRateScale;
|
||||||
|
@ -66,7 +66,7 @@ inline HrdParameters::HrdParameters() :
|
||||||
timeOffsetLength(0)
|
timeOffsetLength(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
struct LIB_EXPORT SpsInfo {
|
struct TAG_PARSER_EXPORT SpsInfo {
|
||||||
SpsInfo();
|
SpsInfo();
|
||||||
ugolomb id;
|
ugolomb id;
|
||||||
byte profileIndication;
|
byte profileIndication;
|
||||||
|
@ -115,7 +115,7 @@ inline SpsInfo::SpsInfo() :
|
||||||
size(0)
|
size(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
struct LIB_EXPORT PpsInfo {
|
struct TAG_PARSER_EXPORT PpsInfo {
|
||||||
PpsInfo();
|
PpsInfo();
|
||||||
ugolomb id;
|
ugolomb id;
|
||||||
ugolomb spsId;
|
ugolomb spsId;
|
||||||
|
@ -132,7 +132,7 @@ inline PpsInfo::PpsInfo() :
|
||||||
size(0)
|
size(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
struct LIB_EXPORT SliceInfo {
|
struct TAG_PARSER_EXPORT SliceInfo {
|
||||||
SliceInfo();
|
SliceInfo();
|
||||||
byte naluType;
|
byte naluType;
|
||||||
byte naluRefIdc;
|
byte naluRefIdc;
|
||||||
|
@ -167,7 +167,7 @@ inline SliceInfo::SliceInfo() :
|
||||||
pps(0)
|
pps(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
class LIB_EXPORT AvcFrame {
|
class TAG_PARSER_EXPORT AvcFrame {
|
||||||
AvcFrame();
|
AvcFrame();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef MEDIA_BITMAPINFOHEADER_H
|
#ifndef MEDIA_BITMAPINFOHEADER_H
|
||||||
#define MEDIA_BITMAPINFOHEADER_H
|
#define MEDIA_BITMAPINFOHEADER_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
namespace IoUtilities {
|
namespace IoUtilities {
|
||||||
|
@ -10,7 +11,7 @@ class BinaryReader;
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT BitmapInfoHeader
|
class TAG_PARSER_EXPORT BitmapInfoHeader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BitmapInfoHeader();
|
BitmapInfoHeader();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef BACKUPHELPER_H
|
#ifndef BACKUPHELPER_H
|
||||||
#define BACKUPHELPER_H
|
#define BACKUPHELPER_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
@ -12,10 +12,10 @@ class MediaFileInfo;
|
||||||
|
|
||||||
namespace BackupHelper {
|
namespace BackupHelper {
|
||||||
|
|
||||||
LIB_EXPORT std::string &backupDirectory();
|
TAG_PARSER_EXPORT std::string &backupDirectory();
|
||||||
LIB_EXPORT void restoreOriginalFileFromBackupFile(const std::string &originalPath, const std::string &backupPath, std::fstream &originalStream, std::fstream &backupStream);
|
TAG_PARSER_EXPORT void restoreOriginalFileFromBackupFile(const std::string &originalPath, const std::string &backupPath, std::fstream &originalStream, std::fstream &backupStream);
|
||||||
LIB_EXPORT void createBackupFile(const std::string &originalPath, std::string &backupPath, std::fstream &originalStream, std::fstream &backupStream);
|
TAG_PARSER_EXPORT void createBackupFile(const std::string &originalPath, std::string &backupPath, std::fstream &originalStream, std::fstream &backupStream);
|
||||||
LIB_EXPORT void handleFailureAfterFileModified(MediaFileInfo &mediaFileInfo, const std::string &backupPath, std::fstream &outputStream, std::fstream &backupStream, const std::string &context = "making file");
|
TAG_PARSER_EXPORT void handleFailureAfterFileModified(MediaFileInfo &mediaFileInfo, const std::string &backupPath, std::fstream &outputStream, std::fstream &backupStream, const std::string &context = "making file");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef BASICFILEINFO_H
|
#ifndef BASICFILEINFO_H
|
||||||
#define BASICFILEINFO_H
|
#define BASICFILEINFO_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -9,7 +10,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT BasicFileInfo
|
class TAG_PARSER_EXPORT BasicFileInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// constructor, destructor
|
// constructor, destructor
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef CASEINSENSITIVECOMPARER
|
#ifndef CASEINSENSITIVECOMPARER
|
||||||
#define CASEINSENSITIVECOMPARER
|
#define CASEINSENSITIVECOMPARER
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ namespace Media {
|
||||||
/*!
|
/*!
|
||||||
* \brief The CaseInsensitiveCharComparer struct defines a method for case-insensivive character comparsion (less).
|
* \brief The CaseInsensitiveCharComparer struct defines a method for case-insensivive character comparsion (less).
|
||||||
*/
|
*/
|
||||||
struct LIB_EXPORT CaseInsensitiveCharComparer
|
struct TAG_PARSER_EXPORT CaseInsensitiveCharComparer
|
||||||
{
|
{
|
||||||
static constexpr unsigned char toLower(const unsigned char c)
|
static constexpr unsigned char toLower(const unsigned char c)
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@ struct LIB_EXPORT CaseInsensitiveCharComparer
|
||||||
/*!
|
/*!
|
||||||
* \brief The CaseInsensitiveStringComparer struct defines a method for case-insensivive string comparsion (less).
|
* \brief The CaseInsensitiveStringComparer struct defines a method for case-insensivive string comparsion (less).
|
||||||
*/
|
*/
|
||||||
struct LIB_EXPORT CaseInsensitiveStringComparer
|
struct TAG_PARSER_EXPORT CaseInsensitiveStringComparer
|
||||||
{
|
{
|
||||||
bool operator()(const std::string &lhs, const std::string &rhs) const
|
bool operator()(const std::string &lhs, const std::string &rhs) const
|
||||||
{
|
{
|
||||||
|
|
16
exceptions.h
16
exceptions.h
|
@ -1,14 +1,14 @@
|
||||||
#ifndef MEDIA_EXCEPTIONS_H
|
#ifndef MEDIA_EXCEPTIONS_H
|
||||||
#define MEDIA_EXCEPTIONS_H
|
#define MEDIA_EXCEPTIONS_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT Failure : public std::exception
|
class TAG_PARSER_EXPORT Failure : public std::exception
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Failure() USE_NOTHROW;
|
Failure() USE_NOTHROW;
|
||||||
|
@ -16,7 +16,7 @@ public:
|
||||||
virtual const char *what() const USE_NOTHROW;
|
virtual const char *what() const USE_NOTHROW;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT NoDataFoundException : public Failure
|
class TAG_PARSER_EXPORT NoDataFoundException : public Failure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NoDataFoundException() USE_NOTHROW;
|
NoDataFoundException() USE_NOTHROW;
|
||||||
|
@ -24,7 +24,7 @@ public:
|
||||||
virtual const char *what() const USE_NOTHROW;
|
virtual const char *what() const USE_NOTHROW;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT InvalidDataException : public Failure
|
class TAG_PARSER_EXPORT InvalidDataException : public Failure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
InvalidDataException() USE_NOTHROW;
|
InvalidDataException() USE_NOTHROW;
|
||||||
|
@ -32,7 +32,7 @@ public:
|
||||||
virtual const char *what() const USE_NOTHROW;
|
virtual const char *what() const USE_NOTHROW;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT TruncatedDataException : public InvalidDataException
|
class TAG_PARSER_EXPORT TruncatedDataException : public InvalidDataException
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TruncatedDataException() USE_NOTHROW;
|
TruncatedDataException() USE_NOTHROW;
|
||||||
|
@ -40,7 +40,7 @@ public:
|
||||||
virtual const char *what() const USE_NOTHROW;
|
virtual const char *what() const USE_NOTHROW;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT OperationAbortedException : public Failure
|
class TAG_PARSER_EXPORT OperationAbortedException : public Failure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OperationAbortedException() USE_NOTHROW;
|
OperationAbortedException() USE_NOTHROW;
|
||||||
|
@ -48,7 +48,7 @@ public:
|
||||||
virtual const char *what() const USE_NOTHROW;
|
virtual const char *what() const USE_NOTHROW;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT VersionNotSupportedException : public Failure
|
class TAG_PARSER_EXPORT VersionNotSupportedException : public Failure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
VersionNotSupportedException() USE_NOTHROW;
|
VersionNotSupportedException() USE_NOTHROW;
|
||||||
|
@ -56,7 +56,7 @@ public:
|
||||||
virtual const char *what() const USE_NOTHROW;
|
virtual const char *what() const USE_NOTHROW;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT NotImplementedException : public Failure
|
class TAG_PARSER_EXPORT NotImplementedException : public Failure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NotImplementedException() USE_NOTHROW;
|
NotImplementedException() USE_NOTHROW;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef MEDIA_FLACMETADATAHEADER_H
|
#ifndef MEDIA_FLACMETADATAHEADER_H
|
||||||
#define MEDIA_FLACMETADATAHEADER_H
|
#define MEDIA_FLACMETADATAHEADER_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
@ -34,7 +35,7 @@ constexpr bool operator !=(byte lhs, FlacMetaDataBlockType type)
|
||||||
return lhs != static_cast<byte>(type);
|
return lhs != static_cast<byte>(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT FlacMetaDataBlockHeader
|
class TAG_PARSER_EXPORT FlacMetaDataBlockHeader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FlacMetaDataBlockHeader();
|
FlacMetaDataBlockHeader();
|
||||||
|
@ -115,7 +116,7 @@ inline void FlacMetaDataBlockHeader::setDataSize(uint32 dataSize)
|
||||||
m_dataSize = dataSize;
|
m_dataSize = dataSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT FlacMetaDataBlockStreamInfo
|
class TAG_PARSER_EXPORT FlacMetaDataBlockStreamInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FlacMetaDataBlockStreamInfo();
|
FlacMetaDataBlockStreamInfo();
|
||||||
|
@ -254,7 +255,7 @@ inline const char *FlacMetaDataBlockStreamInfo::md5Sum() const
|
||||||
return m_md5Sum;
|
return m_md5Sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT FlacMetaDataBlockPicture
|
class TAG_PARSER_EXPORT FlacMetaDataBlockPicture
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FlacMetaDataBlockPicture(TagValue &tagValue);
|
FlacMetaDataBlockPicture(TagValue &tagValue);
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace Media {
|
||||||
class MediaFileInfo;
|
class MediaFileInfo;
|
||||||
class VorbisComment;
|
class VorbisComment;
|
||||||
|
|
||||||
class LIB_EXPORT FlacStream : public AbstractTrack
|
class TAG_PARSER_EXPORT FlacStream : public AbstractTrack
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FlacStream(MediaFileInfo &mediaFileInfo, uint64 startOffset);
|
FlacStream(MediaFileInfo &mediaFileInfo, uint64 startOffset);
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace Media {
|
||||||
|
|
||||||
class OggIterator;
|
class OggIterator;
|
||||||
|
|
||||||
class LIB_EXPORT FlacToOggMappingHeader
|
class TAG_PARSER_EXPORT FlacToOggMappingHeader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FlacToOggMappingHeader();
|
FlacToOggMappingHeader();
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace Media {
|
||||||
* \tparam ElementType Specifies the class which is used to deal with the elements the file consists of.
|
* \tparam ElementType Specifies the class which is used to deal with the elements the file consists of.
|
||||||
*/
|
*/
|
||||||
template <class FileInfoType, class TagType, class TrackType, class ElementType>
|
template <class FileInfoType, class TagType, class TrackType, class ElementType>
|
||||||
class LIB_EXPORT GenericContainer : public AbstractContainer
|
class TAG_PARSER_EXPORT GenericContainer : public AbstractContainer
|
||||||
{
|
{
|
||||||
friend FileInfoType;
|
friend FileInfoType;
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ class FileElementTraits
|
||||||
* \tparam ImplementationType Specifies the type of the actual implementation.
|
* \tparam ImplementationType Specifies the type of the actual implementation.
|
||||||
*/
|
*/
|
||||||
template <class ImplementationType>
|
template <class ImplementationType>
|
||||||
class LIB_EXPORT GenericFileElement : public StatusProvider
|
class TAG_PARSER_EXPORT GenericFileElement : public StatusProvider
|
||||||
{
|
{
|
||||||
friend class FileElementTraits<ImplementationType>;
|
friend class FileElementTraits<ImplementationType>;
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ class TagFieldTraits
|
||||||
* with the "Curiously recurring template pattern".
|
* with the "Curiously recurring template pattern".
|
||||||
*/
|
*/
|
||||||
template <class ImplementationType>
|
template <class ImplementationType>
|
||||||
class LIB_EXPORT TagField
|
class TAG_PARSER_EXPORT TagField
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
friend class TagFieldTraits<ImplementationType>;
|
friend class TagFieldTraits<ImplementationType>;
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
// Created via CMake from template global.h.in
|
||||||
|
// WARNING! Any changes to this file will be overwritten by the next CMake run!
|
||||||
|
|
||||||
|
#ifndef TAG_PARSER_GLOBAL
|
||||||
|
#define TAG_PARSER_GLOBAL
|
||||||
|
|
||||||
|
#include <c++utilities/application/global.h>
|
||||||
|
|
||||||
|
#ifdef TAG_PARSER_STATIC
|
||||||
|
# define TAG_PARSER_EXPORT
|
||||||
|
# define TAG_PARSER_IMPORT
|
||||||
|
#else
|
||||||
|
# define TAG_PARSER_EXPORT LIB_EXPORT
|
||||||
|
# define TAG_PARSER_IMPORT LIB_IMPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // TAG_PARSER_GLOBAL
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef ID3GENRES_H
|
#ifndef ID3GENRES_H
|
||||||
#define ID3GENRES_H
|
#define ID3GENRES_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -9,7 +10,7 @@
|
||||||
namespace Media
|
namespace Media
|
||||||
{
|
{
|
||||||
|
|
||||||
class LIB_EXPORT Id3Genres
|
class TAG_PARSER_EXPORT Id3Genres
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const char *stringFromIndex(int index);
|
static const char *stringFromIndex(int index);
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
namespace Media
|
namespace Media
|
||||||
{
|
{
|
||||||
|
|
||||||
class LIB_EXPORT Id3v1Tag : public Tag
|
class TAG_PARSER_EXPORT Id3v1Tag : public Tag
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Id3v1Tag();
|
Id3v1Tag();
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace Media
|
||||||
|
|
||||||
class Id3v2Frame;
|
class Id3v2Frame;
|
||||||
|
|
||||||
class LIB_EXPORT Id3v2FrameMaker
|
class TAG_PARSER_EXPORT Id3v2FrameMaker
|
||||||
{
|
{
|
||||||
friend class Id3v2Frame;
|
friend class Id3v2Frame;
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ inline uint32 Id3v2FrameMaker::requiredSize() const
|
||||||
* \brief Defines traits for the TagField implementation of the Id3v2Frame class.
|
* \brief Defines traits for the TagField implementation of the Id3v2Frame class.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT TagFieldTraits<Id3v2Frame>
|
class TAG_PARSER_EXPORT TagFieldTraits<Id3v2Frame>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -97,7 +97,7 @@ public:
|
||||||
typedef Id3v2Frame implementationType;
|
typedef Id3v2Frame implementationType;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT Id3v2Frame : public TagField<Id3v2Frame>, public StatusProvider
|
class TAG_PARSER_EXPORT Id3v2Frame : public TagField<Id3v2Frame>, public StatusProvider
|
||||||
{
|
{
|
||||||
friend class TagField<Id3v2Frame>;
|
friend class TagField<Id3v2Frame>;
|
||||||
|
|
||||||
|
|
|
@ -12,12 +12,12 @@ namespace Media
|
||||||
|
|
||||||
class Id3v2Tag;
|
class Id3v2Tag;
|
||||||
|
|
||||||
struct LIB_EXPORT FrameComparer
|
struct TAG_PARSER_EXPORT FrameComparer
|
||||||
{
|
{
|
||||||
bool operator()(const uint32 &lhs, const uint32 &rhs) const;
|
bool operator()(const uint32 &lhs, const uint32 &rhs) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT Id3v2TagMaker
|
class TAG_PARSER_EXPORT Id3v2TagMaker
|
||||||
{
|
{
|
||||||
friend class Id3v2Tag;
|
friend class Id3v2Tag;
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ inline uint64 Id3v2TagMaker::requiredSize() const
|
||||||
return m_requiredSize;
|
return m_requiredSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT Id3v2Tag : public FieldMapBasedTag<Id3v2Frame, FrameComparer>
|
class TAG_PARSER_EXPORT Id3v2Tag : public FieldMapBasedTag<Id3v2Frame, FrameComparer>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Id3v2Tag();
|
Id3v2Tag();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef MEDIA_LOCALEAWARESTRING_H
|
#ifndef MEDIA_LOCALEAWARESTRING_H
|
||||||
#define MEDIA_LOCALEAWARESTRING_H
|
#define MEDIA_LOCALEAWARESTRING_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -11,7 +11,7 @@ namespace Media {
|
||||||
/*!
|
/*!
|
||||||
* \brief The LocaleAwareString class is a standard string with locale information (languages, countries).
|
* \brief The LocaleAwareString class is a standard string with locale information (languages, countries).
|
||||||
*/
|
*/
|
||||||
class LIB_EXPORT LocaleAwareString : public std::string
|
class TAG_PARSER_EXPORT LocaleAwareString : public std::string
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LocaleAwareString(const std::string &value = std::string());
|
LocaleAwareString(const std::string &value = std::string());
|
||||||
|
|
5
margin.h
5
margin.h
|
@ -1,7 +1,8 @@
|
||||||
#ifndef MARGIN_H
|
#ifndef MARGIN_H
|
||||||
#define MARGIN_H
|
#define MARGIN_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -12,7 +13,7 @@ namespace Media {
|
||||||
/*!
|
/*!
|
||||||
* \brief The Margin class defines the four margins of a rectangle.
|
* \brief The Margin class defines the four margins of a rectangle.
|
||||||
*/
|
*/
|
||||||
class LIB_EXPORT Margin
|
class TAG_PARSER_EXPORT Margin
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
constexpr Margin(uint32 top = 0, uint32 left = 0, uint32 bottom = 0, uint32 right = 0);
|
constexpr Margin(uint32 top = 0, uint32 left = 0, uint32 bottom = 0, uint32 right = 0);
|
||||||
|
|
|
@ -23,7 +23,7 @@ class MatroskaContainer;
|
||||||
* \brief Defines traits for the GenericFileElement implementation EbmlElement.
|
* \brief Defines traits for the GenericFileElement implementation EbmlElement.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT FileElementTraits<EbmlElement>
|
class TAG_PARSER_EXPORT FileElementTraits<EbmlElement>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -47,7 +47,7 @@ public:
|
||||||
typedef EbmlElement implementationType;
|
typedef EbmlElement implementationType;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT EbmlElement : public GenericFileElement<EbmlElement>
|
class TAG_PARSER_EXPORT EbmlElement : public GenericFileElement<EbmlElement>
|
||||||
{
|
{
|
||||||
friend class GenericFileElement<EbmlElement>;
|
friend class GenericFileElement<EbmlElement>;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace Media {
|
||||||
class EbmlElement;
|
class EbmlElement;
|
||||||
class MatroskaAttachment;
|
class MatroskaAttachment;
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaAttachmentMaker
|
class TAG_PARSER_EXPORT MatroskaAttachmentMaker
|
||||||
{
|
{
|
||||||
friend class MatroskaAttachment;
|
friend class MatroskaAttachment;
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ inline uint64 MatroskaAttachmentMaker::requiredSize() const
|
||||||
return m_totalSize;
|
return m_totalSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaAttachment : public AbstractAttachment
|
class TAG_PARSER_EXPORT MatroskaAttachment : public AbstractAttachment
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaAttachment();
|
MatroskaAttachment();
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace Media {
|
||||||
|
|
||||||
class EbmlElement;
|
class EbmlElement;
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaChapter : public AbstractChapter
|
class TAG_PARSER_EXPORT MatroskaChapter : public AbstractChapter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaChapter(EbmlElement *chapterAtomElement);
|
MatroskaChapter(EbmlElement *chapterAtomElement);
|
||||||
|
|
|
@ -22,7 +22,7 @@ class MatroskaEditionEntry;
|
||||||
|
|
||||||
class MediaFileInfo;
|
class MediaFileInfo;
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaContainer : public GenericContainer<MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement>
|
class TAG_PARSER_EXPORT MatroskaContainer : public GenericContainer<MediaFileInfo, MatroskaTag, MatroskaTrack, EbmlElement>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaContainer(MediaFileInfo &stream, uint64 startOffset);
|
MatroskaContainer(MediaFileInfo &stream, uint64 startOffset);
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaOffsetStates
|
class TAG_PARSER_EXPORT MatroskaOffsetStates
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaOffsetStates(uint64 initialValue);
|
MatroskaOffsetStates(uint64 initialValue);
|
||||||
|
@ -40,7 +40,7 @@ inline uint64 MatroskaOffsetStates::initialValue() const
|
||||||
return m_initialValue;
|
return m_initialValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaReferenceOffsetPair : public MatroskaOffsetStates
|
class TAG_PARSER_EXPORT MatroskaReferenceOffsetPair : public MatroskaOffsetStates
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaReferenceOffsetPair(uint64 referenceOffset, uint64 initialValue);
|
MatroskaReferenceOffsetPair(uint64 referenceOffset, uint64 initialValue);
|
||||||
|
@ -59,7 +59,7 @@ inline uint64 MatroskaReferenceOffsetPair::referenceOffset() const
|
||||||
return m_referenceOffset;
|
return m_referenceOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaCuePositionUpdater : public StatusProvider
|
class TAG_PARSER_EXPORT MatroskaCuePositionUpdater : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaCuePositionUpdater();
|
MatroskaCuePositionUpdater();
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace Media {
|
||||||
|
|
||||||
class EbmlElement;
|
class EbmlElement;
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaEditionEntry : public StatusProvider
|
class TAG_PARSER_EXPORT MatroskaEditionEntry : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaEditionEntry(EbmlElement *editionEntryElement);
|
MatroskaEditionEntry(EbmlElement *editionEntryElement);
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef MATROSKAIDS_H
|
#ifndef MATROSKAIDS_H
|
||||||
#define MATROSKAIDS_H
|
#define MATROSKAIDS_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
@ -488,7 +489,7 @@ enum KnownValues {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LIB_EXPORT const char *matroskaIdName(uint32 matroskaId);
|
TAG_PARSER_EXPORT const char *matroskaIdName(uint32 matroskaId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaSeekInfo : public StatusProvider
|
class TAG_PARSER_EXPORT MatroskaSeekInfo : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaSeekInfo();
|
MatroskaSeekInfo();
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace Media {
|
||||||
class EbmlElement;
|
class EbmlElement;
|
||||||
class MatroskaTag;
|
class MatroskaTag;
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaTagMaker
|
class TAG_PARSER_EXPORT MatroskaTagMaker
|
||||||
{
|
{
|
||||||
friend class MatroskaTag;
|
friend class MatroskaTag;
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ inline uint64 MatroskaTagMaker::requiredSize() const
|
||||||
return m_totalSize;
|
return m_totalSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaTag : public FieldMapBasedTag<MatroskaTagField>
|
class TAG_PARSER_EXPORT MatroskaTag : public FieldMapBasedTag<MatroskaTagField>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatroskaTag();
|
MatroskaTag();
|
||||||
|
|
|
@ -13,7 +13,7 @@ class MatroskaTagField;
|
||||||
* \brief Defines traits for the TagField implementation of the MatroskaTagField class.
|
* \brief Defines traits for the TagField implementation of the MatroskaTagField class.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT TagFieldTraits<MatroskaTagField>
|
class TAG_PARSER_EXPORT TagFieldTraits<MatroskaTagField>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -42,7 +42,7 @@ inline bool TagFieldTraits<MatroskaTagField>::supportsNestedFields()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaTagFieldMaker
|
class TAG_PARSER_EXPORT MatroskaTagFieldMaker
|
||||||
{
|
{
|
||||||
friend class MatroskaTagField;
|
friend class MatroskaTagField;
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ inline uint64 MatroskaTagFieldMaker::requiredSize() const
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaTagField : public TagField<MatroskaTagField>, public StatusProvider
|
class TAG_PARSER_EXPORT MatroskaTagField : public TagField<MatroskaTagField>, public StatusProvider
|
||||||
{
|
{
|
||||||
friend class TagField<MatroskaTagField>;
|
friend class TagField<MatroskaTagField>;
|
||||||
|
|
||||||
|
|
|
@ -10,327 +10,327 @@ namespace Media {
|
||||||
*/
|
*/
|
||||||
namespace MatroskaTagIds {
|
namespace MatroskaTagIds {
|
||||||
|
|
||||||
inline LIB_EXPORT const char *original() {
|
inline TAG_PARSER_EXPORT const char *original() {
|
||||||
return "ORIGINAL";
|
return "ORIGINAL";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *sample() {
|
inline TAG_PARSER_EXPORT const char *sample() {
|
||||||
return "SAMPLE";
|
return "SAMPLE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *country() {
|
inline TAG_PARSER_EXPORT const char *country() {
|
||||||
return "COUNTRY";
|
return "COUNTRY";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *totalParts() {
|
inline TAG_PARSER_EXPORT const char *totalParts() {
|
||||||
return "TOTAL_PARTS";
|
return "TOTAL_PARTS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *partNumber() {
|
inline TAG_PARSER_EXPORT const char *partNumber() {
|
||||||
return "PART_NUMBER";
|
return "PART_NUMBER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *partOffset() {
|
inline TAG_PARSER_EXPORT const char *partOffset() {
|
||||||
return "PART_OFFSET";
|
return "PART_OFFSET";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *title() {
|
inline TAG_PARSER_EXPORT const char *title() {
|
||||||
return "TITLE";
|
return "TITLE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *subtitle() {
|
inline TAG_PARSER_EXPORT const char *subtitle() {
|
||||||
return "SUBTITLE";
|
return "SUBTITLE";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *url() {
|
inline TAG_PARSER_EXPORT const char *url() {
|
||||||
return "URL";
|
return "URL";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *sortWith() {
|
inline TAG_PARSER_EXPORT const char *sortWith() {
|
||||||
return "SORT_WITH";
|
return "SORT_WITH";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *instruments() {
|
inline TAG_PARSER_EXPORT const char *instruments() {
|
||||||
return "INSTRUMENTS";
|
return "INSTRUMENTS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *email() {
|
inline TAG_PARSER_EXPORT const char *email() {
|
||||||
return "EMAIL";
|
return "EMAIL";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *address() {
|
inline TAG_PARSER_EXPORT const char *address() {
|
||||||
return "ADDRESS";
|
return "ADDRESS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *fax() {
|
inline TAG_PARSER_EXPORT const char *fax() {
|
||||||
return "FAX";
|
return "FAX";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *phone() {
|
inline TAG_PARSER_EXPORT const char *phone() {
|
||||||
return "PHONE";
|
return "PHONE";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *artist() {
|
inline TAG_PARSER_EXPORT const char *artist() {
|
||||||
return "ARTIST";
|
return "ARTIST";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *album() {
|
inline TAG_PARSER_EXPORT const char *album() {
|
||||||
return "ALBUM";
|
return "ALBUM";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *leadPerformer() {
|
inline TAG_PARSER_EXPORT const char *leadPerformer() {
|
||||||
return "LEAD_PERFORMER";
|
return "LEAD_PERFORMER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *accompaniment() {
|
inline TAG_PARSER_EXPORT const char *accompaniment() {
|
||||||
return "ACCOMPANIMENT";
|
return "ACCOMPANIMENT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *composer() {
|
inline TAG_PARSER_EXPORT const char *composer() {
|
||||||
return "COMPOSER";
|
return "COMPOSER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *arranger() {
|
inline TAG_PARSER_EXPORT const char *arranger() {
|
||||||
return "ARRANGER";
|
return "ARRANGER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *lyrics() {
|
inline TAG_PARSER_EXPORT const char *lyrics() {
|
||||||
return "LYRICS";
|
return "LYRICS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *lyricist() {
|
inline TAG_PARSER_EXPORT const char *lyricist() {
|
||||||
return "LYRICIST";
|
return "LYRICIST";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *conductor() {
|
inline TAG_PARSER_EXPORT const char *conductor() {
|
||||||
return "CONDUCTOR";
|
return "CONDUCTOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *director() {
|
inline TAG_PARSER_EXPORT const char *director() {
|
||||||
return "DIRECTOR";
|
return "DIRECTOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *assistantDirector() {
|
inline TAG_PARSER_EXPORT const char *assistantDirector() {
|
||||||
return "ASSISTANT_DIRECTOR";
|
return "ASSISTANT_DIRECTOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *directorOfPhotography() {
|
inline TAG_PARSER_EXPORT const char *directorOfPhotography() {
|
||||||
return "DIRECTOR_OF_PHOTOGRAPHY";
|
return "DIRECTOR_OF_PHOTOGRAPHY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *soundEngineer() {
|
inline TAG_PARSER_EXPORT const char *soundEngineer() {
|
||||||
return "SOUND_ENGINEER";
|
return "SOUND_ENGINEER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *artDirector() {
|
inline TAG_PARSER_EXPORT const char *artDirector() {
|
||||||
return "ART_DIRECTOR";
|
return "ART_DIRECTOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *productionDesigner() {
|
inline TAG_PARSER_EXPORT const char *productionDesigner() {
|
||||||
return "PRODUCTION_DESIGNER";
|
return "PRODUCTION_DESIGNER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *choregrapher() {
|
inline TAG_PARSER_EXPORT const char *choregrapher() {
|
||||||
return "CHOREGRAPHER";
|
return "CHOREGRAPHER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *costumeDesigner() {
|
inline TAG_PARSER_EXPORT const char *costumeDesigner() {
|
||||||
return "COSTUME_DESIGNER";
|
return "COSTUME_DESIGNER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *actor() {
|
inline TAG_PARSER_EXPORT const char *actor() {
|
||||||
return "ACTOR";
|
return "ACTOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *character() {
|
inline TAG_PARSER_EXPORT const char *character() {
|
||||||
return "CHARACTER";
|
return "CHARACTER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *writtenBy() {
|
inline TAG_PARSER_EXPORT const char *writtenBy() {
|
||||||
return "WRITTEN_BY";
|
return "WRITTEN_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *screenplayBy() {
|
inline TAG_PARSER_EXPORT const char *screenplayBy() {
|
||||||
return "SCREENPLAY_BY";
|
return "SCREENPLAY_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *editedBy() {
|
inline TAG_PARSER_EXPORT const char *editedBy() {
|
||||||
return "EDITED_BY";
|
return "EDITED_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *producer() {
|
inline TAG_PARSER_EXPORT const char *producer() {
|
||||||
return "PRODUCER";
|
return "PRODUCER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *coproducer() {
|
inline TAG_PARSER_EXPORT const char *coproducer() {
|
||||||
return "COPRODUCER";
|
return "COPRODUCER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *executiveProducer() {
|
inline TAG_PARSER_EXPORT const char *executiveProducer() {
|
||||||
return "EXECUTIVE_PRODUCER";
|
return "EXECUTIVE_PRODUCER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *distributedBy() {
|
inline TAG_PARSER_EXPORT const char *distributedBy() {
|
||||||
return "DISTRIBUTED_BY";
|
return "DISTRIBUTED_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *masteredBy() {
|
inline TAG_PARSER_EXPORT const char *masteredBy() {
|
||||||
return "MASTERED_BY";
|
return "MASTERED_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *encodedBy() {
|
inline TAG_PARSER_EXPORT const char *encodedBy() {
|
||||||
return "ENCODED_BY";
|
return "ENCODED_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *mixedBy() {
|
inline TAG_PARSER_EXPORT const char *mixedBy() {
|
||||||
return "MIXED_BY";
|
return "MIXED_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *remixedBy() {
|
inline TAG_PARSER_EXPORT const char *remixedBy() {
|
||||||
return "REMIXED_BY";
|
return "REMIXED_BY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *productionStudio() {
|
inline TAG_PARSER_EXPORT const char *productionStudio() {
|
||||||
return "PRODUCTION_STUDIO";
|
return "PRODUCTION_STUDIO";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *thanksTo() {
|
inline TAG_PARSER_EXPORT const char *thanksTo() {
|
||||||
return "THANKS_TO";
|
return "THANKS_TO";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *publisher() {
|
inline TAG_PARSER_EXPORT const char *publisher() {
|
||||||
return "PUBLISHER";
|
return "PUBLISHER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *label() {
|
inline TAG_PARSER_EXPORT const char *label() {
|
||||||
return "LABEL";
|
return "LABEL";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *genre() {
|
inline TAG_PARSER_EXPORT const char *genre() {
|
||||||
return "GENRE";
|
return "GENRE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *mood() {
|
inline TAG_PARSER_EXPORT const char *mood() {
|
||||||
return "MOOD";
|
return "MOOD";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *originalMediaType() {
|
inline TAG_PARSER_EXPORT const char *originalMediaType() {
|
||||||
return "ORIGINAL_MEDIA_TYPE";
|
return "ORIGINAL_MEDIA_TYPE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *contentType() {
|
inline TAG_PARSER_EXPORT const char *contentType() {
|
||||||
return "CONTENT_TYPE";
|
return "CONTENT_TYPE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *subject() {
|
inline TAG_PARSER_EXPORT const char *subject() {
|
||||||
return "SUBJECT";
|
return "SUBJECT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *description() {
|
inline TAG_PARSER_EXPORT const char *description() {
|
||||||
return "DESCRIPTION";
|
return "DESCRIPTION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *keywords() {
|
inline TAG_PARSER_EXPORT const char *keywords() {
|
||||||
return "KEYWORDS";
|
return "KEYWORDS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *summary() {
|
inline TAG_PARSER_EXPORT const char *summary() {
|
||||||
return "SUMMARY";
|
return "SUMMARY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *synopsis() {
|
inline TAG_PARSER_EXPORT const char *synopsis() {
|
||||||
return "SYNOPSIS";
|
return "SYNOPSIS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *initialKey() {
|
inline TAG_PARSER_EXPORT const char *initialKey() {
|
||||||
return "INITIAL_KEY";
|
return "INITIAL_KEY";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *period() {
|
inline TAG_PARSER_EXPORT const char *period() {
|
||||||
return "PERIOD";
|
return "PERIOD";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *lawRating() {
|
inline TAG_PARSER_EXPORT const char *lawRating() {
|
||||||
return "LAW_RATING";
|
return "LAW_RATING";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *icra() {
|
inline TAG_PARSER_EXPORT const char *icra() {
|
||||||
return "ICRA";
|
return "ICRA";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *dateRelease() {
|
inline TAG_PARSER_EXPORT const char *dateRelease() {
|
||||||
return "DATE_RELEASED";
|
return "DATE_RELEASED";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *dateRecorded() {
|
inline TAG_PARSER_EXPORT const char *dateRecorded() {
|
||||||
return "DATE_RECORDED";
|
return "DATE_RECORDED";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *dateEncoded() {
|
inline TAG_PARSER_EXPORT const char *dateEncoded() {
|
||||||
return "DATE_ENCODED";
|
return "DATE_ENCODED";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *dateTagged() {
|
inline TAG_PARSER_EXPORT const char *dateTagged() {
|
||||||
return "DATE_TAGGED";
|
return "DATE_TAGGED";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *dateDigitized() {
|
inline TAG_PARSER_EXPORT const char *dateDigitized() {
|
||||||
return "DATE_DIGITIZED";
|
return "DATE_DIGITIZED";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *dateWritten() {
|
inline TAG_PARSER_EXPORT const char *dateWritten() {
|
||||||
return "DATE_WRITTEN";
|
return "DATE_WRITTEN";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *datePurchased() {
|
inline TAG_PARSER_EXPORT const char *datePurchased() {
|
||||||
return "DATE_PURCHASED";
|
return "DATE_PURCHASED";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *recordingLocation() {
|
inline TAG_PARSER_EXPORT const char *recordingLocation() {
|
||||||
return "RECORDING_LOCATION";
|
return "RECORDING_LOCATION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *compositionLocation() {
|
inline TAG_PARSER_EXPORT const char *compositionLocation() {
|
||||||
return "COMPOSITION_LOCATION";
|
return "COMPOSITION_LOCATION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *composerNationality() {
|
inline TAG_PARSER_EXPORT const char *composerNationality() {
|
||||||
return "COMPOSER_NATIONALITY";
|
return "COMPOSER_NATIONALITY";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *comment() {
|
inline TAG_PARSER_EXPORT const char *comment() {
|
||||||
return "COMMENT";
|
return "COMMENT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *playCounter() {
|
inline TAG_PARSER_EXPORT const char *playCounter() {
|
||||||
return "PLAY_COUNTER";
|
return "PLAY_COUNTER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *rating() {
|
inline TAG_PARSER_EXPORT const char *rating() {
|
||||||
return "RATING";
|
return "RATING";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *encoder() {
|
inline TAG_PARSER_EXPORT const char *encoder() {
|
||||||
return "ENCODER";
|
return "ENCODER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *encoderSettings() {
|
inline TAG_PARSER_EXPORT const char *encoderSettings() {
|
||||||
return "ENCODER_SETTINGS";
|
return "ENCODER_SETTINGS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *bps() {
|
inline TAG_PARSER_EXPORT const char *bps() {
|
||||||
return "BPS";
|
return "BPS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *fps() {
|
inline TAG_PARSER_EXPORT const char *fps() {
|
||||||
return "FPS";
|
return "FPS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *bpm() {
|
inline TAG_PARSER_EXPORT const char *bpm() {
|
||||||
return "BPM";
|
return "BPM";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *duration() {
|
inline TAG_PARSER_EXPORT const char *duration() {
|
||||||
return "DURATION";
|
return "DURATION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *numberOfFrames() {
|
inline TAG_PARSER_EXPORT const char *numberOfFrames() {
|
||||||
return "NUMBER_OF_FRAMES";
|
return "NUMBER_OF_FRAMES";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *numberOfBytes() {
|
inline TAG_PARSER_EXPORT const char *numberOfBytes() {
|
||||||
return "NUMBER_OF_BYTES";
|
return "NUMBER_OF_BYTES";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *measure() {
|
inline TAG_PARSER_EXPORT const char *measure() {
|
||||||
return "MEASURE";
|
return "MEASURE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *tuning() {
|
inline TAG_PARSER_EXPORT const char *tuning() {
|
||||||
return "TUNING";
|
return "TUNING";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *replaygainGain() {
|
inline TAG_PARSER_EXPORT const char *replaygainGain() {
|
||||||
return "REPLAYGAIN_GAIN";
|
return "REPLAYGAIN_GAIN";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *replaygainPeak() {
|
inline TAG_PARSER_EXPORT const char *replaygainPeak() {
|
||||||
return "REPLAYGAIN_PEAK";
|
return "REPLAYGAIN_PEAK";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *identifiers() {
|
inline TAG_PARSER_EXPORT const char *identifiers() {
|
||||||
return "Identifiers";
|
return "Identifiers";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *isrc() {
|
inline TAG_PARSER_EXPORT const char *isrc() {
|
||||||
return "ISRC";
|
return "ISRC";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *mcdi() {
|
inline TAG_PARSER_EXPORT const char *mcdi() {
|
||||||
return "MCDI";
|
return "MCDI";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *isbn() {
|
inline TAG_PARSER_EXPORT const char *isbn() {
|
||||||
return "ISBN";
|
return "ISBN";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *barcode() {
|
inline TAG_PARSER_EXPORT const char *barcode() {
|
||||||
return "BARCODE";
|
return "BARCODE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *catalogNumber() {
|
inline TAG_PARSER_EXPORT const char *catalogNumber() {
|
||||||
return "CATALOG_NUMBER";
|
return "CATALOG_NUMBER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *labelCode() {
|
inline TAG_PARSER_EXPORT const char *labelCode() {
|
||||||
return "LABEL_CODE";
|
return "LABEL_CODE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *lccn() {
|
inline TAG_PARSER_EXPORT const char *lccn() {
|
||||||
return "LCCN";
|
return "LCCN";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *purchaseItem() {
|
inline TAG_PARSER_EXPORT const char *purchaseItem() {
|
||||||
return "PURCHASE_ITEM";
|
return "PURCHASE_ITEM";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *purchaseInfo() {
|
inline TAG_PARSER_EXPORT const char *purchaseInfo() {
|
||||||
return "PURCHASE_INFO";
|
return "PURCHASE_INFO";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *purchaseOwner() {
|
inline TAG_PARSER_EXPORT const char *purchaseOwner() {
|
||||||
return "PURCHASE_OWNER";
|
return "PURCHASE_OWNER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *purchasePrice() {
|
inline TAG_PARSER_EXPORT const char *purchasePrice() {
|
||||||
return "PURCHASE_PRICE";
|
return "PURCHASE_PRICE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *purchaseCurrency() {
|
inline TAG_PARSER_EXPORT const char *purchaseCurrency() {
|
||||||
return "PURCHASE_CURRENCY";
|
return "PURCHASE_CURRENCY";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline LIB_EXPORT const char *copyright() {
|
inline TAG_PARSER_EXPORT const char *copyright() {
|
||||||
return "COPYRIGHT";
|
return "COPYRIGHT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *productionCopyright() {
|
inline TAG_PARSER_EXPORT const char *productionCopyright() {
|
||||||
return "PRODUCTION_COPYRIGHT";
|
return "PRODUCTION_COPYRIGHT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *license() {
|
inline TAG_PARSER_EXPORT const char *license() {
|
||||||
return "LICENSE";
|
return "LICENSE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *termsOfUse() {
|
inline TAG_PARSER_EXPORT const char *termsOfUse() {
|
||||||
return "TERMS_OF_USE";
|
return "TERMS_OF_USE";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,7 +339,7 @@ inline LIB_EXPORT const char *termsOfUse() {
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the general TagTargetLevel for the Matroska specific \a targetLevelValue.
|
* \brief Returns the general TagTargetLevel for the Matroska specific \a targetLevelValue.
|
||||||
*/
|
*/
|
||||||
inline LIB_EXPORT TagTargetLevel matroskaTagTargetLevel(uint64 targetLevelValue)
|
inline TAG_PARSER_EXPORT TagTargetLevel matroskaTagTargetLevel(uint64 targetLevelValue)
|
||||||
{
|
{
|
||||||
return targetLevelValue > 70 ? TagTargetLevel::Collection : static_cast<TagTargetLevel>(targetLevelValue / 10);
|
return targetLevelValue > 70 ? TagTargetLevel::Collection : static_cast<TagTargetLevel>(targetLevelValue / 10);
|
||||||
}
|
}
|
||||||
|
@ -347,7 +347,7 @@ inline LIB_EXPORT TagTargetLevel matroskaTagTargetLevel(uint64 targetLevelValue)
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the Matroska specific target level value for the specified general \a targetLevel.
|
* \brief Returns the Matroska specific target level value for the specified general \a targetLevel.
|
||||||
*/
|
*/
|
||||||
inline LIB_EXPORT uint64 matroskaTagTargetLevelValue(TagTargetLevel targetLevel)
|
inline TAG_PARSER_EXPORT uint64 matroskaTagTargetLevelValue(TagTargetLevel targetLevel)
|
||||||
{
|
{
|
||||||
return static_cast<uint64>(targetLevel) * 10;
|
return static_cast<uint64>(targetLevel) * 10;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace Media {
|
||||||
class EbmlElement;
|
class EbmlElement;
|
||||||
class MatroskaContainer;
|
class MatroskaContainer;
|
||||||
|
|
||||||
class LIB_EXPORT MatroskaTrack : public AbstractTrack
|
class TAG_PARSER_EXPORT MatroskaTrack : public AbstractTrack
|
||||||
{
|
{
|
||||||
friend class MatroskaContainer;
|
friend class MatroskaContainer;
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ enum class ParsingStatus : byte
|
||||||
CriticalFailure /**< tried to parse the part, but critical errors occured */
|
CriticalFailure /**< tried to parse the part, but critical errors occured */
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT MediaFileInfo : public BasicFileInfo, public StatusProvider
|
class TAG_PARSER_EXPORT MediaFileInfo : public BasicFileInfo, public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// constructor, destructor
|
// constructor, destructor
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef MEDIAFORMAT_H
|
#ifndef MEDIAFORMAT_H
|
||||||
#define MEDIAFORMAT_H
|
#define MEDIAFORMAT_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ enum class MediaType
|
||||||
Hint /**< hint */
|
Hint /**< hint */
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char *LIB_EXPORT mediaTypeName(MediaType mediaType);
|
extern const char *TAG_PARSER_EXPORT mediaTypeName(MediaType mediaType);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief The GeneralMediaFormat enum specifies the general format of media data (PCM, MPEG-4, PNG, ...).
|
* \brief The GeneralMediaFormat enum specifies the general format of media data (PCM, MPEG-4, PNG, ...).
|
||||||
|
@ -253,7 +253,7 @@ enum AudioFormatExtensions : unsigned char {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT MediaFormat
|
class TAG_PARSER_EXPORT MediaFormat
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MediaFormat(GeneralMediaFormat general = GeneralMediaFormat::Unknown, unsigned char sub = 0, unsigned char extension = 0);
|
MediaFormat(GeneralMediaFormat general = GeneralMediaFormat::Unknown, unsigned char sub = 0, unsigned char extension = 0);
|
||||||
|
|
|
@ -22,7 +22,7 @@ class Mp4Container;
|
||||||
* \brief Defines traits for the GenericFileElement implementation Mp4Atom.
|
* \brief Defines traits for the GenericFileElement implementation Mp4Atom.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT FileElementTraits<Mp4Atom>
|
class TAG_PARSER_EXPORT FileElementTraits<Mp4Atom>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -54,7 +54,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT Mp4Atom : public GenericFileElement<Mp4Atom>
|
class TAG_PARSER_EXPORT Mp4Atom : public GenericFileElement<Mp4Atom>
|
||||||
{
|
{
|
||||||
friend class GenericFileElement<Mp4Atom>;
|
friend class GenericFileElement<Mp4Atom>;
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace Media {
|
||||||
|
|
||||||
class MediaFileInfo;
|
class MediaFileInfo;
|
||||||
|
|
||||||
class LIB_EXPORT Mp4Container : public GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>
|
class TAG_PARSER_EXPORT Mp4Container : public GenericContainer<MediaFileInfo, Mp4Tag, Mp4Track, Mp4Atom>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Mp4Container(MediaFileInfo &fileInfo, uint64 startOffset);
|
Mp4Container(MediaFileInfo &fileInfo, uint64 startOffset);
|
||||||
|
|
754
mp4/mp4ids.cpp
754
mp4/mp4ids.cpp
|
@ -1,377 +1,377 @@
|
||||||
#include "./mp4ids.h"
|
#include "./mp4ids.h"
|
||||||
|
|
||||||
#include "../mediaformat.h"
|
#include "../mediaformat.h"
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates the most common MP4 atom IDs.
|
* \brief Encapsulates the most common MP4 atom IDs.
|
||||||
*/
|
*/
|
||||||
namespace Mp4AtomIds {
|
namespace Mp4AtomIds {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates IDs of MP4 atoms holding tag information.
|
* \brief Encapsulates IDs of MP4 atoms holding tag information.
|
||||||
*/
|
*/
|
||||||
namespace Mp4TagAtomIds {
|
namespace Mp4TagAtomIds {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates "mean values" used in iTunes style MP4 tags.
|
* \brief Encapsulates "mean values" used in iTunes style MP4 tags.
|
||||||
*/
|
*/
|
||||||
namespace Mp4TagExtendedMeanIds {
|
namespace Mp4TagExtendedMeanIds {
|
||||||
const char *iTunes = "com.apple.iTunes";
|
const char *iTunes = "com.apple.iTunes";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates "name values" used in iTunes style MP4 tags.
|
* \brief Encapsulates "name values" used in iTunes style MP4 tags.
|
||||||
*/
|
*/
|
||||||
namespace Mp4TagExtendedNameIds {
|
namespace Mp4TagExtendedNameIds {
|
||||||
const char *cdec = "cdec";
|
const char *cdec = "cdec";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all supported MP4 media type IDs.
|
* \brief Encapsulates all supported MP4 media type IDs.
|
||||||
*/
|
*/
|
||||||
namespace Mp4MediaTypeIds {
|
namespace Mp4MediaTypeIds {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all supported MP4 media format IDs (aka "FOURCCs").
|
* \brief Encapsulates all supported MP4 media format IDs (aka "FOURCCs").
|
||||||
* \sa http://wiki.multimedia.cx/?title=QuickTime_container
|
* \sa http://wiki.multimedia.cx/?title=QuickTime_container
|
||||||
*/
|
*/
|
||||||
namespace FourccIds {
|
namespace FourccIds {
|
||||||
|
|
||||||
MediaFormat fourccToMediaFormat(uint32 fourccId)
|
MediaFormat fourccToMediaFormat(uint32 fourccId)
|
||||||
{
|
{
|
||||||
switch(fourccId) {
|
switch(fourccId) {
|
||||||
case Mpeg:
|
case Mpeg:
|
||||||
return GeneralMediaFormat::Mpeg1Video;
|
return GeneralMediaFormat::Mpeg1Video;
|
||||||
case Mpeg2Imx30: case Mpeg2Imx50:
|
case Mpeg2Imx30: case Mpeg2Imx50:
|
||||||
return GeneralMediaFormat::Mpeg2Video;
|
return GeneralMediaFormat::Mpeg2Video;
|
||||||
case Mpeg4Video:
|
case Mpeg4Video:
|
||||||
return GeneralMediaFormat::Mpeg4Video;
|
return GeneralMediaFormat::Mpeg4Video;
|
||||||
case Mpeg4TimedText:
|
case Mpeg4TimedText:
|
||||||
return GeneralMediaFormat::Mpeg4TimedText;
|
return GeneralMediaFormat::Mpeg4TimedText;
|
||||||
case Hevc1: case Hevc2:
|
case Hevc1: case Hevc2:
|
||||||
return MediaFormat(GeneralMediaFormat::Hevc);
|
return MediaFormat(GeneralMediaFormat::Hevc);
|
||||||
case Avc1: case Avc2: case Avc3: case Avc4: case H264Decoder1: case H264Decoder2:
|
case Avc1: case Avc2: case Avc3: case Avc4: case H264Decoder1: case H264Decoder2:
|
||||||
case H264Decoder3: case H264Decoder4: case H264Decoder5: case H264Decoder6:
|
case H264Decoder3: case H264Decoder4: case H264Decoder5: case H264Decoder6:
|
||||||
return MediaFormat(GeneralMediaFormat::Avc);
|
return MediaFormat(GeneralMediaFormat::Avc);
|
||||||
case Divx4Decoder1: case Divx4Decoder2:
|
case Divx4Decoder1: case Divx4Decoder2:
|
||||||
case H263Quicktime: case H2633GPP: case XvidDecoder1: case XvidDecoder2:
|
case H263Quicktime: case H2633GPP: case XvidDecoder1: case XvidDecoder2:
|
||||||
case XvidDecoder3: case XvidDecoder4: case XvidDecoder5: case Divx5Decoder:
|
case XvidDecoder3: case XvidDecoder4: case XvidDecoder5: case Divx5Decoder:
|
||||||
return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg4AdvancedSimpleProfile0);
|
return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg4AdvancedSimpleProfile0);
|
||||||
case Divx3Decoder1: case Divx3Decoder2: case Divx3Decoder3: case Divx3Decoder4: case Divx3Decoder5:
|
case Divx3Decoder1: case Divx3Decoder2: case Divx3Decoder3: case Divx3Decoder4: case Divx3Decoder5:
|
||||||
case Divx3Decoder6: case Divx3Decoder7: case Divx3Decoder8: case Divx3Decoder9: case Divx3Decoder10:
|
case Divx3Decoder6: case Divx3Decoder7: case Divx3Decoder8: case Divx3Decoder9: case Divx3Decoder10:
|
||||||
case Divx3Decoder11: case Divx3Decoder12: case Divx3Decoder13: case Divx3Decoder14: case Divx3Decoder15:
|
case Divx3Decoder11: case Divx3Decoder12: case Divx3Decoder13: case Divx3Decoder14: case Divx3Decoder15:
|
||||||
return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg4SimpleProfile0);
|
return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg4SimpleProfile0);
|
||||||
case Tiff:
|
case Tiff:
|
||||||
return GeneralMediaFormat::Tiff;
|
return GeneralMediaFormat::Tiff;
|
||||||
case AppleTextAtsuiCodec:
|
case AppleTextAtsuiCodec:
|
||||||
return GeneralMediaFormat::TimedText;
|
return GeneralMediaFormat::TimedText;
|
||||||
case Raw:
|
case Raw:
|
||||||
return GeneralMediaFormat::UncompressedVideoFrames;
|
return GeneralMediaFormat::UncompressedVideoFrames;
|
||||||
case Jpeg:
|
case Jpeg:
|
||||||
return GeneralMediaFormat::Jpeg;
|
return GeneralMediaFormat::Jpeg;
|
||||||
case Gif:
|
case Gif:
|
||||||
return GeneralMediaFormat::Gif;
|
return GeneralMediaFormat::Gif;
|
||||||
case Png:
|
case Png:
|
||||||
return GeneralMediaFormat::Png;
|
return GeneralMediaFormat::Png;
|
||||||
case AdpcmAcm:
|
case AdpcmAcm:
|
||||||
return GeneralMediaFormat::AdpcmAcm;
|
return GeneralMediaFormat::AdpcmAcm;
|
||||||
case ImaadpcmAcm:
|
case ImaadpcmAcm:
|
||||||
return GeneralMediaFormat::ImaadpcmAcm;
|
return GeneralMediaFormat::ImaadpcmAcm;
|
||||||
case Mp3CbrOnly: case Mp3:
|
case Mp3CbrOnly: case Mp3:
|
||||||
return MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer3);
|
return MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer3);
|
||||||
case Mpeg4Audio:
|
case Mpeg4Audio:
|
||||||
return GeneralMediaFormat::Aac;
|
return GeneralMediaFormat::Aac;
|
||||||
case Alac:
|
case Alac:
|
||||||
return GeneralMediaFormat::Alac;
|
return GeneralMediaFormat::Alac;
|
||||||
case Ac3:
|
case Ac3:
|
||||||
return GeneralMediaFormat::Ac3;
|
return GeneralMediaFormat::Ac3;
|
||||||
case EAc3:
|
case EAc3:
|
||||||
return GeneralMediaFormat::EAc3;
|
return GeneralMediaFormat::EAc3;
|
||||||
case DolbyMpl:
|
case DolbyMpl:
|
||||||
return GeneralMediaFormat::DolbyMlp;
|
return GeneralMediaFormat::DolbyMlp;
|
||||||
case Ac4:
|
case Ac4:
|
||||||
return GeneralMediaFormat::Ac4;
|
return GeneralMediaFormat::Ac4;
|
||||||
case Rv20: case Rv30: case Rv40:
|
case Rv20: case Rv30: case Rv40:
|
||||||
return GeneralMediaFormat::RealVideo;
|
return GeneralMediaFormat::RealVideo;
|
||||||
case Int24: case Int32:
|
case Int24: case Int32:
|
||||||
return MediaFormat(GeneralMediaFormat::Pcm);
|
return MediaFormat(GeneralMediaFormat::Pcm);
|
||||||
case Int16Be:
|
case Int16Be:
|
||||||
return MediaFormat(GeneralMediaFormat::Pcm, SubFormats::PcmIntBe);
|
return MediaFormat(GeneralMediaFormat::Pcm, SubFormats::PcmIntBe);
|
||||||
case Int16Le:
|
case Int16Le:
|
||||||
return MediaFormat(GeneralMediaFormat::Pcm, SubFormats::PcmIntLe);
|
return MediaFormat(GeneralMediaFormat::Pcm, SubFormats::PcmIntLe);
|
||||||
case FloatingPoint32Bit: case FloatingPoint64Bit:
|
case FloatingPoint32Bit: case FloatingPoint64Bit:
|
||||||
return MediaFormat(GeneralMediaFormat::Pcm, SubFormats::PcmFloatIeee);
|
return MediaFormat(GeneralMediaFormat::Pcm, SubFormats::PcmFloatIeee);
|
||||||
case Amr: case AmrNarrowband:
|
case Amr: case AmrNarrowband:
|
||||||
return MediaFormat(GeneralMediaFormat::Amr);
|
return MediaFormat(GeneralMediaFormat::Amr);
|
||||||
case Dts: case DtsH:
|
case Dts: case DtsH:
|
||||||
return MediaFormat(GeneralMediaFormat::Dts);
|
return MediaFormat(GeneralMediaFormat::Dts);
|
||||||
case DtsE:
|
case DtsE:
|
||||||
return MediaFormat(GeneralMediaFormat::Dts, SubFormats::DtsExpress);
|
return MediaFormat(GeneralMediaFormat::Dts, SubFormats::DtsExpress);
|
||||||
case WindowsMediaAudio: case WindowsMediaAudio7:
|
case WindowsMediaAudio: case WindowsMediaAudio7:
|
||||||
case WindowsMediaAudio9Professional: case WindowsMediaAudio9Standard:
|
case WindowsMediaAudio9Professional: case WindowsMediaAudio9Standard:
|
||||||
return MediaFormat(GeneralMediaFormat::WindowsMediaAudio);
|
return MediaFormat(GeneralMediaFormat::WindowsMediaAudio);
|
||||||
case MsMpeg4V1Decoder1: case MsMpeg4V1Decoder2: case MsMpeg4V1Decoder3:
|
case MsMpeg4V1Decoder1: case MsMpeg4V1Decoder2: case MsMpeg4V1Decoder3:
|
||||||
case MsMpeg4V1Decoder4: case MsMpeg4V1Decoder5: case MsMpeg4V1Decoder6:
|
case MsMpeg4V1Decoder4: case MsMpeg4V1Decoder5: case MsMpeg4V1Decoder6:
|
||||||
return MediaFormat(GeneralMediaFormat::MicrosoftMpeg4, 1);
|
return MediaFormat(GeneralMediaFormat::MicrosoftMpeg4, 1);
|
||||||
case MsMpeg4V2Decoder1: case MsMpeg4V2Decoder2: case MsMpeg4V2Decoder3:
|
case MsMpeg4V2Decoder1: case MsMpeg4V2Decoder2: case MsMpeg4V2Decoder3:
|
||||||
case MsMpeg4V2Decoder4:
|
case MsMpeg4V2Decoder4:
|
||||||
return MediaFormat(GeneralMediaFormat::MicrosoftMpeg4, 2);
|
return MediaFormat(GeneralMediaFormat::MicrosoftMpeg4, 2);
|
||||||
case MsMpeg4V3Decoder1: case MsMpeg4V3Decoder2:
|
case MsMpeg4V3Decoder1: case MsMpeg4V3Decoder2:
|
||||||
return MediaFormat(GeneralMediaFormat::MicrosoftMpeg4, 3);
|
return MediaFormat(GeneralMediaFormat::MicrosoftMpeg4, 3);
|
||||||
case WindowsMediaVideoV17:
|
case WindowsMediaVideoV17:
|
||||||
return MediaFormat(GeneralMediaFormat::WindowsMediaVideo, 1);
|
return MediaFormat(GeneralMediaFormat::WindowsMediaVideo, 1);
|
||||||
case WindowsMediaVideoV2: case WindowsMediaVideoV8:
|
case WindowsMediaVideoV2: case WindowsMediaVideoV8:
|
||||||
return MediaFormat(GeneralMediaFormat::WindowsMediaVideo, 2);
|
return MediaFormat(GeneralMediaFormat::WindowsMediaVideo, 2);
|
||||||
// TODO: map more FOURCCs
|
// TODO: map more FOURCCs
|
||||||
default:
|
default:
|
||||||
return GeneralMediaFormat::Unknown;
|
return GeneralMediaFormat::Unknown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all supported MP4 media format description extensions.
|
* \brief Encapsulates all supported MP4 media format description extensions.
|
||||||
* \sa https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html
|
* \sa https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html
|
||||||
*/
|
*/
|
||||||
namespace Mp4FormatExtensionIds {
|
namespace Mp4FormatExtensionIds {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all supported MPEG-4 elementary stream object IDs.
|
* \brief Encapsulates all supported MPEG-4 elementary stream object IDs.
|
||||||
*/
|
*/
|
||||||
namespace Mpeg4ElementaryStreamObjectIds {
|
namespace Mpeg4ElementaryStreamObjectIds {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the Media::MediaFormat denoted by the specified MPEG-4 stream ID.
|
* \brief Returns the Media::MediaFormat denoted by the specified MPEG-4 stream ID.
|
||||||
*/
|
*/
|
||||||
MediaFormat streamObjectTypeFormat(byte streamObjectTypeId)
|
MediaFormat streamObjectTypeFormat(byte streamObjectTypeId)
|
||||||
{
|
{
|
||||||
switch(streamObjectTypeId) {
|
switch(streamObjectTypeId) {
|
||||||
case SystemsIso144961: return GeneralMediaFormat::Systems;
|
case SystemsIso144961: return GeneralMediaFormat::Systems;
|
||||||
case SystemsIso144961v2: return MediaFormat(GeneralMediaFormat::Systems, 2);
|
case SystemsIso144961v2: return MediaFormat(GeneralMediaFormat::Systems, 2);
|
||||||
case InteractionStream: return GeneralMediaFormat::InteractionStream;
|
case InteractionStream: return GeneralMediaFormat::InteractionStream;
|
||||||
case AfxStream: return GeneralMediaFormat::AfxStream;
|
case AfxStream: return GeneralMediaFormat::AfxStream;
|
||||||
case FontDataStream: return GeneralMediaFormat::FontDataStream;
|
case FontDataStream: return GeneralMediaFormat::FontDataStream;
|
||||||
case SynthesizedTextureStream: return GeneralMediaFormat::SynthesizedTextureStream;
|
case SynthesizedTextureStream: return GeneralMediaFormat::SynthesizedTextureStream;
|
||||||
case StreamingTextStream: return GeneralMediaFormat::StreamingTextStream;
|
case StreamingTextStream: return GeneralMediaFormat::StreamingTextStream;
|
||||||
case Mpeg4Visual: return GeneralMediaFormat::Mpeg4Video;
|
case Mpeg4Visual: return GeneralMediaFormat::Mpeg4Video;
|
||||||
case Avc: return GeneralMediaFormat::Avc;
|
case Avc: return GeneralMediaFormat::Avc;
|
||||||
case ParameterSetsForAvc: return GeneralMediaFormat::Avc;
|
case ParameterSetsForAvc: return GeneralMediaFormat::Avc;
|
||||||
case Als: return GeneralMediaFormat::Als;
|
case Als: return GeneralMediaFormat::Als;
|
||||||
case Sa0c: return GeneralMediaFormat::Sa0c;
|
case Sa0c: return GeneralMediaFormat::Sa0c;
|
||||||
case Aac: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile);
|
case Aac: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile);
|
||||||
case Mpeg2VideoSimpleProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SimpleProfile);
|
case Mpeg2VideoSimpleProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SimpleProfile);
|
||||||
case Mpeg2VideoMainProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SnrProfile);
|
case Mpeg2VideoMainProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SnrProfile);
|
||||||
case Mpeg2VideoSnrProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SpatialProfile);
|
case Mpeg2VideoSnrProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SpatialProfile);
|
||||||
case Mpeg2VideoSpatialProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2HighProfile);
|
case Mpeg2VideoSpatialProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2HighProfile);
|
||||||
case Mpeg2VideoHighProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2HighProfile);
|
case Mpeg2VideoHighProfile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2HighProfile);
|
||||||
case Mpeg2Video422Profile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SimpleProfile);
|
case Mpeg2Video422Profile: return MediaFormat(GeneralMediaFormat::Mpeg4Video, SubFormats::Mpeg2SimpleProfile);
|
||||||
case Mpeg2AacMainProfile: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg2MainProfile);
|
case Mpeg2AacMainProfile: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg2MainProfile);
|
||||||
case Mpeg2AacLowComplexityProfile: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg2LowComplexityProfile);
|
case Mpeg2AacLowComplexityProfile: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg2LowComplexityProfile);
|
||||||
case Mpeg2AacScaleableSamplingRateProfile: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg2ScalableSamplingRateProfile);
|
case Mpeg2AacScaleableSamplingRateProfile: return MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg2ScalableSamplingRateProfile);
|
||||||
case Mpeg2Audio: return GeneralMediaFormat::Mpeg2Audio;
|
case Mpeg2Audio: return GeneralMediaFormat::Mpeg2Audio;
|
||||||
case Mpeg1Video: return GeneralMediaFormat::Mpeg1Video;
|
case Mpeg1Video: return GeneralMediaFormat::Mpeg1Video;
|
||||||
case Mpeg1Audio: return GeneralMediaFormat::Mpeg1Audio;
|
case Mpeg1Audio: return GeneralMediaFormat::Mpeg1Audio;
|
||||||
case Jpeg: return GeneralMediaFormat::Jpeg;
|
case Jpeg: return GeneralMediaFormat::Jpeg;
|
||||||
case Png: return GeneralMediaFormat::Png;
|
case Png: return GeneralMediaFormat::Png;
|
||||||
case Evrc: case PrivateEvrc: return GeneralMediaFormat::Evrc;
|
case Evrc: case PrivateEvrc: return GeneralMediaFormat::Evrc;
|
||||||
case Smv: return GeneralMediaFormat::Smv;
|
case Smv: return GeneralMediaFormat::Smv;
|
||||||
case Gpp2Cmf: return GeneralMediaFormat::Gpp2Cmf;
|
case Gpp2Cmf: return GeneralMediaFormat::Gpp2Cmf;
|
||||||
case Vc1: return GeneralMediaFormat::Vc1;
|
case Vc1: return GeneralMediaFormat::Vc1;
|
||||||
case Dirac: return GeneralMediaFormat::Dirac;
|
case Dirac: return GeneralMediaFormat::Dirac;
|
||||||
case Ac3: case PrivateAc3: return GeneralMediaFormat::Ac3;
|
case Ac3: case PrivateAc3: return GeneralMediaFormat::Ac3;
|
||||||
case EAc3: return GeneralMediaFormat::EAc3;
|
case EAc3: return GeneralMediaFormat::EAc3;
|
||||||
case Dts: case PrivateDts: return GeneralMediaFormat::Dts;
|
case Dts: case PrivateDts: return GeneralMediaFormat::Dts;
|
||||||
case DtsHdHighResolution: return MediaFormat(GeneralMediaFormat::DtsHd, SubFormats::DtsHdHighResolution);
|
case DtsHdHighResolution: return MediaFormat(GeneralMediaFormat::DtsHd, SubFormats::DtsHdHighResolution);
|
||||||
case DtsHdMasterAudio: return MediaFormat(GeneralMediaFormat::DtsHd, SubFormats::DtsHdMasterAudio);
|
case DtsHdMasterAudio: return MediaFormat(GeneralMediaFormat::DtsHd, SubFormats::DtsHdMasterAudio);
|
||||||
case DtsHdExpress: return MediaFormat(GeneralMediaFormat::DtsHd, SubFormats::DtsExpress);
|
case DtsHdExpress: return MediaFormat(GeneralMediaFormat::DtsHd, SubFormats::DtsExpress);
|
||||||
case PrivateOgg: case PrivateOgg2: return GeneralMediaFormat::Vorbis;
|
case PrivateOgg: case PrivateOgg2: return GeneralMediaFormat::Vorbis;
|
||||||
case PrivateQcelp: return GeneralMediaFormat::Qcelp;
|
case PrivateQcelp: return GeneralMediaFormat::Qcelp;
|
||||||
default: return MediaFormat();
|
default: return MediaFormat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all known MPEG-4 descriptor IDs.
|
* \brief Encapsulates all known MPEG-4 descriptor IDs.
|
||||||
*/
|
*/
|
||||||
namespace Mpeg4DescriptorIds {
|
namespace Mpeg4DescriptorIds {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the name of the stream type denoted by the specified MPEG-4 stream type ID.
|
* \brief Returns the name of the stream type denoted by the specified MPEG-4 stream type ID.
|
||||||
*/
|
*/
|
||||||
namespace Mpeg4ElementaryStreamTypeIds {
|
namespace Mpeg4ElementaryStreamTypeIds {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the name of the stream type denoted by the specified MPEG-4 stream type ID.
|
* \brief Returns the name of the stream type denoted by the specified MPEG-4 stream type ID.
|
||||||
*/
|
*/
|
||||||
const char *streamTypeName(byte streamTypeId)
|
const char *streamTypeName(byte streamTypeId)
|
||||||
{
|
{
|
||||||
switch(streamTypeId) {
|
switch(streamTypeId) {
|
||||||
case ObjectDescriptor: return "object descriptor";
|
case ObjectDescriptor: return "object descriptor";
|
||||||
case ClockReference: return "clock reference";
|
case ClockReference: return "clock reference";
|
||||||
case SceneDescriptor: return "scene descriptor";
|
case SceneDescriptor: return "scene descriptor";
|
||||||
case Visual: return "visual";
|
case Visual: return "visual";
|
||||||
case Audio: return "audio";
|
case Audio: return "audio";
|
||||||
case Mpeg7: return "MPEG-7";
|
case Mpeg7: return "MPEG-7";
|
||||||
case Ipmps: return "IMPS";
|
case Ipmps: return "IMPS";
|
||||||
case ObjectContentInfo: return "object content info";
|
case ObjectContentInfo: return "object content info";
|
||||||
case MpegJava: return "MPEG Java";
|
case MpegJava: return "MPEG Java";
|
||||||
case Interaction: return "interaction";
|
case Interaction: return "interaction";
|
||||||
case Ipmp: return "IPMP";
|
case Ipmp: return "IPMP";
|
||||||
case FontData: return "font data";
|
case FontData: return "font data";
|
||||||
case StreamingText: return "streaming text";
|
case StreamingText: return "streaming text";
|
||||||
default: return "";
|
default: return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all supported MPEG-4 audio object type IDs.
|
* \brief Encapsulates all supported MPEG-4 audio object type IDs.
|
||||||
* \sa http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio
|
* \sa http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio
|
||||||
*/
|
*/
|
||||||
namespace Mpeg4AudioObjectIds {
|
namespace Mpeg4AudioObjectIds {
|
||||||
|
|
||||||
LIB_EXPORT MediaFormat idToMediaFormat(byte mpeg4AudioObjectId, bool sbrPresent, bool psPresent)
|
TAG_PARSER_EXPORT MediaFormat idToMediaFormat(byte mpeg4AudioObjectId, bool sbrPresent, bool psPresent)
|
||||||
{
|
{
|
||||||
MediaFormat fmt;
|
MediaFormat fmt;
|
||||||
switch(mpeg4AudioObjectId) {
|
switch(mpeg4AudioObjectId) {
|
||||||
case AacMain:
|
case AacMain:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4MainProfile);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4MainProfile);
|
||||||
break;
|
break;
|
||||||
case AacLc:
|
case AacLc:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile);
|
||||||
break;
|
break;
|
||||||
case AacSsr:
|
case AacSsr:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ScalableSamplingRateProfile);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ScalableSamplingRateProfile);
|
||||||
break;
|
break;
|
||||||
case AacLtp:
|
case AacLtp:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LongTermPrediction);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LongTermPrediction);
|
||||||
break;
|
break;
|
||||||
case Sbr:
|
case Sbr:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile, ExtensionFormats::SpectralBandReplication);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile, ExtensionFormats::SpectralBandReplication);
|
||||||
break;
|
break;
|
||||||
case AacScalable:
|
case AacScalable:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ScalableSamplingRateProfile);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ScalableSamplingRateProfile);
|
||||||
break;
|
break;
|
||||||
case ErAacLc:
|
case ErAacLc:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ERLowComplecityProfile);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ERLowComplecityProfile);
|
||||||
break;
|
break;
|
||||||
case ErAacLtp:
|
case ErAacLtp:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ERLongTermPrediction);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ERLongTermPrediction);
|
||||||
break;
|
break;
|
||||||
case ErAacLd:
|
case ErAacLd:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ERLowDelay);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4ERLowDelay);
|
||||||
break;
|
break;
|
||||||
case Ps:
|
case Ps:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile, ExtensionFormats::ParametricStereo);
|
fmt = MediaFormat(GeneralMediaFormat::Aac, SubFormats::AacMpeg4LowComplexityProfile, ExtensionFormats::ParametricStereo);
|
||||||
break;
|
break;
|
||||||
case Layer1:
|
case Layer1:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer1);
|
fmt = MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer1);
|
||||||
break;
|
break;
|
||||||
case Layer2:
|
case Layer2:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer2);
|
fmt = MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer2);
|
||||||
break;
|
break;
|
||||||
case Layer3:
|
case Layer3:
|
||||||
fmt = MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer3);
|
fmt = MediaFormat(GeneralMediaFormat::Mpeg1Audio, SubFormats::Mpeg1Layer3);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
if(sbrPresent) {
|
if(sbrPresent) {
|
||||||
fmt.extension |= ExtensionFormats::SpectralBandReplication;
|
fmt.extension |= ExtensionFormats::SpectralBandReplication;
|
||||||
}
|
}
|
||||||
if(psPresent) {
|
if(psPresent) {
|
||||||
fmt.extension |= ExtensionFormats::ParametricStereo;
|
fmt.extension |= ExtensionFormats::ParametricStereo;
|
||||||
}
|
}
|
||||||
return fmt;
|
return fmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 mpeg4SamplingFrequencyTable[] = {
|
uint32 mpeg4SamplingFrequencyTable[] = {
|
||||||
96000, 88200, 64000, 48000, 44100, 32000,
|
96000, 88200, 64000, 48000, 44100, 32000,
|
||||||
24000, 22050, 16000, 12000, 11025, 8000, 7350
|
24000, 22050, 16000, 12000, 11025, 8000, 7350
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates all supported MPEG-4 channel configurations.
|
* \brief Encapsulates all supported MPEG-4 channel configurations.
|
||||||
*/
|
*/
|
||||||
namespace Mpeg4ChannelConfigs {
|
namespace Mpeg4ChannelConfigs {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the string representation for the specified MPEG-4 channel config.
|
* \brief Returns the string representation for the specified MPEG-4 channel config.
|
||||||
*/
|
*/
|
||||||
const char *channelConfigString(byte config)
|
const char *channelConfigString(byte config)
|
||||||
{
|
{
|
||||||
switch(config) {
|
switch(config) {
|
||||||
case AotSpecificConfig:
|
case AotSpecificConfig:
|
||||||
return "defined in AOT Specific Config";
|
return "defined in AOT Specific Config";
|
||||||
case FrontCenter:
|
case FrontCenter:
|
||||||
return "1 channel: front-center";
|
return "1 channel: front-center";
|
||||||
case FrontLeftFrontRight:
|
case FrontLeftFrontRight:
|
||||||
return "2 channels: front-left, front-right";
|
return "2 channels: front-left, front-right";
|
||||||
case FrontCenterFrontLeftFrontRight:
|
case FrontCenterFrontLeftFrontRight:
|
||||||
return "3 channels: front-center, front-left, front-right";
|
return "3 channels: front-center, front-left, front-right";
|
||||||
case FrontCenterFrontLeftFrontRightBackCenter:
|
case FrontCenterFrontLeftFrontRightBackCenter:
|
||||||
return "4 channels: front-center, front-left, front-right, back-center";
|
return "4 channels: front-center, front-left, front-right, back-center";
|
||||||
case FrontCenterFrontLeftFrontRightBackLeftBackRight:
|
case FrontCenterFrontLeftFrontRightBackLeftBackRight:
|
||||||
return "5 channels: front-center, front-left, front-right, back-left, back-right";
|
return "5 channels: front-center, front-left, front-right, back-left, back-right";
|
||||||
case FrontCenterFrontLeftFrontRightBackLeftBackRightLFEChannel:
|
case FrontCenterFrontLeftFrontRightBackLeftBackRightLFEChannel:
|
||||||
return "6 channels: front-center, front-left, front-right, back-left, back-right, LFE-channel";
|
return "6 channels: front-center, front-left, front-right, back-left, back-right, LFE-channel";
|
||||||
case FrontCenterFrontLeftFrontRightSideLeftSideRightBackLeftBackRightLFEChannel:
|
case FrontCenterFrontLeftFrontRightSideLeftSideRightBackLeftBackRightLFEChannel:
|
||||||
return "8 channels: front-center, front-left, front-right, side-left, side-right, back-left, back-right, LFE-channel";
|
return "8 channels: front-center, front-left, front-right, side-left, side-right, back-left, back-right, LFE-channel";
|
||||||
default:
|
default:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the channel count for the specified MPEG-4 channel config.
|
* \brief Returns the channel count for the specified MPEG-4 channel config.
|
||||||
*/
|
*/
|
||||||
byte channelCount(byte config)
|
byte channelCount(byte config)
|
||||||
{
|
{
|
||||||
switch(config) {
|
switch(config) {
|
||||||
case FrontCenter:
|
case FrontCenter:
|
||||||
return 1;
|
return 1;
|
||||||
case FrontLeftFrontRight:
|
case FrontLeftFrontRight:
|
||||||
return 2;
|
return 2;
|
||||||
case FrontCenterFrontLeftFrontRight:
|
case FrontCenterFrontLeftFrontRight:
|
||||||
return 3;
|
return 3;
|
||||||
case FrontCenterFrontLeftFrontRightBackCenter:
|
case FrontCenterFrontLeftFrontRightBackCenter:
|
||||||
return 4;
|
return 4;
|
||||||
case FrontCenterFrontLeftFrontRightBackLeftBackRight:
|
case FrontCenterFrontLeftFrontRightBackLeftBackRight:
|
||||||
return 5;
|
return 5;
|
||||||
case FrontCenterFrontLeftFrontRightBackLeftBackRightLFEChannel:
|
case FrontCenterFrontLeftFrontRightBackLeftBackRightLFEChannel:
|
||||||
return 6;
|
return 6;
|
||||||
case FrontCenterFrontLeftFrontRightSideLeftSideRightBackLeftBackRightLFEChannel:
|
case FrontCenterFrontLeftFrontRightSideLeftSideRightBackLeftBackRightLFEChannel:
|
||||||
return 8;
|
return 8;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates MPEG-4 video (14496-2) codes.
|
* \brief Encapsulates MPEG-4 video (14496-2) codes.
|
||||||
*/
|
*/
|
||||||
namespace Mpeg4VideoCodes {
|
namespace Mpeg4VideoCodes {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Encapsulates MPEG-2 video codes.
|
* \brief Encapsulates MPEG-2 video codes.
|
||||||
*/
|
*/
|
||||||
namespace Mpeg2VideoCodes {
|
namespace Mpeg2VideoCodes {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
1425
mp4/mp4ids.h
1425
mp4/mp4ids.h
File diff suppressed because it is too large
Load Diff
|
@ -11,7 +11,7 @@ namespace Media
|
||||||
class Mp4Atom;
|
class Mp4Atom;
|
||||||
class Mp4Tag;
|
class Mp4Tag;
|
||||||
|
|
||||||
class LIB_EXPORT Mp4TagMaker
|
class TAG_PARSER_EXPORT Mp4TagMaker
|
||||||
{
|
{
|
||||||
friend class Mp4Tag;
|
friend class Mp4Tag;
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ inline uint64 Mp4TagMaker::requiredSize() const
|
||||||
return m_metaSize;
|
return m_metaSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT Mp4Tag : public FieldMapBasedTag<Mp4TagField>
|
class TAG_PARSER_EXPORT Mp4Tag : public FieldMapBasedTag<Mp4TagField>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Mp4Tag();
|
Mp4Tag();
|
||||||
|
|
|
@ -53,7 +53,7 @@ class Mp4TagField;
|
||||||
* \brief Defines traits for the TagField implementation of the Mp4TagField class.
|
* \brief Defines traits for the TagField implementation of the Mp4TagField class.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT TagFieldTraits<Mp4TagField>
|
class TAG_PARSER_EXPORT TagFieldTraits<Mp4TagField>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -74,7 +74,7 @@ public:
|
||||||
|
|
||||||
class Mp4Atom;
|
class Mp4Atom;
|
||||||
|
|
||||||
class LIB_EXPORT Mp4TagFieldMaker
|
class TAG_PARSER_EXPORT Mp4TagFieldMaker
|
||||||
{
|
{
|
||||||
friend class Mp4TagField;
|
friend class Mp4TagField;
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ inline uint64 Mp4TagFieldMaker::requiredSize() const
|
||||||
return m_totalSize;
|
return m_totalSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT Mp4TagField : public TagField<Mp4TagField>, public StatusProvider
|
class TAG_PARSER_EXPORT Mp4TagField : public TagField<Mp4TagField>, public StatusProvider
|
||||||
{
|
{
|
||||||
friend class TagField<Mp4TagField>;
|
friend class TagField<Mp4TagField>;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ class Mp4Atom;
|
||||||
class Mpeg4Descriptor;
|
class Mpeg4Descriptor;
|
||||||
class AvcConfiguration;
|
class AvcConfiguration;
|
||||||
|
|
||||||
class LIB_EXPORT Mpeg4AudioSpecificConfig
|
class TAG_PARSER_EXPORT Mpeg4AudioSpecificConfig
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Mpeg4AudioSpecificConfig();
|
Mpeg4AudioSpecificConfig();
|
||||||
|
@ -39,7 +39,7 @@ public:
|
||||||
byte epConfig;
|
byte epConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT Mpeg4VideoSpecificConfig
|
class TAG_PARSER_EXPORT Mpeg4VideoSpecificConfig
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Mpeg4VideoSpecificConfig();
|
Mpeg4VideoSpecificConfig();
|
||||||
|
@ -48,7 +48,7 @@ public:
|
||||||
std::string userData;
|
std::string userData;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT Mpeg4ElementaryStreamInfo
|
class TAG_PARSER_EXPORT Mpeg4ElementaryStreamInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Mpeg4ElementaryStreamInfo();
|
Mpeg4ElementaryStreamInfo();
|
||||||
|
@ -116,7 +116,7 @@ inline bool Mpeg4ElementaryStreamInfo::upstream() const
|
||||||
return decCfgDescFlags & 0x02;
|
return decCfgDescFlags & 0x02;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT Mp4Track : public AbstractTrack
|
class TAG_PARSER_EXPORT Mp4Track : public AbstractTrack
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Mp4Track(Mp4Atom &trakAtom);
|
Mp4Track(Mp4Atom &trakAtom);
|
||||||
|
|
|
@ -14,7 +14,7 @@ class Mpeg4Descriptor;
|
||||||
* \brief Defines traits for the GenericFileElement implementation Mpeg4Descriptor.
|
* \brief Defines traits for the GenericFileElement implementation Mpeg4Descriptor.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT FileElementTraits<Mpeg4Descriptor>
|
class TAG_PARSER_EXPORT FileElementTraits<Mpeg4Descriptor>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -46,7 +46,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT Mpeg4Descriptor : public GenericFileElement<Mpeg4Descriptor>
|
class TAG_PARSER_EXPORT Mpeg4Descriptor : public GenericFileElement<Mpeg4Descriptor>
|
||||||
{
|
{
|
||||||
friend class GenericFileElement<Mpeg4Descriptor>;
|
friend class GenericFileElement<Mpeg4Descriptor>;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#ifndef MP3FRAMEAUDIOSTREAM_H
|
#ifndef MP3FRAMEAUDIOSTREAM_H
|
||||||
#define MP3FRAMEAUDIOSTREAM_H
|
#define MP3FRAMEAUDIOSTREAM_H
|
||||||
|
|
||||||
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
#include <c++utilities/application/global.h>
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@ enum class MpegChannelMode
|
||||||
Unspecifed /**< used to indicate that the channel mode is unknown */
|
Unspecifed /**< used to indicate that the channel mode is unknown */
|
||||||
};
|
};
|
||||||
|
|
||||||
LIB_EXPORT const char *mpegChannelModeString(MpegChannelMode channelMode);
|
TAG_PARSER_EXPORT const char *mpegChannelModeString(MpegChannelMode channelMode);
|
||||||
|
|
||||||
enum class XingHeaderFlags
|
enum class XingHeaderFlags
|
||||||
{
|
{
|
||||||
|
@ -36,7 +37,7 @@ enum class XingHeaderFlags
|
||||||
HasQualityIndicator = 0x8u /**< Xing quality indicator is present */
|
HasQualityIndicator = 0x8u /**< Xing quality indicator is present */
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT MpegAudioFrame
|
class TAG_PARSER_EXPORT MpegAudioFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MpegAudioFrame();
|
MpegAudioFrame();
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
namespace Media
|
namespace Media
|
||||||
{
|
{
|
||||||
|
|
||||||
class LIB_EXPORT MpegAudioFrameStream : public AbstractTrack
|
class TAG_PARSER_EXPORT MpegAudioFrameStream : public AbstractTrack
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MpegAudioFrameStream(std::iostream &stream, uint64 startOffset);
|
MpegAudioFrameStream(std::iostream &stream, uint64 startOffset);
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef NOTIFICATION_H
|
#ifndef NOTIFICATION_H
|
||||||
#define NOTIFICATION_H
|
#define NOTIFICATION_H
|
||||||
|
|
||||||
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/chrono/datetime.h>
|
#include <c++utilities/chrono/datetime.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -38,7 +40,7 @@ class Notification;
|
||||||
|
|
||||||
typedef std::list<Notification> NotificationList;
|
typedef std::list<Notification> NotificationList;
|
||||||
|
|
||||||
class LIB_EXPORT Notification
|
class TAG_PARSER_EXPORT Notification
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Notification(NotificationType type, const std::string &message, const std::string &context);
|
Notification(NotificationType type, const std::string &message, const std::string &context);
|
||||||
|
|
|
@ -25,7 +25,7 @@ class OggContainer;
|
||||||
/*!
|
/*!
|
||||||
* \brief The OggParameter struct holds the OGG parameter for a VorbisComment.
|
* \brief The OggParameter struct holds the OGG parameter for a VorbisComment.
|
||||||
*/
|
*/
|
||||||
struct LIB_EXPORT OggParameter
|
struct TAG_PARSER_EXPORT OggParameter
|
||||||
{
|
{
|
||||||
OggParameter();
|
OggParameter();
|
||||||
void set(std::size_t pageIndex, std::size_t segmentIndex, bool lastMetaDataBlock, GeneralMediaFormat streamFormat = GeneralMediaFormat::Vorbis);
|
void set(std::size_t pageIndex, std::size_t segmentIndex, bool lastMetaDataBlock, GeneralMediaFormat streamFormat = GeneralMediaFormat::Vorbis);
|
||||||
|
@ -65,7 +65,7 @@ inline void OggParameter::set(std::size_t pageIndex, std::size_t segmentIndex, b
|
||||||
this->streamFormat = streamFormat;
|
this->streamFormat = streamFormat;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT OggVorbisComment : public VorbisComment
|
class TAG_PARSER_EXPORT OggVorbisComment : public VorbisComment
|
||||||
{
|
{
|
||||||
friend class OggContainer;
|
friend class OggContainer;
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ inline const OggParameter &OggVorbisComment::oggParams() const
|
||||||
return m_oggParams;
|
return m_oggParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT OggContainer : public GenericContainer<MediaFileInfo, OggVorbisComment, OggStream, OggPage>
|
class TAG_PARSER_EXPORT OggContainer : public GenericContainer<MediaFileInfo, OggVorbisComment, OggStream, OggPage>
|
||||||
{
|
{
|
||||||
friend class OggStream;
|
friend class OggStream;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT OggIterator
|
class TAG_PARSER_EXPORT OggIterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OggIterator(std::istream &stream, uint64 startOffset, uint64 streamSize);
|
OggIterator(std::istream &stream, uint64 startOffset, uint64 streamSize);
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#ifndef OGGPAGE_H
|
#ifndef OGGPAGE_H
|
||||||
#define OGGPAGE_H
|
#define OGGPAGE_H
|
||||||
|
|
||||||
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
#include <c++utilities/application/global.h>
|
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
|
@ -10,7 +11,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT OggPage
|
class TAG_PARSER_EXPORT OggPage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OggPage();
|
OggPage();
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace Media {
|
||||||
class OggContainer;
|
class OggContainer;
|
||||||
class OggIterator;
|
class OggIterator;
|
||||||
|
|
||||||
class LIB_EXPORT OggStream : public AbstractTrack
|
class TAG_PARSER_EXPORT OggStream : public AbstractTrack
|
||||||
{
|
{
|
||||||
friend class OggContainer;
|
friend class OggContainer;
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
#ifndef MEDIA_OPUSIDENTIFICATIONHEADER_H
|
#ifndef MEDIA_OPUSIDENTIFICATIONHEADER_H
|
||||||
#define MEDIA_OPUSIDENTIFICATIONHEADER_H
|
#define MEDIA_OPUSIDENTIFICATIONHEADER_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class OggIterator;
|
class OggIterator;
|
||||||
|
|
||||||
class LIB_EXPORT OpusIdentificationHeader
|
class TAG_PARSER_EXPORT OpusIdentificationHeader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OpusIdentificationHeader();
|
OpusIdentificationHeader();
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef POSITIONINSET_H
|
#ifndef POSITIONINSET_H
|
||||||
#define POSITIONINSET_H
|
#define POSITIONINSET_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/stringconversion.h>
|
#include <c++utilities/conversion/stringconversion.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -16,7 +17,7 @@ namespace Media {
|
||||||
* This class is used to parse and store values like "9/11" which are used
|
* This class is used to parse and store values like "9/11" which are used
|
||||||
* by some tag formats to denote track positions.
|
* by some tag formats to denote track positions.
|
||||||
*/
|
*/
|
||||||
class LIB_EXPORT PositionInSet
|
class TAG_PARSER_EXPORT PositionInSet
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
constexpr PositionInSet(int32 position = 0, int32 total = 0);
|
constexpr PositionInSet(int32 position = 0, int32 total = 0);
|
||||||
|
|
15
signature.h
15
signature.h
|
@ -4,7 +4,6 @@
|
||||||
#include "./mediaformat.h"
|
#include "./mediaformat.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
#include <c++utilities/application/global.h>
|
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
|
@ -62,13 +61,13 @@ enum class ContainerFormat
|
||||||
Zip /**< ZIP archive */
|
Zip /**< ZIP archive */
|
||||||
};
|
};
|
||||||
|
|
||||||
LIB_EXPORT ContainerFormat parseSignature(const char *buffer, int bufferSize);
|
TAG_PARSER_EXPORT ContainerFormat parseSignature(const char *buffer, int bufferSize);
|
||||||
LIB_EXPORT const char *containerFormatName(ContainerFormat containerFormat);
|
TAG_PARSER_EXPORT const char *containerFormatName(ContainerFormat containerFormat);
|
||||||
LIB_EXPORT const char *containerFormatAbbreviation(ContainerFormat containerFormat, MediaType mediaType = MediaType::Unknown, unsigned int version = 0);
|
TAG_PARSER_EXPORT const char *containerFormatAbbreviation(ContainerFormat containerFormat, MediaType mediaType = MediaType::Unknown, unsigned int version = 0);
|
||||||
LIB_EXPORT const char *containerFormatSubversion(ContainerFormat containerFormat);
|
TAG_PARSER_EXPORT const char *containerFormatSubversion(ContainerFormat containerFormat);
|
||||||
LIB_EXPORT const char *containerMimeType(ContainerFormat containerFormat, MediaType mediaType = MediaType::Unknown);
|
TAG_PARSER_EXPORT const char *containerMimeType(ContainerFormat containerFormat, MediaType mediaType = MediaType::Unknown);
|
||||||
LIB_EXPORT TagTargetLevel containerTargetLevel(ContainerFormat containerFormat, uint64 targetLevelValue);
|
TAG_PARSER_EXPORT TagTargetLevel containerTargetLevel(ContainerFormat containerFormat, uint64 targetLevelValue);
|
||||||
LIB_EXPORT uint64 containerTargetLevelValue(ContainerFormat containerFormat, TagTargetLevel targetLevel);
|
TAG_PARSER_EXPORT uint64 containerTargetLevelValue(ContainerFormat containerFormat, TagTargetLevel targetLevel);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
5
size.h
5
size.h
|
@ -1,7 +1,8 @@
|
||||||
#ifndef SIZE_H
|
#ifndef SIZE_H
|
||||||
#define SIZE_H
|
#define SIZE_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -12,7 +13,7 @@ namespace Media {
|
||||||
/*!
|
/*!
|
||||||
* \brief The Size class defines the size of a two-dimensional object using integer point precision.
|
* \brief The Size class defines the size of a two-dimensional object using integer point precision.
|
||||||
*/
|
*/
|
||||||
class LIB_EXPORT Size
|
class TAG_PARSER_EXPORT Size
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
constexpr Size();
|
constexpr Size();
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class LIB_EXPORT StatusProvider
|
class TAG_PARSER_EXPORT StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef std::function<void (StatusProvider &sender)> CallbackFunction;
|
typedef std::function<void (StatusProvider &sender)> CallbackFunction;
|
||||||
|
|
2
tag.h
2
tag.h
|
@ -96,7 +96,7 @@ constexpr KnownField nextKnownField(KnownField field)
|
||||||
return field == lastKnownField ? KnownField::Invalid : static_cast<KnownField>(static_cast<int>(field) + 1);
|
return field == lastKnownField ? KnownField::Invalid : static_cast<KnownField>(static_cast<int>(field) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT Tag : public StatusProvider
|
class TAG_PARSER_EXPORT Tag : public StatusProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~Tag();
|
virtual ~Tag();
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef MEDIA_TAGTARGET_H
|
#ifndef MEDIA_TAGTARGET_H
|
||||||
#define MEDIA_TAGTARGET_H
|
#define MEDIA_TAGTARGET_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "./global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -25,9 +26,9 @@ enum class TagTargetLevel : unsigned char
|
||||||
Collection
|
Collection
|
||||||
};
|
};
|
||||||
|
|
||||||
LIB_EXPORT const char *tagTargetLevelName(TagTargetLevel tagTargetLevel);
|
TAG_PARSER_EXPORT const char *tagTargetLevelName(TagTargetLevel tagTargetLevel);
|
||||||
|
|
||||||
class LIB_EXPORT TagTarget
|
class TAG_PARSER_EXPORT TagTarget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef uint64 IdType;
|
typedef uint64 IdType;
|
||||||
|
|
|
@ -61,7 +61,7 @@ enum class TagDataType : unsigned int
|
||||||
Undefined /**< undefined/invalid data type */
|
Undefined /**< undefined/invalid data type */
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIB_EXPORT TagValue
|
class TAG_PARSER_EXPORT TagValue
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// constructor, destructor
|
// constructor, destructor
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace Media {
|
||||||
class OggIterator;
|
class OggIterator;
|
||||||
class VorbisComment;
|
class VorbisComment;
|
||||||
|
|
||||||
class LIB_EXPORT VorbisComment : public FieldMapBasedTag<VorbisCommentField, CaseInsensitiveStringComparer>
|
class TAG_PARSER_EXPORT VorbisComment : public FieldMapBasedTag<VorbisCommentField, CaseInsensitiveStringComparer>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
VorbisComment();
|
VorbisComment();
|
||||||
|
|
|
@ -38,7 +38,7 @@ class VorbisCommentField;
|
||||||
* \brief Defines traits for the TagField implementation of the VorbisCommentField class.
|
* \brief Defines traits for the TagField implementation of the VorbisCommentField class.
|
||||||
*/
|
*/
|
||||||
template <>
|
template <>
|
||||||
class LIB_EXPORT TagFieldTraits<VorbisCommentField>
|
class TAG_PARSER_EXPORT TagFieldTraits<VorbisCommentField>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
|
@ -57,7 +57,7 @@ public:
|
||||||
|
|
||||||
class OggIterator;
|
class OggIterator;
|
||||||
|
|
||||||
class LIB_EXPORT VorbisCommentField : public TagField<VorbisCommentField>, public StatusProvider
|
class TAG_PARSER_EXPORT VorbisCommentField : public TagField<VorbisCommentField>, public StatusProvider
|
||||||
{
|
{
|
||||||
friend class TagField<VorbisCommentField>;
|
friend class TagField<VorbisCommentField>;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef MEDIA_VORBISCOMMENTIDS_H
|
#ifndef MEDIA_VORBISCOMMENTIDS_H
|
||||||
#define MEDIA_VORBISCOMMENTIDS_H
|
#define MEDIA_VORBISCOMMENTIDS_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
|
@ -10,112 +10,112 @@ namespace Media {
|
||||||
*/
|
*/
|
||||||
namespace VorbisCommentIds {
|
namespace VorbisCommentIds {
|
||||||
|
|
||||||
inline LIB_EXPORT const char *trackNumber() {
|
inline TAG_PARSER_EXPORT const char *trackNumber() {
|
||||||
return "TRACKNUMBER";
|
return "TRACKNUMBER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *diskNumber() {
|
inline TAG_PARSER_EXPORT const char *diskNumber() {
|
||||||
return "DISCNUMBER";
|
return "DISCNUMBER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *part() {
|
inline TAG_PARSER_EXPORT const char *part() {
|
||||||
return "PART";
|
return "PART";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *partNumber() {
|
inline TAG_PARSER_EXPORT const char *partNumber() {
|
||||||
return "PARTNUMBER";
|
return "PARTNUMBER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *title() {
|
inline TAG_PARSER_EXPORT const char *title() {
|
||||||
return "TITLE";
|
return "TITLE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *version() {
|
inline TAG_PARSER_EXPORT const char *version() {
|
||||||
return "VERSION";
|
return "VERSION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *artist() {
|
inline TAG_PARSER_EXPORT const char *artist() {
|
||||||
return "ARTIST";
|
return "ARTIST";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *album() {
|
inline TAG_PARSER_EXPORT const char *album() {
|
||||||
return "ALBUM";
|
return "ALBUM";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *label() {
|
inline TAG_PARSER_EXPORT const char *label() {
|
||||||
return "LABEL";
|
return "LABEL";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *labelNo() {
|
inline TAG_PARSER_EXPORT const char *labelNo() {
|
||||||
return "LABELNO";
|
return "LABELNO";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *language() {
|
inline TAG_PARSER_EXPORT const char *language() {
|
||||||
return "LANGUAGE";
|
return "LANGUAGE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *performer() {
|
inline TAG_PARSER_EXPORT const char *performer() {
|
||||||
return "PERFORMER";
|
return "PERFORMER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *composer() {
|
inline TAG_PARSER_EXPORT const char *composer() {
|
||||||
return "COMPOSER";
|
return "COMPOSER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *ensemble() {
|
inline TAG_PARSER_EXPORT const char *ensemble() {
|
||||||
return "ENSEMBLE";
|
return "ENSEMBLE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *arranger() {
|
inline TAG_PARSER_EXPORT const char *arranger() {
|
||||||
return "ARRANGER";
|
return "ARRANGER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *lyricist() {
|
inline TAG_PARSER_EXPORT const char *lyricist() {
|
||||||
return "LYRICIST";
|
return "LYRICIST";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *author() {
|
inline TAG_PARSER_EXPORT const char *author() {
|
||||||
return "AUTHOR";
|
return "AUTHOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *conductor() {
|
inline TAG_PARSER_EXPORT const char *conductor() {
|
||||||
return "CONDUCTOR";
|
return "CONDUCTOR";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *encoder() {
|
inline TAG_PARSER_EXPORT const char *encoder() {
|
||||||
return "ENCODER";
|
return "ENCODER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *publisher() {
|
inline TAG_PARSER_EXPORT const char *publisher() {
|
||||||
return "PUBLISHER";
|
return "PUBLISHER";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *genre() {
|
inline TAG_PARSER_EXPORT const char *genre() {
|
||||||
return "GENRE";
|
return "GENRE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *originalMediaType() {
|
inline TAG_PARSER_EXPORT const char *originalMediaType() {
|
||||||
return "ORIGINAL_MEDIA_TYPE";
|
return "ORIGINAL_MEDIA_TYPE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *contentType() {
|
inline TAG_PARSER_EXPORT const char *contentType() {
|
||||||
return "CONTENT_TYPE";
|
return "CONTENT_TYPE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *subject() {
|
inline TAG_PARSER_EXPORT const char *subject() {
|
||||||
return "SUBJECT";
|
return "SUBJECT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *description() {
|
inline TAG_PARSER_EXPORT const char *description() {
|
||||||
return "DESCRIPTION";
|
return "DESCRIPTION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *isrc() {
|
inline TAG_PARSER_EXPORT const char *isrc() {
|
||||||
return "ISRC";
|
return "ISRC";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *eanupn() {
|
inline TAG_PARSER_EXPORT const char *eanupn() {
|
||||||
return "EAN/UPN";
|
return "EAN/UPN";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *comment() {
|
inline TAG_PARSER_EXPORT const char *comment() {
|
||||||
return "COMMENT";
|
return "COMMENT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *encoderSettings() {
|
inline TAG_PARSER_EXPORT const char *encoderSettings() {
|
||||||
return "ENCODING";
|
return "ENCODING";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *date() {
|
inline TAG_PARSER_EXPORT const char *date() {
|
||||||
return "DATE";
|
return "DATE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *location() {
|
inline TAG_PARSER_EXPORT const char *location() {
|
||||||
return "LOCATION";
|
return "LOCATION";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *license() {
|
inline TAG_PARSER_EXPORT const char *license() {
|
||||||
return "LICENSE";
|
return "LICENSE";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *copyright() {
|
inline TAG_PARSER_EXPORT const char *copyright() {
|
||||||
return "COPYRIGHT";
|
return "COPYRIGHT";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *opus() {
|
inline TAG_PARSER_EXPORT const char *opus() {
|
||||||
return "OPUS";
|
return "OPUS";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *sourceMedia() {
|
inline TAG_PARSER_EXPORT const char *sourceMedia() {
|
||||||
return "SOURCEMEDIA";
|
return "SOURCEMEDIA";
|
||||||
}
|
}
|
||||||
inline LIB_EXPORT const char *cover() {
|
inline TAG_PARSER_EXPORT const char *cover() {
|
||||||
return "METADATA_BLOCK_PICTURE";
|
return "METADATA_BLOCK_PICTURE";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
#ifndef MEDIA_VORBISIDENTIFICATIONHEADER_H
|
#ifndef MEDIA_VORBISIDENTIFICATIONHEADER_H
|
||||||
#define MEDIA_VORBISIDENTIFICATIONHEADER_H
|
#define MEDIA_VORBISIDENTIFICATIONHEADER_H
|
||||||
|
|
||||||
#include <c++utilities/application/global.h>
|
#include "../global.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/types.h>
|
#include <c++utilities/conversion/types.h>
|
||||||
|
|
||||||
namespace Media {
|
namespace Media {
|
||||||
|
|
||||||
class OggIterator;
|
class OggIterator;
|
||||||
|
|
||||||
class LIB_EXPORT VorbisIdentificationHeader
|
class TAG_PARSER_EXPORT VorbisIdentificationHeader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
VorbisIdentificationHeader();
|
VorbisIdentificationHeader();
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
namespace Media
|
namespace Media
|
||||||
{
|
{
|
||||||
|
|
||||||
class LIB_EXPORT WaveFormatHeader
|
class TAG_PARSER_EXPORT WaveFormatHeader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WaveFormatHeader();
|
WaveFormatHeader();
|
||||||
|
@ -33,7 +33,7 @@ inline uint32 WaveFormatHeader::bitrate() const
|
||||||
return bitsPerSample * sampleRate * channelCount;
|
return bitsPerSample * sampleRate * channelCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
class LIB_EXPORT WaveAudioStream : public AbstractTrack
|
class TAG_PARSER_EXPORT WaveAudioStream : public AbstractTrack
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WaveAudioStream(std::iostream &stream, uint64 startOffset);
|
WaveAudioStream(std::iostream &stream, uint64 startOffset);
|
||||||
|
|
Loading…
Reference in New Issue