मीडिया

Android Media HAL का आइकॉन

Android में statusfright स्थानीय स्तर पर एक मीडिया प्लेबैक इंजन शामिल है जिसमें लोकप्रिय मीडिया फ़ॉर्मैट के लिए, सॉफ़्टवेयर पर आधारित कोडेक हों.

स्टेजफ़्राइट ऑडियो और वीडियो प्लेबैक की सुविधाओं में इंटिग्रेट किया गया है OpenMAX कोडेक, सेशन मैनेजमेंट, समय के हिसाब से सिंक की गई रेंडरिंग, ट्रांसपोर्ट और DRM शामिल हैं.

StrateFright, कस्टम हार्डवेयर कोडेक के साथ इंटिग्रेशन भी करता है आपको. मीडिया को एन्कोड और डिकोड करने के लिए हार्डवेयर पाथ सेट करने के लिए, आपको एक OpenMax IL (इंटिग्रेशन लेयर) कॉम्पोनेंट के तौर पर, हार्डवेयर-आधारित कोडेक.

ध्यान दें: स्टेजएफ़राइट अपडेट Android हर महीने की सुरक्षा अपडेट की प्रोसेस के दौरान भी किया जा सकता है.

भवन निर्माण

मीडिया ऐप्लिकेशन, Android नेटिव मल्टीमीडिया फ़्रेमवर्क के साथ इंटरैक्ट करते हैं नीचे दी गई सूची देखें.

Android मीडिया आर्किटेक्चर

पहला डायग्राम. मीडिया आर्किटेक्चर

ऐप्लिकेशन फ़्रेमवर्क
ऐप्लिकेशन फ़्रेमवर्क लेवल पर वह ऐप्लिकेशन कोड होता है जो android.media मल्टीमीडिया हार्डवेयर के साथ इंटरैक्ट करने के लिए एपीआई.
बाइंडर आईपीसी
बाइंडर आईपीसी प्रॉक्सी, प्रोसेस की सीमाओं के अंदर बातचीत की सुविधा देते हैं. वे frameworks/av/media/libmedia डायरेक्ट्री में मौजूद हैं और की शुरुआत "I" अक्षर से होती है.
नेटिव मल्टीमीडिया फ़्रेमवर्क
स्थानीय स्तर पर, Android एक मल्टीमीडिया फ़्रेमवर्क उपलब्ध कराता है, जो यह ऐप्लिकेशन, ऑडियो और वीडियो रिकॉर्ड करने और प्लेबैक के लिए Stagefright इंजन है. स्टेजफ़्राइट इसमें इस्तेमाल किए जा सकने वाले सॉफ़्टवेयर कोडेक की डिफ़ॉल्ट सूची होती है. साथ ही, अगर आपको हम अपने हार्डवेयर कोडेक को OpenMax इंटिग्रेशन लेयर के स्टैंडर्ड का इस्तेमाल करके इस्तेमाल करते हैं. इसके लिए और लागू करने के बारे में ज़्यादा जानकारी के साथ, MediaPlayer और Stagefright कॉम्पोनेंट देखें frameworks/av/media में मौजूद है.
OpenMAX एकीकरण लेयर (IL)
OpenMAX IL का एक स्टैंडर्ड तरीका है, जिससेआप कस्टम हार्डवेयर-आधारित मल्टीमीडिया कोडेक का इस्तेमाल करते हैं, जिन्हें कॉम्पोनेंट कहते हैं. आपको यह जानकारी देनी होगी नाम की एक शेयर की गई लाइब्रेरी के रूप में एक OpenMAX प्लगिन libstagefrighthw.so. यह प्लगिन आपके कस्टम के साथआप Stagefright को लिंक करता है कोडेक कॉम्पोनेंट, जिन्हें OpenMAX IL के मुताबिक लागू किया जाना चाहिए कॉम्पोनेंट स्टैंडर्ड.

कस्टम कोडेक लागू करें

आम तौर पर इस्तेमाल किए जाने वाले मीडिया फ़ॉर्मैट के लिए, Stagefright में पहले से मौजूद सॉफ़्टवेयर कोडेक उपलब्ध होते हैं, लेकिन आपके पास अपने कस्टम हार्डवेयर कोडेक को भी OpenMAX कॉम्पोनेंट के तौर पर जोड़ने का विकल्प होता है. ऐसा करें इसके बाद, आपको एक ओएमएक्स कॉम्पोनेंट और एक ऐसा ओएमएक्स प्लगिन बनाना होगा जो एक-दूसरे से जुड़ सके का इस्तेमाल करें. कॉम्पोनेंट के उदाहरण के लिए, यहां देखें hardware/ti/omap4xxx/domx/; के लिए एक उदाहरण प्लगिन के लिए Galaxy Nexus, hardware/ti/omap4xx/libstagefrighthw देखें.

अपने कोडेक जोड़ने के लिए:

  1. OpenMAX IL कॉम्पोनेंट स्टैंडर्ड के हिसाब से कॉम्पोनेंट बनाएं. कॉन्टेंट बनाने कॉम्पोनेंट इंटरफ़ेस frameworks/native/include/media/OpenMAX/OMX_Component.h फ़ाइल. यहां की यात्रा पर हूं OpenMAX IL की शर्तों के बारे में ज़्यादा जानें. इसके लिए, OpenMAX वेबसाइट.
  2. एक ऐसा OpenMAX प्लगिन बनाएं, जो आपके कॉम्पोनेंट को Stagefright से लिंक करता हो सेवा. प्लग इन बनाने के लिए इंटरफ़ेस के लिए, देखें frameworks/native/include/media/hardware/OMXPluginBase.h और HardwareAPI.h हेडर फ़ाइलें.
  3. नाम के साथ एक शेयर लाइब्रेरी के रूप में अपना प्लग इन बनाएं आपके प्रॉडक्ट की Makefile में libstagefrighthw.so. जैसे:
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
    LOCAL_MODULE := libstagefrighthw
    

    अपने डिवाइस की Makefile में, पक्का करें कि आपने मॉड्यूल को प्रॉडक्ट के तौर पर बताया है पैकेज:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

कोडेक को फ़्रेमवर्क में शामिल करें

Statefright सेवा system/etc/media_codecs.xml को पार्स करती है और system/etc/media_profiles.xml इस्तेमाल किए जा सकने वाले कोडेक दिखाएं प्रोफ़ाइल और डिवाइस पर मौजूद प्रोफ़ाइल के ज़रिए ऐप्लिकेशन डेवलपर को android.media.MediaCodecList और android.media.CamcorderProfile क्लास. आपको दोनों फ़ाइलें बनानी होंगी device/<company>/<device>/ डायरेक्ट्री में और इसे यहां सिस्टम इमेज की system/etc डायरेक्ट्री में कॉपी करें आपके डिवाइस से जुड़ी Makefile. उदाहरण के लिए:

PRODUCT_COPY_FILES += \
  device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \
  device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \

सभी उदाहरणों के लिए, device/samsung/tuna/media_codecs.xml देखें और device/samsung/tuna/media_profiles.xml .

ध्यान दें: Android 4.1 से, मीडिया कोडेक के लिए <Quirk> एलिमेंट अब काम नहीं करता.