1 /* 2 mkvmerge -- utility for splicing together matroska files 3 from component media subtypes 4 5 Distributed under the GPL v2 6 see the file COPYING for details 7 or visit https://www.gnu.org/licenses/old-licenses/gpl-2.0.html 8 9 common definitions for MP4 files 10 11 Written by Moritz Bunkus <moritz@bunkus.org>. 12 */ 13 14 #pragma once 15 16 namespace mtx::mp4 { 17 18 // Object type identifications. 19 // See http://gpac.sourceforge.net/tutorial/mediatypes.htm 20 constexpr auto OBJECT_TYPE_MPEG4Systems1 = 0x01; 21 constexpr auto OBJECT_TYPE_MPEG4Systems2 = 0x02; 22 constexpr auto OBJECT_TYPE_MPEG4Visual = 0x20; 23 constexpr auto OBJECT_TYPE_MPEG4Audio = 0x40; 24 constexpr auto OBJECT_TYPE_MPEG2VisualSimple = 0x60; 25 constexpr auto OBJECT_TYPE_MPEG2VisualMain = 0x61; 26 constexpr auto OBJECT_TYPE_MPEG2VisualSNR = 0x62; 27 constexpr auto OBJECT_TYPE_MPEG2VisualSpatial = 0x63; 28 constexpr auto OBJECT_TYPE_MPEG2VisualHigh = 0x64; 29 constexpr auto OBJECT_TYPE_MPEG2Visual422 = 0x65; 30 constexpr auto OBJECT_TYPE_MPEG2AudioMain = 0x66; 31 constexpr auto OBJECT_TYPE_MPEG2AudioLowComplexity = 0x67; 32 constexpr auto OBJECT_TYPE_MPEG2AudioScaleableSamplingRate = 0x68; 33 constexpr auto OBJECT_TYPE_MPEG2AudioPart3 = 0x69; 34 constexpr auto OBJECT_TYPE_MPEG1Visual = 0x6A; 35 constexpr auto OBJECT_TYPE_MPEG1Audio = 0x6B; 36 constexpr auto OBJECT_TYPE_JPEG = 0x6C; 37 constexpr auto OBJECT_TYPE_DTS = 0xA9; 38 constexpr auto OBJECT_TYPE_VORBIS = 0xDD; 39 constexpr auto OBJECT_TYPE_VOBSUB = 0xE0; 40 41 // Audio object type identifactors 42 // This list comes from 43 constexpr auto AUDIO_OBJECT_TYPE_AAC_MAIN = 0x01; // Main 44 constexpr auto AUDIO_OBJECT_TYPE_AAC_LC = 0x02; // Low Complexity 45 constexpr auto AUDIO_OBJECT_TYPE_AAC_SSR = 0x03; // Scalable Sample Rate 46 constexpr auto AUDIO_OBJECT_TYPE_AAC_LTP = 0x04; // Long Term Prediction 47 constexpr auto AUDIO_OBJECT_TYPE_SBR = 0x05; // Spectral Band Replication 48 constexpr auto AUDIO_OBJECT_TYPE_AAC_SCALABLE = 0x06; // Scalable 49 constexpr auto AUDIO_OBJECT_TYPE_TWINVQ = 0x07; // TwinVQ Vector Quantizer 50 constexpr auto AUDIO_OBJECT_TYPE_CELP = 0x08; // Code Excited Linear Prediction 51 constexpr auto AUDIO_OBJECT_TYPE_HVXC = 0x09; // Harmonic Vector eXcitation Coding 52 constexpr auto AUDIO_OBJECT_TYPE_TTSI = 0x0c; // Text-To-Speech Interface 53 constexpr auto AUDIO_OBJECT_TYPE_MAINSYNTH = 0x0d; // Main Synthesis 54 constexpr auto AUDIO_OBJECT_TYPE_WAVESYNTH = 0x0e; // Wavetable Synthesis 55 constexpr auto AUDIO_OBJECT_TYPE_MIDI = 0x0f; // General MIDI 56 constexpr auto AUDIO_OBJECT_TYPE_SAFX = 0x10; // Algorithmic Synthesis and Audio Effects 57 constexpr auto AUDIO_OBJECT_TYPE_ER_AAC_LC = 0x11; // Error Resilient Low Complexity 58 constexpr auto AUDIO_OBJECT_TYPE_ER_AAC_LTP = 0x13; // Error Resilient Long Term Prediction 59 constexpr auto AUDIO_OBJECT_TYPE_ER_AAC_SCALABLE = 0x14; // Error Resilient Scalable 60 constexpr auto AUDIO_OBJECT_TYPE_ER_TWINVQ = 0x15; // Error Resilient Twin Vector Quantizer 61 constexpr auto AUDIO_OBJECT_TYPE_ER_BSAC = 0x16; // Error Resilient Bit-Sliced Arithmetic Coding 62 constexpr auto AUDIO_OBJECT_TYPE_ER_AAC_LD = 0x17; // Error Resilient Low Delay 63 constexpr auto AUDIO_OBJECT_TYPE_ER_CELP = 0x18; // Error Resilient Code Excited Linear Prediction 64 constexpr auto AUDIO_OBJECT_TYPE_ER_HVXC = 0x19; // Error Resilient Harmonic Vector eXcitation Coding 65 constexpr auto AUDIO_OBJECT_TYPE_ER_HILN = 0x1a; // Error Resilient Harmonic and Individual Lines plus Noise 66 constexpr auto AUDIO_OBJECT_TYPE_ER_PARAM = 0x1b; // Error Resilient Parametric 67 constexpr auto AUDIO_OBJECT_TYPE_SSC = 0x1c; // SinuSoidal Coding 68 constexpr auto AUDIO_OBJECT_TYPE_PS = 0x1d; // Parametric Stereo 69 constexpr auto AUDIO_OBJECT_TYPE_SURROUND = 0x1e; // MPEG Surround 70 constexpr auto AUDIO_OBJECT_TYPE_L1 = 0x20; // Layer 1 71 constexpr auto AUDIO_OBJECT_TYPE_L2 = 0x21; // Layer 2 72 constexpr auto AUDIO_OBJECT_TYPE_L3 = 0x22; // Layer 3 73 constexpr auto AUDIO_OBJECT_TYPE_DST = 0x23; // Direct Stream Transfer 74 constexpr auto AUDIO_OBJECT_TYPE_ALS = 0x24; // Audio LosslesS 75 constexpr auto AUDIO_OBJECT_TYPE_SLS = 0x25; // Scalable LosslesS 76 constexpr auto AUDIO_OBJECT_TYPE_SLS_NON_CORE = 0x26; // Scalable LosslesS (non core) 77 constexpr auto AUDIO_OBJECT_TYPE_ER_AAC_ELD = 0x27; // Error Resilient Enhanced Low Delay 78 constexpr auto AUDIO_OBJECT_TYPE_SMR_SIMPLE = 0x28; // Symbolic Music Representation Simple 79 constexpr auto AUDIO_OBJECT_TYPE_SMR_MAIN = 0x29; // Symbolic Music Representation Main 80 constexpr auto AUDIO_OBJECT_TYPE_USAC_NOSBR = 0x2a; // Unified Speech and Audio Coding (no SBR) 81 constexpr auto AUDIO_OBJECT_TYPE_SAOC = 0x2b; // Spatial Audio Object Coding 82 constexpr auto AUDIO_OBJECT_TYPE_LD_SURROUND = 0x2c; // Low Delay MPEG Surround 83 constexpr auto AUDIO_OBJECT_TYPE_USAC = 0x2d; // Unified Speech and Audio Coding 84 85 // Atom data types for free-form data 86 constexpr auto ATOM_DATA_TYPE_JPEG = 0x0d; // JPEG image 87 constexpr auto ATOM_DATA_TYPE_PNG = 0x0e; // PNG image 88 constexpr auto ATOM_DATA_TYPE_BMP = 0x1b; // BMP image 89 90 // ESDS descriptor types (tags) 91 constexpr auto DESCRIPTOR_TYPE_O = 0x01; 92 constexpr auto DESCRIPTOR_TYPE_IO = 0x02; 93 constexpr auto DESCRIPTOR_TYPE_ES = 0x03; 94 constexpr auto DESCRIPTOR_TYPE_DEC_CONFIG = 0x04; 95 constexpr auto DESCRIPTOR_TYPE_DEC_SPECIFIC = 0x05; 96 constexpr auto DESCRIPTOR_TYPE_SL_CONFIG = 0x06; 97 constexpr auto DESCRIPTOR_TYPE_CONTENT_ID = 0x07; 98 constexpr auto DESCRIPTOR_TYPE_SUPPL_CONTENT_ID = 0x08; 99 constexpr auto DESCRIPTOR_TYPE_IP_PTR = 0x09; 100 constexpr auto DESCRIPTOR_TYPE_IPMP_PTR = 0x0A; 101 constexpr auto DESCRIPTOR_TYPE_IPMP = 0x0B; 102 constexpr auto DESCRIPTOR_TYPE_REGISTRATION = 0x0D; 103 constexpr auto DESCRIPTOR_TYPE_ESID_INC = 0x0E; 104 constexpr auto DESCRIPTOR_TYPE_ESID_REF = 0x0F; 105 constexpr auto DESCRIPTOR_TYPE_FILE_IO = 0x10; 106 constexpr auto DESCRIPTOR_TYPE_FILE_O = 0x11; 107 constexpr auto DESCRIPTOR_TYPE_EXT_PROFILE_LEVEL = 0x13; 108 constexpr auto DESCRIPTOR_TYPE_TAGS_START = 0x80; 109 constexpr auto DESCRIPTOR_TYPE_TAGS_END = 0xFE; 110 111 } // namespace mtx::mp4 112