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

パイプラインの入力ポート設定

Syntax
C++
int32_t AG903_PgpMgrSetInputPort(AG903_PgpMgrPipelineHandle * handle, void * src);
引数 
説明 
AG903_PgpMgrPipelineHandle * handle 
[in] パイプラインハンドルを指定します。 
void * src 
[in] 入力ハンドルを指定します。 

設定結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
handleに不正な値が指定された場合
srcに不正なハンドルが指定された場合 

パイプラインの入力ポートを指定します。 

入力ハンドルが何のハンドルかは、ポインタの先頭4Byteで識別します。 

指定可能なハンドルは以下の通りです。

ハンドル名 
型 
アナログビデオ入力ハンドル 
デジタルビデオ入力ハンドル 
VRAM入力ハンドル 

src=NULL の場合、現在設定されている入力ポートの設定を解除します。

1: int32_t AG903_PgpMgrSetInputPort(AG903_PgpMgrPipelineHandle *handle, void *src) 2: { 3: const uint32_t via_port[4] = { 4: AG903_PGP_MGR_INPUT_PORT_VIA_0, 5: AG903_PGP_MGR_INPUT_PORT_VIA_1, 6: AG903_PGP_MGR_INPUT_PORT_VIA_2, 7: AG903_PGP_MGR_INPUT_PORT_VIA_3, 8: }; 9: const uint32_t vid_port[4] = { 10: AG903_PGP_MGR_INPUT_PORT_VID_0, 11: AG903_PGP_MGR_INPUT_PORT_VID_1, 12: AG903_PGP_MGR_INPUT_PORT_VID_2, 13: AG903_PGP_MGR_INPUT_PORT_VID_3, 14: }; 15: 16: AG903_ViaMgrInputHandle *via_h = (AG903_ViaMgrInputHandle *)src; 17: AG903_VidMgrOutputHandle *vid_h = (AG903_VidMgrOutputHandle *)src; 18: AG903_PgpMgrVRAMInputHandle *vram_h = (AG903_PgpMgrVRAMInputHandle *)src; 19: 20: 21: if ((handle == NULL) || (handle->id != AG903_PGP_MGR_PIPELINE_HANDLE_ID)) { 22: return -AG903_EINVAL; 23: } 24: 25: if (src != NULL) { 26: if (via_h->id == AG903_VIA_MGR_INPUT_HANDLE_ID) { 27: handle->input_port = via_port[via_h->port_no]; 28: } else if (vid_h->id == AG903_VID_MGR_OUTPUT_HANDLE_ID) { 29: handle->input_port = vid_port[vid_h->port_no]; 30: } else if (vram_h->id == AG903_PGP_MGR_VRAM_INPUT_HANDLE_ID) { 31: 32: vram_h->ref_cnt++; 33: } else { 34: return -AG903_EINVAL; 35: } 36: } 37: 38: 39: vram_h = (AG903_PgpMgrVRAMInputHandle *)handle->input_handle; 40: if ((vram_h != NULL) && (vram_h->id == AG903_PGP_MGR_VRAM_INPUT_HANDLE_ID)) { 41: vram_h->ref_cnt--; 42: } 43: 44: 45: handle->is_config_dirty[AG903_PGP_MGR_CONFIG_INPUT_TRIG_CH] = true; 46: handle->input_handle = src; 47: return AG903_ENONE; 48: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.