Home | History | Annotate | Download | only in mp4
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef MEDIA_FORMATS_MP4_FOURCCS_H_
      6 #define MEDIA_FORMATS_MP4_FOURCCS_H_
      7 
      8 #include <string>
      9 
     10 namespace media {
     11 namespace mp4 {
     12 
     13 enum FourCC {
     14   FOURCC_NULL = 0,
     15   FOURCC_AVC1 = 0x61766331,
     16   FOURCC_AVC3 = 0x61766333,
     17   FOURCC_AVCC = 0x61766343,
     18   FOURCC_BLOC = 0x626C6F63,
     19   FOURCC_CENC = 0x63656e63,
     20   FOURCC_CO64 = 0x636f3634,
     21   FOURCC_CTTS = 0x63747473,
     22   FOURCC_DINF = 0x64696e66,
     23   FOURCC_EDTS = 0x65647473,
     24   FOURCC_EMSG = 0x656d7367,
     25   FOURCC_ELST = 0x656c7374,
     26   FOURCC_ENCA = 0x656e6361,
     27   FOURCC_ENCV = 0x656e6376,
     28   FOURCC_ESDS = 0x65736473,
     29   FOURCC_FREE = 0x66726565,
     30   FOURCC_FRMA = 0x66726d61,
     31   FOURCC_FTYP = 0x66747970,
     32   FOURCC_HDLR = 0x68646c72,
     33   FOURCC_HINT = 0x68696e74,
     34   FOURCC_IODS = 0x696f6473,
     35   FOURCC_MDAT = 0x6d646174,
     36   FOURCC_MDHD = 0x6d646864,
     37   FOURCC_MDIA = 0x6d646961,
     38   FOURCC_MECO = 0x6d65636f,
     39   FOURCC_MEHD = 0x6d656864,
     40   FOURCC_META = 0x6d657461,
     41   FOURCC_MFHD = 0x6d666864,
     42   FOURCC_MFRA = 0x6d667261,
     43   FOURCC_MINF = 0x6d696e66,
     44   FOURCC_MOOF = 0x6d6f6f66,
     45   FOURCC_MOOV = 0x6d6f6f76,
     46   FOURCC_MP4A = 0x6d703461,
     47   FOURCC_MP4V = 0x6d703476,
     48   FOURCC_MVEX = 0x6d766578,
     49   FOURCC_MVHD = 0x6d766864,
     50   FOURCC_PASP = 0x70617370,
     51   FOURCC_PDIN = 0x7064696e,
     52   FOURCC_PRFT = 0x70726674,
     53   FOURCC_PSSH = 0x70737368,
     54   FOURCC_SAIO = 0x7361696f,
     55   FOURCC_SAIZ = 0x7361697a,
     56   FOURCC_SBGP = 0x73626770,
     57   FOURCC_SCHI = 0x73636869,
     58   FOURCC_SCHM = 0x7363686d,
     59   FOURCC_SDTP = 0x73647470,
     60   FOURCC_SEIG = 0x73656967,
     61   FOURCC_SGPD = 0x73677064,
     62   FOURCC_SIDX = 0x73696478,
     63   FOURCC_SINF = 0x73696e66,
     64   FOURCC_SKIP = 0x736b6970,
     65   FOURCC_SMHD = 0x736d6864,
     66   FOURCC_SOUN = 0x736f756e,
     67   FOURCC_SSIX = 0x73736978,
     68   FOURCC_STBL = 0x7374626c,
     69   FOURCC_STCO = 0x7374636f,
     70   FOURCC_STSC = 0x73747363,
     71   FOURCC_STSD = 0x73747364,
     72   FOURCC_STSS = 0x73747373,
     73   FOURCC_STSZ = 0x7374737a,
     74   FOURCC_STTS = 0x73747473,
     75   FOURCC_STYP = 0x73747970,
     76   FOURCC_TENC = 0x74656e63,
     77   FOURCC_TFDT = 0x74666474,
     78   FOURCC_TFHD = 0x74666864,
     79   FOURCC_TKHD = 0x746b6864,
     80   FOURCC_TRAF = 0x74726166,
     81   FOURCC_TRAK = 0x7472616b,
     82   FOURCC_TREX = 0x74726578,
     83   FOURCC_TRUN = 0x7472756e,
     84   FOURCC_UDTA = 0x75647461,
     85   FOURCC_UUID = 0x75756964,
     86   FOURCC_VIDE = 0x76696465,
     87   FOURCC_VMHD = 0x766d6864,
     88   FOURCC_WIDE = 0x77696465,
     89 };
     90 
     91 const inline std::string FourCCToString(FourCC fourcc) {
     92   char buf[5];
     93   buf[0] = (fourcc >> 24) & 0xff;
     94   buf[1] = (fourcc >> 16) & 0xff;
     95   buf[2] = (fourcc >> 8) & 0xff;
     96   buf[3] = (fourcc) & 0xff;
     97   buf[4] = 0;
     98   return std::string(buf);
     99 }
    100 
    101 }  // namespace mp4
    102 }  // namespace media
    103 
    104 #endif  // MEDIA_FORMATS_MP4_FOURCCS_H_
    105