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

パイプラインハンドルまたはフレーム間演算ハンドルを指定したパイプラインに強制割り当て

Syntax
C++
int32_t AG903_PgpMgrForceAssignPipeline(void * handle, uint32_t pipeline);
引数 
説明 
void * handle 
[in] 割り当てを行なうパイプラインハンドルまたはフレーム間演算ハンドルを指定します。 
uint32_t pipeline 
[in] 割り当て先の PGPパイプライン番号 を指定します。 

PGPパイプライン番号、もしくはエラー

返値の詳細 
説明 
PGPパイプライン番号 
割り当て成功時 
-AG903_EINVAL 
handleに不正な値が指定された場合
割り当てに失敗した場合
入力ソースが未設定のハンドルが指定された場合
pipelineに不正な値が指定された場合 

指定されたパイプラインに対してパイプラインハンドル、またはフレーム間演算ハンドルを強制的に割り当てます。

指定したパイプラインに他のハンドルが割り当て済の場合は割り当て失敗と判定されます。 

パイプラインハンドルの設定が割り当て先のパイプラインで実行可能であるかのチェックは行ないません。 

あらかじめ AG903_PgpMgrCheckFunctionValidation 関数にて実行可能であるかチェックして下さい。

1: int32_t AG903_PgpMgrForceAssignPipeline(void *handle, uint32_t pipeline) 2: { 3: uint32_t id; 4: 5: if (handle == NULL) { 6: return -AG903_EINVAL; 7: } 8: 9: id = ((AG903_PgpMgrPipelineHandle *)handle)->id; 10: if ((id != AG903_PGP_MGR_PIPELINE_HANDLE_ID) && (id != AG903_PGP_MGR_FRAME_CALC_HANDLE_ID)) { 11: return -AG903_EINVAL; 12: } 13: switch (pipeline) { 14: case AG903_PGP_MGR_CALC_PIPELINE0: 15: case AG903_PGP_MGR_CALC_PIPELINE1: 16: case AG903_PGP_MGR_INPUT_PIPELINE0: 17: case AG903_PGP_MGR_INPUT_PIPELINE1: 18: case AG903_PGP_MGR_FRAME_PIPELINE0: 19: case AG903_PGP_MGR_FRAME_PIPELINE1: 20: break; 21: default: 22: return -AG903_EINVAL; 23: } 24: 25: if (id == AG903_PGP_MGR_PIPELINE_HANDLE_ID) { 26: AG903_PgpMgrPipelineHandle *p = (AG903_PgpMgrPipelineHandle *)handle; 27: 28: if (p->is_assign == true) { 29: return -AG903_EINVAL; 30: } 31: 32: if (p->input_handle == NULL) { 33: return -AG903_EINVAL; 34: } 35: 36: if (p->is_used_frame_calc == true) { 37: return -AG903_EINVAL; 38: } 39: 40: return PgpMgrForceAssignPipelineHandle(p, pipeline); 41: } else { 42: AG903_PgpMgrFrameCalcHandle *f = (AG903_PgpMgrFrameCalcHandle *)handle; 43: 44: if (f->master_handle->is_assign == true) { 45: return -AG903_EINVAL; 46: } 47: 48: if (f->master_handle->input_handle == NULL) { 49: return -AG903_EINVAL; 50: } 51: 52: if (f->slave_pipeline == true) { 53: AG903_PgpMgrPipelineHandle *slave = (AG903_PgpMgrPipelineHandle *)f->slave_handle; 54: if (slave->input_handle == NULL) { 55: return -AG903_EINVAL; 56: } 57: } 58: 59: return PgpMgrForceAssignFrameCalcHandle(f, pipeline); 60: } 61: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.