2015-04-22 19:22:01 +02:00
# ifndef MP4TAGATOMNAMES_H
# define MP4TAGATOMNAMES_H
2015-06-10 01:28:22 +02:00
# include <c++utilities/application/global.h>
2015-04-22 19:22:01 +02:00
# include <c++utilities/conversion/types.h>
namespace Media
{
2015-06-07 00:18:28 +02:00
class MediaFormat ;
2015-04-22 19:22:01 +02:00
namespace Mp4AtomIds {
enum KnownValue : uint32 {
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 ,
2015-06-07 00:18:28 +02:00
DataEntryUrl = 0x75726C20 ,
DataEntryUrn = 0x75726E20 ,
2015-04-22 19:22:01 +02:00
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 ;
}
namespace Mp4MediaTypeIds {
enum KnownValue : uint32 {
2015-06-07 00:18:28 +02:00
Sound = 0x736f756e , /**< Sound/Audio */
Video = 0x76696465 , /**< Video */
Hint = 0x68696e74 , /**< Hint */
Meta = 0x6d657461 /**< Meta */
2015-04-22 19:22:01 +02:00
} ;
}
2015-06-12 02:35:50 +02:00
namespace FourccIds {
2015-04-22 19:22:01 +02:00
enum KnownValue : uint32 {
2015-06-12 02:35:50 +02:00
Ac3 = 0x61632d33 , /**< Dolby Digital */
Ac4 = 0x61632d34 , /**< ? */
AdpcmAcm = 0x6D730002 , /**< ? */
Agsm = 0x6167736D ,
Alac = 0x616C6163 , /**< Apple Losless Audio Codec */
Alaw = 0x616C6177 ,
Alaw21 = 0x616C6177 ,
AlphaCompositor = 0x626C6E64 ,
AlphaGain = 0x6761696E ,
2015-07-07 03:01:48 +02:00
Amr = 0x73617762 ,
2015-06-12 02:35:50 +02:00
AmrNarrowband = 0x73616D72 ,
2015-06-07 00:18:28 +02:00
Animation = 0x726C6520 , /**< Animation */
2015-06-12 02:35:50 +02:00
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 ,
2015-06-07 00:18:28 +02:00
AppleVideo = 0x72707A61 , /**< Apple video */
2015-06-12 02:35:50 +02:00
AppleYuv420Codec1 = 0x6A343230 ,
AppleYuv420Codec2 = 0x6D797576 ,
AppleYuv420Codec3 = 0x79343230 ,
AppleYuv422Codec2Vuy = 0x32767579 ,
AppleYuv422Codec4 = 0x79757678 ,
AppleYuv422CodecYuvs = 0x79757673 ,
AppleYuv422CodecYuvu = 0x79757675 ,
Avc0Media = 0x64726D69 ,
2015-06-07 00:18:28 +02:00
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 */
2015-06-12 02:35:50 +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 ,
2015-12-21 19:51:26 +01:00
Divx3Decoder8 = 0x4D504733 ,
Divx3Decoder9 = 0x6D706733 ,
Divx3Decoder10 = 0x636F6C30 ,
Divx3Decoder11 = 0x636F6C31 ,
Divx3Decoder12 = 0x64697633 ,
Divx3Decoder13 = 0x64697634 ,
Divx3Decoder14 = 0x64697635 ,
Divx3Decoder15 = 0x64697636 ,
2015-06-12 02:35:50 +02:00
Divx4Decoder1 = 0x44495658 ,
2015-07-13 00:57:38 +02:00
Divx4Decoder2 = 0x64697678 ,
2015-06-12 02:35:50 +02:00
Divx5Decoder = 0x44583530 ,
2015-07-07 03:01:48 +02:00
Drms = 0x64726D73 ,
Drmi = 0x64726D69 ,
Dts = 0x6474736C ,
DtsH = 0x64747368 ,
DtsE = 0x64747365 ,
2015-06-12 02:35:50 +02:00
Dvca = 0x64766361 ,
DvcPro501 = 0x64763570 ,
DvcPro502 = 0x6476356E ,
DvcProPal = 0x64767070 ,
2015-07-07 03:01:48 +02:00
EAc3 = 0x65632D33 ,
2015-06-12 02:35:50 +02:00
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 */
2015-07-07 03:01:48 +02:00
H263Quicktime = 0x68323633 , /**< H.263/MPEG-4 ASP video (Quicktime) */
H2633GPP = 0x73323633 , /**< H.263 (3GPP format) */
2015-06-12 02:35:50 +02:00
H264Decoder1 = 0x44415643 ,
H264Decoder2 = 0x48323634 ,
H264Decoder3 = 0x56535348 ,
H264Decoder4 = 0x58323634 ,
H264Decoder5 = 0x68323634 ,
H264Decoder6 = 0x78323634 ,
Hdv3 = 0x68647633 ,
2015-07-07 03:01:48 +02:00
Hevc1 = 0x68766331 , /**< H.265/High Efficiency Video Coding */
Hevc2 = 0x68657631 , /**< H.265/High Efficiency Video Coding */
2015-06-12 02:35:50 +02:00
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 ,
2015-06-07 00:18:28 +02:00
Jpeg = 0x6a706567 , /**< JPEG */
2015-06-12 02:35:50 +02:00
Jpeg2000Decoder = 0x6D6A7032 ,
Law21 = 0x756C6177 ,
LensFlare = 0x6C656E73 ,
Lle = 0x726C6520 ,
Mac3 = 0x6D616333 ,
Mac6 = 0x6D616336 ,
Mace31 = 0x4D414333 ,
Mace61 = 0x4D414336 ,
MatrixWipe = 0x736D7034 ,
2015-07-07 03:01:48 +02:00
DolbyMpl = 0x6D6C7061 ,
2015-06-07 00:18:28 +02:00
MotionJpegA = 0x6D6A7061 , /**< Motion-JPEG (format A) */
MotionJpegB = 0x6D6A7062 , /**< Motion-JPEG (format B) */
Mp3 = 0x2e6d7033 , /**< MPEG-1 Layer 3 */
2015-06-12 02:35:50 +02:00
Mp3CbrOnly = 0x6D730055 , /**< MPEG-1 Layer 3 (constant bitrate only) */
Mpeg = 0x4D504547 ,
Mpeg2Imx30 = 0x6D78336E ,
Mpeg2Imx50 = 0x6D783570 ,
2015-06-07 00:18:28 +02:00
Mpeg4Audio = 0x6d703461 , /**< MPEG-4 audio */
2015-06-12 02:35:50 +02:00
Mpeg4Decoder1 = 0x464D5034 ,
Mpeg4Decoder2 = 0x53454447 ,
Mpeg4Decoder3 = 0x57563146 ,
2015-07-13 00:57:38 +02:00
Mpeg4Sample = 0x6d703473 , /**< MPEG-4 stream (other then video/audio) */
2016-02-20 01:42:01 +01:00
Mpeg4TimedText = 0x74783367 , /**< MPEG-4 Timed Text / Streaming text format / Part 17 */
2015-06-12 02:35:50 +02:00
Mpeg4Video = 0x6d703476 , /**< MPEG-4 video */
MsMpeg4V1Decoder1 = 0x44495631 ,
2015-12-21 19:51:26 +01:00
MsMpeg4V1Decoder2 = 0x64697631 ,
MsMpeg4V1Decoder3 = 0x4D504734 ,
2015-06-12 02:35:50 +02:00
MsMpeg4V1Decoder4 = 0x6D706734 ,
2015-12-21 19:51:26 +01:00
MsMpeg4V1Decoder5 = 0x4D504731 ,
MsMpeg4V1Decoder6 = 0x6D706731 ,
MsMpeg4V2Decoder1 = 0x44495632 ,
MsMpeg4V2Decoder2 = 0x64697632 ,
MsMpeg4V2Decoder3 = 0x4D503432 ,
MsMpeg4V2Decoder4 = 0x6D703432 ,
MsMpeg4V3Decoder1 = 0x4D503433 ,
MsMpeg4V3Decoder2 = 0x6D703433 ,
2015-06-12 02:35:50 +02:00
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 ,
2015-07-07 03:01:48 +02:00
WindowsMediaAudio = 0x6F776D61 , /**< ? */
2015-06-12 02:35:50 +02:00
WindowsMediaAudio7 = 0x574D4131 ,
WindowsMediaAudio9Professional = 0x574D4133 ,
WindowsMediaAudio9Standard = 0x574D4132 ,
2015-12-21 19:51:26 +01:00
WindowsMediaVideoV17 = 0x574D5637 ,
WindowsMediaVideoV2 = 0x574D5632 ,
WindowsMediaVideoV8 = 0x574D5638 ,
2015-06-12 02:35:50 +02:00
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
2015-04-22 19:22:01 +02:00
} ;
2015-06-07 00:18:28 +02:00
2015-06-10 01:28:22 +02:00
LIB_EXPORT MediaFormat fourccToMediaFormat ( uint32 fourccId ) ;
2015-06-07 00:18:28 +02:00
2015-04-22 19:22:01 +02:00
}
2015-06-07 00:18:28 +02:00
namespace Mp4FormatExtensionIds {
2015-04-22 19:22:01 +02:00
enum KnownValue : uint32 {
2015-06-07 00:18:28 +02: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. */
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 */
2015-06-10 01:28:22 +02:00
Mpeg2AacMainProfile , /**< Advanced Audio Coding Main Profile */
Mpeg2AacLowComplexityProfile , /**< Advanced Audio Coding Low Complexity Profile */
Mpeg2AacScaleableSamplingRateProfile , /**< Advanced Audio Coding Scaleable Sampling Rate Profile */
2015-06-07 00:18:28 +02:00
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 */
PrivateQcelp = 0xE1 /**< QCELP */
} ;
2015-06-10 01:28:22 +02:00
LIB_EXPORT MediaFormat streamObjectTypeFormat ( byte streamObjectTypeId ) ;
2015-06-07 00:18:28 +02:00
}
namespace Mpeg4ElementaryStreamTypeIds {
enum KnownValue : byte {
ObjectDescriptor = 0x01 ,
ClockReference ,
SceneDescriptor ,
Visual ,
Audio ,
Mpeg7 ,
Ipmps ,
ObjectContentInfo ,
MpegJava ,
Interaction ,
Ipmp ,
FontData ,
StreamingText
} ;
2015-06-10 01:28:22 +02:00
LIB_EXPORT const char * streamTypeName ( byte streamTypeId ) ;
2015-06-07 00:18:28 +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 */
2015-04-22 19:22:01 +02:00
} ;
2015-06-10 01:28:22 +02:00
LIB_EXPORT MediaFormat idToMediaFormat ( byte mpeg4AudioObjectId , bool sbrPresent = false , bool psPresent = false ) ;
2015-04-22 19:22:01 +02:00
}
2015-08-10 00:02:03 +02:00
extern uint32 mpeg4SamplingFrequencyTable [ 13 ] ;
2015-07-15 00:10:24 +02:00
namespace Mpeg4ChannelConfigs {
enum Mpeg4ChannelConfig : byte
{
AotSpecificConfig = 0 ,
FrontCenter ,
FrontLeftFrontRight ,
FrontCenterFrontLeftFrontRight ,
FrontCenterFrontLeftFrontRightBackCenter ,
FrontCenterFrontLeftFrontRightBackLeftBackRight ,
FrontCenterFrontLeftFrontRightBackLeftBackRightLFEChannel ,
FrontCenterFrontLeftFrontRightSideLeftSideRightBackLeftBackRightLFEChannel
} ;
LIB_EXPORT const char * channelConfigString ( byte config ) ;
LIB_EXPORT byte channelCount ( byte config ) ;
}
2015-07-07 03:01:48 +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 {
enum KnownValue : byte {
Pic = 0x00 ,
Seq = 0xB3 ,
Ext = 0xB5 ,
Gop = 0xB8
} ;
}
2015-04-22 19:22:01 +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 .
*/
enum class AccountType : byte
{
Itunes = 0 ,
Aol = 1 ,
Undefined = 255
} ;
/*!
* \ brief Specifies the country .
*/
enum class CountryCode
{
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
} ;
}
# endif // MP4TAGATOMNAMES_H