media_codecs: add vendor provided capabilities

Bug: 11990470
Change-Id: I6a42584536a3ee3d31f71e00dde4946e42994f08
diff --git a/media_codecs.xml b/media_codecs.xml
index e5c2e1e..3b8fc45 100644
--- a/media_codecs.xml
+++ b/media_codecs.xml
@@ -81,17 +81,70 @@
     <Include href="media_codecs_google_audio.xml" />
     <Include href="media_codecs_google_telephony.xml" />
     <Decoders>
-        <MediaCodec name="OMX.Nvidia.mp4.decode" type="video/mp4v-es" />
-        <MediaCodec name="OMX.Nvidia.h263.decode" type="video/3gpp" />
-        <MediaCodec name="OMX.Nvidia.h264.decode" type="video/avc" />
-        <MediaCodec name="OMX.Nvidia.mpeg2v.decode" type="video/mpeg2" />
-        <MediaCodec name="OMX.Nvidia.mp2.decoder" type="audio/mpeg-L2" />
+        <MediaCodec name="OMX.Nvidia.mp4.decode" type="video/mp4v-es" >
+            <Limit name="size" min="32x32" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-10000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.h263.decode" type="video/3gpp" >
+            <Limit name="size" min="32x32" max="720x576" />
+            <Limit name="alignment" value="2x2" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.h264.decode" type="video/avc" >
+            <Limit name="size" min="32x32" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.h264.decode.secure" type="video/avc" >
+            <Limit name="size" min="32x32" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.mpeg2v.decode" type="video/mpeg2" >
+            <Limit name="size" min="32x32" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-40000000" />
+            <Feature name="adaptive-playback" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.mp2.decoder" type="audio/mpeg-L2" >
+            <Limit name="channel-count" max="6" />
+            <Limit name="sample-rate" ranges="16000,22050,24000,32000,44100,48000" />
+            <Limit name="bitrate" range="8000-384000" />
+        </MediaCodec>
     </Decoders>
 
     <Encoders>
-        <MediaCodec name="OMX.Nvidia.mp4.encoder" type="video/mp4v-es" />
-        <MediaCodec name="OMX.Nvidia.h263.encoder" type="video/3gpp" />
-        <MediaCodec name="OMX.Nvidia.h264.encoder" type="video/avc" />
+        <MediaCodec name="OMX.Nvidia.mp4.encoder" type="video/mp4v-es" >
+            <Limit name="size" min="48x48" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="195840" />
+            <Limit name="bitrate" range="1-14000000" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.h263.encoder" type="video/3gpp" >
+            <Limit name="size" min="48x48" max="720x576" />
+            <Limit name="alignment" value="2x2" />
+        </MediaCodec>
+        <MediaCodec name="OMX.Nvidia.h264.encoder" type="video/avc" >
+            <Limit name="size" min="48x48" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="195840" />
+            <Limit name="bitrate" range="1-14000000" />
+        </MediaCodec>
     </Encoders>
     <Include href="media_codecs_google_video.xml" />
 </MediaCodecs>