page.title=SoC Vendor Dependencies for Media Resource Manager
@jd:body

<!--
    Copyright 2015 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.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>This document is intended to help system on chip vendors (SoCs) properly
implement support for priority, operating rate and the hooks needed for Android
media resource manager.</p>

<h2 id=1_omx_errorinsufficientresources>1. OMX_ErrorInsufficientResources</h2>

<p>The codec component should return
<code>OMX_ErrorInsufficientResources</code> on <code>GetHandle</code>,
<code>Init</code>, <code>UseBuffer</code>, <code>AllocateBuffer</code> or a
state transition if the failure is due to insufficient resource. The error code
will be used by the media resource manager as the indicator to potentially
preempt media resource from other lower priority process.</p>

<p>An Android Compatibility Test Suite (CTS) test exists to allocate, configure
and start each codec repeatedly until <code>catching
OMX_ErrorInsufficientResources</code> (pass) or any other error (fail).</p>

<h2 id=2_omx_indexconfigpriority>2. OMX_IndexConfigPriority</h2>

<p>This configuration lets the application describe desired codec priority.</p>

<p>The associated value is an integer. Higher value means lower priority.
Currently, only two levels are supported:</p>

<ul>
  <li>0: realtime priority - meaning that the codec shall support the given
performance configuration (e.g. framerate) at realtime. This will only be used
by media playback, capture, and possibly by realtime communication scenarios if
best effort performance is not suitable.</li>
  <li>1: non-realtime priority (best effort). This is the default value.</li>
</ul>

<p>Vendor is suggested to use this as a hint used at codec configuration and
resource planning - to understand the realtime requirements of the application.</p>

<p>Don’t assume realtime priority unless it is configured to 0.</p>

<h2 id=3_omx_indexconfigoperatingrate>3. OMX_IndexConfigOperatingRate</h2>

<p>This configuration lets the application describe operating frame rate for
video or sample rate for audio at which the codec will need to operate.</p>

<p>This is used for cases like high-speed/slow-motion video capture, where the
video encoder format contains the target playback rate (e.g. 30fps), but the
component must be able to handle the high operating capture rate (e.g. 240fps).</p>

<p>This rate should be used for resource planning and setting the operating
points.</p>
