1 /*
2 * Copyright 2021 Rockchip Electronics Co. LTD
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #define MODULE_TAG "mpp_cluster_test"
18
19 #include "mpp_log.h"
20 #include "mpp_time.h"
21 #include "mpp_common.h"
22
23 #include "mpp_cluster.h"
24
25 typedef struct MppTestNode_t {
26 MppNode node;
27 } MppTestNode;
28
29 MppTestNode test_node;
30
mpp_cluster_test_worker(void * param)31 static RK_S32 mpp_cluster_test_worker(void *param)
32 {
33 RK_S32 ret = MPP_NOK;
34 (void) param;
35
36 mpp_log_f("worker run start\n");
37 mpp_log_f("worker run ret %d\n", ret);
38
39 return ret;
40 }
41
main()42 int main()
43 {
44 MPP_RET ret = MPP_OK;
45 MppNode node = test_node.node;
46 RK_U32 total_run = 2;
47
48 mpp_log("mpp_cluster_test start\n");
49
50 ret = mpp_node_init(&node);
51 if (ret) {
52 mpp_err("mpp_node_init failed ret %d\n", ret);
53 goto DONE;
54 }
55
56 mpp_log("mpp_cluster_test init node done\n");
57
58 /* setup node info */
59 mpp_node_set_func(node, mpp_cluster_test_worker, &test_node);
60
61 mpp_log("mpp_cluster_test attach node start\n");
62 ret = mpp_node_attach(node, VPU_CLIENT_RKVDEC);
63 if (ret) {
64 mpp_err("mpp_node_attach failed ret %d\n", ret);
65 goto DONE;
66 }
67
68 mpp_log("mpp_cluster_test trigger start\n");
69
70 do {
71 ret = mpp_node_trigger(node, 1);
72 if (ret) {
73 mpp_err("mpp_node_trigger failed ret %d\n", ret);
74 goto DONE;
75 }
76
77 mpp_log("mpp_cluster_test trigger %d left\n", total_run);
78
79 msleep(5);
80 } while (--total_run);
81
82 mpp_log("mpp_cluster_test detach start\n");
83
84 ret = mpp_node_detach(node);
85 if (ret) {
86 mpp_err("mpp_node_detach failed ret %d\n", ret);
87 goto DONE;
88 }
89
90 mpp_log("mpp_cluster_test deinit start\n");
91
92 ret = mpp_node_deinit(node);
93 if (ret) {
94 mpp_err("mpp_node_deinit failed ret %d\n", ret);
95 goto DONE;
96 }
97
98 mpp_log("mpp_cluster_test deinit done\n");
99
100 DONE:
101 mpp_log("mpp_cluster_test done %s\n", ret ? "failed" : "success");
102 return ret;
103 }
104