AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_VidMgrGetOutputHandle 関数

デジタルビデオ出力のハンドル取得

Syntax
C++
int32_t AG903_VidMgrGetOutputHandle(int32_t * ports, int32_t num_ports, AG903_VidMgrOutputHandle ** handles);
引数 
説明 
int32_t * ports 
[in] 取得するポート番号を格納した配列。 
int32_t num_ports 
[in] portsの配列要素数(取得するハンドル数)。 
AG903_VidMgrOutputHandle ** handles 
[out] 取得したハンドルを格納する配列。 

取得結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
portsに0-3の範囲外の値が指定された場合
num_portsに取得可能なハンドルの最大数以上の値が指定された場合
ports、handlesにNULLが指定された場合 
-AG903_ENOMEM 
portsで指定されたポートに対応するハンドルが取得済の場合 

出力ポート番号を指定して出力ポートハンドル(AG903_VidMgrOutputHandle)を取得します。 

指定された番号に対応するハンドルが未使用と判断された場合、handles にアドレスを返します。 

要求された番号のうち使用中の出力ポートが一つでも存在する場合、handles には何も格納しません。 

handles には ports で指定された番号順にハンドルを格納します。

none

1: int32_t AG903_VidMgrGetOutputHandle(int32_t *ports, int32_t num_ports, AG903_VidMgrOutputHandle **handles) 2: { 3: int32_t i; 4: _Bool num_check[AG903_VID_MGR_MAX_OUT_PORTS] = {false}; 5: 6: if (num_ports > AG903_VID_MGR_MAX_OUT_PORTS) { 7: return -AG903_EINVAL; 8: } 9: if ((ports == NULL) || (handles == NULL)) { 10: return -AG903_EINVAL; 11: } 12: for (i = 0; i < num_ports; i++) { 13: if ((ports[i] < 0) || (ports[i] >= AG903_VID_MGR_MAX_OUT_PORTS)) { 14: return -AG903_EINVAL; 15: } 16: if (VidContext.used_out_ports[ports[i]] != false) { 17: return -AG903_ENOMEM; 18: } 19: 20: if (num_check[ports[i]] == true) { 21: return -AG903_EINVAL; 22: } 23: num_check[ports[i]] = true; 24: } 25: 26: for (i = 0; i < num_ports; i++) { 27: 28: handles[i] = (AG903_VidMgrOutputHandle *)&VidContext.out_ports[ports[i]]; 29: handles[i]->id = AG903_VID_MGR_OUTPUT_HANDLE_ID; 30: handles[i]->port_no = ports[i]; 31: handles[i]->is_dirty = false; 32: handles[i]->tdm = 0; 33: handles[i]->delay = false; 34: handles[i]->trs_dec_enable = false; 35: handles[i]->trs_efp = 0; 36: handles[i]->trs_ofp = 0; 37: handles[i]->trs_vfp = 0x4; 38: handles[i]->trs_href = 0; 39: handles[i]->trs_hfp = 0; 40: handles[i]->v_max = 8192; 41: handles[i]->h_max = 8192; 42: 43: VidContext.used_out_ports[ports[i]] = true; 44: } 45: return AG903_ENONE; 46: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.