[Libva] [PATCH v3] android-log: enable logs according to Android version
Daniel Charles
daniel.charles at intel.com
Thu Aug 2 10:30:44 PDT 2012
Log functions available are now Android compatible and log statements
will show on user space android logging system.
Defined a LOG_TAG and make it available for all versions of Android.
Signed-off-by: Daniel Charles <daniel.charles at intel.com>
---
va/Android.mk | 13 +++++++++++--
va/sysdeps.h | 15 +++++++++++++++
va/va.c | 38 ++++++++++++++++++++++++++++++++++----
3 files changed, 60 insertions(+), 6 deletions(-)
diff --git a/va/Android.mk b/va/Android.mk
index 4a9923e..97cac95 100755
--- a/va/Android.mk
+++ b/va/Android.mk
@@ -26,11 +26,13 @@
LOCAL_PATH:= $(call my-dir)
LIBVA_DRIVERS_PATH = /system/lib
+#Version set to Android Jelly Bean
+NEED_VERSION := 4.1
+USE_ALOG := $(filter $(NEED_VERSION),$(firstword $(sort $(PLATFORM_VERSION) \
+ $(NEED_VERSION))))
include $(CLEAR_VARS)
-#LIBVA_MINOR_VERSION := 31
-#LIBVA_MAJOR_VERSION := 0
LOCAL_SRC_FILES := \
va.c \
@@ -41,6 +43,13 @@ LOCAL_CFLAGS += \
-DANDROID \
-DVA_DRIVERS_PATH="\"$(LIBVA_DRIVERS_PATH)\""
+#Android Jelly Bean defined ALOGx, older versions use LOGx
+ifeq ($(USE_ALOG), $(NEED_VERSION))
+LOCAL_CFLAGS += -DANDROID_ALOG
+else
+LOCAL_CFLAGS += -DANDROID_LOG
+endif
+
LOCAL_C_INCLUDES += \
$(TARGET_OUT_HEADERS)/libva \
$(LOCAL_PATH)/x11 \
diff --git a/va/sysdeps.h b/va/sysdeps.h
index 0752b17..d9e72a7 100644
--- a/va/sysdeps.h
+++ b/va/sysdeps.h
@@ -39,6 +39,21 @@
# define Bool int
# define True 1
# define False 0
+
+# define LOG_TAG "lib-va"
+# include <utils/Log.h>
+
+#ifdef ANDROID_ALOG
+# define va_log_error(buffer) ALOGE("%s", buffer);
+# define va_log_info(buffer) ALOGI("%s", buffer);
+#elif ANDROID_LOG
+# define va_log_error(buffer) LOGE("%s", buffer);
+# define va_log_info(buffer) LOGI("%s", buffer);
#endif
+#else
+
+# define va_log_error(buffer) fprintf(stderr, "libva error: %s", buffer);
+# define va_log_info(buffer) fprintf(stderr, "libva info: %s", buffer);
+#endif /* ANDROID */
#endif /* SYSDEPS_H */
diff --git a/va/va.c b/va/va.c
index 1bbe047..a7dd1ed 100644
--- a/va/va.c
+++ b/va/va.c
@@ -105,22 +105,52 @@ int vaDisplayIsValid(VADisplay dpy)
void va_errorMessage(const char *msg, ...)
{
+ char buffer[512];
+ char *alloc_buffer;
va_list args;
+ int len;
- fprintf(stderr, "libva error: ");
va_start(args, msg);
- vfprintf(stderr, msg, args);
+ len=vsnprintf(buffer, 512, msg, args);
va_end(args);
+
+ if (len >= 512) {
+ va_start(args, msg);
+ alloc_buffer=(char *)calloc(len+1, sizeof(char));
+ if (alloc_buffer)
+ if (len ==
+ vsnprintf(alloc_buffer,len+1,msg,args))
+ va_log_error(alloc_buffer);
+ va_end(args);
+ free(alloc_buffer);
+ } else {
+ va_log_error(buffer);
+ }
}
void va_infoMessage(const char *msg, ...)
{
+ char buffer[512];
+ char *alloc_buffer;
va_list args;
+ int len;
- fprintf(stderr, "libva: ");
va_start(args, msg);
- vfprintf(stderr, msg, args);
+ len=vsnprintf(buffer, 512, msg, args);
va_end(args);
+
+ if (len >= 512) {
+ va_start(args, msg);
+ alloc_buffer=(char *)calloc(len+1, sizeof(char));
+ if (alloc_buffer)
+ if (len ==
+ vsnprintf(alloc_buffer,len+1,msg,args))
+ va_log_info(alloc_buffer);
+ va_end(args);
+ free(alloc_buffer);
+ } else {
+ va_log_info(buffer);
+ }
}
static Bool va_checkVtable(void *ptr, char *function)
--
1.7.7.6
More information about the Libva
mailing list