एचडीएमआई-सीईसी नियंत्रण सेवा

हाई-डेफिनिशन मल्टीमीडिया इंटरफेस कंज्यूमर इलेक्ट्रॉनिक्स कंट्रोल (एचडीएमआई-सीईसी) मानक मल्टीमीडिया उपभोक्ता उत्पादों को एक दूसरे के साथ संचार और सूचनाओं का आदान-प्रदान करने की अनुमति देता है। एचडीएमआई-सीईसी कई सुविधाओं का समर्थन करता है, जैसे रिमोट कंट्रोल पासथ्रू और सिस्टम ऑडियो कंट्रोल, लेकिन सबसे लोकप्रिय में से एक वन टच प्ले है। वन टच प्ले मीडिया स्रोत डिवाइस को टीवी चालू करने और अपने इनपुट पोर्ट को स्वचालित रूप से स्विच करने की अनुमति देता है, इसलिए आपको अपने क्रोमकास्ट से ब्लू-रे प्लेयर में स्विच करने के लिए टीवी रिमोट की खोज करने की आवश्यकता नहीं है।

एंड्रॉइड 12 के साथ, एचडीएमआई-कनेक्टेड डिस्प्ले का पावर कंट्रोल आंतरिक डिस्प्ले के पावर कंट्रोल के साथ संरेखित होता है। जब एक एचडीएमआई प्लेबैक डिवाइस जागता है, तो यह कनेक्टेड टीवी को जगाने और एचडीएमआई सीईसी वन टच प्ले के माध्यम से वर्तमान सक्रिय स्रोत बनने का प्रयास करता है। यदि वर्तमान सक्रिय स्रोत होने पर डिवाइस सो जाता है, तो यह कनेक्टेड टीवी को बंद करने का प्रयास करता है।

एचडीएमआई-सीईसी का समर्थन करना आम तौर पर वैकल्पिक है। हालांकि, अधिकांश निर्माताओं ने एचडीएमआई-सीईसी को अपनाया है, इसलिए उनके उपकरण अन्य कंपनियों के उपकरणों के साथ काम करते हैं। प्रत्येक निर्माता एचडीएमआई-सीईसी मानक को अलग-अलग तरीकों से लागू करता है, इसलिए डिवाइस हमेशा एक-दूसरे को नहीं समझते हैं और समर्थित सुविधाएं डिवाइस के बीच भिन्न होती हैं। इस भिन्नता के कारण, उपभोक्ता सुरक्षित रूप से यह नहीं मान सकते हैं कि CEC समर्थन का दावा करने वाले दो उत्पाद पूरी तरह से संगत हैं।

एचडीएमआई-सीईसी 2.0 के लिए समर्थन एचडीएमआई उपकरणों के बीच संगतता में सुधार करने में मदद करता है यदि भेजने और प्राप्त करने वाले डिवाइस दोनों मानक के इस संस्करण का समर्थन करते हैं।

समाधान

एंड्रॉइड टीवी इनपुट फ्रेमवर्क (टीआईएफ) की शुरुआत के साथ, एचडीएमआई-सीईसी सभी कनेक्टेड डिवाइसों को एक साथ लाता है और संगतता मुद्दों को कम करता है। एंड्रॉइड ने इन दर्द बिंदुओं को कम करने के लिए HdmiControlService नामक एक सिस्टम सेवा बनाई है।

Android पारिस्थितिकी तंत्र के एक भाग के रूप में HdmiControlService की पेशकश करके, Android निम्नलिखित प्रदान करने की उम्मीद करता है:

  • सभी निर्माताओं के लिए एचडीएमआई-सीईसी का एक मानक कार्यान्वयन, जो डिवाइस की असंगति को कम करेगा। पहले, निर्माताओं को एचडीएमआई-सीईसी के अपने स्वयं के कार्यान्वयन को विकसित करना पड़ता था या तीसरे पक्ष के समाधान का उपयोग करना पड़ता था।
  • एक ऐसी सेवा जिसे बाजार में पहले से मौजूद कई एचडीएमआई-सीईसी उपकरणों के खिलाफ अच्छी तरह से परखा गया है। एंड्रॉइड उत्पादों के बीच संगतता मुद्दों पर कठोर शोध कर रहा है और प्रौद्योगिकी में अनुभवी डिवाइस कार्यान्वयनकर्ताओं से उपयोगी सलाह एकत्र कर रहा है। सीईसी सेवा को मानक और उस मानक में संशोधनों के बीच एक स्वस्थ संतुलन बनाए रखने के लिए डिज़ाइन किया गया है ताकि यह उन उत्पादों के साथ काम करे जिनका लोग पहले से उपयोग कर रहे हैं।

समग्र डिज़ाइन

एचडीएमआईकंट्रोल सर्विस बाकी सिस्टम जैसे टीवी इनपुट फ्रेमवर्क ( HdmiControlService ), ऑडियो सर्विस और पावर सर्विस से जुड़ी है ताकि मानक द्वारा निर्दिष्ट विभिन्न सुविधाओं को लागू किया जा सके।

एक कस्टम सीईसी नियंत्रक से सरल एचडीएमआई-सीईसी हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) के कार्यान्वयन के लिए स्विच के चित्रण के लिए निम्नलिखित आरेख देखें।

आरेख जो दिखाता है कि Android 5.0 के पहले और बाद में HDMI-CEC कैसे लागू किया गया था

चित्रा 1. एचडीएमआई नियंत्रण सेवा प्रतिस्थापन

कार्यान्वयन

एचडीएमआई नियंत्रण सेवा के विस्तृत दृश्य के लिए निम्न आरेख देखें।

छवि जो दिखाती है कि HDMI सेवा विवरण कैसे नियंत्रित करता है

चित्रा 2. एचडीएमआई नियंत्रण सेवा विवरण

यहाँ एक उचित Android HDMI-CEC कार्यान्वयन की मुख्य सामग्री दी गई है:

  • एक प्रबंधक वर्ग HdmiControlManager एपीआई के साथ विशेषाधिकार प्राप्त ऐप्स प्रदान करता है। टीवी इनपुट मैनेजर सेवा और ऑडियो सेवा जैसी सिस्टम सेवाएं सीधे सेवा का उपयोग कर सकती हैं।
  • सेवा को एक से अधिक प्रकार के तार्किक उपकरणों को होस्ट करने की अनुमति देने के लिए डिज़ाइन किया गया है।
  • एचडीएमआई-सीईसी उपकरणों के बीच प्रोटोकॉल और सिग्नलिंग तंत्र के अंतर को संभालने को आसान बनाने के लिए हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) के माध्यम से हार्डवेयर से जुड़ा है। एचएएल की परिभाषा डिवाइस निर्माताओं के लिए एचएएल परत को लागू करने के लिए उपयोग करने के लिए उपलब्ध है।

नोट : डिवाइस निर्माताओं को 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

इस पर निर्भर करते हुए कि आपका डिवाइस एचडीएमआई सिंक डिवाइस है या एचडीएमआई सोर्स डिवाइस है, डिवाइस निर्माताओं को HdmiControlService device.mk ro.hdmi.device_type में सेट करना होगा।

एचडीएमआई स्रोत उपकरणों के लिए, जैसे कि ओवर द टॉप (ओटीटी) या सेट-टॉप बॉक्स (एसटीबी) डिवाइस, सेट करें:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4

पैनल टीवी जैसे HDMI सिंक डिवाइस के लिए, सेट करें:

PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=0
  • एक डिवाइस निर्माता द्वारा प्रदान किया गया मालिकाना सीईसी नियंत्रक HdmiControlService के साथ सह-अस्तित्व में नहीं हो सकता है। इसे अक्षम या हटा दिया जाना चाहिए। इसके लिए सामान्य आवश्यकताएं निर्माता-विशिष्ट आदेशों को संभालने की आवश्यकता से आती हैं। निर्माता-विशिष्ट कमांड हैंडलर को सेवा में विस्तारित/संशोधित करके शामिल किया जाना चाहिए। यह काम डिवाइस निर्माता पर छोड़ दिया गया है और Android द्वारा निर्दिष्ट नहीं किया गया है। ध्यान दें कि निर्माता-विशिष्ट आदेशों के लिए सेवा में किए गए किसी भी परिवर्तन को मानक आदेशों को संभालने के तरीके में हस्तक्षेप नहीं करना चाहिए या डिवाइस Android संगत नहीं होगा।
  • एचडीएमआई-सीईसी सेवा तक पहुंच सुरक्षा स्तर SignatureOrSystem से सुरक्षित है। केवल सिस्टम घटक या /system/priv-app में रखे गए ऐप्स ही सेवा तक पहुंच सकते हैं। यह सेवा को दुर्भावनापूर्ण इरादे वाले ऐप्स द्वारा दुरुपयोग से बचाने के लिए है।

एंड्रॉइड टाइप TV/Display(0) , Playback device(4) का समर्थन करता है जो सक्रिय स्रोत बनने के लिए वन टच प्ले कमांड जारी कर सकता है और Audio System (5) जो सिस्टम ऑडियो मोड और एआरसी को संभालता है। अन्य डिवाइस प्रकार (ट्यूनर और रिकॉर्डर) वर्तमान में समर्थित नहीं हैं।

एचडीएमआई-सीईसी एचएएल

एचडीएमआई-सीईसी एचएएल एपीआई HdmiControlService -सीईसी कमांड को भेजने / प्राप्त करने के लिए एचडीएमआई-सीईसी एचएएल एपीआई को हार्डवेयर संसाधन का उपयोग करने देता है, आवश्यक सेटिंग्स को कॉन्फ़िगर करता है, और (वैकल्पिक रूप से) अंतर्निहित प्लेटफॉर्म में माइक्रोप्रोसेसर के साथ संचार करता है जो सीईसी नियंत्रण को संभाल लेगा। सिस्टम स्टैंडबाय मोड में है।

संस्करण विशेषताएँ एचएएल फाइलें
1.0 HAL डेटा (पते, सुविधाएँ) कॉन्फ़िगर करें। एचडीएमआई-सीईसी कमांड भेजें। एचडीएमआई-सीईसी कमांड और हॉटप्लग इवेंट प्राप्त करने के लिए कॉलबैक पंजीकृत करें। IHdmiCec.hal
IHdmiCecCallback.hal
1.1 एचडीएमआई-सीईसी 2.0 प्रकार का परिचय दें @1.1::IHdmiCec.hal
@1.1::IHdmiCecCallback.hal

परिक्षण

एचडीएमआई- सीईसी सीटीएस दस्तावेज के अनुसार सीटीएस परीक्षणों के माध्यम से उपकरणों के एचडीएमआई-सीईसी कार्यान्वयन का परीक्षण और सत्यापन किया जाता है।

एचडीएमआई-सीईसी 2.0

एंड्रॉइड स्रोत (प्लेबैक) और सिंक (टीवी पैनल) डिवाइस एचडीएमआई-सीईसी 2.0 का समर्थन करते हैं। एचडीएमआई-सीईसी 2.0 एचडीएमआई उपकरणों के बीच बेहतर इंटरऑपरेबिलिटी, रिमोट कंट्रोल पासथ्रू में सुधार और अधिक व्यापक प्रमाणन परीक्षण प्रदान करता है। आम तौर पर, अन्य उपकरणों के साथ एचडीएमआई-सीईसी 2.0 इंटरैक्शन अधिक कुशल होते हैं, जिसके परिणामस्वरूप एचडीएमआई-सीईसी ट्रैफ़िक कम होता है और साथ ही तेज़ इंटरैक्शन भी होता है।

एचडीएमआई-सीईसी 2.0 का समर्थन करने के लिए डिवाइस के लिए डिवाइस और उपयोगकर्ता कॉन्फ़िगरेशन को एचडीएमआई-सीईसी 2.0 का उपयोग करने के लिए सेट किया जाना चाहिए। HAL कार्यान्वयन को IHdmiCec#getCecVersion को कॉल में HDMI-CEC 2.0 के लिए समर्थन की रिपोर्ट भी देनी चाहिए।

सीईसी विन्यास

एचडीएमआई-सीईसी व्यवहार को बिल्ड टाइम (आरआरओ का उपयोग करने वाले ओईएम द्वारा) और रनटाइम ( HdmiControlManager @SystemApi द्वारा) दोनों पर कॉन्फ़िगर किया जा सकता है।

एचडीएमआई-सीईसी सेटिंग्स के उदाहरण:

स्थापना विकल्प
एचडीएमआई-सीईसी सक्षम या अक्षम है या नहीं। सक्रिय
अक्षम
प्लेबैक डिवाइस द्वारा भेजे गए एचडीएमआई-सीईसी पावर कंट्रोल संदेशों का दायरा। केवल टीवी के लिए
टीवी और ऑडियो सिस्टम के लिए
प्रसारण
कोई भी नहीं

वर्तमान में उपलब्ध और अनुमत विकल्पों में से प्रत्येक सेटिंग के लिए रन टाइम पर ऐप्स द्वारा पूछताछ की जा सकती है।