Android 10 (एपीआई लेवल 29) और उसके बाद वाले वर्शन से, MediaCodecInfo
में ऐसे तरीके दिए गए हैं जो कोडेक के बारे में ज़्यादा जानकारी देते हैं:
isSoftwareOnly()
- अगर कोडेक सिर्फ़ सॉफ़्टवेयर में चलता है, तो यह 'सही' दिखाता है. सॉफ़्टवेयर कोडेक, रेंडरिंग परफ़ॉर्मेंस की कोई गारंटी नहीं देते.
isHardwareAccelerated()
- अगर हार्डवेयर की मदद से कोडेक को तेज़ी से खोला जाता है, तो 'सही' दिखाता है.
isVendor()
- अगर कोडेक डिवाइस वेंडर से मिला है, तो यह फ़ंक्शन 'सही' दिखाता है. अगर कोडेक Android प्लैटफ़ॉर्म से मिला है, तो यह फ़ंक्शन 'गलत' दिखाता है.
isAlias()
MediaCodecList
में, कोडेक के वैकल्पिक नाम (उपनाम) का इस्तेमाल करके, उसी कोडेक के लिए अतिरिक्त एंट्री हो सकती हैं. अगर इस एंट्री में मौजूद कोडेक, किसी दूसरे कोडेक का दूसरा नाम है, तो यह मेथड 'सही' दिखाता है.
इसके अलावा, MediaCodec.getCanonicalName()
, किसी दूसरे नाम से बनाए गए कोडेक के लिए, कोडेक का मूल नाम दिखाता है.
परफ़ॉर्मेंस पॉइंट
परफ़ॉर्मेंस पॉइंट से पता चलता है कि किसी खास ऊंचाई, चौड़ाई, और फ़्रेम रेट पर वीडियो को रेंडर करने के लिए, कोडेक की क्षमता कैसी है. उदाहरण के लिए, UHD_60
परफ़ॉर्मेंस पॉइंट, 60 फ़्रेम प्रति सेकंड पर रेंडर होने वाले अल्ट्रा हाई डेफ़िनिशन वीडियो (3840x2160 पिक्सल) को दिखाता है.
यह तरीका, PerformancePoint
वाली उन एंट्री की सूची दिखाता है जिन्हें कोडेक रेंडर या कैप्चर कर सकता है.MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
PerformancePoint.covers(PerformancePoint)
को कॉल करके, यह देखा जा सकता है कि कोई PerformancePoint
किसी दूसरे PerformancePoint
को कवर करता है या नहीं.
उदाहरण के लिए, UHD_60.covers(UHD_50)
से true मिलता है.
हार्डवेयर से तेज़ किए गए सभी कोडेक के लिए, परफ़ॉर्मेंस पॉइंट की सूची दी गई है. अगर कोडेक, परफ़ॉर्मेंस के सबसे कम स्टैंडर्ड को भी पूरा नहीं करता है, तो यह सूची खाली हो सकती है.
ध्यान दें कि वेंडर इमेज को अपडेट किए बिना, Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन पर अपग्रेड किए गए डिवाइसों में परफ़ॉर्मेंस पॉइंट का डेटा नहीं होगा. ऐसा इसलिए, क्योंकि यह डेटा वेंडर एचएएल से मिलता है. इस मामले में, getSupportedPerformancePoints()
शून्य दिखाता है.