1: int32_t AG903_PgpMgrGetVRAMInputHandle(int32_t num,
AG903_PgpMgrVRAMInputHandle **handles)
2: {
3:
int i, j;
4:
5:
6:
if (PgpContext.pipeline_time_sharing_enable ==
true) {
7:
if ((num + PgpContext.num_vram_input_handles) >
AG903_PGP_MGR_MAX_VRAMI_HANDLE) {
8:
return -
AG903_EINVAL;
9: }
10: }
else {
11:
if ((num + PgpContext.num_vram_input_handles) >
AG903_PGP_MGR_VRAMI_NUM) {
12:
return -
AG903_EINVAL;
13: }
14: }
15:
16:
if (handles == NULL) {
17:
return -
AG903_EINVAL;
18: }
19:
20:
21:
for (i = 0; i < num; i++) {
22:
for (j = 0; j <
AG903_PGP_MGR_MAX_VRAMI_HANDLE; j++) {
23:
if (PgpContext.vram_input_handles[j].is_used ==
false) {
24:
25: PgpMgrInitVRAMInputHandle(&PgpContext.vram_input_handles[j]);
26:
27: PgpContext.vram_input_handles[j].is_used =
true;
28: PgpContext.vram_input_handles[j].id =
AG903_PGP_MGR_VRAM_INPUT_HANDLE_ID;
29: handles[i] = &PgpContext.vram_input_handles[j];
30:
break;
31: }
32: }
33: }
34:
35: PgpContext.num_vram_input_handles += num;
36:
37:
return AG903_ENONE;
38: }