AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
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.