229 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			XML
		
	
	
	
<?xml version="1.0" encoding="utf-8" ?>
 | 
						|
<!-- Copyright (C) 2014 Rockchip Electronics Co.Ltd
 | 
						|
     Copyright (C) 2012 The Android Open Source Project
 | 
						|
 | 
						|
     Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
     you may not use this file except in compliance with the License.
 | 
						|
     You may obtain a copy of the License at
 | 
						|
 | 
						|
          http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
     Unless required by applicable law or agreed to in writing, software
 | 
						|
     distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
     See the License for the specific language governing permissions and
 | 
						|
     limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<!--
 | 
						|
<!DOCTYPE MediaCodecs [
 | 
						|
<!ELEMENT MediaCodecs (Decoders,Encoders)>
 | 
						|
<!ELEMENT Decoders (MediaCodec*)>
 | 
						|
<!ELEMENT Encoders (MediaCodec*)>
 | 
						|
<!ELEMENT MediaCodec (Type*,Quirk*)>
 | 
						|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
 | 
						|
<!ATTLIST MediaCodec type CDATA>
 | 
						|
<!ELEMENT Type EMPTY>
 | 
						|
<!ATTLIST Type name CDATA #REQUIRED>
 | 
						|
<!ELEMENT Quirk EMPTY>
 | 
						|
<!ATTLIST Quirk name CDATA #REQUIRED>
 | 
						|
]>
 | 
						|
 | 
						|
There's a simple and a complex syntax to declare the availability of a
 | 
						|
media codec:
 | 
						|
 | 
						|
A codec that properly follows the OpenMax spec and therefore doesn't have any
 | 
						|
quirks and that only supports a single content type can be declared like so:
 | 
						|
 | 
						|
    <MediaCodec name="OMX.foo.bar" type="something/interesting" />
 | 
						|
 | 
						|
If a codec has quirks OR supports multiple content types, the following syntax
 | 
						|
can be used:
 | 
						|
 | 
						|
    <MediaCodec name="OMX.foo.bar" >
 | 
						|
        <Type name="something/interesting" />
 | 
						|
        <Type name="something/else" />
 | 
						|
        ...
 | 
						|
        <Quirk name="requires-allocate-on-input-ports" />
 | 
						|
        <Quirk name="requires-allocate-on-output-ports" />
 | 
						|
        <Quirk name="output-buffers-are-unreadable" />
 | 
						|
    </MediaCodec>
 | 
						|
 | 
						|
Only the three quirks included above are recognized at this point:
 | 
						|
 | 
						|
"requires-allocate-on-input-ports"
 | 
						|
    must be advertised if the component does not properly support specification
 | 
						|
    of input buffers using the OMX_UseBuffer(...) API but instead requires
 | 
						|
    OMX_AllocateBuffer to be used.
 | 
						|
 | 
						|
"requires-allocate-on-output-ports"
 | 
						|
    must be advertised if the component does not properly support specification
 | 
						|
    of output buffers using the OMX_UseBuffer(...) API but instead requires
 | 
						|
    OMX_AllocateBuffer to be used.
 | 
						|
 | 
						|
"output-buffers-are-unreadable"
 | 
						|
    must be advertised if the emitted output buffers of a decoder component
 | 
						|
    are not readable, i.e. use a custom format even though abusing one of
 | 
						|
    the official OMX colorspace constants.
 | 
						|
    Clients of such decoders will not be able to access the decoded data,
 | 
						|
    naturally making the component much less useful. The only use for
 | 
						|
    a component with this quirk is to render the output to the screen.
 | 
						|
    Audio decoders MUST NOT advertise this quirk.
 | 
						|
    Video decoders that advertise this quirk must be accompanied by a
 | 
						|
    corresponding color space converter for thumbnail extraction,
 | 
						|
    matching surfaceflinger support that can render the custom format to
 | 
						|
    a texture and possibly other code, so just DON'T USE THIS QUIRK.
 | 
						|
 | 
						|
-->
 | 
						|
 | 
						|
<MediaCodecs>
 | 
						|
    <Include href="media_codecs_google_audio.xml" />
 | 
						|
    <Settings>
 | 
						|
        <Setting name="max-video-encoder-input-buffers" value="4" />
 | 
						|
        <Setting name="supports-multiple-secure-codecs" value="false" />
 | 
						|
        <Setting name="supports-secure-with-non-secure-codec" value="false" />
 | 
						|
    </Settings>
 | 
						|
    <Decoders>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.avc" type="video/avc">
 | 
						|
            <Limit name="size" max="1920x1088" min="96x96"/>
 | 
						|
            <Limit name="alignment" value="2x2"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="489600" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-20000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
	<MediaCodec name="OMX.rk.video_decoder.avc.secure" type="video/avc">
 | 
						|
            <Limit name="size" max="1920x1088" min="256x144"/>
 | 
						|
            <Limit name="alignment" value="2x2"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="489600" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-20000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Feature name="secure-playback" required="true" />
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.m2v" type="video/mpeg2">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x8"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec> 
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.vp8" type="video/x-vnd.on2.vp8">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="489600" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>  
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.h263" type="video/3gpp">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.wmv3" type="video/x-ms-wmv">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.m4v" type="video/mp4v-es">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.flv1" type="video/flv">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.mjpeg" type="video/mjpeg">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="8x8"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.vp9" type="video/x-vnd.on2.vp9">
 | 
						|
            <Limit name="size" max="1920x1088" min="96x96"/>
 | 
						|
            <Limit name="alignment" value="2x2"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.vp9.secure" type="video/x-vnd.on2.vp9">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="2x2"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Feature name="secure-playback" required="true" />
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
	<MediaCodec name="OMX.rk.video_decoder.hevc" type="video/hevc">
 | 
						|
	    <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
	    <Limit name="alignment" value="2x2"/>
 | 
						|
	    <Limit name="block-size" value="16x16"/>
 | 
						|
	    <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
	    <Limit name="bitrate" range="1-10000000"/>
 | 
						|
	    <Feature name="adaptive-playback"/>
 | 
						|
	    <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
        <MediaCodec name="OMX.rk.video_decoder.hevc.secure" type="video/hevc">
 | 
						|
            <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
            <Limit name="alignment" value="2x2"/>
 | 
						|
            <Limit name="block-size" value="16x16"/>
 | 
						|
            <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
            <Limit name="bitrate" range="1-10000000"/>
 | 
						|
            <Feature name="adaptive-playback"/>
 | 
						|
            <Feature name="secure-playback" required="true" />
 | 
						|
            <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
	<MediaCodec name="OMX.rk.video_decoder.vc1" type="video/wvc1">
 | 
						|
	    <Limit name="size" max="1920x1088" min="176x144"/>
 | 
						|
	    <Limit name="alignment" value="2x2"/>
 | 
						|
	    <Limit name="block-size" value="16x16"/>
 | 
						|
	    <Limit name="blocks-per-second" max="244800" min="1"/>
 | 
						|
	    <Limit name="bitrate" range="1-10000000"/>
 | 
						|
	    <Feature name="adaptive-playback"/>
 | 
						|
	    <Limit name="concurrent-instances" max="6" />
 | 
						|
        </MediaCodec>
 | 
						|
    </Decoders>
 | 
						|
 | 
						|
    <Encoders>
 | 
						|
        <MediaCodec name="OMX.rk.video_encoder.avc" type="video/avc" >
 | 
						|
            <Limit name="size" min="176x144" max="1920x1088" />
 | 
						|
            <Limit name="alignment" value="16x8" />
 | 
						|
            <Limit name="bitrate" range="1-40000000" />
 | 
						|
            <Feature name="bitrate-modes" value="VBR,CBR" />
 | 
						|
	    <Limit name="concurrent-instances" max="4" />
 | 
						|
        </MediaCodec>
 | 
						|
    </Encoders>
 | 
						|
    <Include href="media_codecs_google_video.xml" />
 | 
						|
</MediaCodecs>
 |