• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *
3  * Copyright 2018 Rockchip Electronics Co., LTD.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 #include <securec.h>
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <errno.h>
21 #include <string.h>
22 
23 #include "Rockchip_OSAL_Log.h"
24 #include "Rockchip_OSAL_Env.h"
25 
26 #ifndef OHOS
27 #include <sys/system_properties.h>
28 
Rockchip_OSAL_GetEnvU32(const char * name,OMX_U32 * value,OMX_U32 default_value)29 OMX_ERRORTYPE Rockchip_OSAL_GetEnvU32(const char *name, OMX_U32 *value, OMX_U32 default_value)
30 {
31     OMX_ERRORTYPE ret = OMX_ErrorNone;
32     char prop[PROP_VALUE_MAX + 1];
33     int len = __system_property_get(name, prop);
34     if (len > 0) {
35         char *endptr;
36         int base = (prop[0] == '0' && prop[1] == 'x') ? (16) : (10);
37         errno = 0;
38         *value = strtoul(prop, &endptr, base);
39         if (errno || (prop == endptr)) {
40             errno = 0;
41             *value = default_value;
42         }
43     } else {
44         *value = default_value;
45     }
46 
47     return ret;
48 }
49 
Rockchip_OSAL_GetEnvStr(const char * name,char * value,char * default_value)50 OMX_ERRORTYPE Rockchip_OSAL_GetEnvStr(const char *name, char *value, char *default_value)
51 {
52     OMX_ERRORTYPE ret = OMX_ErrorNone;
53     if (value != NULL) {
54         int len = __system_property_get(name, value);
55         if (len <= 0 && default_value != NULL) {
56             if (strcpy_s(value, strlen(default_value)+1, default_value) != EOK) {
57                 omx_err("strcpy_s error.\n");
58                 ret = OMX_ErrorBadParameter;
59                 goto EXIT;
60             }
61         }
62     } else {
63         omx_err("get env string failed, value is null");
64         ret = OMX_ErrorBadParameter;
65         goto EXIT;
66     }
67 
68 EXIT:
69     return ret;
70 }
71 
Rockchip_OSAL_SetEnvU32(const char * name,OMX_U32 value)72 OMX_ERRORTYPE Rockchip_OSAL_SetEnvU32(const char *name, OMX_U32 value)
73 {
74     OMX_ERRORTYPE ret = OMX_ErrorNone;
75     char buf[PROP_VALUE_MAX + 1];
76     if (snprintf_s(buf, sizeof(buf), sizeof(buf) - 1, "%lu", value) < 0) {
77         omx_err("snprintf_s error!");
78         ret = OMX_ErrorBadParameter;
79         goto EXIT;
80     }
81     int len = __system_property_set(name, buf);
82     if (len <= 0) {
83         omx_err("property set failed!");
84         ret = OMX_ErrorBadParameter;
85         goto EXIT;
86     }
87 EXIT:
88     return ret;
89 }
90 
Rockchip_OSAL_SetEnvStr(const char * name,char * value)91 OMX_ERRORTYPE Rockchip_OSAL_SetEnvStr(const char *name, char *value)
92 {
93     OMX_ERRORTYPE ret = OMX_ErrorNone;
94     int len = __system_property_set(name, value);
95     if (len <= 0) {
96         omx_err("property set failed!");
97         ret = OMX_ErrorBadParameter;
98         goto EXIT;
99     }
100 
101 EXIT:
102     return ret;
103 }
104 
105 #else
106 #define VDEC_DBG_RECORD_MASK                0xff000000
107 #define VDEC_DBG_RECORD_IN                  0x01000000
108 #define VDEC_DBG_RECORD_OUT                 0x02000000
109 
110 #define VIDEO_DBG_LOG_MASK                  0x0000ffff
111 #define VIDEO_DBG_LOG_PTS                   0x00000001
112 #define VIDEO_DBG_LOG_FPS                   0x00000002
113 #define VIDEO_DBG_LOG_BUFFER                0x00000004
114 #define VIDEO_DBG_LOG_DBG                   0x00000008
115 #define VIDEO_DBG_LOG_PORT                  0x00000010
116 #define VIDEO_DBG_LOG_BUFFER_POSITION       0x00000020
117 
118 #define VDEC_DBG_VPU_MPP_FIRST              0x00000001
119 #define VDEC_DBG_VPU_VPUAPI_FIRST           0x00000002
Rockchip_OSAL_GetEnvU32(const char * name,OMX_U32 * value,OMX_U32 default_value)120 OMX_ERRORTYPE Rockchip_OSAL_GetEnvU32(const char *name, OMX_U32 *value, OMX_U32 default_value)
121 {
122     *value = default_value;
123     omx_info("%s value: 0x%lx", name, *value);
124     return OMX_ErrorNone;
125 }
126 
Rockchip_OSAL_GetEnvStr(const char * name,char * value,char * default_value)127 OMX_ERRORTYPE Rockchip_OSAL_GetEnvStr(const char *name, char *value, char *default_value)
128 {
129     if ((value == NULL) || (default_value == NULL)) {
130         return OMX_ErrorUndefined;
131     }
132 
133     int ret;
134     ret = memcpy_s(value, strlen(value), default_value, strlen(default_value));
135     if (ret != EOK) {
136         printf("memcpy_s fail.\n");
137     }
138     omx_info("%s value: %s", name, value);
139     return OMX_ErrorNone;
140 }
141 
Rockchip_OSAL_SetEnvU32(const char * name,OMX_U32 value)142 OMX_ERRORTYPE Rockchip_OSAL_SetEnvU32(const char *name, OMX_U32 value)
143 {
144     return OMX_ErrorNone;
145 }
146 
Rockchip_OSAL_SetEnvStr(const char * name,char * value)147 OMX_ERRORTYPE Rockchip_OSAL_SetEnvStr(const char *name, char *value)
148 {
149     return OMX_ErrorNone;
150 }
151 #endif