1## 5.1\. Media Codecs 2 3### 5.1.1\. Audio Encoding 4 5See more details in [5.1.3. Audio Codecs Details](#5_1_3_audio_codecs_details). 6 7If device implementations declare `android.hardware.microphone`, 8they MUST support encoding the following audio formats and make them available 9to third-party apps: 10 11* [C-1-1] PCM/WAVE 12* [C-1-2] FLAC 13* [C-1-3] Opus 14 15All audio encoders MUST support: 16 17* [C-3-1] PCM 16-bit native byte order audio frames via the [`android.media.MediaCodec`]( 18https://developer.android.com/reference/android/media/MediaCodec.html#raw-audio-buffers) 19API. 20 21 22### 5.1.2\. Audio Decoding 23 24See more details in [5.1.3. Audio Codecs Details](#5_1_3_audio_codecs_details). 25 26 27If device implementations declare support for the 28`android.hardware.audio.output` feature, they must support decoding the 29following audio formats: 30 31* [C-1-1] MPEG-4 AAC Profile (AAC LC) 32* [C-1-2] MPEG-4 HE AAC Profile (AAC+) 33* [C-1-3] MPEG-4 HE AACv2 Profile (enhanced AAC+) 34* [C-1-4] AAC ELD (enhanced low delay AAC) 35* [C-1-11] xHE-AAC (ISO/IEC 23003-3 Extended HE AAC Profile, which includes 36 the USAC Baseline Profile, and ISO/IEC 23003-4 Dynamic Range 37 Control Profile) 38* [C-1-5] FLAC 39* [C-1-6] MP3 40* [C-1-7] MIDI 41* [C-1-8] Vorbis 42* [C-1-9] PCM/WAVE including high-resolution audio 43formats up to 24 bits, 192 kHz sample rate, and 8 channels. 44Note that this requirement is for decoding only, and that a device 45is permitted to downsample and downmix during the playback phase. 46* [C-1-10] Opus 47 48If device implementations support the decoding of AAC input buffers of 49multichannel streams (i.e. more than two channels) to PCM through the default 50AAC audio decoder in the `android.media.MediaCodec` API, the following MUST be 51supported: 52 53* [C-2-1] Decoding MUST be performed without downmixing (e.g. a 5.0 AAC 54stream must be decoded to five channels of PCM, a 5.1 AAC stream must be decoded 55to six channels of PCM). 56* [C-2-2] Dynamic range metadata MUST be as defined in "Dynamic Range Control 57(DRC)" in ISO/IEC 14496-3, and the `android.media.MediaFormat` DRC keys to 58configure the dynamic range-related behaviors of the audio decoder. The 59AAC DRC keys were introduced in API 21, and are: 60`KEY_AAC_DRC_ATTENUATION_FACTOR`, `KEY_AAC_DRC_BOOST_FACTOR`, 61`KEY_AAC_DRC_HEAVY_COMPRESSION`, `KEY_AAC_DRC_TARGET_REFERENCE_LEVEL` and 62`KEY_AAC_ENCODED_TARGET_LEVEL`. 63* [SR] It is STRONGLY RECOMMENDED that requirements C-2-1 and C-2-2 above are 64satisfied by all AAC audio decoders. 65 66When decoding USAC audio, MPEG-D (ISO/IEC 23003-4): 67 68* [C-3-1] Loudness and DRC metadata MUST be interpreted and applied 69according to MPEG-D DRC Dynamic Range Control Profile Level 1. 70* [C-3-2] The decoder MUST behave according to the configuration 71set with the following `android.media.MediaFormat` keys: 72`KEY_AAC_DRC_TARGET_REFERENCE_LEVEL` and `KEY_AAC_DRC_EFFECT_TYPE`. 73 74MPEG-4 AAC, HE AAC, and HE AACv2 profile decoders: 75 76* MAY support loudness and dynamic range control using ISO/IEC 23003-4 77Dynamic Range Control Profile. 78 79If ISO/IEC 23003-4 is supported and if both ISO/IEC 23003-4 and 80ISO/IEC 14496-3 metadata are present in a decoded bitstream, then: 81 82* ISO/IEC 23003-4 metadata SHALL take precedence. 83 84All audio decoders MUST support outputting: 85 86* [C-6-1] PCM 16-bit native byte order audio frames via the [`android.media.MediaCodec`]( 87https://developer.android.com/reference/android/media/MediaCodec.html#raw-audio-buffers) 88API. 89 90### 5.1.3\. Audio Codecs Details 91 92<table> 93 <tr> 94 <th>Format/Codec</th> 95 <th>Details</th> 96 <th>File Types/Container Formats to be supported</th> 97 </tr> 98 <tr> 99 <td>MPEG-4 AAC Profile<br />(AAC LC)</td> 100 <td>Support for mono/stereo/5.0/5.1 content with standard 101 sampling rates from 8 to 48 kHz.</td> 102 <td> 103 <ul> 104 <li class="table_list">3GPP (.3gp)</li> 105 <li class="table_list">MPEG-4 (.mp4, .m4a)</li> 106 <li class="table_list">ADTS raw AAC (.aac, ADIF not supported)</li> 107 <li class="table_list">MPEG-TS (.ts, not seekable, decode only)</li> 108 <li class="table_list">Matroska (.mkv, decode only)</li></ul> 109 </td> 110 </tr> 111 <tr> 112 <td>MPEG-4 HE AAC Profile (AAC+)</td> 113 <td>Support for mono/stereo/5.0/5.1 content with standard 114 sampling rates from 16 to 48 kHz.</td> 115 <td> 116 <ul> 117 <li class="table_list">3GPP (.3gp)</li> 118 <li class="table_list">MPEG-4 (.mp4, .m4a)</li></ul> 119 </td> 120 </tr> 121 <tr> 122 <td>MPEG-4 HE AACv2<br /> 123 124Profile (enhanced AAC+)</td> 125 <td>Support for mono/stereo/5.0/5.1 content with standard 126 sampling rates from 16 to 48 kHz.</td> 127 <td> 128 <ul> 129 <li class="table_list">3GPP (.3gp)</li> 130 <li class="table_list">MPEG-4 (.mp4, .m4a)</li></ul> 131 </td> 132 </tr> 133 <tr> 134 <td>AAC ELD (enhanced low delay AAC)</td> 135 <td>Support for mono/stereo content with standard sampling rates from 16 to 136 48 kHz.</td> 137 <td> 138 <ul> 139 <li class="table_list">3GPP (.3gp)</li> 140 <li class="table_list">MPEG-4 (.mp4, .m4a)</li></ul> 141 </td> 142 </tr> 143 <tr> 144 <td>USAC</td> 145 <td>Support for mono/stereo content with standard sampling rates from 7.35 146 to 48 kHz.</td> 147 <td> 148 MPEG-4 (.mp4, .m4a) 149 </td> 150 </tr> 151 <tr> 152 <td>AMR-NB</td> 153 <td>4.75 to 12.2 kbps sampled @ 8 kHz</td> 154 <td>3GPP (.3gp)</td> 155 </tr> 156 <tr> 157 <td>AMR-WB</td> 158 <td>9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16 kHz, as defined at 159 <a href="https://www.loc.gov/preservation/digital/formats/fdd/fdd000255.shtml"> 160 AMR-WB, Adaptive Multi-Rate - Wideband Speech Codec</a></td> 161 <td>3GPP (.3gp)</td> 162 </tr> 163 <tr> 164 <td>FLAC</td> 165 <td>For both encoder and decoder: at least Mono and Stereo modes MUST be 166 supported. Sample rates up to 192 kHz MUST be supported; 16-bit and 24-bit 167 resolution MUST be supported. FLAC 24-bit audio data handling MUST be 168 available with floating point audio configuration.</td> 169 <td> 170 <ul> 171 <li class="table_list">FLAC (.flac)</li> 172 <li class="table_list">MPEG-4 (.mp4, .m4a, decode only)</li> 173 <li class="table_list">Matroska (.mkv, decode only)</li></ul> 174 </td> 175 </tr> 176 <tr> 177 <td>MP3</td> 178 <td>Mono/Stereo 8-320Kbps constant (CBR) or variable bitrate (VBR)</td> 179 <td> 180 <ul> 181 <li class="table_list">MP3 (.mp3)</li> 182 <li class="table_list">MPEG-4 (.mp4, .m4a, decode only)</li> 183 <li class="table_list">Matroska (.mkv, decode only)</li></td> 184 </tr> 185 <tr> 186 <td>MIDI</td> 187 <td>MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for 188 ringtone formats RTTTL/RTX, OTA, and iMelody</td> 189 <td><ul> 190 <li class="table_list">Type 0 and 1 (.mid, .xmf, .mxmf)</li> 191 <li class="table_list">RTTTL/RTX (.rtttl, .rtx)</li> 192 <li class="table_list">OTA (.ota)</li> 193 <li class="table_list">iMelody (.imy)</li></ul></td> 194 </tr> 195 <tr> 196 <td>Vorbis</td> 197 <td></td> 198 <td> 199 <ul> 200 <li class="table_list">Ogg (.ogg)</li> 201 <li class="table_list">MPEG-4 (.mp4, .m4a, decode only)</li> 202 <li class="table_list">Matroska (.mkv)</li> 203 <li class="table_list">Webm (.webm)</li></ul></td> 204 </tr> 205 <tr> 206 <td>PCM/WAVE</td> 207 <td>PCM codec MUST support 16-bit linear PCM and 16-bit float. WAVE 208 extractor must support 16-bit, 24-bit, 32-bit linear PCM and 32-bit float 209 (rates up to limit of hardware). Sampling rates MUST be supported from 210 8 kHz to 192 kHz.</td> 211 <td>WAVE (.wav)</td> 212 </tr> 213 <tr> 214 <td>Opus</td> 215 <td></td> 216 <td> 217 <ul> 218 <li class="table_list">Ogg (.ogg)</li> 219 <li class="table_list">MPEG-4 (.mp4, .m4a, decode only)</li> 220 <li class="table_list">Matroska (.mkv)</li> 221 <li class="table_list">Webm (.webm)</li></ul></td> 222 </tr> 223</table> 224 225### 5.1.4\. Image Encoding 226 227See more details in [5.1.6. Image Codecs Details](#5_1_6_image_codecs_details). 228 229Device implementations MUST support encoding the following image encoding: 230 231* [C-0-1] JPEG 232* [C-0-2] PNG 233* [C-0-3] WebP 234 235If device implementations support HEIC encoding via `android.media.MediaCodec` 236for media type [`MIMETYPE_IMAGE_ANDROID_HEIC`]( 237https://developer.android.com/reference/android/media/MediaFormat.html#MIMETYPE_IMAGE_ANDROID_HEIC), 238they: 239 240* [C-1-1] MUST provide a hardware-accelerated HEVC encoder codec that 241supports [`BITRATE_MODE_CQ`](https://developer.android.com/reference/android/media/MediaCodecInfo.EncoderCapabilities.html#BITRATE_MODE_CQ) 242bitrate control mode, [`HEVCProfileMainStill`]( 243https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel.html#HEVCProfileMainStill) 244profile and 512 x 512 px frame size. 245 246### 5.1.5\. Image Decoding 247 248See more details in [5.1.6. Image Codecs Details](#5_1_6_image_codecs_details). 249 250Device implementations MUST support decoding the following image encoding: 251 252* [C-0-1] JPEG 253* [C-0-2] GIF 254* [C-0-3] PNG 255* [C-0-4] BMP 256* [C-0-5] WebP 257* [C-0-6] Raw 258* [C-0-7] HEIF (HEIC) 259 260Image decoders that support a high bit-depth format (9+ bits per channel) 261 262* [C-1-1] MUST support outputting an 8-bit equivalent format if requested by 263the application, for example, via the [`ARGB_8888`]( 264https://developer.android.com/reference/android/graphics/Bitmap.Config.html#ARGB_8888) 265config of `android.graphics.Bitmap`. 266 267### 5.1.6\. Image Codecs Details 268 269<table> 270 <tr> 271 <th>Format/Codec</th> 272 <th>Details</th> 273 <th>Supported File Types/Container Formats</th> 274 </tr> 275 <tr> 276 <td>JPEG</td> 277 <td>Base+progressive</td> 278 <td>JPEG (.jpg)</td> 279 </tr> 280 <tr> 281 <td>GIF</td> 282 <td></td> 283 <td>GIF (.gif)</td> 284 </tr> 285 <tr> 286 <td>PNG</td> 287 <td></td> 288 <td>PNG (.png)</td> 289 </tr> 290 <tr> 291 <td>BMP</td> 292 <td></td> 293 <td>BMP (.bmp)</td> 294 </tr> 295 <tr> 296 <td>WebP</td> 297 <td></td> 298 <td>WebP (.webp)</td> 299 </tr> 300 <tr> 301 <td>Raw</td> 302 <td></td> 303 <td>ARW (.arw), CR2 (.cr2), DNG (.dng), NEF (.nef), NRW (.nrw), ORF (.orf), 304 PEF (.pef), RAF (.raf), RW2 (.rw2), SRW (.srw)</td> 305 </tr> 306 <tr> 307 <td>HEIF</td> 308 <td>Image, Image collection, Image sequence</td> 309 <td>HEIF (.heif), HEIC (.heic)</td> 310 </tr> 311</table> 312 313Image encoder and decoders exposed through the [MediaCodec]( 314https://developer.android.com/reference/android/media/MediaCodec) API 315 316* [C-1-1] MUST support YUV420 8:8:8 flexible color 317format (`COLOR_FormatYUV420Flexible`) through [`CodecCapabilities`]( 318https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities). 319 320* [SR] STRONGLY RECOMMENDED to support RGB888 color format for input Surface 321mode. 322 323* [C-1-3] MUST support at least one of a planar or semiplanar 324YUV420 8:8:8 color format: `COLOR_FormatYUV420PackedPlanar` (equivalent to 325`COLOR_FormatYUV420Planar`) or `COLOR_FormatYUV420PackedSemiPlanar` (equivalent 326to `COLOR_FormatYUV420SemiPlanar`). They are STRONGLY RECOMMENDED to support 327both. 328 329### 5.1.7\. Video Codecs 330 331* For acceptable quality of web video streaming and video-conference 332services, device implementations SHOULD use a hardware VP8 codec that meets the 333[requirements](http://www.webmproject.org/hardware/rtc-coding-requirements/). 334 335If device implementations include a video decoder or encoder: 336 337* [C-1-1] Video codecs MUST support output and input bytebuffer sizes that 338accommodate the largest feasible compressed and uncompressed frame as dictated 339by the standard and configuration but also not overallocate. 340 341* [C-1-2] Video encoders and decoders MUST support YUV420 8:8:8 flexible color 342formats (`COLOR_FormatYUV420Flexible`) through [`CodecCapabilities`]( 343https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities). 344 345* [C-1-3] Video encoders and decoders MUST support at least one of a planar or 346semiplanar YUV420 8:8:8 color format: `COLOR_FormatYUV420PackedPlanar` 347(equivalent to `COLOR_FormatYUV420Planar`) or 348`COLOR_FormatYUV420PackedSemiPlanar` (equivalent to `COLOR_FormatYUV420SemiPlanar`). 349They are STRONGLY RECOMMENDED to support both. 350 351* [SR] Video encoders and decoders are STRONGLY RECOMMENDED to support 352at least one of a hardware optimized planar or semiplanar YUV420 8:8:8 color 353format (YV12, NV12, NV21 or equivalent vendor optimized format.) 354 355* [C-1-5] Video decoders that support a high bit-depth format 356(9+ bits per channel) MUST support outputting an 8-bit equivalent format if 357requested by the application. This MUST be reflected by supporting an 358YUV420 8:8:8 color format via `android.media.MediaCodecInfo`. 359 360If device implementations advertise HDR profile support through 361[`Display.HdrCapabilities`]( 362https://developer.android.com/reference/android/view/Display.HdrCapabilities.html), 363they: 364 365* [C-2-1] MUST support HDR static metadata parsing and handling. 366 367If device implementations advertise intra refresh support through 368`FEATURE_IntraRefresh` in the [`MediaCodecInfo.CodecCapabilities`]( 369https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#FEATURE_IntraRefresh) 370class, they: 371 372* [C-3-1] MUST support the refresh periods in the range of 10 - 60 frames and 373accurately operate within 20% of configured refresh period. 374 375Unless the application specifies otherwise using the [`KEY_COLOR_FORMAT`]( 376https://developer.android.com/reference/android/media/MediaFormat.html#KEY_COLOR_FORMAT) 377format key, video decoder implementations: 378 379* [C-4-1] MUST default to the color format optimized for hardware display 380if configured using Surface output. 381* [C-4-2] MUST default to a YUV420 8:8:8 color format optimized for CPU 382reading if configured to not use Surface output. 383 384### 5.1.8\. Video Codecs List 385 386 387<table> 388 <tr> 389 <th>Format/Codec</th> 390 <th>Details</th> 391 <th>File Types/Container Formats to be supported</th> 392 </tr> 393 <tr> 394 <td>H.263</td> 395 <td></td> 396 <td><ul> 397 <li class="table_list">3GPP (.3gp)</li> 398 <li class="table_list">MPEG-4 (.mp4)</li> 399 <li class="table_list">Matroska (.mkv, decode only)</li></ul></td> 400 </tr> 401 <tr> 402 <td>H.264 AVC</td> 403 <td>See <a href="#5_2_video_encoding">section 5.2 </a>and 404 <a href="#5_3_video_decoding">5.3</a> for details</td> 405 <td><ul> 406 <li class="table_list">3GPP (.3gp)</li> 407 <li class="table_list">MPEG-4 (.mp4)</li> 408 <li class="table_list">MPEG-2 TS (.ts, not seekable)</li> 409 <li class="table_list">Matroska (.mkv, decode only)</li></ul></td> 410 </tr> 411 <tr> 412 <td>H.265 HEVC</td> 413 <td>See <a href="#5_3_video_decoding">section 5.3</a> for details</td> 414 <td><ul> 415 <li class="table_list">MPEG-4 (.mp4)</li> 416 <li class="table_list">Matroska (.mkv, decode only)</li></ul></td> 417 </tr> 418 <tr> 419 <td>MPEG-2</td> 420 <td>Main Profile</td> 421 <td><ul> 422 <li class="table_list">MPEG2-TS (.ts, not seekable)</li> 423 <li class="table_list">MPEG-4 (.mp4, decode only)</li> 424 <li class="table_list">Matroska (.mkv, decode only)</li></ul></td> 425 </tr> 426 <tr> 427 <td>MPEG-4 SP</td> 428 <td></td> 429 <td><ul> 430 <li class="table_list">3GPP (.3gp)</li> 431 <li class="table_list">MPEG-4 (.mp4)</li> 432 <li class="table_list">Matroska (.mkv, decode only)</li></ul></td> 433 </tr> 434 <tr> 435 <td>VP8</td> 436 <td>See <a href="#5_2_video_encoding">section 5.2</a> and 437 <a href="#5_3_video_decoding">5.3</a> for details</td> 438 <td><ul> 439 <li class="table_list"><a href="http://www.webmproject.org/">WebM 440 (.webm)</a></li> 441 <li class="table_list">Matroska (.mkv)</li></ul> 442 </td> 443 </tr> 444 <tr> 445 <td>VP9</td> 446 <td>See <a href="#5_3_video_decoding">section 5.3</a> for details</td> 447 <td><ul> 448 <li class="table_list"><a href="http://www.webmproject.org/">WebM 449 (.webm)</a></li> 450 <li class="table_list">Matroska (.mkv)</li></ul> 451 </td> 452 </tr> 453</table> 454 455 456### 5.1.9\. Media Codec Security 457 458Device implementations MUST ensure compliance with media codec security features 459as described below. 460 461Android includes support for OMX, a cross-platform multimedia acceleration API, 462as well as Codec 2.0, a low-overhead multimedia acceleration API. 463 464If device implementations support multimedia, they: 465 466* [C-1-1] MUST provide support for media codecs either via OMX or Codec 2.0 467APIs (or both) as in the Android Open Source Project and not disable or 468circumvent the security protections. This specifically does not mean that every 469codec MUST use either the OMX or Codec 2.0 API, only that support for at least 470one of these APIs MUST be available, and support for the available APIs MUST 471include the security protections present. 472* [C-SR] Are STRONGLY RECOMMENDED to include support for Codec 2.0 API. 473 474If device implementations do not support the Codec 2.0 API, they: 475 476* [C-2-1] MUST include the corresponding OMX software codec from the Android 477Open Source Project (if it is available) for each media format and type 478(encoder or decoder) supported by the device. 479* [C-2-2] Codecs that have names starting with "OMX.google." MUST be based 480on their Android Open Source Project source code. 481* [C-SR] Are STRONGLY RECOMMENDED that the OMX software codecs run in a codec 482process that does not have access to hardware drivers other than memory mappers. 483 484If device implementations support Codec 2.0 API, they: 485 486* [C-3-1] MUST include the corresponding Codec 2.0 software codec from the 487Android Open Source Project (if it is available) for each media format and type 488(encoder or decoder) supported by the device. 489* [C-3-2] MUST house the Codec 2.0 software codecs in the software codec 490process as provided in the Android Open Source Project to make it possible 491to more narrowly grant access to software codecs. 492* [C-3-3] Codecs that have names starting with "c2.android." MUST be based 493on their Android Open Source Project source code. 494 495### 5.1.10\. Media Codec Characterization 496 497If device implementations support media codecs, they: 498 499* [C-1-1] MUST return correct values of media codec characterization via the 500 [`MediaCodecInfo`]( 501 https://developer.android.com/reference/android/media/MediaCodecInfo) 502 API. 503 504In particular: 505 506* [C-1-2] Codecs with names starting with "OMX." MUST use the OMX APIs 507and have names that conform to OMX IL naming guidelines. 508* [C-1-3] Codecs with names starting with "c2." MUST use the Codec 2.0 API and 509have names that conform to Codec 2.0 naming guidelines for Android. 510* [C-1-4] Codecs with names starting with "OMX.google." or "c2.android." MUST 511NOT be characterized as vendor or as hardware-accelerated. 512* [C-1-5] Codecs that run in a codec process (vendor or system) that have 513access to hardware drivers other than memory allocators and mappers MUST NOT 514be characterized as software-only. 515* [C-1-6] Codecs not present in the Android Open Source Project or not based 516on the source code in that project MUST be characterized as vendor. 517* [C-1-7] Codecs that utilize hardware acceleration MUST be characterized 518as hardware accelerated. 519* [C-1-8] Codec names MUST NOT be misleading. For example, codecs named 520"decoders" MUST support decoding, and those named "encoders" MUST support 521encoding. Codecs with names containing media formats MUST support those 522formats. 523 524If device implementations support video codecs: 525 526* [C-2-1] All video codecs MUST publish achievable frame rate data for the 527following sizes if supported by the codec: 528 529<table> 530 <tr> 531 <th></th> 532 <th>SD (low quality)</th> 533 <th>SD (high quality)</th> 534 <th>HD 720p</th> 535 <th>HD 1080p</th> 536 <th>UHD</th> 537 </tr> 538 <tr> 539 <th>Video resolution</th> 540 <td><ul> 541 <li class="table_list">176 x 144 px (H263, MPEG2, MPEG4)</li> 542 <li class="table_list">352 x 288 px (MPEG4 encoder, H263, MPEG2)</li> 543 <li class="table_list">320 x 180 px (VP8, VP8)</li> 544 <li class="table_list">320 x 240 px (other)</li></ul> 545 </td> 546 <td><ul> 547 <li class="table_list">704 x 576 px (H263)</li> 548 <li class="table_list">640 x 360 px (VP8, VP9)</li> 549 <li class="table_list">640 x 480 px (MPEG4 encoder)</li> 550 <li class="table_list">720 x 480 px (other)</li></ul> 551 </td> 552 <td><ul> 553 <li class="table_list">1408 x 1152 px (H263)</li> 554 <li class="table_list">1280 x 720 px (other)</li></ul> 555 </td> 556 <td>1920 x 1080 px (other than MPEG4)</td> 557 <td>3840 x 2160 px (HEVC, VP9)</td> 558 </tr> 559</table> 560 561* [C-2-2] Video codecs that are characterized as hardware accelerated MUST 562publish performance points information. They MUST each list all supported 563standard performance points (listed in [`PerformancePoint`]( 564https://developer.android.com/reference/android/media/MediaCodecInfo.VideoCapabilities) 565API), unless they are covered by another supported standard performance point. 566* Additionally they SHOULD publish extended performance points if they 567support sustained video performance other than one of the standard ones listed. 568