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 VideoEditorCap, 24 ExportVideoProfile)> 25 <!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)> 26 <!ATTLIST CamcorderProfiles cameraId (0|1) #REQUIRED> 27 <!ELEMENT EncoderProfile (Video, Audio)> 28 <!ATTLIST EncoderProfile quality (high|low) #REQUIRED> 29 <!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED> 30 <!ATTLIST EncoderProfile duration (30|60) #REQUIRED> 31 <!ELEMENT Video EMPTY> 32 <!ATTLIST Video codec (h264|h263|m4v) #REQUIRED> 33 <!ATTLIST Video bitRate CDATA #REQUIRED> 34 <!ATTLIST Video width CDATA #REQUIRED> 35 <!ATTLIST Video height CDATA #REQUIRED> 36 <!ATTLIST Video frameRate CDATA #REQUIRED> 37 <!ELEMENT Audio EMPTY> 38 <!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED> 39 <!ATTLIST Audio bitRate CDATA #REQUIRED> 40 <!ATTLIST Audio sampleRate CDATA #REQUIRED> 41 <!ATTLIST Audio channels (1|2) #REQUIRED> 42 <!ELEMENT ImageEncoding EMPTY> 43 <!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED> 44 <!ELEMENT ImageDecoding EMPTY> 45 <!ATTLIST ImageDecoding memCap CDATA #REQUIRED> 46 <!ELEMENT Camera EMPTY> 47 <!ATTLIST Camera previewFrameRate CDATA #REQUIRED> 48 <!ELEMENT EncoderOutputFileFormat EMPTY> 49 <!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED> 50 <!ELEMENT VideoEncoderCap EMPTY> 51 <!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED> 52 <!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED> 53 <!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED> 54 <!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED> 55 <!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED> 56 <!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED> 57 <!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED> 58 <!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED> 59 <!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED> 60 <!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED> 61 <!ELEMENT AudioEncoderCap EMPTY> 62 <!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|heaac|aaceld) #REQUIRED> 63 <!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED> 64 <!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED> 65 <!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED> 66 <!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED> 67 <!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED> 68 <!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED> 69 <!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED> 70 <!ELEMENT VideoDecoderCap EMPTY> 71 <!ATTLIST VideoDecoderCap name (wmv) #REQUIRED> 72 <!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED> 73 <!ELEMENT AudioDecoderCap EMPTY> 74 <!ATTLIST AudioDecoderCap name (wma) #REQUIRED> 75 <!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED> 76 <!ELEMENT VideoEditorCap EMPTY> 77 <!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED> 78 <!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED> 79 <!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED> 80 <!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED> 81 <!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED> 82 <!ELEMENT ExportVideoProfile EMPTY> 83 <!ATTLIST ExportVideoProfile name (h263|h264|m4v) #REQUIRED> 84 <!ATTLIST ExportVideoProfile profile CDATA #REQUIRED> 85 <!ATTLIST ExportVideoProfile level CDATA #REQUIRED> 86 ]> 87 <!-- 88 This file is used to declare the multimedia profiles and capabilities 89 on an android-powered device. 90 --> 91 <MediaSettings> 92 <!-- Each camcorder profile defines a set of predefined configuration parameters --> 93 <CamcorderProfiles cameraId="0"> 94 95 <EncoderProfile quality="low" fileFormat="3gp" duration="30"> 96 <Video codec="h263" 97 bitRate="128000" 98 width="176" 99 height="144" 100 frameRate="15" /> 101 102 <Audio codec="amrnb" 103 bitRate="12200" 104 sampleRate="8000" 105 channels="1" /> 106 </EncoderProfile> 107 108 <EncoderProfile quality="high" fileFormat="mp4" duration="60"> 109 <Video codec="h264" 110 bitRate="15000000" 111 width="1920" 112 height="1080" 113 frameRate="30" /> 114 115 <Audio codec="aac" 116 bitRate="192000" 117 sampleRate="48000" 118 channels="2" /> 119 </EncoderProfile> 120 121 <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> 122 <Video codec="h263" 123 bitRate="128000" 124 width="176" 125 height="144" 126 frameRate="15" /> 127 128 <Audio codec="amrnb" 129 bitRate="12200" 130 sampleRate="8000" 131 channels="1" /> 132 </EncoderProfile> 133 134 <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> 135 <Video codec="h264" 136 bitRate="640000" 137 width="352" 138 height="288" 139 frameRate="30" /> 140 141 <Audio codec="amrnb" 142 bitRate="12200" 143 sampleRate="8000" 144 channels="1" /> 145 </EncoderProfile> 146 147 <EncoderProfile quality="qvga" fileFormat="3gp" duration="30"> 148 <Video codec="h264" 149 bitRate="640000" 150 width="320" 151 height="240" 152 frameRate="30" /> 153 154 <Audio codec="aac" 155 bitRate="128000" 156 sampleRate="48000" 157 channels="2" /> 158 159 </EncoderProfile> 160 161 <EncoderProfile quality="480p" fileFormat="mp4" duration="60"> 162 <Video codec="h264" 163 bitRate="3000000" 164 width="720" 165 height="480" 166 frameRate="30" /> 167 168 <Audio codec="aac" 169 bitRate="128000" 170 sampleRate="48000" 171 channels="2" /> 172 173 </EncoderProfile> 174 175 <EncoderProfile quality="720p" fileFormat="mp4" duration="60"> 176 <Video codec="h264" 177 bitRate="8000000" 178 width="1280" 179 height="720" 180 frameRate="30" /> 181 182 <Audio codec="aac" 183 bitRate="192000" 184 sampleRate="48000" 185 channels="2" /> 186 </EncoderProfile> 187 188 <EncoderProfile quality="1080p" fileFormat="mp4" duration="60"> 189 <Video codec="h264" 190 bitRate="15000000" 191 width="1920" 192 height="1080" 193 frameRate="30" /> 194 195 <Audio codec="aac" 196 bitRate="192000" 197 sampleRate="48000" 198 channels="2" /> 199 </EncoderProfile> 200 201 <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> 202 <Video codec="h263" 203 bitRate="128000" 204 width="176" 205 height="144" 206 frameRate="15" /> 207 208 <Audio codec="amrnb" 209 bitRate="12200" 210 sampleRate="8000" 211 channels="1" /> 212 </EncoderProfile> 213 214 <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> 215 <Video codec="h264" 216 bitRate="15000000" 217 width="1920" 218 height="1080" 219 frameRate="30" /> 220 221 <Audio codec="aac" 222 bitRate="192000" 223 sampleRate="48000" 224 channels="2" /> 225 </EncoderProfile> 226 227 <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> 228 <Video codec="h263" 229 bitRate="128000" 230 width="176" 231 height="144" 232 frameRate="15" /> 233 234 <Audio codec="amrnb" 235 bitRate="12200" 236 sampleRate="8000" 237 channels="1" /> 238 </EncoderProfile> 239 240 <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> 241 <Video codec="h264" 242 bitRate="640000" 243 width="352" 244 height="288" 245 frameRate="30" /> 246 247 <Audio codec="amrnb" 248 bitRate="12200" 249 sampleRate="8000" 250 channels="1" /> 251 </EncoderProfile> 252 253 <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> 254 <Video codec="h264" 255 bitRate="3000000" 256 width="720" 257 height="480" 258 frameRate="30" /> 259 260 <Audio codec="amrnb" 261 bitRate="12200" 262 sampleRate="8000" 263 channels="1" /> 264 </EncoderProfile> 265 266 <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> 267 <Video codec="h264" 268 bitRate="8000000" 269 width="1280" 270 height="720" 271 frameRate="30" /> 272 273 <Audio codec="aac" 274 bitRate="192000" 275 sampleRate="48000" 276 channels="2" /> 277 </EncoderProfile> 278 279 <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> 280 <Video codec="h264" 281 bitRate="15000000" 282 width="1920" 283 height="1080" 284 frameRate="30" /> 285 286 <Audio codec="aac" 287 bitRate="192000" 288 sampleRate="48000" 289 channels="2" /> 290 </EncoderProfile> 291 292 <ImageEncoding quality="90" /> 293 <ImageEncoding quality="80" /> 294 <ImageEncoding quality="70" /> 295 <ImageDecoding memCap="20000000" /> 296 297 <Camera previewFrameRate="30" /> 298 299 </CamcorderProfiles> 300 301 <CamcorderProfiles cameraId="1"> 302 <EncoderProfile quality="high" fileFormat="mp4" duration="60"> 303 <Video codec="h264" 304 bitRate="15000000" 305 width="1920" 306 height="1080" 307 frameRate="30" /> 308 309 <Audio codec="aac" 310 bitRate="192000" 311 sampleRate="48000" 312 channels="2" /> 313 </EncoderProfile> 314 315 <EncoderProfile quality="low" fileFormat="3gp" duration="30"> 316 <Video codec="h263" 317 bitRate="128000" 318 width="176" 319 height="144" 320 frameRate="15" /> 321 322 <Audio codec="amrnb" 323 bitRate="12200" 324 sampleRate="8000" 325 channels="1" /> 326 </EncoderProfile> 327 328 <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> 329 <Video codec="h263" 330 bitRate="128000" 331 width="176" 332 height="144" 333 frameRate="15" /> 334 335 <Audio codec="amrnb" 336 bitRate="12200" 337 sampleRate="8000" 338 channels="1" /> 339 </EncoderProfile> 340 341 <EncoderProfile quality="qvga" fileFormat="3gp" duration="30"> 342 <Video codec="h264" 343 bitRate="640000" 344 width="320" 345 height="240" 346 frameRate="30" /> 347 348 <Audio codec="aac" 349 bitRate="128000" 350 sampleRate="48000" 351 channels="2" /> 352 353 </EncoderProfile> 354 355 <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> 356 <Video codec="h264" 357 bitRate="640000" 358 width="352" 359 height="288" 360 frameRate="30" /> 361 362 <Audio codec="amrnb" 363 bitRate="12200" 364 sampleRate="8000" 365 channels="1" /> 366 </EncoderProfile> 367 368 <EncoderProfile quality="480p" fileFormat="mp4" duration="60"> 369 <Video codec="h264" 370 bitRate="3000000" 371 width="720" 372 height="480" 373 frameRate="30" /> 374 375 <Audio codec="aac" 376 bitRate="128000" 377 sampleRate="48000" 378 channels="2" /> 379 380 </EncoderProfile> 381 382 <EncoderProfile quality="720p" fileFormat="mp4" duration="60"> 383 <Video codec="h264" 384 bitRate="3000000" 385 width="1280" 386 height="720" 387 frameRate="30" /> 388 389 <Audio codec="aac" 390 bitRate="192000" 391 sampleRate="48000" 392 channels="2" /> 393 </EncoderProfile> 394 395 <EncoderProfile quality="1080p" fileFormat="mp4" duration="60"> 396 <Video codec="h264" 397 bitRate="15000000" 398 width="1920" 399 height="1080" 400 frameRate="30" /> 401 402 <Audio codec="aac" 403 bitRate="192000" 404 sampleRate="48000" 405 channels="2" /> 406 </EncoderProfile> 407 408 <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> 409 <Video codec="h263" 410 bitRate="128000" 411 width="176" 412 height="144" 413 frameRate="15" /> 414 415 <Audio codec="amrnb" 416 bitRate="12200" 417 sampleRate="8000" 418 channels="1" /> 419 </EncoderProfile> 420 421 <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> 422 <Video codec="h264" 423 bitRate="3000000" 424 width="1920" 425 height="1080" 426 frameRate="30" /> 427 428 <Audio codec="aac" 429 bitRate="192000" 430 sampleRate="48000" 431 channels="2" /> 432 </EncoderProfile> 433 434 <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> 435 <Video codec="h263" 436 bitRate="128000" 437 width="176" 438 height="144" 439 frameRate="15" /> 440 441 <Audio codec="amrnb" 442 bitRate="12200" 443 sampleRate="8000" 444 channels="1" /> 445 </EncoderProfile> 446 447 <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> 448 <Video codec="h264" 449 bitRate="640000" 450 width="352" 451 height="288" 452 frameRate="30" /> 453 454 <Audio codec="amrnb" 455 bitRate="12200" 456 sampleRate="8000" 457 channels="1" /> 458 </EncoderProfile> 459 460 <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> 461 <Video codec="h264" 462 bitRate="3000000" 463 width="720" 464 height="480" 465 frameRate="30" /> 466 467 <Audio codec="amrnb" 468 bitRate="12200" 469 sampleRate="8000" 470 channels="1" /> 471 </EncoderProfile> 472 473 <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> 474 <Video codec="h264" 475 bitRate="3000000" 476 width="1280" 477 height="720" 478 frameRate="30" /> 479 480 <Audio codec="aac" 481 bitRate="192000" 482 sampleRate="48000" 483 channels="2" /> 484 </EncoderProfile> 485 486 <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> 487 <Video codec="h264" 488 bitRate="3000000" 489 width="1920" 490 height="1080" 491 frameRate="30" /> 492 493 <Audio codec="aac" 494 bitRate="192000" 495 sampleRate="48000" 496 channels="2" /> 497 </EncoderProfile> 498 499 <ImageEncoding quality="90" /> 500 <ImageEncoding quality="80" /> 501 <ImageEncoding quality="70" /> 502 <ImageDecoding memCap="20000000" /> 503 504 <Camera previewFrameRate="30" /> 505 506 </CamcorderProfiles> 507 508 509 <EncoderOutputFileFormat name="3gp" /> 510 <EncoderOutputFileFormat name="mp4" /> 511 512 <!-- 513 If a codec is not enabled, it is invisible to the applications 514 In other words, the applications won't be able to use the codec 515 or query the capabilities of the codec at all if it is disabled 516 --> 517 <VideoEncoderCap name="h264" enabled="true" 518 minBitRate="64000" maxBitRate="15000000" 519 minFrameWidth="176" maxFrameWidth="1920" 520 minFrameHeight="144" maxFrameHeight="1080" 521 minFrameRate="15" maxFrameRate="60" /> 522 523 <VideoEncoderCap name="h263" enabled="true" 524 minBitRate="64000" maxBitRate="2000000" 525 minFrameWidth="176" maxFrameWidth="720" 526 minFrameHeight="144" maxFrameHeight="480" 527 minFrameRate="15" maxFrameRate="30" /> 528 529 <VideoEncoderCap name="m4v" enabled="true" 530 minBitRate="64000" maxBitRate="8000000" 531 minFrameWidth="176" maxFrameWidth="720" 532 minFrameHeight="144" maxFrameHeight="480" 533 minFrameRate="15" maxFrameRate="30" /> 534 535 <AudioEncoderCap name="aac" enabled="true" 536 minBitRate="32000" maxBitRate="320000" 537 minSampleRate="8000" maxSampleRate="48000" 538 minChannels="1" maxChannels="2" /> 539 540 <AudioEncoderCap name="amrwb" enabled="true" 541 minBitRate="6600" maxBitRate="23850" 542 minSampleRate="16000" maxSampleRate="16000" 543 minChannels="1" maxChannels="1" /> 544 545 <AudioEncoderCap name="amrnb" enabled="true" 546 minBitRate="4750" maxBitRate="12200" 547 minSampleRate="8000" maxSampleRate="8000" 548 minChannels="1" maxChannels="1" /> 549 550 <AudioEncoderCap name="aac" enabled="true" 551 minBitRate="32000" maxBitRate="320000" 552 minSampleRate="8000" maxSampleRate="48000" 553 minChannels="1" maxChannels="1" /> 554 555 <AudioEncoderCap name="heaac" enabled="true" 556 minBitRate="8000" maxBitRate="64000" 557 minSampleRate="16000" maxSampleRate="48000" 558 minChannels="1" maxChannels="2" /> 559 560 <AudioEncoderCap name="aaceld" enabled="true" 561 minBitRate="16000" maxBitRate="192000" 562 minSampleRate="8000" maxSampleRate="48000" 563 minChannels="1" maxChannels="2" /> 564 565 <VideoEditorCap maxInputFrameWidth="1920" maxInputFrameHeight="1088" 566 maxOutputFrameWidth="1920" maxOutputFrameHeight="1088" maxPrefetchYUVFrames="6"/> 567 568 <ExportVideoProfile name="h263" profile="1" level="1" /> 569 <ExportVideoProfile name="h264" profile="1" level="4096" /> 570 <ExportVideoProfile name="m4v" profile="1" level="16" /> 571 572 <!-- 573 FIXME: 574 We do not check decoder capabilities at present 575 At present, we only check whether windows media is visible 576 for TEST applications. For other applications, we do 577 not perform any checks at all. 578 --> 579 <VideoDecoderCap name="wmv" enabled="true"/> 580 <AudioDecoderCap name="wma" enabled="true"/> 581 </MediaSettings> 582