Fix decoration for static builds

This commit is contained in:
Martchus 2016-08-29 15:43:05 +02:00
parent 0541c08864
commit 0cf30edbff
69 changed files with 1402 additions and 1368 deletions

View File

@ -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;

View File

@ -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();

View File

@ -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();

View File

@ -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;

View File

@ -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();

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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:

View File

@ -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();

View File

@ -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");
} }

View 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

View File

@ -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
{ {

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -7,7 +7,7 @@ namespace Media {
class OggIterator; class OggIterator;
class LIB_EXPORT FlacToOggMappingHeader class TAG_PARSER_EXPORT FlacToOggMappingHeader
{ {
public: public:
FlacToOggMappingHeader(); FlacToOggMappingHeader();

View File

@ -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;

View File

@ -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>;

View File

@ -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>;

17
global.h Normal file
View File

@ -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

View File

@ -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);

View File

@ -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();

View File

@ -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>;

View File

@ -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();

View File

@ -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());

View File

@ -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);

View File

@ -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>;

View File

@ -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();

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -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);
} }

View File

@ -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();

View File

@ -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();

View File

@ -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>;

View File

@ -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;
} }

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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>;

View File

@ -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);

View File

@ -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 {
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -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();

View File

@ -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>;

View File

@ -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);

View File

@ -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>;

View File

@ -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();

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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();

View File

@ -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;

View File

@ -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();

View File

@ -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);

View File

@ -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
View File

@ -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();

View File

@ -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
View File

@ -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();

View File

@ -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;

View File

@ -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

View File

@ -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();

View File

@ -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>;

View File

@ -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";
} }

View File

@ -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();

View File

@ -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);