tagparser/mp4/mp4ids.h

710 lines
21 KiB
C
Raw Normal View History

#ifndef TAG_PARSER_MP4IDS_H
#define TAG_PARSER_MP4IDS_H
2016-08-29 15:43:05 +02:00
#include "../global.h"
#include <c++utilities/conversion/types.h>
2018-03-07 01:17:50 +01:00
namespace TagParser {
2016-08-29 15:43:05 +02:00
class MediaFormat;
namespace Mp4AtomIds {
enum KnownValue : uint32 {
2018-08-23 23:18:57 +02:00
Av1Configuration = 0x61763143,
2016-08-29 15:43:05 +02:00
AvcConfiguration = 0x61766343,
BitrateBox = 0x62747274,
CleanAperature = 0x636c6170,
ChunkOffset64 = 0x636f3634,
CompositionTimeToSample = 0x63747473,
Data = 0x64617461,
DataInformation = 0x64696e66,
DataReference = 0x64726566,
Drms = 0x64726D73,
Edts = 0x65647473,
Edit = 0x656C7374,
Free = 0x66726565,
FileType = 0x66747970,
HandlerReference = 0x68646c72,
HintMediaHeader = 0x686D6864,
ItunesList = 0x696c7374,
MediaData = 0x6d646174,
MediaHeader = 0x6d646864,
Media = 0x6d646961,
Mean = 0x6D65616E,
MovieExtendsHeader = 0x6D656864,
Meta = 0x6d657461,
MovieFragmentHeader = 0x6D666864,
MovieFragmentRandomAccess = 0x6d667261,
MediaInformation = 0x6d696e66,
MovieFragment = 0x6d6f6f66,
Movie = 0x6d6f6f76,
MovieExtends = 0x6D766578,
MovieHeader = 0x6D766864,
Name = 0x6E616D65,
NullMediaHeaderBox = 0x6E6D6864,
PaddingBits = 0x70616462,
PixalAspectRatio = 0x70617370,
ProgressiveDownloadInformation = 0x7064696e,
SampleToGroup = 0x73626770,
IndependentAndDisposableSamples = 0x73647470,
SampleGroupDescription = 0x73677064,
Skip = 0x736b6970,
SoundMediaHeader = 0x736D6864,
SampleTable = 0x7374626c,
ChunkOffset = 0x7374636f,
DegradationPriority = 0x73746470,
SampleToChunk = 0x73747363,
SampleDescription = 0x73747364,
ShadowSyncSample = 0x73747368,
SyncSample = 0x73747373,
SampleSize = 0x7374737A,
DecodingTimeToSample = 0x73747473,
CompactSampleSize = 0x73747a32,
SubSampleInformation = 0x73756273,
TrackFragmentHeader = 0x74666864,
TrackHeader = 0x746b6864,
TrackFragment = 0x74726166,
Track = 0x7472616b,
TrackReference = 0x74726566,
TrackExtends = 0x74726578,
TrackFragmentRun = 0x7472756E,
UserData = 0x75647461,
DataEntryUrl = 0x75726C20,
DataEntryUrn = 0x75726E20,
VideoMediaHeader = 0x766D6864,
Wide = 0x77696465
};
}
namespace Mp4TagAtomIds {
enum KnownValue : uint32 {
Album = 0xA9616c62,
AlbumArtist = 0x61415254,
Artist = 0xA9415254,
Bpm = 0x746d706f,
Category = 0x63617467,
Comment = 0xA9636d74,
Composer = 0xA9777274,
Copyright = 0x63707274,
Cover = 0x636f7672,
Description = 0x64657363,
DiskPosition = 0x6469736b,
Encoder = 0xA9746f6f,
EpisodeGlobalUniqueId = 0x65676964,
Extended = 0x2d2d2d2d,
GaplessPlayback = 0x70676170,
Genre = 0xA967656e,
Grouping = 0xA9677270,
Keywords = 0x6b657977,
Lyricist = 0xA9737766,
Lyrics = 0xA96c7972,
MediaType = 0x7374696B,
Performers = 0xA9707266,
Podcast = 0x70637374,
PodcastUrl = 0x7075726c,
PreDefinedGenre = 0x676e7265,
Producer = 0xA9707264,
PurchaseDate = 0x70757264,
Rating = 0x72746e67,
RecordLabel = 0xA96c6162,
Title = 0xA96e616d,
TrackPosition = 0x74726b6e,
TvEpisode = 0x74766573,
TvEpisodeName = 0x7476656e,
TvNetworkName = 0x74766e6e,
TvSeason = 0x7476736e,
TvShowName = 0x74767368,
Year = 0xA9646179
};
}
namespace Mp4TagExtendedMeanIds {
extern const char *iTunes;
}
namespace Mp4TagExtendedNameIds {
extern const char *cdec;
extern const char *label;
2018-03-07 01:17:50 +01:00
} // namespace Mp4TagExtendedNameIds
2016-08-29 15:43:05 +02:00
namespace Mp4MediaTypeIds {
enum KnownValue : uint32 {
Sound = 0x736f756e, /**< Sound/Audio */
Video = 0x76696465, /**< Video */
Hint = 0x68696e74, /**< Hint */
Meta = 0x6d657461 /**< Meta */
};
}
namespace FourccIds {
enum KnownValue : uint32 {
Ac3 = 0x61632d33, /**< Dolby Digital */
Ac4 = 0x61632d34, /**< ? */
AdpcmAcm = 0x6D730002, /**< ? */
Agsm = 0x6167736D,
Alac = 0x616C6163, /**< Apple Losless Audio Codec */
Alaw = 0x616C6177,
Alaw21 = 0x616C6177,
AlphaCompositor = 0x626C6E64,
AlphaGain = 0x6761696E,
Amr = 0x73617762,
AmrNarrowband = 0x73616D72,
Animation = 0x726C6520, /**< Animation */
Appl1 = 0x6476690,
Appl2 = 0x6C70630,
Apple16BitGray = 0x62313667,
Apple32BitGrayWithAlpha = 0x62333261,
Apple48BitRgb = 0x62343872,
Apple64BitArgb1 = 0x62363461,
Apple64BitArgb2 = 0x62617365,
Apple64BitArgb3 = 0x626C6974,
AppleAnimation = 0x726C6520,
AppleAvrJpeg = 0x61767220,
AppleBmp = 0x57524C45,
AppleCinepak = 0x63766964,
AppleCmyk = 0x636D796B,
AppleComponentVideoYuv422 = 0x79757632,
AppleCurve = 0x70617468,
AppleDvc = 0x64766320,
AppleDvcpro = 0x64767070,
AppleDvcpro501 = 0x6476356E,
AppleDvcpro502 = 0x64763570,
AppleDvcpro50Ntsc = 0x6476356E,
AppleDvcpro50Pal = 0x64763570,
AppleDvcproPal = 0x64767070,
AppleDvDvcproNtsc = 0x6476630,
AppleDvp = 0x64766370,
AppleDvPal = 0x64766370,
AppleFlc = 0x666C6963,
AppleGif = 0x67696620,
AppleGraphics = 0x736D630,
AppleGsm101 = 0x6167736D,
AppleH261 = 0x68323631,
AppleIntermediateCodec = 0x69636F64,
AppleLossless = 0x616C6163,
AppleMacpaint = 0x504E5447,
AppleMicrosoftVideo1 = 0x6D737663,
AppleMotionJpegA = 0x6D6A7061,
AppleMotionJpegB = 0x6D6A7062,
AppleMpeg4Compressor = 0x6D703476,
AppleMpeg4Decompressor = 0x6D703476,
AppleOpendmlJpeg = 0x646D6231,
ApplePhotoCd = 0x6B706364,
ApplePhotoJpeg = 0x6A706567,
ApplePixletVideo = 0x70786C74,
ApplePlanarRgb = 0x38425053,
ApplePng = 0x706E670,
AppleQuickdraw = 0x71647277,
AppleR408 = 0x72343038,
AppleScalingCodec = 0x7363616C,
AppleSgi = 0x2E534749,
AppleSorensonYuv9Codec = 0x73797639,
AppleTextAtsuiCodec = 0x74657874,
AppleTga = 0x7467610,
AppleTiff = 0x74696666,
AppleV408 = 0x76343038,
AppleVcH263 = 0x68323633,
AppleVideo = 0x72707A61, /**< Apple video */
AppleYuv420Codec1 = 0x6A343230,
AppleYuv420Codec2 = 0x6D797576,
AppleYuv420Codec3 = 0x79343230,
AppleYuv422Codec2Vuy = 0x32767579,
AppleYuv422Codec4 = 0x79757678,
AppleYuv422CodecYuvs = 0x79757673,
AppleYuv422CodecYuvu = 0x79757675,
Avc0Media = 0x64726D69,
Avc1 = 0x61766331, /**< H.264/MPEG-4 AVC video */
Avc2 = 0x61766332, /**< H.264/MPEG-4 AVC video */
Avc3 = 0x61766333, /**< H.264/MPEG-4 AVC video */
Avc4 = 0x61766334, /**< H.264/MPEG-4 AVC video */
2018-08-23 23:18:57 +02:00
Av1_IVF = 0x41563031, /**< AV1 video (found in IVF) */
Av1_ISOBMFF = 0x61763031, /**< AV1 video (found in ISOBMFF) */
2016-08-29 15:43:05 +02:00
Blur = 0x626C7572,
Bps8 = 0x38627073,
BrightnessAndContrast = 0x6272636F,
ChannelCompositor = 0x6368616E,
ChromaKey = 0x636B6579,
Cinepak = 0x63766964, /**< Cinepak */
Cloud = 0x636C6F75,
ColorStyle = 0x736F6C72,
Colorsync = 0x73796E63,
ColorTint = 0x74696E74,
CrossFade = 0x64736C76,
Cvid = 0x63766964,
Divx3Decoder1 = 0x41503431,
Divx3Decoder2 = 0x434F4C30,
Divx3Decoder3 = 0x434F4C31,
Divx3Decoder4 = 0x44495633,
Divx3Decoder5 = 0x44495634,
Divx3Decoder6 = 0x44495635,
Divx3Decoder7 = 0x44495636,
Divx3Decoder8 = 0x4D504733,
Divx3Decoder9 = 0x6D706733,
Divx3Decoder10 = 0x636F6C30,
Divx3Decoder11 = 0x636F6C31,
Divx3Decoder12 = 0x64697633,
Divx3Decoder13 = 0x64697634,
Divx3Decoder14 = 0x64697635,
Divx3Decoder15 = 0x64697636,
Divx4Decoder1 = 0x44495658,
Divx4Decoder2 = 0x64697678,
Divx5Decoder = 0x44583530,
Drms = 0x64726D73,
Drmi = 0x64726D69,
Dts = 0x6474736C,
DtsH = 0x64747368,
DtsE = 0x64747365,
Dvca = 0x64766361,
DvcPro501 = 0x64763570,
DvcPro502 = 0x6476356E,
DvcProPal = 0x64767070,
EAc3 = 0x65632D33,
EdgeDetection = 0x65646765,
Emboss = 0x656D6273,
Explode = 0x78706C6F,
FilmNoise = 0x666D6E73,
Fire = 0x66697265,
FlashPixImage = 0x66706978,
FlashScreenVideoDecoder = 0x46535631,
FloatingPoint32Bit = 0x666C3332,
FloatingPoint64Bit = 0x666C3634,
GeneralConvolution = 0x67656E6B,
Gif = 0x67696620, /**< CompuServe Graphics Interchange Format */
Glass = 0x676C6173,
GradientWipe = 0x6D617474,
Graphics = 0x736D6320, /**< Graphics */
H263Quicktime = 0x68323633, /**< H.263/MPEG-4 ASP video (Quicktime) */
H2633GPP = 0x73323633, /**< H.263 (3GPP format) */
H264Decoder1 = 0x44415643,
H264Decoder2 = 0x48323634,
H264Decoder3 = 0x56535348,
H264Decoder4 = 0x58323634,
H264Decoder5 = 0x68323634,
H264Decoder6 = 0x78323634,
Hdv3 = 0x68647633,
Hevc1 = 0x68766331, /**< H.265/High Efficiency Video Coding */
Hevc2 = 0x68657631, /**< H.265/High Efficiency Video Coding */
HslBalance = 0x68736C62,
Ima4 = 0x696D6134,
Ima41 = 0x696D6134,
ImaadpcmAcm = 0x6D730011, /**< ? */
Implode = 0x6D706C6F,
Int16Be = 0x74776F73,
Int16Le = 0x736F7774,
Int24 = 0x696E3234,
Int32 = 0x696E3332,
Iris = 0x736D7032,
IvxDecoder1 = 0x33495632,
IvxDecoder2 = 0x33495644,
IvxDecoder3 = 0x33697632,
IvxDecoder4 = 0x33697664,
Jpeg = 0x6a706567, /**< JPEG */
Jpeg2000Decoder = 0x6D6A7032,
Law21 = 0x756C6177,
LensFlare = 0x6C656E73,
Lle = 0x726C6520,
Mac3 = 0x6D616333,
Mac6 = 0x6D616336,
Mace31 = 0x4D414333,
Mace61 = 0x4D414336,
MatrixWipe = 0x736D7034,
DolbyMpl = 0x6D6C7061,
MotionJpegA = 0x6D6A7061, /**< Motion-JPEG (format A) */
MotionJpegB = 0x6D6A7062, /**< Motion-JPEG (format B) */
Mp3 = 0x2e6d7033, /**< MPEG-1 Layer 3 */
Mp3CbrOnly = 0x6D730055, /**< MPEG-1 Layer 3 (constant bitrate only) */
Mpeg = 0x4D504547,
Mpeg2Imx30 = 0x6D78336E,
Mpeg2Imx50 = 0x6D783570,
Mpeg4Audio = 0x6d703461, /**< MPEG-4 audio */
Mpeg4Decoder1 = 0x464D5034,
Mpeg4Decoder2 = 0x53454447,
Mpeg4Decoder3 = 0x57563146,
2017-03-01 18:21:00 +01:00
Mpeg4Sample = 0x6d703473, /**< MPEG-4 stream (other than video/audio) */
2016-08-29 15:43:05 +02:00
Mpeg4TimedText = 0x74783367, /**< MPEG-4 Timed Text / Streaming text format / Part 17 */
Mpeg4Video = 0x6d703476, /**< MPEG-4 video */
MsMpeg4V1Decoder1 = 0x44495631,
MsMpeg4V1Decoder2 = 0x64697631,
MsMpeg4V1Decoder3 = 0x4D504734,
MsMpeg4V1Decoder4 = 0x6D706734,
MsMpeg4V1Decoder5 = 0x4D504731,
MsMpeg4V1Decoder6 = 0x6D706731,
MsMpeg4V2Decoder1 = 0x44495632,
MsMpeg4V2Decoder2 = 0x64697632,
MsMpeg4V2Decoder3 = 0x4D503432,
MsMpeg4V2Decoder4 = 0x6D703432,
MsMpeg4V3Decoder1 = 0x4D503433,
MsMpeg4V3Decoder2 = 0x6D703433,
NtscDv25Video = 0x64766320, /**< NTSC DV-25 video */
Oggs = 0x4F676753,
PalDv25Video = 0x64766370, /**< PAL DV-25 video */
PdfImage = 0x70646620,
Png = 0x706E6720, /**< Portable Network Graphics */
Push = 0x70757368,
Qclp = 0x51636C70,
QdesignMusic1Decoder = 0x51444D43,
QdesignMusic2 = 0x51444D32,
Qdmc = 0x51444D43,
Qdrw = 0x71647277,
QtvrCubicCodec = 0x63757061,
QtvrCylindricalCodec = 0x6C747061,
QualcommPurevoice = 0x51636C70,
QualcommQcelp = 0x51636C71,
Radial = 0x736D7033,
Raw = 0x72617720, /**< Uncompressed RGB */
RgbBalance = 0x72676262,
Ripple = 0x7269706C,
Rpza = 0x72707A61,
Rv20 = 0x52563230,
Rv30 = 0x52563330,
Rv40 = 0x52563430,
Sharpen = 0x73687270,
Slide = 0x736C6964,
Smc = 0x736D6320,
SorensonH263Decoder = 0x464C5631,
SorensonVideo3Compressor = 0x53565133,
SorensonVideoDecompressor = 0x53565131,
Sowt = 0x736F7774,
SpecialEffectsAndFilters = 0x67656666,
Svq1 = 0x73767131,
Svq3 = 0x73767133,
Tiff = 0x74696666, /**< Tagged Image File Format */
TravelingMatte = 0x74726176,
TruemotionVp6Decoder1 = 0x56503632,
TruemotionVp6Decoder2 = 0x56503646,
Twos = 0x74776F73,
Ulaw = 0x756C6177,
Ulaw21 = 0x756C6177,
VcmImageCodec = 0x4D6A7067,
Vdva = 0x76647661,
2018-07-28 14:56:00 +02:00
Vp8 = 0x56503830, /**< VP8 video */
Vp9 = 0x56503930, /**< VP9 video */
WavPack = 0x5756504B,
2016-08-29 15:43:05 +02:00
WindowsMediaAudio = 0x6F776D61, /**< ? */
WindowsMediaAudio7 = 0x574D4131,
WindowsMediaAudio9Professional = 0x574D4133,
WindowsMediaAudio9Standard = 0x574D4132,
WindowsMediaVideoV17 = 0x574D5637,
WindowsMediaVideoV2 = 0x574D5632,
WindowsMediaVideoV8 = 0x574D5638,
Wipe = 0x736D7074,
WmvImageCodec1 = 0x4D347332,
WmvImageCodec2 = 0x4D703432,
WmvImageCodec3 = 0x4D703433,
WmvImageCodec4 = 0x4D703453,
WmvImageCodec5 = 0x574D5631,
WmvImageCodec6 = 0x574D5632,
WmvImageCodec7 = 0x574D5633,
XvidDecoder1 = 0x424C5A30,
XvidDecoder2 = 0x58564944,
XvidDecoder3 = 0x58564958,
XvidDecoder4 = 0x58766944,
XvidDecoder5 = 0x78766964,
Yuv422HardwareAccelerationCodecYuvs1 = 0x32767579,
Yuv422HardwareAccelerationCodecYuvs2 = 0x61633136,
Yuv422HardwareAccelerationCodecYuvs3 = 0x61633332,
Yuv422HardwareAccelerationCodecYuvs4 = 0x61634247,
Yuv422HardwareAccelerationCodecYuvs5 = 0x79757673,
Zoom = 0x7A6F6F6D
};
TAG_PARSER_EXPORT MediaFormat fourccToMediaFormat(uint32 fourccId);
2018-03-07 01:17:50 +01:00
} // namespace FourccIds
2016-08-29 15:43:05 +02:00
namespace Mp4FormatExtensionIds {
enum KnownValue : uint32 {
2018-03-07 01:17:50 +01:00
GammaLevel
= 0x67616D61, /**< A 32-bit fixed-point number indicating the gamma level at which the image was captured. The decompressor can use this value to gamma-correct at display time. */
2016-08-29 15:43:05 +02:00
FieldHandling = 0x6669656C, /**< Two 8-bit integers that define field handling. */
DefaultQuantizationTable = 0x6D6A7174, /**< The default quantization table for a Motion-JPEG data stream. */
DefaultHuffmanTable = 0x6D6A6874, /**< The default Huffman table for a Motion-JPEG data stream. */
Mpeg4ElementaryStreamDescriptor = 0x65736473, /**< An MPEG-4 elementary stream descriptor atom. This extension is required for MPEG-4 video. */
Mpeg4ElementaryStreamDescriptor2 = 0x6D346473, /**< Alternative if encoded to AVC stanard. */
AvcConfiguration = 0x61766343, /**< An H.264 AVCConfigurationBox. This extension is required for H.264 video as defined in ISO/IEC 14496-15. */
PixelAspectRatio = 0x70617370, /**< Pixel aspect ratio. This extension is mandatory for video formats that use non-square pixels. */
ColorParameters = 0x636F6C72, /**< An image description extension required for all uncompressed Y´CbCr video types. */
CleanAperature = 0x636C6170 /**< Spatial relationship of Y´CbCr components relative to a canonical image center. */
};
}
namespace Mpeg4ElementaryStreamObjectIds {
enum KnownValue : byte {
SystemsIso144961 = 0x01, /**< Systems */
SystemsIso144961v2, /**< Systems (version 2) */
InteractionStream, /**< Interaction Stream */
AfxStream = 0x05, /**< AFX Stream */
FontDataStream, /**< Font Data Stream */
SynthesizedTextureStream, /**< Synthesized Texture Stream */
StreamingTextStream, /**< Streaming Text Stream */
Mpeg4Visual = 0x20, /**< MPEG-4 Visual */
Avc, /**< Advanced Video Coding */
ParameterSetsForAvc, /**< Parameter Sets for Advanced Video Coding */
Als = 0x24, /**< ALS */
Sa0c = 0x2B, /**< SAOC */
Aac = 0x40, /**< Audio ISO/IEC 14496-3 (AAC) */
Mpeg2VideoSimpleProfile = 0x60, /**< MPEG-2 Video Simple Profile */
Mpeg2VideoMainProfile, /**< MPEG-2 Video Main Profile */
Mpeg2VideoSnrProfile, /**< MPEG-2 Video SNR Profile */
Mpeg2VideoSpatialProfile, /**< MPEG-2 Video Spatial Profile */
Mpeg2VideoHighProfile, /**< MPEG-2 Video High Profile */
Mpeg2Video422Profile, /**< MPEG-2 Video 422 Profile */
Mpeg2AacMainProfile, /**< Advanced Audio Coding Main Profile */
Mpeg2AacLowComplexityProfile, /**< Advanced Audio Coding Low Complexity Profile */
Mpeg2AacScaleableSamplingRateProfile, /**< Advanced Audio Coding Scaleable Sampling Rate Profile */
Mpeg2Audio, /**< MPEG-2 Audio */
Mpeg1Video, /**< MPEG-1 Video */
Mpeg1Audio, /**< MPEG-1 Audio */
Jpeg, /**< JPEG */
Png, /**< PNG */
Evrc = 0xA0, /**< EVRC */
Smv, /**< SMV */
Gpp2Cmf, /**< 3GPP2 Compact Multimedia Format (CMF) */
Vc1, /**< VC-1 */
Dirac, /**< Dirac */
Ac3, /**< AC-3 */
EAc3, /**< E-AC-3 */
Dts, /**< DTS */
DtsHdHighResolution, /**< DTS-HD High Resolution */
DtsHdMasterAudio, /**< DTS-HD Master Audio */
DtsHdExpress, /**< DTS-HD Express */
PrivateEvrc = 0xD1, /**< EVRC */
PrivateAc3 = 0xD3, /**< AC-3 */
PrivateDts, /**< DTS */
PrivateOgg = 0xDD, /**< Ogg */
PrivateOgg2, /**< Ogg */
2019-03-10 16:40:51 +01:00
PrivateVobSub = 0xE0, /**< VobSub */
PrivateQcelp = 0xE1, /**< QCELP */
2016-08-29 15:43:05 +02:00
};
TAG_PARSER_EXPORT MediaFormat streamObjectTypeFormat(byte streamObjectTypeId);
2018-03-07 01:17:50 +01:00
} // namespace Mpeg4ElementaryStreamObjectIds
2016-08-29 15:43:05 +02:00
namespace Mpeg4ElementaryStreamTypeIds {
enum KnownValue : byte {
ObjectDescriptor = 0x01,
ClockReference,
SceneDescriptor,
Visual,
Audio,
Mpeg7,
Ipmps,
ObjectContentInfo,
MpegJava,
Interaction,
Ipmp,
FontData,
StreamingText
};
TAG_PARSER_EXPORT const char *streamTypeName(byte streamTypeId);
2018-03-07 01:17:50 +01:00
} // namespace Mpeg4ElementaryStreamTypeIds
2016-08-29 15:43:05 +02:00
namespace Mpeg4DescriptorIds {
enum KnownValue : byte {
ObjectDescr = 0x01,
InitialObjectDescr,
ElementaryStreamDescr,
DecoderConfigDescr,
DecoderSpecificInfo,
SlConfigDescr,
ContentIdentDescr,
SupplContentIdentDescr,
IpiDescPointer,
IpmpDescPointer,
IpmpDescr,
QoSDescr,
RegistrationDescr,
EsIdInc,
EsIdRef,
Mp4I0d,
Mp40d,
IplDescrPointerRef,
ExtendedProfileLevelDescr,
ProfileLevelIndicationIndexDescr,
ContentClassificationDescr = 0x40,
KeyWordDescr,
RatingDescr,
LanguageDescr,
ShortTextualDescr,
ExpandedTextualDescr,
ContentCreatorNameDescr,
ContentCreationDateDescr,
IcicCreatorDateDescr,
SmpteCameraPositionDescr,
SegmentDescr,
MediaTimeDescr,
IpmpToolsListDescr = 0x60,
IpmpToolTag,
FlexMuxTimingDescr,
FlexMuxCodeTableDescr,
ExtSlConfigDescr,
FlexMuxIdentDescr,
DependencyPointer,
DependencyMaker,
FlexMuxChannelDescr,
UserPrivate = 0xC0
};
}
namespace Mpeg4AudioObjectIds {
enum KnownValue : byte {
Null = 0,
AacMain,
AacLc, /**< low complexity */
AacSsr, /**< scalable sample rate */
AacLtp, /**< long term prediction */
Sbr, /**< spectral band replication */
AacScalable,
TwinVq,
Celp, /**< code excited linear prediction */
Hxvc, /**< harmonic vector excitation coding */
Ttsi = 12, /**< text-to-speech interface */
MainSynthesis,
WavetableSynthesis,
GeneralMidi,
AlgorithmicSynthesisAudioEffects,
ErAacLc, /**< error resillent AAC LC */
ErAacLtp = 19,
ErAacScalable,
ErTwinVq,
ErBsac,
ErAacLd,
ErCelp,
ErHvxc,
ErHiln,
ErParametric,
Ssc,
Ps,
MpegSurround,
EscapeValue,
Layer1,
Layer2,
Layer3,
Dst,
Als, /**< audio lossless */
Sls, /**< scalable lossless */
ErAacEld, /**< enhanced low delay */
SmrSimple, /**< symbolic music representation */
SmrMain,
UsacNoSbr, /**< unified speech and audio coding */
Saoc, /**< spatial audio object coding (no SBR) */
LdMpegSurround,
Usac /**< unified speech and audio coding */
};
TAG_PARSER_EXPORT MediaFormat idToMediaFormat(byte mpeg4AudioObjectId, bool sbrPresent = false, bool psPresent = false);
2018-03-07 01:17:50 +01:00
} // namespace Mpeg4AudioObjectIds
2016-08-29 15:43:05 +02:00
extern uint32 mpeg4SamplingFrequencyTable[13];
namespace Mpeg4ChannelConfigs {
2018-03-07 01:17:50 +01:00
enum Mpeg4ChannelConfig : byte {
2016-08-29 15:43:05 +02:00
AotSpecificConfig = 0,
FrontCenter,
FrontLeftFrontRight,
FrontCenterFrontLeftFrontRight,
FrontCenterFrontLeftFrontRightBackCenter,
FrontCenterFrontLeftFrontRightBackLeftBackRight,
FrontCenterFrontLeftFrontRightBackLeftBackRightLFEChannel,
FrontCenterFrontLeftFrontRightSideLeftSideRightBackLeftBackRightLFEChannel
};
TAG_PARSER_EXPORT const char *channelConfigString(byte config);
TAG_PARSER_EXPORT byte channelCount(byte config);
2018-03-07 01:17:50 +01:00
} // namespace Mpeg4ChannelConfigs
2016-08-29 15:43:05 +02:00
namespace Mpeg4VideoCodes {
enum KnownValue : byte {
VideoObjectStart = 0x00,
VideoObjectLayerStart = 0x20,
VisualObjectSequenceStart = 0xB0,
VisualObjectSequendeEnd = 0xB1,
UserDataStart = 0xB2,
GroupOfVopStart = 0xB3,
VideoSessionError = 0xB4,
VisualObjectStart = 0xB5,
VopStart = 0xB6,
FbaObjectStart = 0xBA,
FbaObjectPlaneStart = 0xBB,
MeshObjectStart = 0xBC,
MeshObjectPlaneStart = 0xBD,
StillTextureObjectStart = 0xBE,
TextureSpatialLayerStart = 0xBF,
TextureSnrLayerStart = 0xC0,
TextureTitleStart = 0xC1,
TextureShapeLayerStart = 0xC2,
StuffingStart = 0xC3
};
}
namespace Mpeg2VideoCodes {
2018-03-07 01:17:50 +01:00
enum KnownValue : byte { Pic = 0x00, Seq = 0xB3, Ext = 0xB5, Gop = 0xB8 };
2016-08-29 15:43:05 +02:00
}
/*!
* \brief Specifies the tag type.
*/
enum class Mp4TagMediaType : byte {
Movie = 0, /**< Movie */
Music = 1, /**< Music */
Audiobook = 2, /**< Audiobook */
MusicVideo = 6, /**< MusicVideo */
Movie2 = 9, /**< Movie */
TvShow = 10, /**< TvShow */
Booklet = 11, /**< Booklet */
Ringtone = 14 /**< Ringtone */
};
/*!
* \brief Specifies the tag content rating.
*/
enum class Mp4TagContentRating : byte {
None = 0, /**< None */
Clean = 2, /**< Clean */
Explicit = 4 /**< Explicit */
};
/*!
* \brief Specifies the account type.
*/
2018-03-07 01:17:50 +01:00
enum class AccountType : byte { Itunes = 0, Aol = 1, Undefined = 255 };
2016-08-29 15:43:05 +02:00
/*!
* \brief Specifies the country.
*/
2018-03-07 01:17:50 +01:00
enum class CountryCode {
2016-08-29 15:43:05 +02:00
Usa = 143441,
Fra = 143442,
Deu = 143443,
Gbr = 143444,
Aut = 143445,
Bel = 143446,
Fin = 143447,
Grc = 143448,
Irl = 143449,
Ita = 143450,
Lux = 143451,
Nld = 143452,
Prt = 143453,
Esp = 143454,
Can = 143455,
Swe = 143456,
Nor = 143457,
Dnk = 143458,
Che = 143459,
Aus = 143460,
Nzl = 143461,
Jpn = 143462,
Undefined = 0
};
2018-03-07 01:17:50 +01:00
} // namespace TagParser
2016-08-29 15:43:05 +02:00
#endif // TAG_PARSER_MP4IDS_H