मीडिया कोडेक

Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन में, MediaCodecInfo में ऐसे तरीके मौजूद हैं जिनसे कोडेक के बारे में ज़्यादा जानकारी मिलती है:

isSoftwareOnly()
अगर कोडेक सिर्फ़ सॉफ़्टवेयर में चलता है, तो 'सही' दिखाता है. सॉफ़्टवेयर कोडेक, रेंडरिंग परफ़ॉर्मेंस की कोई गारंटी नहीं देते.
isHardwareAccelerated()
अगर कोडेक, हार्डवेयर की मदद से तेज़ी से काम करता है, तो 'सही' दिखाता है.
isVendor()
अगर कोडेक, डिवाइस बनाने वाली कंपनी उपलब्ध कराती है, तो 'सही' दिखाता है. वहीं, अगर इसे Android प्लैटफ़ॉर्म उपलब्ध कराता है, तो 'गलत' दिखाता है.
isAlias()
MediaCodecList में, एक ही कोडेक के लिए, कोडेक के दूसरे नाम (एलियास) का इस्तेमाल करके, ज़्यादा एंट्री हो सकती हैं. अगर इस एंट्री में मौजूद कोडेक, किसी दूसरे कोडेक का एलियास है, तो यह तरीका 'सही' दिखाता है.

इसके अलावा, MediaCodec.getCanonicalName() एलियास के ज़रिए बनाए गए कोडेक के लिए, कोडेक का असली नाम दिखाता है.

परफ़ॉर्मेंस पॉइंट

परफ़ॉर्मेंस पॉइंट से पता चलता है कि कोई कोडेक, वीडियो को किसी खास ऊंचाई, चौड़ाई, और फ़्रेम रेट पर रेंडर कर सकता है या नहीं. उदाहरण के लिए, UHD_60 परफ़ॉर्मेंस पॉइंट का मतलब है कि कोडेक, अल्ट्रा हाई डेफ़िनिशन (3840x2160 पिक्सल) वाले वीडियो को 60 फ़्रेम प्रति सेकंड पर रेंडर कर सकता है.

The method MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() तरीका, PerformancePoint एंट्री की सूची दिखाता है. इस सूची में उन एंट्री के बारे में जानकारी होती है जिन्हें कोडेक रेंडर या कैप्चर कर सकता है.

PerformancePoint.covers(PerformancePoint) को कॉल करके, यह देखा जा सकता है कि दिया गया PerformancePoint, किसी दूसरे को कवर करता है या नहीं. उदाहरण के लिए, UHD_60.covers(UHD_50) से 'सही' वैल्यू मिलती है.

हार्डवेयर की मदद से तेज़ी से काम करने वाले सभी कोडेक के लिए, परफ़ॉर्मेंस पॉइंट की सूची दी जाती है. अगर कोडेक, सबसे कम स्टैंडर्ड परफ़ॉर्मेंस पॉइंट के मुताबिक भी काम नहीं करता है, तो यह सूची खाली हो सकती है.

ध्यान दें कि जिन डिवाइसों को Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन पर अपग्रेड किया गया है उनमें परफ़ॉर्मेंस पॉइंट का डेटा नहीं होगा. ऐसा इसलिए, क्योंकि यह डेटा, वेंडर HAL से आता है. हालांकि, अगर वेंडर इमेज को अपडेट किया गया है, तो डिवाइसों में परफ़ॉर्मेंस पॉइंट का डेटा होगा. इस मामले में, getSupportedPerformancePoints() से 'नल' वैल्यू मिलती है.