blob: 87d11f26ea434fc74396e034ec189ef05857825f
1 | <?xml version="1.0" encoding="utf-8" ?> |
2 | <!-- Copyright (C) 2012 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 | |
17 | <!-- |
18 | <!DOCTYPE MediaCodecs [ |
19 | <!ELEMENT Include EMPTY> |
20 | <!ATTLIST Include href CDATA #REQUIRED> |
21 | <!ELEMENT MediaCodecs (Decoders|Encoders|Include)*> |
22 | <!ELEMENT Decoders (MediaCodec|Include)*> |
23 | <!ELEMENT Encoders (MediaCodec|Include)*> |
24 | <!ELEMENT MediaCodec (Type|Quirk|Include)*> |
25 | <!ATTLIST MediaCodec name CDATA #REQUIRED> |
26 | <!ATTLIST MediaCodec type CDATA> |
27 | <!ELEMENT Type EMPTY> |
28 | <!ATTLIST Type name CDATA #REQUIRED> |
29 | <!ELEMENT Quirk EMPTY> |
30 | <!ATTLIST Quirk name CDATA #REQUIRED> |
31 | ]> |
32 | |
33 | There's a simple and a complex syntax to declare the availability of a |
34 | media codec: |
35 | |
36 | A codec that properly follows the OpenMax spec and therefore doesn't have any |
37 | quirks and that only supports a single content type can be declared like so: |
38 | |
39 | <MediaCodec name="OMX.foo.bar" type="something/interesting" /> |
40 | |
41 | If a codec has quirks OR supports multiple content types, the following syntax |
42 | can be used: |
43 | |
44 | <MediaCodec name="OMX.foo.bar" > |
45 | <Type name="something/interesting" /> |
46 | <Type name="something/else" /> |
47 | ... |
48 | <Quirk name="requires-allocate-on-input-ports" /> |
49 | <Quirk name="requires-allocate-on-output-ports" /> |
50 | <Quirk name="output-buffers-are-unreadable" /> |
51 | </MediaCodec> |
52 | |
53 | Only the three quirks included above are recognized at this point: |
54 | |
55 | "requires-allocate-on-input-ports" |
56 | must be advertised if the component does not properly support specification |
57 | of input buffers using the OMX_UseBuffer(...) API but instead requires |
58 | OMX_AllocateBuffer to be used. |
59 | |
60 | "requires-allocate-on-output-ports" |
61 | must be advertised if the component does not properly support specification |
62 | of output buffers using the OMX_UseBuffer(...) API but instead requires |
63 | OMX_AllocateBuffer to be used. |
64 | |
65 | "output-buffers-are-unreadable" |
66 | must be advertised if the emitted output buffers of a decoder component |
67 | are not readable, i.e. use a custom format even though abusing one of |
68 | the official OMX colorspace constants. |
69 | Clients of such decoders will not be able to access the decoded data, |
70 | naturally making the component much less useful. The only use for |
71 | a component with this quirk is to render the output to the screen. |
72 | Audio decoders MUST NOT advertise this quirk. |
73 | Video decoders that advertise this quirk must be accompanied by a |
74 | corresponding color space converter for thumbnail extraction, |
75 | matching surfaceflinger support that can render the custom format to |
76 | a texture and possibly other code, so just DON'T USE THIS QUIRK. |
77 | |
78 | --> |
79 | |
80 | <MediaCodecs> |
81 | <Include href="media_codecs_google_audio.xml" /> |
82 | <Include href="media_codecs_google_telephony.xml" /> |
83 | <Include href="media_codecs_google_video.xml" /> |
84 | </MediaCodecs> |
85 |