এই ডকুমেন্টটি মূল সরঞ্জাম প্রস্তুতকারকদের (OEM) Android মিডিয়া রিসোর্স ম্যানেজার ও সংশ্লিষ্ট API-এর জন্য সহায়তা সঠিকভাবে প্রয়োগ করতে সাহায্য করার উদ্দেশ্যে লেখা হয়েছে।
সর্বাধিক কনকারেন্ট কোডেক ইনস্ট্যান্স
CodecCapabilities.getMaxSupportedInstances ইন্টারফেস
একসাথে কাজ করতে পারে এমন কোডেক ইনস্ট্যান্সের সর্বাধিক সংখ্যা রিটার্ন করে।
CTS টেস্ট
testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
ব্যবহার করা হয় যাতে
/etc/media_codecs.xml-এ
সঠিক সর্বাধিক সীমা সেট করা হয়।
এখানে একটি উদাহরণ দেওয়া হল:
...
<MediaCodecs>
...
<Encoders>
<MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" >
...
<Limit name="concurrent-instances" max="13" />
</MediaCodec>
...
</Encoders>
...
</MediaCodecs>
OEM এই পরীক্ষাটি ব্যবহার করে সেইসব কনকারেন্ট সীমা তৈরি করতে পারে যা পরীক্ষায় পাস করে। এটি করতে:
- প্রথমে cts-tradefed ব্যবহার করে টেস্ট রান করুন।
- ফেল হওয়ার ফলে পাওয়া মেসেজ মূল্যায়ন করুন। এখানে একটি উদাহরণ দেওয়া হল:
There was 1 failure: 1) testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest) junit.framework.AssertionFailedError: In order to pass the test, please publish following codecs' concurrent instances limit in /etc/media_codecs.xml: <MediaCodec name="OMX.<vendor>.video.encoder.mpeg4" type="video/mp4v-es" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.encoder.h263" type="video/3gpp" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.encoder.vp8" type="video/x-vnd.on2.vp8" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.avc" type="video/avc" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.avc.secure" type="video/avc" > <Limit name="concurrent-instances" max="4" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.mpeg4" type="video/mp4v-es" > <Limit name="concurrent-instances" max="12" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.h263" type="video/3gpp" > <Limit name="concurrent-instances" max="12" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.vp8" type="video/x-vnd.on2.vp8" > <Limit name="concurrent-instances" max="12" /> </MediaCodec> /etc/media_codecs.xmlফাইলে,concurrent-instancesলাইনের সাজেস্ট করা টেস্ট ফেল হওয়ার মেসেজ যোগ করুন।- এটি সফল হয়েছে কিনা তা যাচাই করতে টেস্টটি আবার চালান।
ভিডিও কোডেকের জন্য অর্জনযোগ্য ফ্রেম রেট
VideoCapabilities.getAchievableFrameRatesFor ইন্টারফেস
ভিডিওর সাইজের জন্য অর্জনযোগ্য ভিডিও ফ্রেম রেঞ্জের রিটার্ন দেয়। এই
তথ্য OEM-কে প্রতিটি ডিভাইসের জন্য
/etc/media_codecs_performance.xml-এ রাখা XML ফাইলের মাধ্যমে প্রদান করতে হবে। এইসব সেটিংস com.android.cts.videoperf.VideoEncoderDecoderTest এবং
android.media.cts.VideoDecoderPerfTest CTS টেস্টের মাধ্যমে
পরীক্ষা করা হয়।
OEM-গুলি CTS টেস্ট ব্যবহার করে XML ফাইল তৈরি করতে পারে যা টেস্টে পাস করে। এটি করতে:
- cts-tradefed ব্যবহার করে প্রথমে টেস্ট রান করুন। Android পারফর্ম্যান্সের পরিবর্তনশীলতার কারণে, আরও সঠিক সর্বনিম্ন ও সর্বোচ্চ ভ্যালু পেতে, একাধিকবার টেস্ট করার সাজেশন দেওয়া হয়।
- XML ফাইল তৈরি করতে, প্রদত্ত get_achievable_rates.py স্ক্রিপ্ট ব্যবহার করুন।
- XML ফাইলটি এখানে রাখুন:
/etc/media_codecs_performance.xml
এটি সাধারণত ডিভাইস প্রোজেক্টে XML ফাইলটি রেখে করা হয় (device/<vendor>/<product>) এবংdevice.mk-এ একটিPRODUCT_COPY_FILESলাইন যোগ করে, যেমন:PRODUCT_COPY_FILES += \ ... device/moto/shamu/media_codecs.xml:system/etc/media_codecs.xml \ + device/moto/shamu/media_codecs_performance.xml:system/etc/media_codecs_performance.xml
- সেগুলি সফলভাবে সম্পন্ন হয়েছে কিনা তা যাচাই করতে পারফর্ম্যান্স টেস্ট আবার চালান।
নিরাপদ কোডেক ও অনিরাপদ কোডেক একসাথে থাকা
- supports-secure-with-non-secure-codec —
সুরক্ষিত কোডেক এবং অসুরক্ষিত কোডেকের ইনস্ট্যান্স একই সময়ে সহাবস্থান করতে না পারলে, সেটি
media_codecs.xmlফাইলে গ্লোবাল সেটিং হিসেবে উল্লেখ করতে হবে।<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> … - supports-multiple-secure-codecs —
একাধিক সুরক্ষিত কোডেক ইনস্ট্যান্সের সহাবস্থান কাজ না করলে, সেটি
media_codecs.xmlফাইলে গ্লোবাল সেটিং হিসেবে উল্লেখ করতে হবে।<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> … - মনে রাখবেন, দুটি সেটিংই ডিফল্ট হিসেবে 'ট্রু' থাকে, অর্থাৎ সেগুলি কাজ করলে,
media_codecs.xml-এ সেটিং লাইন যোগ করার প্রয়োজন নেই। - এই দুটি সেটিংস সঠিকভাবে সেট করা না থাকলে,
ResourceManagerTestCTS টেস্ট ব্যর্থ হতে পারে।