মিডিয়া

অ্যান্ড্রয়েড মিডিয়া এইচএএল আইকন

অ্যান্ড্রয়েডে স্থানীয় স্তরের মিডিয়া প্লেব্যাক ইঞ্জিন স্টেজফ্রেট অন্তর্ভুক্ত রয়েছে যা জনপ্রিয় মিডিয়া ফর্ম্যাটগুলির জন্য অন্তর্নির্মিত সফ্টওয়্যার ভিত্তিক কোডেক রয়েছে।

স্টেজফ্রাইট অডিও এবং ভিডিও প্লেব্যাক বৈশিষ্ট্যগুলির মধ্যে ওপেনম্যাক্স কোডেকস, সেশন ম্যানেজমেন্ট, সময়-সিঙ্ক্রোনাইজ করা রেন্ডারিং, পরিবহন নিয়ন্ত্রণ এবং ডিআরএম অন্তর্ভুক্ত রয়েছে।

স্টেজফ্রাইট আপনার দ্বারা সরবরাহিত কাস্টম হার্ডওয়্যার কোডেকগুলির সাথে একীকরণকে সমর্থন করে। মিডিয়াটিকে এনকোড এবং ডিকোড করার জন্য একটি হার্ডওয়্যার পাথ সেট করতে, আপনাকে অবশ্যই একটি ওপেনম্যাক্স আইএল (ইন্টিগ্রেশন লেয়ার) উপাদান হিসাবে একটি হার্ডওয়্যার-ভিত্তিক কোডেক প্রয়োগ করতে হবে।

দ্রষ্টব্য: স্টেজফ্রাইট আপডেটগুলি অ্যান্ড্রয়েড মাসিক সুরক্ষা আপডেট প্রক্রিয়া এবং অ্যান্ড্রয়েড ওএস রিলিজের অংশ হিসাবে ঘটতে পারে।

আর্কিটেকচার

মিডিয়া অ্যাপ্লিকেশনগুলি নিম্নলিখিত আর্কিটেকচার অনুসারে অ্যান্ড্রয়েড নেটিভ মাল্টিমিডিয়া কাঠামোর সাথে যোগাযোগ করে।

অ্যান্ড্রয়েড মিডিয়া আর্কিটেকচার

চিত্র 1. মিডিয়া আর্কিটেকচার

অ্যাপ্লিকেশন ফ্রেমওয়ার্ক
অ্যাপ্লিকেশন ফ্রেমওয়ার্ক স্তরে এমন অ্যাপ্লিকেশন কোড যা অ্যান্ড্রয়েড.মিডিয়া এপিআইগুলি মাল্টিমিডিয়া হার্ডওয়্যার সাথে ইন্টারেক্ট করার জন্য ব্যবহার করে।
বাইন্ডার আইপিসি
বাইন্ডার আইপিসি প্রক্সিগুলি প্রক্রিয়া সীমানা সম্পর্কে যোগাযোগের সুবিধার্থে। এগুলি frameworks/av/media/libmedia ডিরেক্টরিতে অবস্থিত এবং "আমি" অক্ষর দিয়ে শুরু হয়।
নেটিভ মাল্টিমিডিয়া ফ্রেমওয়ার্ক
নেটিভ স্তরে, অ্যান্ড্রয়েড একটি মাল্টিমিডিয়া ফ্রেমওয়ার্ক সরবরাহ করে যা স্টেজফ্রেট ইঞ্জিনটি অডিও এবং ভিডিও রেকর্ডিং এবং প্লেব্যাকের জন্য ব্যবহার করে। স্টেজফ্রাইট সমর্থিত সফ্টওয়্যার কোডেকগুলির একটি ডিফল্ট তালিকা নিয়ে আসে এবং আপনি ওপেনম্যাক্স ইন্টিগ্রেশন স্তর স্ট্যান্ডার্ডটি ব্যবহার করে নিজের হার্ডওয়্যার কোডেক প্রয়োগ করতে পারেন। আরও বাস্তবায়নের বিশদগুলির জন্য, frameworks/av/media অবস্থিত মিডিয়াপ্লেয়ার এবং স্টেজফ্রাইট উপাদানগুলি দেখুন।
ওপেনম্যাক্স ইন্টিগ্রেশন লেয়ার (আইএল)
ওপেনম্যাক্স আইএল স্টেজফ্রেটকে কাস্টম হার্ডওয়্যার-ভিত্তিক মাল্টিমিডিয়া কোডেক নামে পরিচিত উপাদানগুলি সনাক্ত এবং ব্যবহার করার জন্য একটি মানক উপায় সরবরাহ করে। আপনি নামে একটি ভাগ গ্রন্থাগার আকারে একটি OpenMAX প্লাগইন প্রদান করতে হবে libstagefrighthw.so । এই প্লাগইনটি আপনার কাস্টম কোডেক উপাদানগুলির সাথে স্টেজফ্রাইটকে লিঙ্ক করে, যা অবশ্যই ওপেনম্যাক্স আইএল উপাদান উপাদান অনুসারে প্রয়োগ করা উচিত।

কাস্টম কোডেক বাস্তবায়ন করা হচ্ছে

স্টেজফ্রাইট সাধারণ মিডিয়া ফর্ম্যাটগুলির জন্য অন্তর্নির্মিত সফ্টওয়্যার কোডেক সহ আসে তবে আপনি নিজের কাস্টম হার্ডওয়্যার কোডকে ওপেনম্যাক্স উপাদান হিসাবে যুক্ত করতে পারেন। এটি করতে, আপনাকে অবশ্যই ওএমএক্স উপাদান এবং একটি ওএমএক্স প্লাগইন তৈরি করতে হবে যা আপনার কাস্টম কোডকে স্টেজফ্রেট ফ্রেমওয়ার্কের সাথে একত্রে হুক করে। উদাহরণস্বরূপ উপাদানগুলির জন্য, hardware/ti/omap4xxx/domx/ ; গ্যালাক্সি নেক্সাসের জন্য উদাহরণস্বরূপ প্লাগইনটির জন্য, hardware/ti/omap4xx/libstagefrighthw

আপনার নিজস্ব কোডেক যুক্ত করতে:

  1. ওপেনম্যাক্স আইএল উপাদান উপাদান অনুযায়ী আপনার উপাদানগুলি তৈরি করুন। উপাদান ইন্টারফেসটি frameworks/native/include/media/OpenMAX/OMX_Component.h ফাইলটিতে অবস্থিত। ওপেনম্যাক্স আইএল স্পেসিফিকেশন সম্পর্কে আরও জানতে, ওপেনম্যাক্স ওয়েবসাইটটি দেখুন
  2. একটি ওপেনম্যাক্স প্লাগইন তৈরি করুন যা স্টেজফ্রাইট পরিষেবার সাথে আপনার উপাদানগুলিকে যুক্ত করে। প্লাগইনটি তৈরি করতে ইন্টারফেসের জন্য frameworks/native/include/media/hardware/OMXPluginBase.h এবং HardwareAPI.h হেডার ফাইলগুলি দেখুন।
  3. আপনার পণ্য libstagefrighthw.so নামের সাথে একটি শেয়ারকৃত লাইব্রেরি হিসাবে আপনার প্লাগইন তৈরি করুন। উদাহরণ স্বরূপ:
    LOCAL_MODULE := libstagefrighthw
    

    আপনার ডিভাইসের মেকফাইলে, আপনি মডিউলটিকে পণ্য প্যাকেজ হিসাবে ঘোষণা করার বিষয়টি নিশ্চিত করুন:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

কাঠামোর কাঠামোতে প্রকাশ করা

Stagefright সেবা parses system/etc/media_codecs.xml এবং system/etc/media_profiles.xml মাধ্যমে অ্যাপ্লিকেশান বিকাশকারীদের কাছে সমর্থিত কোডেক এবং ডিভাইস প্রোফাইলগুলি এক্সপোজ করতে android.media.MediaCodecList এবং android.media.CamcorderProfile ক্লাস। আপনার অবশ্যই device/<company>/<device>/ ডিরেক্টরিতে দুটি ফাইল তৈরি করতে হবে এবং এটি আপনার ডিভাইসের মেকফাইলে সিস্টেম চিত্রের system/etc ডিরেক্টরিতে অনুলিপি করতে হবে। উদাহরণ স্বরূপ:

0 বি52953820

সম্পূর্ণ উদাহরণের জন্য, device/samsung/tuna/media_codecs.xml এবং device/samsung/tuna/media_profiles.xml

দ্রষ্টব্য: অ্যান্ড্রয়েড ৪.১ হিসাবে, মিডিয়া কোডেকগুলির জন্য <Quirk> উপাদানটি আর সমর্থিত নয়।