1 /*
2  * Copyright (c) 2012-2015, 2018, The Linux Foundation. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *     * Redistributions of source code must retain the above copyright
8  *      notice, this list of conditions and the following disclaimer.
9  *     * Redistributions in binary form must reproduce the above
10  *       copyright notice, this list of conditions and the following
11  *       disclaimer in the documentation and/or other materials provided
12  *      with the distribution.
13  *     * Neither the name of The Linux Foundation nor the names of its
14  *      contributors may be used to endorse or promote products derived
15  *       from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #ifndef QC_META_DATA_H_
31 
32 #define QC_META_DATA_H_
33 
34 namespace android {
35 
36 enum {
37     kKeyAacCodecSpecificData = 'nacc' , // for native aac files
38 
39     kKeyRawCodecSpecificData = 'rcsd',  // raw data - added to support mmParser
40     kKeyDivXVersion          = 'DivX',  // int32_t
41     kKeyDivXDrm              = 'QDrm',  // void *
42     kKeyWMAEncodeOpt         = 'eopt',  // int32_t
43     kKeyWMABlockAlign        = 'blka',  // int32_t
44     kKeyWMAVersion           = 'wmav',  // int32_t
45     kKeyWMAAdvEncOpt1        = 'ade1',  // int16_t
46     kKeyWMAAdvEncOpt2        = 'ade2',  // int32_t
47     kKeyWMAFormatTag         = 'fmtt',  // int64_t
48     kKeyWMABitspersample     = 'bsps',  // int64_t
49     kKeyWMAVirPktSize        = 'vpks',  // int64_t
50     kKeyWMAChannelMask       = 'chmk',  // int32_t
51     kKeyVorbisData           = 'vdat',  // raw data
52     kKeyMHAConfig            = 'mhaC',  // raw data
53     kKeyMHASceneInfo         = 'mhaS',  // raw data
54 
55     kKeyFileFormat           = 'ffmt',  // cstring
56 
57     kkeyAacFormatAdif        = 'adif',  // bool (int32_t)
58     kKeyInterlace            = 'intL',  // bool (int32_t)
59     kkeyAacFormatLtp         = 'ltp ',
60 
61 
62     //DTS subtype
63     kKeyDTSSubtype           = 'dtss',  //int32_t
64 
65     //Extractor sets this
66     kKeyUseArbitraryMode     = 'ArbM',  //bool (int32_t)
67     kKeySmoothStreaming      = 'ESmS',  //bool (int32_t)
68     kKeyHFR                  = 'hfr ',  // int32_t
69     kKeyHSR                  = 'hsr ',  // int32_t
70 
71     kKeySampleBits           = 'sbit', // int32_t (audio sample bit-width)
72     kKeyPcmFormat            = 'pfmt', //int32_t (pcm format)
73     kKeyMinBlkSize           = 'mibs', //int32_t
74     kKeyMaxBlkSize           = 'mabs', //int32_t
75     kKeyMinFrmSize           = 'mifs', //int32_t
76     kKeyMaxFrmSize           = 'mafs', //int32_t
77     kKeyMd5Sum               = 'md5s', //cstring
78 
79     kKeyBatchSize            = 'btch', //int32_t
80     kKeyIsByteMode           = 'bytm', //int32_t
81     kKeyUseSetBuffers        = 'setb', //bool (int32_t)
82     kKeyExtraFlag            = 'extf', //int32_t
83 };
84 
85 enum {
86     kTypeDivXVer_3_11,
87     kTypeDivXVer_4,
88     kTypeDivXVer_5,
89     kTypeDivXVer_6,
90 };
91 enum {
92     kTypeWMA,
93     kTypeWMAPro,
94     kTypeWMALossLess,
95 };
96 
97 //This enum should be keep in sync with "enum Flags" in MediaExtractor.h in AOSP,
98 //Value should reflect as last entry in the enum
99 enum {
100     CAN_SEEK_TO_ZERO   = 16, // the "previous button"
101 };
102 
103 enum {
104     USE_SET_BUFFERS = 0x1,
105     USE_AUDIO_BIG_BUFFERS = 0x2,
106 };
107 }  // namespace android
108 
109 #endif  // QC_META_DATA_H_
110