कृपया ध्यान दें: इस पृष्ठ का स्वचालित रूप से अनुवाद किया गया है। यदि आप कर सकते हैं, तो आपको इसे इन भाषाओं में से एक में पढ़ना चाहिए:

प्रोग्रामिंग गाइड <एच 1>

एपिस ‘दस्तावेज़ीकरण यहां देखा जा सकता है: <एच 1>

IMP ( Ingenic Media Platform ) ( imp_system.h ) देखें

मूल अवधारणा

टी 20 / टी 21 प्रोग्राम निम्नलिखित अवधारणाओं पर आधारित है:

  1. डिवाइस ( = Device )
    डिवाइस फ़ंक्शन को पूरा करता है। उदाहरण:
    • Framesource : वीडियो क्लिप के आउटपुट को पूरा करें।
    • Encoder : वीडियो कोड या छवि कोड फ़ंक्शन को पूरा करें।
  2. समूह ( = Group )
    समूह सबसे छोटी डेटा-इनपुट इकाई है। एक उपकरण में एकाधिक समूह हो सकते हैं और प्रत्येक समूह केवल एक डेटा इनपुट चैनल प्राप्त कर सकता है। समूह में कई परिणाम हो सकते हैं।
    समूह विशिष्ट “ कार्यों “ के लिए एक कंटेनर भी है। अधिक जानकारी के लिए चैनल अनुभाग में स्पष्टीकरण देखें।
  3. Eligo ( = Output )
    आउटपुट प्रति समूह सबसे छोटी डेटा आउटपुट इकाई है।
    चैनल आमतौर पर एक कार्यात्मक इकाई से संबंधित होता है।
    उदाहरण के लिए:
    • कोडल के लिए, चैनल H264 या कोड फ़ंक्शन JPEG को पूरा करता है।

    • IVS के लिए, एक चैनल एक विशिष्ट एल्गोरिदम के कार्य को पूरा करता है और विशिष्ट एल्गोरिदम विशिष्ट पैरामीटर चैनल बनाने के दौरान निर्दिष्ट किए जाते हैं

    • OSD के लिए, Channel के समान एक क्षेत्र है, एक क्षेत्र एक विशिष्ट सुपरमेटेड क्षेत्र है जो शीर्ष ( छवि ) कवर ( occlusion ), आदि हो सकता है।

    • FrameSource के लिए, एक चैनल एक मूल छवि उत्पन्न करता है और चैनल FrameSource वास्तव में एक समूह है

    एक कार्यात्मक इकाई के रूप में चैनल, आमतौर पर FrameSource समूह को छोड़कर FrameSource ) डेटा प्राप्त करने के लिए संरक्षित किया जाता है।

    विभिन्न उपकरणों के समूह द्वारा रिकॉर्ड किए जा सकने वाले चैनलों की संख्या भी भिन्न होती है।

मॉड्यूल लिंक ( Bind )

दो समूहों के बाद Bind द्वारा लिंक किए जाने के बाद, स्रोत समूह से डेटा स्वचालित रूप से गंतव्य पर भेज देगा।
चूंकि समूह सबसे छोटी डेटा इनपुट इकाई है और आउटपुट सबसे छोटा डेटा आउटपुट इकाई है, deviceID, groupID और outputID srcCell IMP_System_Bind (IMPCell * srcCell, IMPCell * dstCell) के दो पैरामीटर में मान्य हैं।

जबकि dstCell केवल deviceID और groupID के लिए मान्य है, outputID डेटा प्रवेश की तरह समझ में नहीं आता है।

उदाहरण 1:

IMPCell fs_chn0 = {DEV_ID_FS, 0, 0};    // FrameSource deviceID: DEV_ID_FS groupID: 0 outputID: 0
IMPCell enc_grp0 = {DEV_ID_ENC, 0, 0}; // ENC deviceID: DEV_ID_ENC groupID : 0 outputID: 0, où le troisième paramètre de enc_grp0 n'a pas de sens. 
int ret = IMP_System_Bind (& fs_chn0, & enc_grp0);
if(ret <0>)
  printf ("Bind FrameSource Channel0 and Encoder Group0 failed \ n");

परिणाम:

उदाहरण 2:

// flux de données principal
IMPCell fs_chn0 = {DEV_ID_FS, 0, 0};
IMPCell osd_grp0 = {DEV_ID_OSD, 0, 0};
IMPCell enc_grp0 = {DEV_ID_ENC, 0, 0};
int ret = IMP_System_Bind(&fs_chn0, &osd_grp0);
if (ret < 0)
    printf("Bind FrameSource Channel0 and OSD Group0 failed\n");

int ret = IMP_System_Bind(&osd_grp0, &enc_grp0);
if (ret < 0)
    printf("Bind OSD Group0 and Encoder Group0 failed\n");

// flux de données lié 
IMPCell fs_chn1_output0 = {DEV_ID_FS, 1, 0};
IMPCell ivs_grp0 = {DEV_ID_IVS, 0, 0};
IMPCell osd_grp1 = {DEV_ID_OSD, 1, 0};
IMPCell enc_grp1 = {DEV_ID_ENC, 1, 0};

int ret = IMP_System_Bind(&fs_chn1_output0, &ivs_grp0);
if (ret < 0)
    printf("Bind FrameSource Channel1 and IVS Group0 failed\n");

int ret = IMP_System_Bind(&ivs_grp0, &osd_grp1);
if (ret < 0)
    printf("Bind IVS Group0 and OSD Group1 failed\n");

int ret = IMP_System_Bind(&osd_grp1, &enc_grp1);
if (ret < 0)
    printf("Bind OSD Group1 and Encoder Group1 failed\n");

आवेदन एक विशिष्ट अनुप्रयोग Bind : दो-चैनल कोड है।

नोट्स:

कार्यों

int IMP_System_Init (void )

IMP सिस्टम की शुरुआत।

int IMP_System_Exit (void) सिस्टम की शुरुआत। _

इस फ़ंक्शन को कॉल करने के बाद, सभी मेमोरी और handles IMP जारी किया जाएगा, और हार्डवेयर इकाई बंद हो जाएगी।

इस फ़ंक्शन को कॉल करने के बाद, सभी मेमोरी और int64_t IMP_System_GetTimeStamp (void) _ जारी किया जाएगा, और हार्डवेयर इकाई बंद हो जाएगी। (

माइक्रोसेकंड में <एच 1> सिस्टम का समय क्षेत्र प्राप्त करें।
वापसी: सूक्ष्मदर्शी में समय।

माइक्रोसेकंड में <एच 1> सिस्टम का समय क्षेत्र प्राप्त करें। _ वापसी: सूक्ष्मदर्शी में समय। (

माइक्रोसेकंड में टाइमस्टैम्प <एच 1> सिस्टम को परिभाषित करें।
वापसी: 0 यदि सफल हो।

माइक्रोसेकंड में टाइमस्टैम्प <एच 1> सिस्टम को परिभाषित करें। _ वापसी: 0 यदि सफल हो। _

32-बिट रजिस्टर का मूल्य पढ़ें।

void IMP_System_WriteReg32 (uint32 टी regaddr, मान uint32 t)

32-बिट रजिस्टर में मान लिखें।

नोट: कृपया इस एपीआई को सावधानीपूर्वक कॉल करें और रजिस्ट्री के अर्थ की जांच करें, अन्यथा यह सिस्टम त्रुटियों का कारण हो सकता है।

int IMP सिस्टम GetVersion (IMPVersion * pstVersion)

IMP सिस्टम की प्रणाली प्राप्त करें।

const char * IMP सिस्टम GetCPUInfo (void)

सीपीयू मॉडल के बारे में जानकारी प्राप्त करें।
नोट: रिटर्न मान CPU मॉडल का एक स्ट्रिंग है, उदाहरण के लिए, T10 के लिए “T10”और “T10-Lite”है।

int IMP सिस्टम (

स्रोत सेल और गंतव्य के बीच लिंक।

नोट 1: डिवाइस, समूह और आउटपुट की अवधारणाओं के अनुसार, प्रत्येक डिवाइस में कई समूह हो सकते हैं, और प्रत्येक समूह में कई आउटपुट हो सकते हैं, समूह का उपयोग डिवाइस इनपुट इंटरफ़ेस के रूप में किया जाता है, और आउटपुट का उपयोग डिवाइस उत्पाद इंटरफ़ेस के रूप में किया जाता है। इसलिए लिंक वास्तव में आउटपुट डिवाइस के एक निश्चित समूह को इनपुट डिवाइस के एक निश्चित समूह से जोड़ता है।

नोट 2: एक सफल लिंक के बाद, srcCell ( eligo ) द्वारा उत्पन्न डेटा स्वचालित रूप से गंतव्य ( समूह ) में स्थानांतरित कर दिया जाएगा।

int IMP सिस्टम (

स्रोतों और गंतव्यों को अनग्रुप करें।

int IMP सिस्टम (

गंतव्य से संबंधित स्रोत सेल से जानकारी प्राप्त करता है।