मीडिया कोडेक

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

isSoftwareOnly()
अगर कोडेक सिर्फ़ सॉफ़्टवेयर में चलता है, तो यह 'सही' दिखाता है. सॉफ़्टवेयर कोडेक, रेंडरिंग की परफ़ॉर्मेंस के बारे में कोई गारंटी नहीं देते.
isHardwareAccelerated()
अगर किसी कोडेक को हार्डवेयर से तेज़ किया जाता है, तो यह फ़ंक्शन True दिखाता है.
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() शून्य दिखाता है.