মিডিয়া কোডেক, মিডিয়া কোডেক

অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯) এবং এর পরবর্তী সংস্করণ থেকে, MediaCodecInfo তে এমন কিছু মেথড রয়েছে যা একটি কোডেক সম্পর্কে আরও তথ্য প্রকাশ করে:

isSoftwareOnly()
কোডেকটি শুধুমাত্র সফটওয়্যারে চললে 'true' রিটার্ন করে। সফটওয়্যার কোডেকগুলো রেন্ডারিং পারফরম্যান্স সম্পর্কে কোনো নিশ্চয়তা দেয় না।
isHardwareAccelerated()
কোনো কোডেক হার্ডওয়্যার দ্বারা ত্বরান্বিত হলে true রিটার্ন করে।
isVendor()
কোডেকটি ডিভাইস বিক্রেতা সরবরাহ করলে true, আর অ্যান্ড্রয়েড প্ল্যাটফর্ম সরবরাহ করলে false রিটার্ন করে।
isAlias()
MediaCodecList একই অন্তর্নিহিত কোডেকের জন্য বিকল্প কোডেক নাম (উপনাম) ব্যবহার করে অতিরিক্ত এন্ট্রি থাকতে পারে। এই এন্ট্রিতে থাকা কোডেকটি যদি অন্য কোনো কোডেকের উপনাম হয়, তবে এই মেথডটি 'true' রিটার্ন করে।

এছাড়াও, অ্যালিয়াসের মাধ্যমে তৈরি কোডেকগুলির জন্য MediaCodec.getCanonicalName() অন্তর্নিহিত কোডেকের নামটি ফেরত দেয়।

পারফরম্যান্স পয়েন্ট

একটি পারফরম্যান্স পয়েন্ট একটি নির্দিষ্ট উচ্চতা, প্রস্থ এবং ফ্রেম রেটে ভিডিও রেন্ডার করার জন্য কোনো কোডেকের সক্ষমতাকে বোঝায়। উদাহরণস্বরূপ, UHD_60 পারফরম্যান্স পয়েন্টটি প্রতি সেকেন্ডে ৬০ ফ্রেমে রেন্ডার করা আল্ট্রা হাই ডেফিনিশন ভিডিও (৩৮৪০x২১৬০ পিক্সেল)-কে বোঝায়।

MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() মেথডটি PerformancePoint এন্ট্রিগুলোর একটি তালিকা রিটার্ন করে, যেগুলো কোডেকটি রেন্ডার বা ক্যাপচার করতে পারে।

একটি প্রদত্ত PerformancePoint অন্যটিকে কভার করে কিনা তা আপনি PerformancePoint.covers(PerformancePoint) কল করে যাচাই করতে পারেন। উদাহরণস্বরূপ, UHD_60.covers(UHD_50) true রিটার্ন করে।

সমস্ত হার্ডওয়্যার-অ্যাক্সিলারেটেড কোডেকগুলির জন্য পারফরম্যান্স পয়েন্টের একটি তালিকা প্রদান করা হয়। যদি কোডেকটি সর্বনিম্ন স্ট্যান্ডার্ড পারফরম্যান্স পয়েন্টও পূরণ না করে, তবে এই তালিকাটি খালি থাকতে পারে।

উল্লেখ্য যে, যে ডিভাইসগুলো ভেন্ডর ইমেজ আপডেট না করেই অ্যান্ড্রয়েড ১০ (এপিআই লেভেল ২৯) বা তার উচ্চতর সংস্করণে আপগ্রেড করা হয়েছে, সেগুলোতে পারফরম্যান্স পয়েন্ট ডেটা থাকবে না, কারণ এই ডেটা ভেন্ডর HAL থেকে আসে। এক্ষেত্রে, getSupportedPerformancePoints() ফাংশনটি null রিটার্ন করে।