xref: /rockchip-linux_mpp/mpp/base/mpp_task.c (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2015 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #define MODULE_TAG "mpp_task"
7*437bfbebSnyanmisaka 
8*437bfbebSnyanmisaka #include <string.h>
9*437bfbebSnyanmisaka 
10*437bfbebSnyanmisaka #include "mpp_task.h"
11*437bfbebSnyanmisaka #include "mpp_task_impl.h"
12*437bfbebSnyanmisaka 
mpp_task_meta_set_s32(MppTask task,MppMetaKey key,RK_S32 val)13*437bfbebSnyanmisaka MPP_RET mpp_task_meta_set_s32(MppTask task, MppMetaKey key, RK_S32 val)
14*437bfbebSnyanmisaka {
15*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
16*437bfbebSnyanmisaka         return MPP_NOK;
17*437bfbebSnyanmisaka 
18*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
19*437bfbebSnyanmisaka     return mpp_meta_set_s32(impl->meta, key, val);
20*437bfbebSnyanmisaka }
21*437bfbebSnyanmisaka 
mpp_task_meta_set_s64(MppTask task,MppMetaKey key,RK_S64 val)22*437bfbebSnyanmisaka MPP_RET mpp_task_meta_set_s64(MppTask task, MppMetaKey key, RK_S64 val)
23*437bfbebSnyanmisaka {
24*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
25*437bfbebSnyanmisaka         return MPP_NOK;
26*437bfbebSnyanmisaka 
27*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
28*437bfbebSnyanmisaka     return mpp_meta_set_s64(impl->meta, key, val);
29*437bfbebSnyanmisaka }
30*437bfbebSnyanmisaka 
mpp_task_meta_set_ptr(MppTask task,MppMetaKey key,void * val)31*437bfbebSnyanmisaka MPP_RET mpp_task_meta_set_ptr(MppTask task, MppMetaKey key, void  *val)
32*437bfbebSnyanmisaka {
33*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
34*437bfbebSnyanmisaka         return MPP_NOK;
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
37*437bfbebSnyanmisaka     return mpp_meta_set_ptr(impl->meta, key, val);
38*437bfbebSnyanmisaka }
39*437bfbebSnyanmisaka 
mpp_task_meta_set_frame(MppTask task,MppMetaKey key,MppFrame frame)40*437bfbebSnyanmisaka MPP_RET mpp_task_meta_set_frame(MppTask task, MppMetaKey key, MppFrame frame)
41*437bfbebSnyanmisaka {
42*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
43*437bfbebSnyanmisaka         return MPP_NOK;
44*437bfbebSnyanmisaka 
45*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
46*437bfbebSnyanmisaka     return mpp_meta_set_frame(impl->meta, key, frame);
47*437bfbebSnyanmisaka }
48*437bfbebSnyanmisaka 
mpp_task_meta_set_packet(MppTask task,MppMetaKey key,MppPacket packet)49*437bfbebSnyanmisaka MPP_RET mpp_task_meta_set_packet(MppTask task, MppMetaKey key, MppPacket packet)
50*437bfbebSnyanmisaka {
51*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
52*437bfbebSnyanmisaka         return MPP_NOK;
53*437bfbebSnyanmisaka 
54*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
55*437bfbebSnyanmisaka     return mpp_meta_set_packet(impl->meta, key, packet);
56*437bfbebSnyanmisaka }
57*437bfbebSnyanmisaka 
mpp_task_meta_set_buffer(MppTask task,MppMetaKey key,MppBuffer buffer)58*437bfbebSnyanmisaka MPP_RET mpp_task_meta_set_buffer(MppTask task, MppMetaKey key, MppBuffer buffer)
59*437bfbebSnyanmisaka {
60*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
61*437bfbebSnyanmisaka         return MPP_NOK;
62*437bfbebSnyanmisaka 
63*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
64*437bfbebSnyanmisaka     return mpp_meta_set_buffer(impl->meta, key, buffer);
65*437bfbebSnyanmisaka }
66*437bfbebSnyanmisaka 
mpp_task_meta_get_s32(MppTask task,MppMetaKey key,RK_S32 * val,RK_S32 default_val)67*437bfbebSnyanmisaka MPP_RET mpp_task_meta_get_s32(MppTask task, MppMetaKey key, RK_S32 *val, RK_S32 default_val)
68*437bfbebSnyanmisaka {
69*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
70*437bfbebSnyanmisaka         return MPP_NOK;
71*437bfbebSnyanmisaka 
72*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
73*437bfbebSnyanmisaka     MPP_RET ret = mpp_meta_get_s32(impl->meta, key, val);
74*437bfbebSnyanmisaka     if (ret)
75*437bfbebSnyanmisaka         *val = default_val;
76*437bfbebSnyanmisaka     return ret;
77*437bfbebSnyanmisaka }
78*437bfbebSnyanmisaka 
mpp_task_meta_get_s64(MppTask task,MppMetaKey key,RK_S64 * val,RK_S64 default_val)79*437bfbebSnyanmisaka MPP_RET mpp_task_meta_get_s64(MppTask task, MppMetaKey key, RK_S64 *val, RK_S64 default_val)
80*437bfbebSnyanmisaka {
81*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
82*437bfbebSnyanmisaka         return MPP_NOK;
83*437bfbebSnyanmisaka 
84*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
85*437bfbebSnyanmisaka     MPP_RET ret = mpp_meta_get_s64(impl->meta, key, val);
86*437bfbebSnyanmisaka     if (ret)
87*437bfbebSnyanmisaka         *val = default_val;
88*437bfbebSnyanmisaka     return ret;
89*437bfbebSnyanmisaka }
90*437bfbebSnyanmisaka 
mpp_task_meta_get_ptr(MppTask task,MppMetaKey key,void ** val,void * default_val)91*437bfbebSnyanmisaka MPP_RET mpp_task_meta_get_ptr(MppTask task, MppMetaKey key, void  **val, void *default_val)
92*437bfbebSnyanmisaka {
93*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
94*437bfbebSnyanmisaka         return MPP_NOK;
95*437bfbebSnyanmisaka 
96*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
97*437bfbebSnyanmisaka     MPP_RET ret = mpp_meta_get_ptr(impl->meta, key, val);
98*437bfbebSnyanmisaka     if (ret)
99*437bfbebSnyanmisaka         *val = default_val;
100*437bfbebSnyanmisaka     return ret;
101*437bfbebSnyanmisaka }
102*437bfbebSnyanmisaka 
mpp_task_meta_get_frame(MppTask task,MppMetaKey key,MppFrame * frame)103*437bfbebSnyanmisaka MPP_RET mpp_task_meta_get_frame(MppTask task, MppMetaKey key, MppFrame *frame)
104*437bfbebSnyanmisaka {
105*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
106*437bfbebSnyanmisaka         return MPP_NOK;
107*437bfbebSnyanmisaka 
108*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
109*437bfbebSnyanmisaka     MPP_RET ret = mpp_meta_get_frame(impl->meta, key, frame);
110*437bfbebSnyanmisaka     if (ret)
111*437bfbebSnyanmisaka         *frame = NULL;
112*437bfbebSnyanmisaka     return ret;
113*437bfbebSnyanmisaka }
114*437bfbebSnyanmisaka 
mpp_task_meta_get_packet(MppTask task,MppMetaKey key,MppPacket * packet)115*437bfbebSnyanmisaka MPP_RET mpp_task_meta_get_packet(MppTask task, MppMetaKey key, MppPacket *packet)
116*437bfbebSnyanmisaka {
117*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
118*437bfbebSnyanmisaka         return MPP_NOK;
119*437bfbebSnyanmisaka 
120*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
121*437bfbebSnyanmisaka     MPP_RET ret = mpp_meta_get_packet(impl->meta, key, packet);
122*437bfbebSnyanmisaka     if (ret)
123*437bfbebSnyanmisaka         *packet = NULL;
124*437bfbebSnyanmisaka     return ret;
125*437bfbebSnyanmisaka }
126*437bfbebSnyanmisaka 
mpp_task_meta_get_buffer(MppTask task,MppMetaKey key,MppBuffer * buffer)127*437bfbebSnyanmisaka MPP_RET mpp_task_meta_get_buffer(MppTask task, MppMetaKey key, MppBuffer *buffer)
128*437bfbebSnyanmisaka {
129*437bfbebSnyanmisaka     if (check_mpp_task_name(task))
130*437bfbebSnyanmisaka         return MPP_NOK;
131*437bfbebSnyanmisaka 
132*437bfbebSnyanmisaka     MppTaskImpl *impl = (MppTaskImpl *)task;
133*437bfbebSnyanmisaka     MPP_RET ret = mpp_meta_get_buffer(impl->meta, key, buffer);
134*437bfbebSnyanmisaka     if (ret)
135*437bfbebSnyanmisaka         *buffer = NULL;
136*437bfbebSnyanmisaka     return ret;
137*437bfbebSnyanmisaka }
138*437bfbebSnyanmisaka 
139