HDMI-CEC কন্ট্রোল সার্ভিস

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

Android 12 এর সাথে, HDMI-সংযুক্ত ডিসপ্লের পাওয়ার কন্ট্রোল অভ্যন্তরীণ ডিসপ্লের পাওয়ার কন্ট্রোলের সাথে সারিবদ্ধ হয়। যখন একটি HDMI প্লেব্যাক ডিভাইস জেগে ওঠে, তখন এটি সংযুক্ত টিভিটিকে জাগানোর চেষ্টা করে এবং HDMI CEC One Touch Play এর মাধ্যমে বর্তমান সক্রিয় উত্স হয়ে ওঠে। যদি ডিভাইসটি বর্তমান সক্রিয় উত্স থাকাকালীন ঘুমাতে যায়, তাহলে এটি সংযুক্ত টিভিটি বন্ধ করার চেষ্টা করে।

HDMI-CEC সমর্থন করা সাধারণত ঐচ্ছিক। যাইহোক, বেশিরভাগ নির্মাতারা HDMI-CEC গ্রহণ করেছে তাই তাদের ডিভাইস অন্যান্য কোম্পানির ডিভাইসের সাথে কাজ করে। প্রতিটি প্রস্তুতকারক বিভিন্ন উপায়ে HDMI-CEC মান প্রয়োগ করে, তাই ডিভাইসগুলি সবসময় একে অপরকে বুঝতে পারে না এবং সমর্থিত বৈশিষ্ট্যগুলি ডিভাইসগুলির মধ্যে পরিবর্তিত হয়। এই ভিন্নতার কারণে, ভোক্তারা নিরাপদে অনুমান করতে পারে না যে দুটি পণ্য যে CEC সমর্থন দাবি করে তা সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ।

HDMI-CEC 2.0-এর জন্য সমর্থন HDMI ডিভাইসগুলির মধ্যে সামঞ্জস্য উন্নত করতে সাহায্য করে যদি পাঠানো এবং গ্রহণকারী উভয় ডিভাইসই স্ট্যান্ডার্ডের এই সংস্করণটিকে সমর্থন করে।

সমাধান

Android TV ইনপুট ফ্রেমওয়ার্ক (TIF), HDMI-CEC সমস্ত সংযুক্ত ডিভাইসগুলিকে একত্রিত করে এবং সামঞ্জস্যের সমস্যাগুলিকে কমিয়ে আনে৷ অ্যান্ড্রয়েড এই ব্যথার পয়েন্টগুলি HdmiControlService নামে একটি সিস্টেম পরিষেবা তৈরি করেছে।

অ্যান্ড্রয়েড ইকোসিস্টেমের একটি অংশ হিসাবে HdmiControlService অফার করার মাধ্যমে, Android প্রদান করার আশা করে:

  • সমস্ত নির্মাতাদের জন্য HDMI-CEC-এর একটি আদর্শ বাস্তবায়ন, যা ডিভাইসের অসামঞ্জস্যতা হ্রাস করবে। পূর্বে, নির্মাতাদের HDMI-CEC-এর নিজস্ব বাস্তবায়ন বা তৃতীয় পক্ষের সমাধান ব্যবহার করতে হতো।
  • একটি পরিষেবা যা ইতিমধ্যেই বাজারে থাকা অসংখ্য HDMI-CEC ডিভাইসের বিরুদ্ধে ভালভাবে পরীক্ষা করা হয়েছে৷ অ্যান্ড্রয়েড পণ্যগুলির মধ্যে পাওয়া সামঞ্জস্যের সমস্যাগুলির উপর কঠোর গবেষণা পরিচালনা করছে এবং প্রযুক্তিতে অভিজ্ঞ ডিভাইস বাস্তবায়নকারীদের কাছ থেকে দরকারী পরামর্শ সংগ্রহ করছে। সিইসি পরিষেবাটি স্ট্যান্ডার্ড এবং সেই স্ট্যান্ডার্ডে পরিবর্তনগুলির মধ্যে একটি স্বাস্থ্যকর ভারসাম্য বজায় রাখার জন্য ডিজাইন করা হয়েছে যাতে লোকেরা ইতিমধ্যে ব্যবহার করে এমন পণ্যগুলির সাথে এটি কাজ করে৷

সামগ্রিক নকশা

HdmiControlService অন্যান্য সিস্টেমের সাথে সংযুক্ত থাকে যেমন টিভি ইনপুট ফ্রেমওয়ার্ক (TIF), অডিও পরিষেবা, এবং পাওয়ার পরিষেবা স্ট্যান্ডার্ড নির্দিষ্ট করা বিভিন্ন বৈশিষ্ট্য বাস্তবায়ন করতে।

একটি কাস্টম সিইসি কন্ট্রোলার থেকে সহজতর HDMI-CEC হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) বাস্তবায়নে সুইচের চিত্রের জন্য নিম্নলিখিত চিত্রটি দেখুন।

HDMI-CEC কীভাবে Android 5.0-এর আগে এবং পরে বাস্তবায়িত হয়েছিল তা দেখায়

চিত্র 1. HDMI কন্ট্রোল সার্ভিস প্রতিস্থাপন

বাস্তবায়ন

HDMI কন্ট্রোল পরিষেবার বিশদ দৃশ্যের জন্য নিম্নলিখিত চিত্রটি দেখুন।

চিত্র যেটি দেখায় কিভাবে HDMI পরিষেবার বিবরণ নিয়ন্ত্রণ করে৷

চিত্র 2. HDMI কন্ট্রোল সার্ভিসের বিবরণ

এখানে একটি সঠিক Android HDMI-CEC বাস্তবায়নের মূল উপাদান রয়েছে:

  • একটি ম্যানেজার ক্লাস HdmiControlManager API-এর সাথে বিশেষ সুবিধাপ্রাপ্ত অ্যাপ প্রদান করে। টিভি ইনপুট ম্যানেজার পরিষেবা এবং অডিও পরিষেবার মতো সিস্টেম পরিষেবাগুলি সরাসরি পরিষেবাটি ব্যবহার করতে পারে৷
  • পরিষেবাটি একাধিক ধরণের লজিক্যাল ডিভাইস হোস্ট করার অনুমতি দেওয়ার জন্য ডিজাইন করা হয়েছে।
  • HDMI-CEC একটি হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) এর মাধ্যমে হার্ডওয়্যারের সাথে সংযুক্ত থাকে যাতে ডিভাইসগুলির মধ্যে প্রোটোকল এবং সিগন্যালিং মেকানিজমের পার্থক্যগুলি পরিচালনা করা সহজ হয়৷ এইচএএল সংজ্ঞাটি ডিভাইস নির্মাতাদের HAL স্তর বাস্তবায়নের জন্য ব্যবহার করার জন্য উপলব্ধ।

দ্রষ্টব্য : ডিভাইস নির্মাতাদের অবশ্যই device.mk এর PRODUCT_COPY_FILES এ নিম্নলিখিত লাইনটি যুক্ত করা উচিত।

PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml

আপনার ডিভাইসটি একটি HDMI সিঙ্ক ডিভাইস বা একটি HDMI সোর্স ডিভাইস কিনা তার উপর নির্ভর করে, HdmiControlService সঠিকভাবে কাজ করার জন্য ডিভাইস নির্মাতাদের ro.hdmi.device_typedevice.mk সেট করতে হবে৷

HDMI সোর্স ডিভাইসের জন্য, যেমন ওভার দ্য টপ (OTT) বা সেট-টপ বক্স (STB) ডিভাইস, সেট করুন:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4

HDMI সিঙ্ক ডিভাইসের জন্য, যেমন প্যানেল টিভি, সেট করুন:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=0
  • একটি ডিভাইস প্রস্তুতকারক-প্রদত্ত মালিকানাধীন CEC কন্ট্রোলার HdmiControlService সাথে সহাবস্থান করতে পারে না। এটা নিষ্ক্রিয় বা অপসারণ করা আবশ্যক. এর জন্য সাধারণ প্রয়োজনীয়তাগুলি প্রস্তুতকারক-নির্দিষ্ট কমান্ডগুলি পরিচালনা করার প্রয়োজন থেকে আসে। প্রস্তুতকারক-নির্দিষ্ট কমান্ড হ্যান্ডলারকে প্রসারিত/পরিবর্তন করে পরিষেবাতে অন্তর্ভুক্ত করা উচিত। এই কাজটি ডিভাইস প্রস্তুতকারকের উপর ছেড়ে দেওয়া হয়েছে এবং Android দ্বারা নির্দিষ্ট করা হয়নি। মনে রাখবেন যে প্রস্তুতকারক-নির্দিষ্ট কমান্ডের জন্য পরিষেবাতে করা যেকোনো পরিবর্তন মানক কমান্ড পরিচালনার পদ্ধতিতে হস্তক্ষেপ করবে না বা ডিভাইসটি Android সামঞ্জস্যপূর্ণ হবে না।
  • HDMI-CEC পরিষেবার অ্যাক্সেস সুরক্ষা স্তর SignatureOrSystem দ্বারা সুরক্ষিত। শুধুমাত্র সিস্টেম কম্পোনেন্ট বা /system/priv-app এ রাখা অ্যাপগুলি পরিষেবাটি অ্যাক্সেস করতে পারে। এটি দূষিত অভিপ্রায় সহ অ্যাপগুলির অপব্যবহার থেকে পরিষেবাটিকে রক্ষা করার জন্য৷

অ্যান্ড্রয়েড টাইপ TV/Display(0) , Playback device(4) সমর্থন করে যা সক্রিয় উৎস হতে ওয়ান টাচ প্লে কমান্ড জারি করতে পারে এবং Audio System (5) যা সিস্টেম অডিও মোড এবং ARC পরিচালনা করে। অন্যান্য ডিভাইস প্রকার (টিউনার এবং রেকর্ডার) বর্তমানে সমর্থিত নয়।

HDMI-CEC HAL

HDMI-CEC HAL API HdmiControlService কে HDMI-CEC কমান্ড পাঠাতে/গ্রহণ করতে, প্রয়োজনীয় সেটিংস কনফিগার করতে এবং (ঐচ্ছিকভাবে) অন্তর্নিহিত প্ল্যাটফর্মে মাইক্রোপ্রসেসরের সাথে যোগাযোগ করতে হার্ডওয়্যার সংস্থান ব্যবহার করতে দেয় যা অ্যান্ড্রয়েড থাকাকালীন CEC নিয়ন্ত্রণ গ্রহণ করবে। সিস্টেম স্ট্যান্ডবাই মোডে আছে।

সংস্করণ বৈশিষ্ট্য HAL ফাইল
1.0 HAL ডেটা কনফিগার করুন (ঠিকানা, বৈশিষ্ট্য)। HDMI-CEC কমান্ড পাঠান। HDMI-CEC কমান্ড এবং হটপ্লাগ ইভেন্টগুলি পেতে কলব্যাক নিবন্ধন করুন৷ IHdmiCec.hal
IHdmiCecCallback.hal
1.1 HDMI-CEC 2.0 প্রকারের পরিচয় দিন @1.1::IHdmiCec.hal
@1.1::IHdmiCecCallback.hal

পরীক্ষামূলক

HDMI- CEC CTS ডকুমেন্টেশন অনুযায়ী ডিভাইসগুলির HDMI-CEC বাস্তবায়ন CTS পরীক্ষার মাধ্যমে পরীক্ষিত এবং যাচাই করা হয়।

HDMI-CEC 2.0

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

HDMI-CEC 2.0 সমর্থন করার জন্য একটি ডিভাইসের জন্য ডিভাইস এবং ব্যবহারকারীর কনফিগারেশন HDMI-CEC 2.0 ব্যবহার করার জন্য সেট করা আবশ্যক। HAL বাস্তবায়নকে অবশ্যই IHdmiCec#getCecVersion এ কলে HDMI-CEC 2.0-এর সমর্থনের রিপোর্ট করতে হবে।

সিইসি কনফিগারেশন

HDMI-CEC আচরণ বিল্ড টাইম (RROs ব্যবহার করে OEM দ্বারা) এবং রানটাইম ( HdmiControlManager @SystemApi দ্বারা) উভয় সময়েই কনফিগার করা যেতে পারে।

HDMI-CEC সেটিংসের উদাহরণ:

স্থাপন অপশন
HDMI-CEC সক্ষম বা অক্ষম কিনা। সক্রিয়
অক্ষম
একটি প্লেব্যাক ডিভাইস দ্বারা প্রেরিত HDMI-CEC পাওয়ার কন্ট্রোল বার্তাগুলির সুযোগ। শুধুমাত্র টিভিতে
টিভি এবং অডিও সিস্টেমে
সম্প্রচার
কোনোটিই নয়

প্রতিটি সেটিংসের জন্য বর্তমানে উপলব্ধ এবং অনুমোদিত বিকল্পগুলি চালানোর সময় অ্যাপগুলি দ্বারা অনুসন্ধান করা যেতে পারে৷