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