মিডিয়া রিসোর্স ম্যানেজারের জন্য OEM নির্ভরতা

এই দস্তাবেজটি আসল সরঞ্জাম প্রস্তুতকারকদের (OEMs) সঠিকভাবে 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>

OEMs এই পরীক্ষাটি পরীক্ষায় উত্তীর্ণ সমকালীন সীমা তৈরি করতে ব্যবহার করতে পারে। এটা করতে:

  1. cts-tradefed ব্যবহার করে প্রথমে পরীক্ষাটি চালান।
  2. ফলাফল ব্যর্থতা বার্তা মূল্যায়ন. এখানে একটি উদাহরণ:
    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>
    
  3. /etc/media_codecs.xml ফাইলে পরীক্ষা ব্যর্থতার বার্তায় প্রস্তাবিত concurrent-instances লাইনগুলি যোগ করুন।
  4. এর সাফল্য যাচাই করতে পরীক্ষাটি পুনরায় চালান।

ভিডিও কোডেকগুলির জন্য অর্জনযোগ্য ফ্রেম রেট

VideoCapabilities.getAchievableFrameRatesFor ইন্টারফেস একটি ভিডিও আকারের জন্য অর্জনযোগ্য ভিডিও ফ্রেম হারের পরিসীমা প্রদান করে। /etc/media_codecs_performance.xml এ স্থাপিত একটি XML ফাইলের মাধ্যমে প্রতিটি ডিভাইসের জন্য OEM দ্বারা এই তথ্য প্রদান করা আবশ্যক। এই সেটিংস com.android.cts.videoperf.VideoEncoderDecoderTest এবং android.media.cts.VideoDecoderPerfTest CTS পরীক্ষা দ্বারা পরীক্ষা করা হয়।

OEMs পরীক্ষায় উত্তীর্ণ XML ফাইলগুলি তৈরি করতে CTS পরীক্ষাগুলি ব্যবহার করতে পারে। এটা করতে:

  1. cts-tradefed ব্যবহার করে প্রথমে পরীক্ষা চালান। অ্যান্ড্রয়েড কর্মক্ষমতার পরিবর্তনশীলতার পরিপ্রেক্ষিতে, আরও সঠিক ন্যূনতম এবং সর্বোচ্চ মান পেতে পরীক্ষাগুলি একাধিকবার চালানোর পরামর্শ দেওয়া হয়।
  2. XML ফাইল তৈরি করতে দেওয়া get_achievable_rates.py স্ক্রিপ্ট ব্যবহার করুন।
  3. XML ফাইলটি এখানে রাখুন: /etc/media_codecs_performance.xml
    এটি সাধারণত ডিভাইস প্রকল্পে (device/ <vendor> / <product> ) XML ফাইল স্থাপন করে এবং 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
    
  4. তাদের সাফল্য যাচাই করতে পারফরম্যান্স পরীক্ষাগুলি পুনরায় চালান।

নিরাপদ কোডেক এবং অ-সুরক্ষিত কোডেক এর সহাবস্থান

  • 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 এ সেটিং লাইন যোগ করার দরকার নেই।
  • ResourceManagerTest CTS পরীক্ষা ব্যর্থ হতে পারে যদি এই দুটি সেটিংস সঠিকভাবে সেট না করা হয়।