मीडिया कोडेक

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

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

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

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

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

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

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

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

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