मीडिया रिसॉर्स मैनेजर के लिए SoC वेंडर डिपेंडेंसी

इस दस्तावेज़ का मकसद, एक चिप पर सिस्टम (SoC) की सेवा देने वाली कंपनियों को प्राथमिकता, ऑपरेटिंग रेट, और Android मीडिया रिसॉर्स मैनेजर के लिए ज़रूरी हुक के लिए सहायता को सही तरीके से लागू करने में मदद करना है.

OMX_ErrorInsufficientResources

अगर गड़बड़ी, ज़रूरत के मुताबिक संसाधन न होने की वजह से हुई है, तो कोडेक कॉम्पोनेंट को GetHandle, Init, UseBuffer, AllocateBuffer या स्टेट ट्रांज़िशन पर OMX_ErrorInsufficientResources दिखाना चाहिए. गड़बड़ी कोड का इस्तेमाल, मीडिया रिसॉर्स मैनेजर इंडिकेटर के तौर पर करेगा. इससे, मीडिया रिसॉर्स को कम प्राथमिकता वाली अन्य प्रोसेस से रोका जा सकता है.

Android के साथ काम करने से जुड़ा टेस्ट सुइट (सीटीएस) टेस्ट मौजूद है. इसका मकसद, हर कोडेक को catching OMX_ErrorInsufficientResources (पास) या किसी अन्य गड़बड़ी (फ़ेल) तक बार-बार असाइन, कॉन्फ़िगर, और शुरू करना है.

OMX_IndexConfigPriority

इस कॉन्फ़िगरेशन की मदद से, ऐप्लिकेशन को कोडेक की प्राथमिकता के बारे में बताया जा सकता है.

इससे जुड़ी वैल्यू एक पूर्णांक होती है. वैल्यू जितनी ज़्यादा होगी, प्राथमिकता उतनी ही कम होगी. फ़िलहाल, सिर्फ़ दो लेवल काम करते हैं:

  • 0: रीयल टाइम प्राथमिकता - इसका मतलब है कि कोडेक, रीयल टाइम में दी गई परफ़ॉर्मेंस कॉन्फ़िगरेशन (जैसे, फ़्रेम रेट) के साथ काम करेगा. इसका इस्तेमाल सिर्फ़ मीडिया प्लेबैक, कैप्चर, और रीयल टाइम कम्यूनिकेशन के मामलों में किया जाएगा. ऐसा तब किया जाएगा, जब बेहतरीन परफ़ॉर्मेंस का विकल्प काम न कर रहा हो.
  • 1: नॉन-रीयल टाइम प्राथमिकता (सबसे अच्छी कोशिश). यह डिफ़ॉल्ट मान है.

वेंडर को सुझाव दिया जाता है कि वह इसे कोडेक कॉन्फ़िगरेशन और संसाधन की योजना बनाने के लिए, एक हिंट के तौर पर इस्तेमाल करे. इससे, ऐप्लिकेशन की रीयल-टाइम ज़रूरतों को समझने में मदद मिलती है.

रीयल टाइम प्राथमिकता को तब तक न मानें, जब तक इसे 0 पर कॉन्फ़िगर न किया गया हो.

OMX_IndexConfigOperatingRate

इस कॉन्फ़िगरेशन की मदद से, ऐप्लिकेशन को वीडियो के लिए ऑपरेटिंग फ़्रेम रेट या ऑडियो के लिए सैंपल रेट के बारे में बताने की सुविधा मिलती है.

इसका इस्तेमाल, तेज़ी से/धीमी गति से वीडियो कैप्चर करने जैसे मामलों में किया जाता है. इन मामलों में, वीडियो एन्कोडर फ़ॉर्मैट में टारगेट वीडियो चलाने की दर (उदाहरण के लिए, 30 एफ़पीएस) होती है. हालांकि, कॉम्पोनेंट को कैप्चर करने की ज़्यादा दर (उदाहरण के लिए, 240 एफ़पीएस) को मैनेज करना चाहिए.

इस दर का इस्तेमाल, संसाधनों की प्लानिंग और ऑपरेटिंग पॉइंट सेट करने के लिए किया जाना चाहिए.