summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChirayu Desai <chirayudesai1@gmail.com>2012-10-16 10:20:18 (GMT)
committerChirayu Desai <chirayudesai1@gmail.com>2012-10-27 12:16:28 (GMT)
commit79e21ef09bc2f0156ca6c40b6ce640138d878c37 (patch)
tree36798a9aa4904a8a71d75dfbe0a12c19f71f7a87
parent88fda93e7365a7f61c612acdb31237e732b24a38 (diff)
downloadandroid_hardware_samsung-jellybean-stable.zip
android_hardware_samsung-jellybean-stable.tar.gz
android_hardware_samsung-jellybean-stable.tar.bz2
exynos3: omx: moar love for p1jellybean-stable
- bump up mfc memsize - use H/W decoding for TV-Out Change-Id: I9425a371c29671e4ba9f82207f79d236ff6731e1
-rw-r--r--exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/Android.mk10
-rw-r--r--exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h4
-rw-r--r--exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/Android.mk4
-rw-r--r--exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c16
-rw-r--r--exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c16
5 files changed, 33 insertions, 17 deletions
diff --git a/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/Android.mk b/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/Android.mk
index 3c163a4..05d4d86 100644
--- a/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/Android.mk
+++ b/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/Android.mk
@@ -2,6 +2,10 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-include $(SEC_CODECS)/video/mfc_c110/dec/Android.mk
-include $(SEC_CODECS)/video/mfc_c110/enc/Android.mk
-include $(SEC_CODECS)/video/mfc_c110/csc/Android.mk \ No newline at end of file
+include $(SEC_CODECS)/video/mfc_c110/dec/Android.mk
+include $(SEC_CODECS)/video/mfc_c110/enc/Android.mk
+include $(SEC_CODECS)/video/mfc_c110/csc/Android.mk
+
+ifneq ($(TARGET_SEC_OMX_BIG_MMAP_BUFFER_SIZE),true)
+ LOCAL_CFLAGS += -DBIG_MMAP_BUFFER_SIZE
+endif
diff --git a/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h b/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h
index 118e1ba..071fb5d 100644
--- a/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h
+++ b/exynos3/s5pc110/sec_mm/sec_omx/sec_codecs/video/mfc_c110/include/SsbSipMfcApi.h
@@ -23,7 +23,11 @@
#define MAX_DECODER_INPUT_BUFFER_SIZE (1024 * 3072)
#define MAX_ENCODER_OUTPUT_BUFFER_SIZE (1024 * 3072)
+#ifdef BIG_MMAP_BUFFER_SIZE
+#define MMAP_BUFFER_SIZE_MMAP (62*1024*1024)
+#else
#define MMAP_BUFFER_SIZE_MMAP (35328*1024) // 34.5*1024*1024
+#endif // BIG_MMAP_BUFFER_SIZE
#define S5PC110_MFC_DEV_NAME "/dev/s3c-mfc"
diff --git a/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/Android.mk b/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/Android.mk
index 772c477..5802cc0 100644
--- a/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/Android.mk
+++ b/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/Android.mk
@@ -17,4 +17,8 @@ LOCAL_C_INCLUDES := $(SEC_OMX_INC)/khronos \
LOCAL_C_INCLUDES += $(SEC_OMX_TOP)/sec_codecs/video/mfc_c110/include
+ifeq ($(TARGET_USE_HWDECODING_TVOUT),true)
+ LOCAL_CFLAGS += -DUSE_HWDECODING_TVOUT
+endif
+
include $(BUILD_STATIC_LIBRARY)
diff --git a/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c b/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c
index 64ac7eb..6376989 100644
--- a/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c
+++ b/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c
@@ -699,13 +699,15 @@ OMX_ERRORTYPE SEC_MFC_H264Dec_GetExtensionIndex(
ret = OMX_ErrorNone;
#ifdef USE_ANDROID_EXTENSION
} else if (SEC_OSAL_Strcmp(cParameterName, SEC_INDEX_PARAM_ENABLE_ANB) == 0) {
- if (isTvOutEnabled()) {
- // Samsung normally pushes HW-decoded frames to the TV Out driver
- // but it's hard for us to do that without source, so return an error
- // and let Android fallback to software decoding
- ret = OMX_ErrorInsufficientResources;
- goto EXIT;
- }
+#ifndef USE_HWDECODING_TVOUT
+ if (isTvOutEnabled()) {
+ // Samsung normally pushes HW-decoded frames to the TV Out driver
+ // but it's hard for us to do that without source, so return an error
+ // and let Android fallback to software decoding
+ ret = OMX_ErrorInsufficientResources;
+ goto EXIT;
+ }
+#endif // USE_HWDECODING_TVOUT
*pIndexType = OMX_IndexParamEnableAndroidBuffers;
ret = OMX_ErrorNone;
diff --git a/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c b/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c
index fb679da..1da14e7 100644
--- a/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c
+++ b/exynos3/s5pc110/sec_mm/sec_omx/sec_omx_component/video/dec/mpeg4dec/SEC_OMX_Mpeg4dec.c
@@ -836,13 +836,15 @@ OMX_ERRORTYPE SEC_MFC_Mpeg4Dec_GetExtensionIndex(
ret = OMX_ErrorNone;
#ifdef USE_ANDROID_EXTENSION
} else if (SEC_OSAL_Strcmp(cParameterName, SEC_INDEX_PARAM_ENABLE_ANB) == 0) {
- if (isTvOutEnabled()) {
- // Samsung normally pushes HW-decoded frames to the TV Out driver
- // but it's hard for us to do that without source, so return an error
- // and let Android fallback to software decoding
- ret = OMX_ErrorInsufficientResources;
- goto EXIT;
- }
+#ifndef USE_HWDECODING_TVOUT
+ if (isTvOutEnabled()) {
+ // Samsung normally pushes HW-decoded frames to the TV Out driver
+ // but it's hard for us to do that without source, so return an error
+ // and let Android fallback to software decoding
+ ret = OMX_ErrorInsufficientResources;
+ goto EXIT;
+ }
+#endif // USE_HWDECODING_TVOUT
*pIndexType = OMX_IndexParamEnableAndroidBuffers;
ret = OMX_ErrorNone;