मीडिया संसाधन प्रबंधक के लिए OEM निर्भरताएँ

इस दस्तावेज़ का उद्देश्य मूल उपकरण निर्माताओं (ओईएम) को एंड्रॉइड मीडिया संसाधन प्रबंधक और संबंधित एपीआई के लिए समर्थन को ठीक से लागू करने में मदद करना है।

अधिकतम समवर्ती कोडेक उदाहरण

CodecCapabilities.getMaxSupportedInstances इंटरफ़ेस समर्थित समवर्ती कोडेक इंस्टेंसेस की अधिकतम संख्या लौटाता है।

CTS परीक्षण testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest) का उपयोग /etc/media_codecs.xml में उचित अधिकतम सेट को लागू करने के लिए किया जाता है।

यहाँ एक उदाहरण है:

...
<MediaCodecs>
    ...
    <Encoders>
        <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" >
           ...
            <Limit name="concurrent-instances" max="13" />
        </MediaCodec>
        ...
    </Encoders>
    ...
</MediaCodecs>

ओईएम इस परीक्षण का उपयोग परीक्षण में उत्तीर्ण होने वाली समवर्ती सीमाएं उत्पन्न करने के लिए कर सकते हैं। यह करने के लिए:

  1. पहले सीटीएस-ट्रेडफेड का उपयोग करके परीक्षण चलाएँ।
  2. परिणामी विफलता संदेश का मूल्यांकन करें। यहाँ एक उदाहरण है:
    There was 1 failure:
    1) testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
    junit.framework.AssertionFailedError: In order to pass the test, please publish
    following codecs' concurrent instances limit in /etc/media_codecs.xml:
    <MediaCodec name="OMX.<vendor>.video.encoder.mpeg4" type="video/mp4v-es" >
        <Limit name="concurrent-instances" max="13" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.encoder.h263" type="video/3gpp" >
        <Limit name="concurrent-instances" max="13" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" >
        <Limit name="concurrent-instances" max="13" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
        <Limit name="concurrent-instances" max="13" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.decoder.avc" type="video/avc" >
        <Limit name="concurrent-instances" max="13" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.decoder.avc.secure" type="video/avc" >
        <Limit name="concurrent-instances" max="4" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.decoder.mpeg4" type="video/mp4v-es" >
        <Limit name="concurrent-instances" max="12" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.decoder.h263" type="video/3gpp" >
        <Limit name="concurrent-instances" max="12" />
    </MediaCodec>
    <MediaCodec name="OMX.<vendor>.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
        <Limit name="concurrent-instances" max="12" />
    </MediaCodec>
    
  3. परीक्षण विफलता संदेश में सुझाई गई concurrent-instances पंक्तियों को /etc/media_codecs.xml फ़ाइल में जोड़ें।
  4. इसकी सफलता को सत्यापित करने के लिए परीक्षण को दोबारा चलाएँ।

वीडियो कोडेक्स के लिए प्राप्त करने योग्य फ्रेम दर

VideoCapabilities.getAchievableFrameRatesFor इंटरफ़ेस वीडियो आकार के लिए प्राप्त करने योग्य वीडियो फ़्रेम दर की सीमा लौटाता है। यह जानकारी OEM द्वारा प्रत्येक डिवाइस के लिए /etc/media_codecs_performance.xml पर रखी XML फ़ाइल के माध्यम से प्रदान की जानी चाहिए। इन सेटिंग्स का परीक्षण com.android.cts.videoperf.VideoEncoderDecoderTest और android.media.cts.VideoDecoderPerfTest CTS परीक्षणों द्वारा किया जाता है।

OEM परीक्षण पास करने वाली XML फ़ाइलें उत्पन्न करने के लिए CTS परीक्षणों का उपयोग कर सकते हैं। यह करने के लिए:

  1. पहले cts-tradefed का उपयोग करके परीक्षण चलाएँ। एंड्रॉइड प्रदर्शन की परिवर्तनशीलता को देखते हुए, यह अनुशंसा की जाती है कि अधिक सटीक न्यूनतम और अधिकतम मान प्राप्त करने के लिए परीक्षण कई बार चलाए जाएं।
  2. XML फ़ाइल जनरेट करने के लिए दिए गए get_achievable_rate.py स्क्रिप्ट का उपयोग करें।
  3. XML फ़ाइल को यहां रखें: /etc/media_codecs_performance.xml
    यह आम तौर पर XML फ़ाइल को डिवाइस प्रोजेक्ट (डिवाइस/ <विक्रेता> / <उत्पाद> ) में रखकर और device.mk में एक PRODUCT_COPY_FILES लाइन जोड़कर किया जाता है:
    PRODUCT_COPY_FILES += \
    ...
       device/moto/shamu/media_codecs.xml:system/etc/media_codecs.xml \
    +    device/moto/shamu/media_codecs_performance.xml:system/etc/media_codecs_performance.xml
    
  4. उनकी सफलता को सत्यापित करने के लिए प्रदर्शन परीक्षणों को दोबारा चलाएँ।

सुरक्षित कोडेक और गैर-सुरक्षित कोडेक का सह-अस्तित्व

  • समर्थन-सुरक्षित-के साथ-गैर-सुरक्षित-कोडेक - यदि सुरक्षित कोडेक का उदाहरण और गैर-सुरक्षित कोडेक का उदाहरण एक ही समय में सह-अस्तित्व में नहीं हो सकता है, तो इसे media_codecs.xml फ़ाइल में वैश्विक सेटिंग के रूप में इंगित किया जाना चाहिए।
    <MediaCodecs>
        <Settings>
            <Setting name="supports-secure-with-non-secure-codec" value="false" />
        </Settings>
        <Encoders>
    …
    
  • समर्थन-एकाधिक-सुरक्षित-कोडेक्स - यदि एकाधिक सुरक्षित कोडेक उदाहरणों का सह-अस्तित्व समर्थित नहीं है, तो इसे media_codecs.xml फ़ाइल में वैश्विक सेटिंग के रूप में इंगित किया जाना चाहिए।
    <MediaCodecs>
        <Settings>
            <Setting name="supports-multiple-secure-codecs" value="false" />
        </Settings>
        <Encoders>
    …
    
  • ध्यान दें कि दोनों सेटिंग्स डिफ़ॉल्ट रूप से सत्य हैं, जिसका अर्थ है कि यदि वे समर्थित हैं, तो सेटिंग लाइन को media_codecs.xml में जोड़ने की कोई आवश्यकता नहीं है।
  • यदि ये दो सेटिंग्स ठीक से सेट नहीं की गईं तो ResourceManagerTest सीटीएस परीक्षण विफल हो सकते हैं।