इस दस्तावेज़ का मकसद, ओरिजनल इक्विपमेंट मैन्युफ़ैक्चरर (OEM) की मदद करना है Android मीडिया रिसोर्स मैनेजर और उससे जुड़े एपीआई के लिए सही तरीके से सपोर्ट लागू किया जा सके.
अधिकतम समवर्ती कोडेक इंस्टेंस
CodecCapabilities.getMaxSupportedInstances
इंटरफ़ेस
यह फ़ंक्शन, एक साथ काम करने वाले कोडेक के ज़्यादा से ज़्यादा इंस्टेंस दिखाता है.
सीटीएस टेस्ट
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>
OEM इस टेस्ट का इस्तेमाल करके, एक साथ कई टेस्ट में पास होने वाली सीमाएं जनरेट कर सकते हैं. ऐसा करने के लिए:
- cts-tradefed का इस्तेमाल करके पहले जांच करें.
- गड़बड़ी के मैसेज का आकलन करें. उदाहरण के लिए:
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>
- टेस्ट के लिए सुझाई गई
concurrent-instances
लाइनें जोड़ें/etc/media_codecs.xml
फ़ाइल पर भेजा जाने वाला गड़बड़ी का मैसेज. - सफल होने की पुष्टि करने के लिए, जांच को फिर से चलाएं.
वीडियो कोडेक के लिए हासिल किए जा सकने वाले फ़्रेम रेट
VideoCapabilities.getAchievableFrameRatesFor
इंटरफ़ेस
इससे किसी वीडियो साइज़ के लिए, हासिल हो सकने वाले वीडियो फ़्रेम रेट की रेंज दिखाता है. यह
OEM की ओर से हर डिवाइस के लिए, यहां दी गई एक्सएमएल फ़ाइल के ज़रिए जानकारी दी जानी चाहिए
/etc/media_codecs_performance.xml
. इन सेटिंग की जांच यह कर रही है:
com.android.cts.videoperf.VideoEncoderDecoderTest
और
android.media.cts.VideoDecoderPerfTest
सीटीएस टेस्ट.
OEM, टेस्ट में पास होने वाली एक्सएमएल फ़ाइलें जनरेट करने के लिए, सीटीएस टेस्ट का इस्तेमाल कर सकते हैं. ऐसा करने के लिए:
- cts-tradefed का इस्तेमाल करके पहले जांच करें. यह देखते हुए Android की परफ़ॉर्मेंस में उतार-चढ़ाव हो सकता है, इसलिए टेस्ट को चलाने का सुझाव दिया जाता है कम से कम और ज़्यादा से ज़्यादा सटीक वैल्यू पाने के लिए, एक से ज़्यादा बार इस्तेमाल करें.
- उपलब्ध कराए गए का उपयोग करें get_achievable_rates.py स्क्रिप्ट.
- एक्सएमएल फ़ाइल को यहां रखें:
/etc/media_codecs_performance.xml
आम तौर पर, डिवाइस प्रोजेक्ट में एक्सएमएल फ़ाइल को जोड़कर ऐसा किया जाता है (device/<vendor>/<product>) औरPRODUCT_COPY_FILES
नेdevice.mk
को इस तरह पंक्ति भेजें: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
- सफलता की पुष्टि करने के लिए, परफ़ॉर्मेंस की जांच फिर से करें.
सुरक्षित कोडेक और असुरक्षित कोडेक का साथ में होना
- गैर-सुरक्षित कोडेक के साथ काम करता है —
अगर सुरक्षित कोडेक का इंस्टेंस और असुरक्षित कोडेक का इंस्टेंस
एक साथ मौजूद रहता है, तो इसका मतलब है कि एक ही समय में
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
के सीटीएस टेस्ट में गड़बड़ी हो सही तरीके से.