xref: /rockchip-linux_mpp/mpp/codec/dec/m2v/m2vd_com.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2015 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka  *
4*437bfbebSnyanmisaka  * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka  * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka  * You may obtain a copy of the License at
7*437bfbebSnyanmisaka  *
8*437bfbebSnyanmisaka  *      http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka  *
10*437bfbebSnyanmisaka  * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka  * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka  * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka  * limitations under the License.
15*437bfbebSnyanmisaka  */
16*437bfbebSnyanmisaka 
17*437bfbebSnyanmisaka #ifndef __M2VD_COM_H__
18*437bfbebSnyanmisaka #define __M2VD_COM_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include <stdio.h>
21*437bfbebSnyanmisaka #include <stdlib.h>
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka #include "mpp_debug.h"
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka #define M2VD_DEMO_MODE         0
26*437bfbebSnyanmisaka 
27*437bfbebSnyanmisaka //------------------------ temp ---------------------------------
28*437bfbebSnyanmisaka #define M2VD_TEST_TRACE       (0x00000001)
29*437bfbebSnyanmisaka #define M2VD_TEST_TIME        (0x00000002)
30*437bfbebSnyanmisaka #define M2VD_TEST_MUTI_THREAD (0x00000004)
31*437bfbebSnyanmisaka #define M2VD_TEST_DUMPYUV     (0x00000008)
32*437bfbebSnyanmisaka #define M2VD_TEST_FPGA        (0x00000010)
33*437bfbebSnyanmisaka 
34*437bfbebSnyanmisaka //log of diff
35*437bfbebSnyanmisaka #define M2VD_DBG_FUNCTION          (0x00000001)
36*437bfbebSnyanmisaka #define M2VD_DBG_ASSERT            (0x00000002)
37*437bfbebSnyanmisaka #define M2VD_DBG_WARNNING          (0x00000004)
38*437bfbebSnyanmisaka #define M2VD_DBG_LOG               (0x00000008)
39*437bfbebSnyanmisaka #define M2VD_DBG_SEC_HEADER        (0x00000010)
40*437bfbebSnyanmisaka #define M2VD_DBG_DUMP_REG          (0x00000020)
41*437bfbebSnyanmisaka 
42*437bfbebSnyanmisaka 
43*437bfbebSnyanmisaka 
44*437bfbebSnyanmisaka 
45*437bfbebSnyanmisaka extern RK_U32 m2vd_debug;
46*437bfbebSnyanmisaka 
47*437bfbebSnyanmisaka #define M2VD_ERR(fmt, ...)\
48*437bfbebSnyanmisaka do {\
49*437bfbebSnyanmisaka         { mpp_log(fmt, ## __VA_ARGS__); }\
50*437bfbebSnyanmisaka } while (0)
51*437bfbebSnyanmisaka 
52*437bfbebSnyanmisaka #define M2VD_ASSERT(val)\
53*437bfbebSnyanmisaka do {\
54*437bfbebSnyanmisaka     if (M2VD_DBG_ASSERT & m2vd_debug)\
55*437bfbebSnyanmisaka         { mpp_assert(val); }\
56*437bfbebSnyanmisaka } while (0)
57*437bfbebSnyanmisaka 
58*437bfbebSnyanmisaka #define M2VD_WARNNING(fmt, ...)\
59*437bfbebSnyanmisaka do {\
60*437bfbebSnyanmisaka     if (M2VD_DBG_WARNNING & m2vd_debug)\
61*437bfbebSnyanmisaka         { mpp_log(fmt, ## __VA_ARGS__); }\
62*437bfbebSnyanmisaka } while (0)
63*437bfbebSnyanmisaka 
64*437bfbebSnyanmisaka #define M2VD_LOG(fmt, ...)\
65*437bfbebSnyanmisaka do {\
66*437bfbebSnyanmisaka     if (M2VD_DBG_LOG & m2vd_debug)\
67*437bfbebSnyanmisaka         {  mpp_log(fmt, ## __VA_ARGS__); }\
68*437bfbebSnyanmisaka } while (0)
69*437bfbebSnyanmisaka 
70*437bfbebSnyanmisaka 
71*437bfbebSnyanmisaka //check function return
72*437bfbebSnyanmisaka #define M2VD_CHK_F(val)                                            \
73*437bfbebSnyanmisaka     do{                                                       \
74*437bfbebSnyanmisaka         if((val) < 0) {                                       \
75*437bfbebSnyanmisaka             ret = (val);                                      \
76*437bfbebSnyanmisaka             M2VD_WARNNING("func return error(L%d), ret:%d\n", __LINE__, ret); \
77*437bfbebSnyanmisaka             goto __FAILED;                                    \
78*437bfbebSnyanmisaka         }                                                     \
79*437bfbebSnyanmisaka       } while (0)
80*437bfbebSnyanmisaka 
81*437bfbebSnyanmisaka //check value if is zero or NULL
82*437bfbebSnyanmisaka #define M2VD_CHK_V(val, ...)\
83*437bfbebSnyanmisaka     do{ if(!(val)){\
84*437bfbebSnyanmisaka     ret = MPP_ERR_VALUE;\
85*437bfbebSnyanmisaka     M2VD_WARNNING("value error(L%d), val:%d\n", __LINE__, val);\
86*437bfbebSnyanmisaka     goto __FAILED;\
87*437bfbebSnyanmisaka     } } while (0)
88*437bfbebSnyanmisaka 
89*437bfbebSnyanmisaka //memory malloc check
90*437bfbebSnyanmisaka #define M2VD_CHK_M(val, ...)\
91*437bfbebSnyanmisaka     do{ if(!(val)) {\
92*437bfbebSnyanmisaka     ret = MPP_ERR_MALLOC;\
93*437bfbebSnyanmisaka     M2VD_ERR("malloc buffer error(%d), pointer:%p\n", __LINE__, val);\
94*437bfbebSnyanmisaka     M2VD_ASSERT(0); goto __FAILED;\
95*437bfbebSnyanmisaka     } } while (0)
96*437bfbebSnyanmisaka 
97*437bfbebSnyanmisaka //file check
98*437bfbebSnyanmisaka #define M2VD_CHK_FILE(val, path, ...)\
99*437bfbebSnyanmisaka     do{ if(!(val)) {\
100*437bfbebSnyanmisaka             ret = MPP_ERR_OPEN_FILE;\
101*437bfbebSnyanmisaka             M2VD_WARNNING("open file error(line%d): %s\n", __LINE__, path);\
102*437bfbebSnyanmisaka             M2VD_ASSERT(0); goto __FAILED;\
103*437bfbebSnyanmisaka     } } while (0)
104*437bfbebSnyanmisaka 
105*437bfbebSnyanmisaka //!< input check
106*437bfbebSnyanmisaka #define M2VD_CHK_I(val, ...)\
107*437bfbebSnyanmisaka     do{ if(!(val)) {\
108*437bfbebSnyanmisaka     ret = MPP_ERR_INIT;\
109*437bfbebSnyanmisaka     M2VD_WARNNING("input empty(%d), val:%d\n", __LINE__, val);\
110*437bfbebSnyanmisaka     goto __FAILED;\
111*437bfbebSnyanmisaka     } } while (0)
112*437bfbebSnyanmisaka 
113*437bfbebSnyanmisaka #define m2vd_dbg_func(tag) \
114*437bfbebSnyanmisaka     do {\
115*437bfbebSnyanmisaka         if (M2VD_DBG_FUNCTION & m2vd_debug)\
116*437bfbebSnyanmisaka             { mpp_log("%s: line(%d), func(%s)", tag, __LINE__, __FUNCTION__); }\
117*437bfbebSnyanmisaka     } while (0)
118*437bfbebSnyanmisaka 
119*437bfbebSnyanmisaka 
120*437bfbebSnyanmisaka 
121*437bfbebSnyanmisaka 
122*437bfbebSnyanmisaka #define  M2VD_FCLOSE(fp)    do{ if(fp) fclose(fp); fp = NULL; } while (0)
123*437bfbebSnyanmisaka 
124*437bfbebSnyanmisaka #endif
125