يرجى ملاحظة: هذه الصفحة تمت ترجمتها تلقائيًا. إذا استطعت ، يجب أن تقرأها بإحدى اللغات التالية:

                                                                                                                                                 _IMP_ ﺔﺠﻣﺮﺒﻟﺍ ﻞﻴﻟﺩ

                                                                                                                               :ﺎﻨﻫ API ﻖﺋﺎﺛﻭ ﻰﻠﻋ ﻉﻼﻃﻻﺍ ﻦﻜﻤﻳ   * [  النسخة الأصلية باللغة الصينية  ](../../zh/includes.zh/html/)  

IMP ( Ingenic Media Platform ) ( ﺮﻈﻧﺍ imp_system.h )

مفاهيم أساسية

.ﺞﺋﺎﺘﻧ ﺓﺪﻋ ﺔﻋﻮﻤﺠﻤﻠﻟ ﻥﻮﻜﻳ ﻥﺃ ﻦﻜﻤﻳ .ﻂﻘﻓ ﺓﺪﺣﺍﻭ ﺕﺎﻧﺎﻴﺑ ﻝﺎﺧﺩﺇ ﺓﺎﻨﻗ ﻝﺎﺒﻘﺘﺳﺍ ﺔﻋﻮﻤﺠﻣ ﻞﻜﻟ ﻦﻜﻤﻳﻭ ﺕﺎﻋﻮﻤﺠﻣ ﺓﺪﻋ ﻰﻠﻋ ﺯﺎﻬﺠﻟﺍ ﻱﻮﺘﺤﻳ ﻥﺃ ﻦﻜﻤﻳ .ﺕﺎﻧﺎﻴﺑ ﻝﺎﺧﺩﺇ ﺓﺪﺣﻭ ﺮﻐﺻﺃ ﻲﻫ ﺔﻋﻮﻤﺠﻤﻟ
المجموعة هي أيضا حاوية لمعينة “ وظائف “. انظر التفسير في قسم القناة لمزيد من التفاصيل.

  1. Eligo ( = Output )
    الإخراج هو أصغر وحدة إخراج البيانات لكل مجموعة.
    تتصل القناة عادة بوحدة وظيفية واحدة.
    على سبيل المثال:
    • JPEG. ﺩﻮﻜﻟﺍ ﺔﻔﻴﻇﻭ ﻭﺃ H264 ﺓﺎﻨﻘﻟﺍ ﻞﻤﻜﺗ ، ﺮﻴﻔﺸﺘﻟﺍ ﺯﺎﻬﺠﻟ ﺔﺒﺴﻨﻟﺎﺑ

    • ﺓﺎﻨﻘﻟﺍ ءﺎﺸﻧﺇ ﺪﻨﻋ ﺓﺩﺪﺤﻤﻟﺍ ﺔﻴﻣﺯﺭﺍﻮﺨﻟﺍ ﻉﻮﻧ ﺕﺎﻤﻠﻌﻣ ﺪﻳﺪﺤﺗ ﻢﺘﻳﻭ ﺓﺩﺪﺤﻣ ﺔﻴﻣﺯﺭﺍﻮﺧ ﺔﻔﻴﻇﻭ ﺓﺎﻨﻘﻟﺍ ﻞﻤﻜﺗ ، IVS ﻰﻟﺇ ﺔﺒﺴﻨﻟﺎﺑ

    • ل OSD، هناك منطقة مشابهة ل Channel، المنطقة هي منطقة مظلمة محددة يمكن أن تكون أعلى ( صورة ) غطاء ( انسداد )، إلخ.

    • ﺔﻋﻮﻤﺠﻣ ﻊﻗﺍﻮﻟﺍ ﻲﻓ ﻲﻫ FrameSource ﺓﺎﻨﻘﻟﺍﻭ ﺔﻴﻠﺻﺃ ﺓﺭﻮﺻ ﺓﺎﻨﻘﻟﺍ ﺞﺘﻨﺗ ، FrameSource ﻰﻟﺇ ﺔﺒﺴﻨﻟﺎﺑ

    القناة، كوحدة وظيفية، عادة ما يتم الحفاظ عليها في المجموعة ( باستثناء FrameSource ) تلقي البيانات.

    يختلف أيضًا عدد القنوات التي يمكن تسجيلها بواسطة مجموعة الأجهزة المختلفة.

( Bind ) ﺓﺪﺣﻮﻟﺍ ﻂﺑﺍﺭ

بعد ترتبط مجموعتين ب Bind، سيتم إرسال البيانات من المجموعة المصدر تلقائيا إلى الوجهة تلقائيا.
نظرا لأن المجموعة هي أصغر وحدة إدخال البيانات والإخراج هو أصغر وحدة إخراج البيانات، فإن deviceID، groupID و outputID srcCell في اثنين من المعلمات IMP_System_Bind (IMPCell * srcCell, IMPCell * dstCell) صالحة.

                                                                           .ﺕﺎﻧﺎﻴﺑ ﻝﺎﺧﺩﺈﻛ ﻰﻨﻌﻣ ﻪﻟ ﻥﻮﻜﻳ ﻻ   _outputID_   ﻥﺈﻓ ،   _groupID_ ﻭ   _deviceID_   ـﻟ ﻂﻘﻓ ﺎﺤًﻟﺎﺻ   _dstCell_   ﻥﻮﻜﻳ ﺎﻤﻨﻴﺑ 

مثال 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");

                                                                                    <Encoder. <h3 ﻰﻟﺇ FrameSource ﻦﻣ ﺎﻃًﺎﺒﺗﺭﺍ ﺊﺸﻨﺗ ﺔﻋﻮﻤﺠﻣ      *  ﺊﺸﻨﻳ :ﺔﺠﻴﺘﻨﻟﺍ

المثال 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)

                                                                               .ﺔﻴﻧﺎﺛﻭﺮﻜﻴﻤﻟﺎﺑ ﺖﻗﻮﻟﺍ :ﺓﺩﻮﻌﻟﺍ      .ﺔﻴﻧﺎﺛﻭﺮﻜﻴﻤﻟﺎﺑ   _IMP_   ﻡﺎﻈﻨﻟﺍ ﺖﻗﻭ ﻞﻘﺣ ﻰﻠﻋ ﻞﺼﺣﺍ

int IMP_System_RebaseTimeStamp (bases int64_t)

                                                                                   .ﺡﺎﺠﻨﻟﺍ ﺔﻟﺎﺣ ﻲﻓ 0 :ﺓﺩﻮﻌﻟﺍ      .ﺔﻴﻧﺎﺛﻭﺮﻜﻴﻤﻟﺎﺑ   _IMP_   ﻲﻨﻣﺰﻟﺍ ﻊﺑﺎﻄﻟﺍ ﻡﺎﻈﻧ ﺩﺪﺣ

uint32_t IMP_System_ReadReg32 (uint32_t u32Addr)

اقرأ قيمة التسجيل 32 بت.

void IMP_System_WriteReg32 (uint32 ر regaddr، قيمة UINT32 t)

ملاحظة: يرجى الاتصال بواجهة برمجة التطبيقات هذه بعناية والتحقق من معنى السجل ، وإلا فقد يتسبب ذلك في حدوث أخطاء في النظام.

int IMP النظام GetVersion (IMPVersion * pstVersion)

const char * IMP النظام GetCPUInfo (void)

احصل على معلومات حول طراز وحدة المعالجة المركزية.
ملاحظة: القيمة المرجعة هي سلسلة من طراز وحدة المعالجة المركزية ، على سبيل المثال ، بالنسبة إلى T10 ، هناك “T10”و “T10-Lite”.

int IMP النظام (

ربط بين خلية المصدر والوجهة.

ملاحظة 1: وفقًا لمفاهيم الجهاز والمجموعة والإخراج ، يمكن أن يكون لكل جهاز عدة مجموعات ، ويمكن أن يكون لكل مجموعة عدة مخرجات ، ويتم استخدام المجموعة كواجهة إدخال للجهاز ، ويتم استخدام الإخراج كواجهة منتج للجهاز. لذلك ، يقوم الارتباط فعليًا بتوصيل إخراج معين لجهاز الإخراج بمجموعة معينة من جهاز الإدخال.

int IMP النظام (

فك تجميع المصادر والوجهات.

int IMP النظام (

يسترجع المعلومات من الخلية المصدر المتعلقة بالوجهة.