1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2010 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16<!DOCTYPE MediaSettings [
17<!ELEMENT MediaSettings (CamcorderProfiles,
18                         EncoderOutputFileFormat+,
19                         VideoEncoderCap+,
20                         AudioEncoderCap+,
21                         VideoDecoderCap,
22                         AudioDecoderCap)>
23<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
24<!ELEMENT EncoderProfile (Video, Audio)>
25<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
26<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
27<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
28<!ELEMENT Video EMPTY>
29<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
30<!ATTLIST Video bitRate CDATA #REQUIRED>
31<!ATTLIST Video width CDATA #REQUIRED>
32<!ATTLIST Video height CDATA #REQUIRED>
33<!ATTLIST Video frameRate CDATA #REQUIRED>
34<!ELEMENT Audio EMPTY>
35<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
36<!ATTLIST Audio bitRate CDATA #REQUIRED>
37<!ATTLIST Audio sampleRate CDATA #REQUIRED>
38<!ATTLIST Audio channels (1|2) #REQUIRED>
39<!ELEMENT ImageEncoding EMPTY>
40<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
41<!ELEMENT ImageDecoding EMPTY>
42<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
43<!ELEMENT Camera EMPTY>
44<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
45<!ELEMENT EncoderOutputFileFormat EMPTY>
46<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
47<!ELEMENT VideoEncoderCap EMPTY>
48<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
49<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
50<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
51<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
52<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
53<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
54<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
55<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
56<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
57<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
58<!ELEMENT AudioEncoderCap EMPTY>
59<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
60<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
61<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
62<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
63<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
64<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
65<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
66<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
67<!ELEMENT VideoDecoderCap EMPTY>
68<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
69<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
70<!ELEMENT AudioDecoderCap EMPTY>
71<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
72<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
73]>
74<!--
75     This file is used to declare the multimedia profiles and capabilities
76     on an android-powered device.
77-->
78<MediaSettings>
79    <!-- Each camcorder profile defines a set of predefined configuration parameters -->
80    <CamcorderProfiles cameraId="0">
81
82        <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
83            <Video codec="h264"
84                   bitRate="12000000"
85                   width="1920"
86                   height="1080"
87                   frameRate="30" />
88
89            <Audio codec="aac"
90                   bitRate="96000"
91                   sampleRate="44100"
92                   channels="1" />
93        </EncoderProfile>
94
95        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
96            <Video codec="h264"
97                   bitRate="8000000"
98                   width="1280"
99                   height="720"
100                   frameRate="30" />
101
102            <Audio codec="aac"
103                   bitRate="96000"
104                   sampleRate="44100"
105                   channels="1" />
106
107        </EncoderProfile>
108
109        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
110            <Video codec="h264"
111                   bitRate="3000000"
112                   width="720"
113                   height="480"
114                   frameRate="30" />
115
116            <Audio codec="aac"
117                   bitRate="96000"
118                   sampleRate="44100"
119                   channels="1" />
120
121        </EncoderProfile>
122
123        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
124            <Video codec="h264"
125                   bitRate="12000000"
126                   width="1920"
127                   height="1080"
128                   frameRate="30" />
129
130            <!-- Audio settings are not used for timealpse video recording -->
131            <Audio codec="aac"
132                   bitRate="96000"
133                   sampleRate="44100"
134                   channels="1" />
135        </EncoderProfile>
136
137        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
138            <Video codec="h264"
139                   bitRate="8000000"
140                   width="1280"
141                   height="720"
142                   frameRate="30" />
143
144            <!-- Audio settings are not used for timealpse video recording -->
145            <Audio codec="aac"
146                   bitRate="96000"
147                   sampleRate="44100"
148                   channels="1" />
149        </EncoderProfile>
150
151        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
152            <Video codec="h264"
153                   bitRate="3000000"
154                   width="720"
155                   height="480"
156                   frameRate="30" />
157
158            <!-- Audio settings are not used for timealpse video recording -->
159            <Audio codec="aac"
160                   bitRate="96000"
161                   sampleRate="44100"
162                   channels="1" />
163        </EncoderProfile>
164
165        <ImageEncoding quality="90" />
166        <ImageEncoding quality="80" />
167        <ImageEncoding quality="70" />
168        <ImageDecoding memCap="20000000" />
169
170    </CamcorderProfiles>
171
172       <CamcorderProfiles cameraId="1">
173
174        <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
175            <Video codec="h264"
176                   bitRate="8000000"
177                   width="1280"
178                   height="720"
179                   frameRate="30" />
180
181            <Audio codec="aac"
182                   bitRate="96000"
183                   sampleRate="44100"
184                   channels="1" />
185
186        </EncoderProfile>
187        <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
188            <Video codec="h264"
189                   bitRate="3000000"
190                   width="720"
191                   height="480"
192                   frameRate="30" />
193
194            <Audio codec="aac"
195                   bitRate="96000"
196                   sampleRate="44100"
197                   channels="1" />
198
199        </EncoderProfile>
200
201        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
202            <Video codec="h264"
203                   bitRate="8000000"
204                   width="1280"
205                   height="720"
206                   frameRate="30" />
207
208            <!-- Audio settings are not used for timealpse video recording -->
209            <Audio codec="aac"
210                   bitRate="96000"
211                   sampleRate="44100"
212                   channels="1" />
213        </EncoderProfile>
214
215        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
216            <Video codec="h264"
217                   bitRate="3000000"
218                   width="720"
219                   height="480"
220                   frameRate="30" />
221
222            <!-- Audio settings are not used for timealpse video recording -->
223            <Audio codec="aac"
224                   bitRate="96000"
225                   sampleRate="44100"
226                   channels="1" />
227        </EncoderProfile>
228
229        <ImageEncoding quality="90" />
230        <ImageEncoding quality="80" />
231        <ImageEncoding quality="70" />
232        <ImageDecoding memCap="20000000" />
233
234    </CamcorderProfiles>
235
236    <EncoderOutputFileFormat name="3gp" />
237    <EncoderOutputFileFormat name="mp4" />
238
239    <!--
240         If a codec is not enabled, it is invisible to the applications
241         In other words, the applications won't be able to use the codec
242         or query the capabilities of the codec at all if it is disabled
243    -->
244
245    <!--
246	FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
247	        codec cap
248    -->
249    <VideoEncoderCap name="h264" enabled="true"
250        minBitRate="64000" maxBitRate="12000000"
251        minFrameWidth="128" maxFrameWidth="1920"
252        minFrameHeight="96" maxFrameHeight="1080"
253        minFrameRate="15" maxFrameRate="30" />
254
255    <VideoEncoderCap name="h263" enabled="true"
256        minBitRate="64000" maxBitRate="1000000"
257        minFrameWidth="128" maxFrameWidth="1920"
258        minFrameHeight="96" maxFrameHeight="1080"
259        minFrameRate="15" maxFrameRate="30" />
260
261    <VideoEncoderCap name="m4v" enabled="true"
262        minBitRate="64000" maxBitRate="2000000"
263        minFrameWidth="128" maxFrameWidth="1920"
264        minFrameHeight="96" maxFrameHeight="1080"
265        minFrameRate="15" maxFrameRate="30" />
266
267    <AudioEncoderCap name="aac" enabled="true"
268        minBitRate="758" maxBitRate="288000"
269        minSampleRate="8000" maxSampleRate="48000"
270        minChannels="1" maxChannels="1" />
271
272    <AudioEncoderCap name="heaac" enabled="true"
273        minBitRate="8000" maxBitRate="64000"
274        minSampleRate="16000" maxSampleRate="48000"
275        minChannels="1" maxChannels="1" />
276
277    <AudioEncoderCap name="aaceld" enabled="true"
278        minBitRate="16000" maxBitRate="192000"
279        minSampleRate="16000" maxSampleRate="48000"
280        minChannels="1" maxChannels="1" />
281
282    <AudioEncoderCap name="amrwb" enabled="true"
283        minBitRate="6600" maxBitRate="23050"
284        minSampleRate="16000" maxSampleRate="16000"
285        minChannels="1" maxChannels="1" />
286
287    <AudioEncoderCap name="amrnb" enabled="true"
288        minBitRate="5525" maxBitRate="12200"
289        minSampleRate="8000" maxSampleRate="8000"
290        minChannels="1" maxChannels="1" />
291
292    <!--
293        FIXME:
294        We do not check decoder capabilities at present
295        At present, we only check whether windows media is visible
296        for TEST applications. For other applications, we do
297        not perform any checks at all.
298    -->
299    <VideoDecoderCap name="wmv" enabled="false"/>
300    <AudioDecoderCap name="wma" enabled="false"/>
301
302    <!--
303        The VideoEditor Capability configuration:
304        - maxInputFrameWidth: maximum video width of imported video clip.
305        - maxInputFrameHeight: maximum video height of imported video clip.
306        - maxOutputFrameWidth: maximum video width of exported video clip.
307        - maxOutputFrameHeight: maximum video height of exported video clip.
308        - maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
309        used to limit the amount of memory for prefetched YUV frames.
310        For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
311        frames) memory.
312    -->
313    <VideoEditorCap  maxInputFrameWidth="1920"
314        maxInputFrameHeight="1080" maxOutputFrameWidth="1920"
315        maxOutputFrameHeight="1080" maxPrefetchYUVFrames="10"/>
316    <!--
317        The VideoEditor Export codec profile and level values
318        correspond to the values in OMX_Video.h.
319        E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
320        and  level 4096 means OMX_VIDEO_AVCLevel41.
321        Please note that the values are in decimal.
322        These values are for video encoder.
323    -->
324    <!--
325      Codec = h.264, Baseline profile, level 4.2
326    -->
327    <ExportVideoProfile name="h264" profile= "1" level="8192"/>
328    <!--
329      Codec = h.263, Baseline profile, level 45
330    -->
331    <ExportVideoProfile name="h263" profile= "1" level="16"/>
332    <!--
333      Codec = mpeg4, Simple profile, level 5
334    -->
335    <ExportVideoProfile name="m4v" profile= "1" level="128"/>
336</MediaSettings>
337