我的目标是进行微调以找到正确的线程优先级。
我关注的主题位于/ hardware / my_company / codec / openmax_il /
下我修改了2个文件
Android.mk
在LOCAL_C_INCLUDES列表中添加“$(TOP)/ system / core / include”,如下所示
LOCAL_C_INCLUDES:= \
blur blur blur
$(TOP)/hardware/my_company/camera/v4l2_camerahal \
$(TOP)/system/core/include
在我的源文件中。
#include <cutils/properties.h>
int componentInit(blur blur blur)
{
int ret = 0;
blur blur blur
// To find proper thread priority
char value[92];
property_get("omx.video_enc.priority", value, "0");
setVideoEncoderPriority(atoi(value));
return ret;
}
但是,我遇到了
的链接错误 error: undefined reference to 'property_get'
collect2: ld returned 1 exit status
如果有人帮忙,这对我有好处。 :)
由于
答案 0 :(得分:9)
听起来您想使用__system_property_get()
中定义的<sys/system_properties.h>
。从那个标题:
/* Look up a system property by name, copying its value and a
** \0 terminator to the provided pointer. The total bytes
** copied will be no greater than PROP_VALUE_MAX. Returns
** the string length of the value. A property that is not
** defined is identical to a property with a length 0 value.
*/
int __system_property_get(const char *name, char *value);
此签名并不完全是您要使用的签名,因为在未定义属性的情况下您具有默认值。由于__system_property_get()
在未定义属性的情况下返回0,因此您可以自己轻松补充。
以下是我在自己的本机代码中解决问题的方法,对我来说效果很好(虽然它缺少缓冲区溢出检查,这将是一个更好的解决方案):
#include <sys/system_properties.h>
int android_property_get(const char *key, char *value, const char *default_value)
{
int iReturn = __system_property_get(key, value);
if (!iReturn) strcpy(value, default_value);
return iReturn;
}
答案 1 :(得分:8)
您必须添加源文件
#include <cutils/properties.h>
并链接到android.mk中的libcutils:
LOCAL_STATIC_LIBRARIES := libcutils libc
答案 2 :(得分:0)
您需要添加:
#include <cutil/properties.h>
并在Andorid.mk中链接libcutils
LOCAL_WHOLE_STATIC_LIBRARIES := libcutils`