Merge "mm-audio : Add aac, amr and g711 encoders"
diff --git a/mm-audio/Makefile.am b/mm-audio/Makefile.am
index e423acb..cd7d635 100644
--- a/mm-audio/Makefile.am
+++ b/mm-audio/Makefile.am
@@ -2,4 +2,4 @@
 #
 ACLOCAL_AMFLAGS = -I m4
 
-SUBDIRS = adec-aac adec-mp3 aenc-aac
+SUBDIRS = aenc-aac aenc-amrnb aenc-g711
diff --git a/mm-audio/aenc-aac/qdsp6/Makefile.am b/mm-audio/aenc-aac/qdsp6/Makefile.am
index 5af028a..d5103a4 100644
--- a/mm-audio/aenc-aac/qdsp6/Makefile.am
+++ b/mm-audio/aenc-aac/qdsp6/Makefile.am
@@ -15,16 +15,18 @@
 AM_CPPFLAGS += -DFEATURE_DSM_DUP_ITEMS
 AM_CPPFLAGS += -D_DEBUG
 AM_CPPFLAGS += -Iinc
+AM_CPPFLAGS += -I ${WORKSPACE}/hardware/qcom/media/mm-core/inc/
 
-c_sources  =src/omx_aac_aenc.cpp
+c_sources =src/omx_aac_aenc.cpp
 c_sources +=src/aenc_svr.c
 
 lib_LTLIBRARIES = libOmxAacEnc.la
 libOmxAacEnc_la_SOURCES = $(c_sources)
-libOmxAacEnc_la_CFLAGS = $(AM_CFLAGS) -fPIC
-libOmxAacEnc_la_LDLIBS = -lOmxCore -lstdc++ -lpthread
-libOmxAacEnc_la_LDFLAGS = -shared -version-info $(OMXAUDIO_LIBRARY_VERSION)
+libOmxAacEnc_la_CFLAGS = $(AM_CFLAGS) -fPIC $(GLIB_CFLAGS) -include glib.h -Dstrlcpy=g_strlcpy
+libOmxAacEnc_la_CPPFLAGS = $(AM_CPPFLAGS) -fPIC $(GLIB_CFLAGS) -include glib.h -Dstrlcpy=g_strlcpy
+libOmxAacEnc_la_LDLIBS = -lmm-omxcore -lstdc++ -lpthread $(GLIB_LIBS) -ldl -llog
+libOmxAacEnc_la_LDFLAGS = -shared $(GLIB_LIBS) -version-info $(OMXAUDIO_LIBRARY_VERSION)
 
 bin_PROGRAMS = mm-aenc-omxaac-test
-mm_aenc_omxaac_test_SOURCES = test/omx_aac_enc_test.c
-mm_aenc_omxaac_test_LDADD = -lOmxCore -ldl -lpthread libOmxAacEnc.la
+mm_aenc_omxaac_test_SOURCES = ./test/omx_aac_enc_test.c
+mm_aenc_omxaac_test_LDADD = -lmm-omxcore -ldl -lpthread -llog libOmxAacEnc.la
diff --git a/mm-audio/aenc-amrnb/Makefile.am b/mm-audio/aenc-amrnb/Makefile.am
new file mode 100644
index 0000000..24c1af2
--- /dev/null
+++ b/mm-audio/aenc-amrnb/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = qdsp6
diff --git a/mm-audio/aenc-amrnb/qdsp6/Makefile.am b/mm-audio/aenc-amrnb/qdsp6/Makefile.am
new file mode 100644
index 0000000..b63130c
--- /dev/null
+++ b/mm-audio/aenc-amrnb/qdsp6/Makefile.am
@@ -0,0 +1,42 @@
+AM_CFLAGS = -Wundef \
+        -Wstrict-prototypes \
+        -Wno-trigraphs \
+        -g  -O0 \
+        -fno-inline \
+        -fno-short-enums \
+        -fpic \
+        -I inc \
+        -I ${WORKSPACE}/hardware/qcom/media/mm-core/inc/
+
+# required pre-processor flags
+AM_CPPFLAGS = -D__packed__=
+AM_CPPFLAGS += -DIMAGE_APPS_PROC
+AM_CPPFLAGS += -DFEATURE_Q_SINGLE_LINK
+AM_CPPFLAGS += -DFEATURE_Q_NO_SELF_QPTR
+AM_CPPFLAGS += -DFEATURE_LINUX
+AM_CPPFLAGS += -DFEATURE_NATIVELINUX -Dstrlcpy=g_strlcpy
+AM_CPPFLAGS += -DFEATURE_DSM_DUP_ITEMS
+AM_CPPFLAGS += -I ${WORKSPACE}/hardware/qcom/media/mm-core/inc/
+
+AM_CPPFLAGS += -g
+AM_CPPFLAGS += -D_DEBUG
+AM_CPPFLAGS += -Iinc
+
+c_sources = src/omx_amr_aenc.cpp \
+            src/aenc_svr.c
+
+lib_LTLIBRARIES = libOmxAmrEnc.la
+libOmxAmrEnc_la_CC = @CC@
+libOmxAmrEnc_la_SOURCES = $(c_sources)
+libOmxAmrEnc_la_LIBADD  = -lcutils -llog
+libOmxAmrEnc_la_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) $(GLIB_CFLAGS) -include glib.h -Dstrlcpy=g_strlcpy
+libOmxAmrEnc_la_CPPFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) $(GLIB_CFLAGS) -include glib.h -Dstrlcpy=g_strlcpy
+libOmxAmrEnc_la_LDFLAGS = $(GLIB_LIBS) -shared -version-info 1:0:0
+
+bin_PROGRAMS = mm_aenc_omxamr_test
+
+mm_aenc_omxamr_test_c_sources = test/omx_amr_enc_test.c
+mm_aenc_omxamr_test_CC = @CC@
+mm_aenc_omxamr_test_SOURCES = $(mm_aenc_omxamr_test_c_sources)
+mm_aenc_omxamr_test_LDADD = libOmxAmrEnc.la -lmm-omxcore
+mm_aenc_omxamr_test_CPPFLAGS = $(AM_CPPFLAGS) $(AM_CFLAGS)
diff --git a/mm-audio/aenc-g711/Makefile.am b/mm-audio/aenc-g711/Makefile.am
new file mode 100644
index 0000000..24c1af2
--- /dev/null
+++ b/mm-audio/aenc-g711/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = qdsp6
diff --git a/mm-audio/aenc-g711/qdsp6/Makefile.am b/mm-audio/aenc-g711/qdsp6/Makefile.am
new file mode 100644
index 0000000..572b87d
--- /dev/null
+++ b/mm-audio/aenc-g711/qdsp6/Makefile.am
@@ -0,0 +1,29 @@
+AM_CFLAGS = -Wall \
+            -Wundef \
+            -Wstrict-prototypes \
+            -Wno-trigraphs \
+            -fPIC \
+            -g -O3 \
+            -DQC_MODIFIED \
+            -D_ANDROID_ \
+            -D_ENABLE_QC_MSG_LOG_ \
+            -DVERBOSE \
+            -D_DEBUG \
+            -DAUDIOV2 \
+            -I inc \
+            -I ${WORKSPACE}/hardware/qcom/media/mm-core/inc/
+
+C_SOURCES = src/aenc_svr.c \
+            src/omx_g711_aenc.cpp \
+            src/omx_log.cpp
+
+lib_LTLIBRARIES = libOmxG711Enc.la
+libOmxG711Enc_la_SOURCES = $(C_SOURCES)
+libOmxG711Enc_la_CFLAGS = $(AM_CFLAGS) -Dstrlcpy=g_strlcpy $(GLIB_CFLAGS) -include glib.h
+libOmxG711Enc_la_CPPFLAGS = $(AM_CFLAGS) -Dstrlcpy=g_strlcpy $(GLIB_CFLAGS) -include glib.h
+libOmxG711Enc_la_LDFLAGS = $(GLIB_LIBS) -lcutils -llog -lstdc++
+
+bin_PROGRAMS = mm_aenc_omxg711_test
+mm_aenc_omxg711_test_SOURCES = ./test/omx_g711_enc_test.c
+mm_aenc_omxg711_test_CFLAGS = $(AM_CFLAGS) -Dstrlcpy=g_strlcpy $(GLIB_CFLAGS) -include glib.h
+mm_aenc_omxg711_test_LDADD = $(GLIB_LIBS) -lmm-omxcore -lpthread libOmxG711Enc.la
diff --git a/mm-audio/configure.ac b/mm-audio/configure.ac
index b75d2ed..6eabd87 100644
--- a/mm-audio/configure.ac
+++ b/mm-audio/configure.ac
@@ -1,14 +1,14 @@
 #                                               -*- Autoconf -*-
 
-# configure.ac -- Autoconf script for mm-omxaudio
+# configure.ac -- Autoconf script for encoders
 #
 
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.61)
-AC_INIT([omxaudio],
+AC_INIT([encoders],
 	1.0.0)
-AM_INIT_AUTOMAKE([-Wall -Werror gnu foreign])
+AM_INIT_AUTOMAKE([foreign])
 AM_MAINTAINER_MODE
 AC_CONFIG_HEADER([config.h])
 AC_CONFIG_MACRO_DIR([m4])
@@ -21,6 +21,30 @@
 OMXAUDIO_LIBRARY_VERSION=$OMXAUDIO_MAJOR_VERSION:$OMXAUDIO_MINOR_VERSION:$OMXAUDIO_MICRO_VERSION
 AC_SUBST(OMXAUDIO_LIBRARY_VERSION)
 
+AC_ARG_WITH(sanitized-headers,
+        AS_HELP_STRING([--with-sanitized-headers=DIR],
+                [Specify the location of the sanitized Linux headers]),
+        [CPPFLAGS="$CPPFLAGS -idirafter $withval"])
+
+AC_ARG_WITH([glib],
+      AC_HELP_STRING([--with-glib],
+         [enable glib, Build against glib. Use this when building for HLOS systems which use glib]))
+
+if (test "x${with_glib}" = "xyes"); then
+        PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16, dummy=yes,
+                                AC_MSG_ERROR(GThread >= 2.16 is required))
+        PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, dummy=yes,
+                                AC_MSG_ERROR(GLib >= 2.16 is required))
+        GLIB_CFLAGS="$GLIB_CFLAGS $GTHREAD_CFLAGS"
+        GLIB_LIBS="$GLIB_LIBS $GTHREAD_LIBS"
+
+        AC_SUBST(GLIB_CFLAGS)
+        AC_SUBST(GLIB_LIBS)
+fi
+
+AM_CONDITIONAL(USE_GLIB, test "x${with_glib}" = "xyes")
+
+
 # Checks for programs.
 AC_PROG_CC
 AC_PROG_CPP
@@ -34,11 +58,11 @@
 
 AC_CONFIG_FILES([     \
 	Makefile \
-	adec-aac/Makefile \
-	adec-mp3/Makefile \
 	aenc-aac/Makefile \
-	adec-aac/qdsp6/Makefile \
-	adec-mp3/qdsp6/Makefile \
 	aenc-aac/qdsp6/Makefile \
+	aenc-amrnb/Makefile \
+	aenc-amrnb/qdsp6/Makefile \
+	aenc-g711/Makefile \
+	aenc-g711/qdsp6/Makefile
 	])
 AC_OUTPUT