ਕਿਰਪਾ ਕਰਕੇ ਨੋਟ ਕਰੋ: ਇਹ ਪੰਨਾ ਆਪਣੇ ਆਪ ਅਨੁਵਾਦ ਹੋ ਗਿਆ ਹੈ. ਜੇ ਤੁਸੀਂ ਕਰ ਸਕਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਭਾਸ਼ਾ ਵਿੱਚ ਪੜ੍ਹਨਾ ਚਾਹੀਦਾ ਹੈ:

ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ IMP

ਅਪਿਸ ਦੇ ਦਸਤਾਵੇਜ਼ ਇੱਥੇ ਵੇਖੇ ਜਾ ਸਕਦੇ ਹਨ:

IMP ( ) ( imp_system.h ) ਦੇਖੋ

ਬੁਨਿਆਦੀ ਧਾਰਨਾ

T20 / T21 ਪ੍ਰੋਗਰਾਮ ਹੇਠ ਲਿਖੀਆਂ ਧਾਰਨਾਵਾਂ ਤੇ ਅਧਾਰਤ ਹੈ:
= ਡਿਵਾਈਸ ( =
ਡਿਵਾਈਸ ਫੰਕਸ਼ਨ ਦੇ ਅਧਾਰ ਤੇ. ਉਦਾਹਰਣ:
* Framesource : ਵੀਡੀਓ ਕਲਿੱਪਾਂ ਦੀ ਆਉਟਪੁੱਟ ਨੂੰ ਪੂਰਾ ਕਰੋ.
* Encoder : ਵੀਡੀਓ ਕੋਡ ਜਾਂ ਚਿੱਤਰ ਕੋਡ ਫੰਕਸ਼ਨ ਨੂੰ ਪੂਰਾ ਕਰੋ.
ਸਮੂਹ ( = Group

ਸਮੂਹ ਸਭ ਤੋਂ ਛੋਟਾ ਡਾਟਾ-ਇਨਪੁਟ ਯੂਨਿਟ ਹੈ. ਇੱਕ ਉਪਕਰਣ ਵਿੱਚ ਮਲਟੀਪਲ ਸਮੂਹ ਹੋ ਸਕਦੇ ਹਨ ਅਤੇ ਹਰੇਕ ਸਮੂਹ ਨੂੰ ਸਿਰਫ ਇੱਕ ਹੀ ਡਾਟਾ ਇੰਪੁੱਟ ਚੈਨਲ ਪ੍ਰਾਪਤ ਹੋ ਸਕਦਾ ਹੈ. ਸਮੂਹ ਦੇ ਕਈ ਨਤੀਜੇ ਹੋ ਸਕਦੇ ਹਨ.
ਸਮੂਹ ਵਿਸ਼ੇਸ਼ “ ਫੰਕਸ਼ਨਾਂ “ ਲਈ ਇੱਕ ਕੰਟੇਨਰ ਵੀ ਹੈ. ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਚੈਨਲ ਭਾਗ ਵਿੱਚ ਸਪਸ਼ਟੀਕਰਨ ਵੇਖੋ.

  1. ਫਿਰੋ ( = Output )
    ਆਉਟਪੁੱਟ ਪ੍ਰਤੀ ਸਮੂਹ ਪ੍ਰਤੀ ਸਮੂਹ ਸਭ ਤੋਂ ਛੋਟਾ ਜਿਹਾ ਡਾਟਾ ਆਉਟਪੁੱਟ ਯੂਨਿਟ ਹੈ.
    ਚੈਨਲ ਆਮ ਤੌਰ ‘ਤੇ ਇਕੱਲੇ ਕਾਰਜਸ਼ੀਲ ਇਕਾਈ ਨਾਲ ਸਬੰਧਤ ਹੁੰਦਾ ਹੈ. ਉਦਾਹਰਣ ਲਈ:
    • ਕੋਡੈਲ ਲਈ, ਚੈਨਲ H264 ਜਾਂ ਕੋਡ ਫੰਕਸ਼ਨ JPEG ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ.

    • IVS ਲਈ, ਇੱਕ ਚੈਨਲ ਲਈ ਇੱਕ ਖਾਸ ਐਲਗੋਰਿਦਮ ਦੇ ਕੰਮ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ ਅਤੇ ਚੈਨਲ ਬਣਾਉਣ ਦੇ ਖਾਸ ਪੈਰਾਮੀਟਰ ਚੈਨਲ ਨੂੰ ਬਣਾਉਣ ਦੇ ਦੌਰਾਨ ਨਿਰਧਾਰਤ ਕੀਤੇ ਗਏ ਹਨ

    • ਲਈ OSD ਦੇ ਸਮਾਨ ਖੇਤਰ ਹੈ, ਇੱਕ ਖੇਤਰ ਇੱਕ ਖਾਸ ਸੁਪਰ ਵਿਗਾੜ ਖੇਤਰ ਹੈ ਜੋ ਇੱਕ ਚੋਟੀ ਦਾ ( Ext ( CascLacts ), ਆਦਿ ਹੋ ਸਕਦਾ ਹੈ.

    • ਲਈ FrameSource ਲਈ, ਇੱਕ ਚੈਨਲ ਇੱਕ ਅਸਲੀ ਚਿੱਤਰ ਅਤੇ ਚੈਨਲ ਬਣਾਉਂਦਾ ਹੈ FrameSource ਅਸਲ ਵਿੱਚ ਇੱਕ ਸਮੂਹ ਤਿਆਰ ਕਰਦਾ ਹੈ

    ਚੈਨਲ, ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਇਕਾਈ ਦੇ ਤੌਰ ਤੇ, ਆਮ ਤੌਰ ਤੇ ( ਸਮੂਹ ਨੂੰ ਸਿਵਾਏ ( ) ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰੋ.

    ਵੱਖ-ਵੱਖ ਡਿਵਾਈਸਾਂ ਦੇ ਸਮੂਹ ਦੁਆਰਾ ਰਿਕਾਰਡ ਕੀਤੇ ਜਾ ਸਕਦੇ ਚੈਨਲਾਂ ਦੀ ਗਿਣਤੀ ਵੀ ਵੱਖਰੀ ਹੈ.

ਮੋਡੀ ule ਲ ਲਿੰਕ ( Bind )

ਦੋ ਸਮੂਹਾਂ ਨਾਲ ਸੰਪਰਕ ਕਰੋ Bind ਦੁਆਰਾ, ਸਰੋਤ ਸਮੂਹ ਤੋਂ ਡੇਟਾ ਆਪਣੇ ਆਪ ਮੰਜ਼ਿਲ ਤੇ ਭੇਜ ਦੇਵੇਗਾ.
ਕਿਉਂਕਿ ਸਮੂਹ ਸਭ ਤੋਂ ਛੋਟਾ ਡਾਟਾ ਇਨਪੁਟ ਯੂਨਿਟ ਹੈ ਅਤੇ ਆਉਟਪੁਟ ਸਭ ਤੋਂ ਛੋਟਾ ਡੇਟਾ ਆਉਟਪੁੱਟ ਯੂਨਿਟ, groupID groupID Bind IMP_System_Bind (IMPCell * srcCell, IMPCell * dstCell) IMP_System_Bind (IMPCell * srcCell, IMPCell * dstCell) srcCell IMP_System_Bind (IMPCell * srcCell, IMPCell * dstCell) srcCell IMP_System_Bind (IMPCell * srcCell, IMPCell * dstCell) srcCell srcCell srcCell srcCell ) ਵੈਧ ਹਨ.

ਜਦੋਂ ਕਿ 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) _ ਜਾਰੀ ਕੀਤੇ ਜਾਣਗੇ, ਅਤੇ ਹਾਰਡਵੇਅਰ ਯੂਨਿਟ ਬੰਦ ਹੋ ਜਾਵੇਗਾ. (

ਮਾਈਕ੍ਰੋਜ਼ਕੌਂਡਸ ਵਿੱਚ IMP ਸਿਸਟਮ ਦਾ ਟਾਈਮਿੰਗ ਖੇਤਰ ਪ੍ਰਾਪਤ ਕਰੋ.
ਵਾਪਸੀ: ਮਾਈਕ੍ਰੋਕੇਕੈਂਡ ਵਿੱਚ ਸਮਾਂ.

ਮਾਈਕ੍ਰੋਜ਼ਕੌਂਡਸ ਵਿੱਚ int IMP_System_RebaseTimeStamp (bases int64_t) ਸਿਸਟਮ ਦਾ ਟਾਈਮਿੰਗ ਖੇਤਰ ਪ੍ਰਾਪਤ ਕਰੋ. _ ਵਾਪਸੀ: ਮਾਈਕ੍ਰੋਕੇਕੈਂਡ ਵਿੱਚ ਸਮਾਂ. (

ਟਾਈਮਸਟੈਂਪ <ਮਾਈਕ੍ਰੋਜ਼ਕੌਂਡ ਵਿੱਚ ਸਿਸਟਮ ਨੂੰ ਪ੍ਰਭਾਸ਼ਿਤ ਕਰੋ.
ਵਾਪਸੀ: 0 ਜੇ ਸਫਲ.

ਟਾਈਮਸਟੈਂਪ <ਮਾਈਕ੍ਰੋਜ਼ਕੌਂਡ ਵਿੱਚ ਸਿਸਟਮ ਨੂੰ ਪ੍ਰਭਾਸ਼ਿਤ ਕਰੋ. _ ਵਾਪਸੀ: 0 ਜੇ ਸਫਲ. _

ਇੱਕ 32-ਬਿੱਟ ਰਜਿਸਟਰ ਦਾ ਮੁੱਲ ਪੜ੍ਹੋ.

void IMP_System_WriteReg32 (uint32 t regaddr, ਮੁੱਲ Uint32 t)

32-ਬਿੱਟ ਰਜਿਸਟਰ ਵਿਚ ਮੁੱਲ ਲਿਖੋ.

ਨੋਟ: ਕਿਰਪਾ ਕਰਕੇ ਇਸ API ਨੂੰ ਧਿਆਨ ਨਾਲ ਕਾਲ ਕਰੋ ਅਤੇ ਰਜਿਸਟਰੀ ਦੇ ਅਰਥਾਂ ਦੀ ਜਾਂਚ ਕਰੋ, ਨਹੀਂ ਤਾਂ ਇਹ ਸਿਸਟਮ ਦੀਆਂ ਗਲਤੀਆਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ.

int IMP ਸਿਸਟਮ GetVersion (IMPVersion * pstVersion)

IMP ਸਿਸਟਮ ਦੀ ਪ੍ਰਣਾਲੀ ਪ੍ਰਾਪਤ ਕਰੋ.

const char * IMP ਸਿਸਟਮ GetCPUInfo (void)

ਸੀਪੀਯੂ ਮਾਡਲ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ.
ਨੋਟ: ਵਾਪਸੀ ਮੁੱਲ ਸੀਪੀਯੂ ਮਾਡਲ ਦੀ ਇੱਕ ਸਤਰ ਹੈ, ਉਦਾਹਰਣ ਵਜੋਂ, ਟੀ 10 ਲਈ “ਟੀ 10”ਅਤੇ “ਟੀ 10-ਲਾਈਟ”ਹੈ.

int IMP ਸਿਸਟਮ (

ਸਰੋਤ ਸੈੱਲ ਅਤੇ ਮੰਜ਼ਿਲ ਦੇ ਵਿਚਕਾਰ ਲਿੰਕ.

ਨੋਟ 1: ਡਿਵਾਈਸ, ਸਮੂਹ ਅਤੇ ਆਉਟਪੁੱਟ ਦੀਆਂ ਧਾਰਨਾਵਾਂ ਦੇ ਅਨੁਸਾਰ, ਹਰੇਕ ਡਿਵਾਈਸ ਦੇ ਕਈ ਸਮੂਹ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਹਰੇਕ ਸਮੂਹ ਦੇ ਕਈ ਆਉਟਪੁੱਟ ਹੋ ਸਕਦੇ ਹਨ, ਸਮੂਹ ਨੂੰ ਡਿਵਾਈਸ ਇੰਪੁੱਟ ਇੰਟਰਫੇਸ ਵਜੋਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਆਉਟਪੁੱਟ ਨੂੰ ਡਿਵਾਈਸ ਉਤਪਾਦ ਇੰਟਰਫੇਸ ਵਜੋਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ. ਇਸਲਈ ਲਿੰਕ ਅਸਲ ਵਿੱਚ ਆਉਟਪੁੱਟ ਡਿਵਾਈਸ ਦੇ ਇੱਕ ਖਾਸ ਆਉਟਪੁੱਟ ਨੂੰ ਇਨਪੁਟ ਡਿਵਾਈਸ ਦੇ ਇੱਕ ਸਮੂਹ ਨਾਲ ਜੋੜਦਾ ਹੈ.

ਨੋਟ 2: ਇੱਕ ਸਫਲ ਲਿੰਕ ਤੋਂ ਬਾਅਦ, srcCell ( F3> FAT ਨੂੰ ਆਪਣੇ ਆਪ ਮੰਜ਼ਿਲ ( ਸਮੂਹ ) ਤੱਕ ਤਬਦੀਲ ਕੀਤਾ ਜਾਏਗਾ.

int IMP ਸਿਸਟਮ (

ਸਰੋਤਾਂ ਅਤੇ ਮੰਜ਼ਿਲਾਂ ਦਾ ਸੰਗਠਨ ਕਰੋ.

int IMP ਸਿਸਟਮ (

ਮੰਜ਼ਿਲ ਨਾਲ ਜੁੜੇ ਸਰੋਤ ਸੈੱਲ ਤੋਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ.