* #29632: Added libsndfile dep
jni: updated sflphone
diff --git a/jni/libsndfile-1.0.25/programs/.deps/common.Po b/jni/libsndfile-1.0.25/programs/.deps/common.Po
new file mode 100644
index 0000000..c29f74f
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/common.Po
@@ -0,0 +1,108 @@
+common.o: common.c /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/stdc-predef.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/ctype.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h ../src/sndfile.h \
+ common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/ctype.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-cmp.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-cmp.Po
new file mode 100644
index 0000000..db0b84c
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-cmp.Po
@@ -0,0 +1,112 @@
+sndfile-cmp.o: sndfile-cmp.c ../src/sfconfig.h ../src/config.h \
+ /usr/include/stdio.h /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/inttypes.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h ../src/sndfile.h \
+ common.h
+
+../src/sfconfig.h:
+
+../src/config.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-concat.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-concat.Po
new file mode 100644
index 0000000..1566bb0
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-concat.Po
@@ -0,0 +1,100 @@
+sndfile-concat.o: sndfile-concat.c /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/ctype.h ../src/sndfile.h \
+ common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/ctype.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-convert.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-convert.Po
new file mode 100644
index 0000000..f580446
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-convert.Po
@@ -0,0 +1,100 @@
+sndfile-convert.o: sndfile-convert.c /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/ctype.h ../src/sndfile.h \
+ common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/ctype.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-deinterleave.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-deinterleave.Po
new file mode 100644
index 0000000..bc0d752
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-deinterleave.Po
@@ -0,0 +1,97 @@
+sndfile-deinterleave.o: sndfile-deinterleave.c /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h ../src/sndfile.h common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-info.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-info.Po
new file mode 100644
index 0000000..9345ed0
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-info.Po
@@ -0,0 +1,132 @@
+sndfile-info.o: sndfile-info.c /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/inttypes.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/ctype.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h ../src/sndfile.h common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/ctype.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-interleave.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-interleave.Po
new file mode 100644
index 0000000..a045ff5
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-interleave.Po
@@ -0,0 +1,97 @@
+sndfile-interleave.o: sndfile-interleave.c /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h ../src/sndfile.h common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-metadata-get.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-metadata-get.Po
new file mode 100644
index 0000000..e5aed9a
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-metadata-get.Po
@@ -0,0 +1,102 @@
+sndfile-metadata-get.o: sndfile-metadata-get.c ../src/config.h \
+ /usr/include/stdio.h /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/ctype.h ../src/sndfile.h \
+ common.h
+
+../src/config.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/ctype.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-metadata-set.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-metadata-set.Po
new file mode 100644
index 0000000..1215dfb
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-metadata-set.Po
@@ -0,0 +1,102 @@
+sndfile-metadata-set.o: sndfile-metadata-set.c ../src/config.h \
+ /usr/include/stdio.h /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/ctype.h ../src/sndfile.h \
+ common.h
+
+../src/config.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/ctype.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-play.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-play.Po
new file mode 100644
index 0000000..1d7ab75
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-play.Po
@@ -0,0 +1,220 @@
+sndfile-play.o: sndfile-play.c ../src/sfconfig.h ../src/config.h \
+ /usr/include/stdio.h /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h ../src/sndfile.h \
+ common.h /usr/include/alsa/asoundlib.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/stat.h /usr/include/assert.h \
+ /usr/include/sys/poll.h /usr/include/bits/poll.h \
+ /usr/include/alsa/asoundef.h /usr/include/alsa/version.h \
+ /usr/include/alsa/global.h /usr/include/alsa/input.h \
+ /usr/include/alsa/output.h /usr/include/alsa/error.h \
+ /usr/include/alsa/conf.h /usr/include/alsa/pcm.h \
+ /usr/include/alsa/rawmidi.h /usr/include/alsa/timer.h \
+ /usr/include/alsa/hwdep.h /usr/include/alsa/control.h \
+ /usr/include/alsa/mixer.h /usr/include/alsa/seq_event.h \
+ /usr/include/alsa/seq.h /usr/include/alsa/seqmid.h \
+ /usr/include/alsa/seq_midi_event.h /usr/include/sys/time.h \
+ /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h \
+ /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h \
+ /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h \
+ /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h \
+ /usr/include/sys/ttydefaults.h /usr/include/sys/soundcard.h \
+ /usr/include/linux/soundcard.h /usr/include/linux/patchkey.h
+
+../src/sfconfig.h:
+
+../src/config.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+../src/sndfile.h:
+
+common.h:
+
+/usr/include/alsa/asoundlib.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/assert.h:
+
+/usr/include/sys/poll.h:
+
+/usr/include/bits/poll.h:
+
+/usr/include/alsa/asoundef.h:
+
+/usr/include/alsa/version.h:
+
+/usr/include/alsa/global.h:
+
+/usr/include/alsa/input.h:
+
+/usr/include/alsa/output.h:
+
+/usr/include/alsa/error.h:
+
+/usr/include/alsa/conf.h:
+
+/usr/include/alsa/pcm.h:
+
+/usr/include/alsa/rawmidi.h:
+
+/usr/include/alsa/timer.h:
+
+/usr/include/alsa/hwdep.h:
+
+/usr/include/alsa/control.h:
+
+/usr/include/alsa/mixer.h:
+
+/usr/include/alsa/seq_event.h:
+
+/usr/include/alsa/seq.h:
+
+/usr/include/alsa/seqmid.h:
+
+/usr/include/alsa/seq_midi_event.h:
+
+/usr/include/sys/time.h:
+
+/usr/include/sys/ioctl.h:
+
+/usr/include/bits/ioctls.h:
+
+/usr/include/asm/ioctls.h:
+
+/usr/include/asm-generic/ioctls.h:
+
+/usr/include/linux/ioctl.h:
+
+/usr/include/asm/ioctl.h:
+
+/usr/include/asm-generic/ioctl.h:
+
+/usr/include/bits/ioctl-types.h:
+
+/usr/include/sys/ttydefaults.h:
+
+/usr/include/sys/soundcard.h:
+
+/usr/include/linux/soundcard.h:
+
+/usr/include/linux/patchkey.h:
diff --git a/jni/libsndfile-1.0.25/programs/.deps/sndfile-salvage.Po b/jni/libsndfile-1.0.25/programs/.deps/sndfile-salvage.Po
new file mode 100644
index 0000000..367dfd3
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.deps/sndfile-salvage.Po
@@ -0,0 +1,169 @@
+sndfile-salvage.o: sndfile-salvage.c /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/stdc-predef.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/bits/byteswap-16.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/inttypes.h \
+ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/ctype.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/stat.h \
+ /usr/include/sys/stat.h ../src/sndfile.h common.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/stdc-predef.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/byteswap-16.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/ctype.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/sys/stat.h:
+
+../src/sndfile.h:
+
+common.h:
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-cmp b/jni/libsndfile-1.0.25/programs/.libs/sndfile-cmp
new file mode 100755
index 0000000..cdaba91
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-cmp
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-concat b/jni/libsndfile-1.0.25/programs/.libs/sndfile-concat
new file mode 100755
index 0000000..2cb45ae
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-concat
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-convert b/jni/libsndfile-1.0.25/programs/.libs/sndfile-convert
new file mode 100755
index 0000000..35cb91c
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-convert
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-deinterleave b/jni/libsndfile-1.0.25/programs/.libs/sndfile-deinterleave
new file mode 100755
index 0000000..8feb19a
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-deinterleave
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-info b/jni/libsndfile-1.0.25/programs/.libs/sndfile-info
new file mode 100755
index 0000000..18f4e6b
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-info
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-interleave b/jni/libsndfile-1.0.25/programs/.libs/sndfile-interleave
new file mode 100755
index 0000000..3eb68d3
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-interleave
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-metadata-get b/jni/libsndfile-1.0.25/programs/.libs/sndfile-metadata-get
new file mode 100755
index 0000000..d73145f
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-metadata-get
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-metadata-set b/jni/libsndfile-1.0.25/programs/.libs/sndfile-metadata-set
new file mode 100755
index 0000000..1577a00
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-metadata-set
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-play b/jni/libsndfile-1.0.25/programs/.libs/sndfile-play
new file mode 100755
index 0000000..f738ca2
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-play
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/.libs/sndfile-salvage b/jni/libsndfile-1.0.25/programs/.libs/sndfile-salvage
new file mode 100755
index 0000000..8bb0ae5
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/.libs/sndfile-salvage
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/Makefile b/jni/libsndfile-1.0.25/programs/Makefile
new file mode 100644
index 0000000..99c0ce2
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/Makefile
@@ -0,0 +1,709 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# programs/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/libsndfile
+pkgincludedir = $(includedir)/libsndfile
+pkglibdir = $(libdir)/libsndfile
+pkglibexecdir = $(libexecdir)/libsndfile
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+target_triplet = x86_64-unknown-linux-gnu
+bin_PROGRAMS = sndfile-info$(EXEEXT) sndfile-play$(EXEEXT) \
+	sndfile-convert$(EXEEXT) sndfile-cmp$(EXEEXT) \
+	sndfile-metadata-set$(EXEEXT) sndfile-metadata-get$(EXEEXT) \
+	sndfile-interleave$(EXEEXT) sndfile-deinterleave$(EXEEXT) \
+	sndfile-concat$(EXEEXT) sndfile-salvage$(EXEEXT)
+subdir = programs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/M4/add_cflags.m4 \
+	$(top_srcdir)/M4/add_cxxflags.m4 $(top_srcdir)/M4/clip_mode.m4 \
+	$(top_srcdir)/M4/endian.m4 $(top_srcdir)/M4/extra_largefile.m4 \
+	$(top_srcdir)/M4/extra_pkg.m4 \
+	$(top_srcdir)/M4/flexible_array.m4 \
+	$(top_srcdir)/M4/gcc_version.m4 $(top_srcdir)/M4/libtool.m4 \
+	$(top_srcdir)/M4/lrint.m4 $(top_srcdir)/M4/lrintf.m4 \
+	$(top_srcdir)/M4/ltoptions.m4 $(top_srcdir)/M4/ltsugar.m4 \
+	$(top_srcdir)/M4/ltversion.m4 $(top_srcdir)/M4/lt~obsolete.m4 \
+	$(top_srcdir)/M4/mkoctfile_version.m4 \
+	$(top_srcdir)/M4/octave.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_sndfile_cmp_OBJECTS = sndfile-cmp.$(OBJEXT) common.$(OBJEXT)
+sndfile_cmp_OBJECTS = $(am_sndfile_cmp_OBJECTS)
+sndfile_cmp_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+am_sndfile_concat_OBJECTS = sndfile-concat.$(OBJEXT) common.$(OBJEXT)
+sndfile_concat_OBJECTS = $(am_sndfile_concat_OBJECTS)
+sndfile_concat_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_convert_OBJECTS = sndfile-convert.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_convert_OBJECTS = $(am_sndfile_convert_OBJECTS)
+sndfile_convert_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_deinterleave_OBJECTS = sndfile-deinterleave.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_deinterleave_OBJECTS = $(am_sndfile_deinterleave_OBJECTS)
+sndfile_deinterleave_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_info_OBJECTS = sndfile-info.$(OBJEXT) common.$(OBJEXT)
+sndfile_info_OBJECTS = $(am_sndfile_info_OBJECTS)
+sndfile_info_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_interleave_OBJECTS = sndfile-interleave.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_interleave_OBJECTS = $(am_sndfile_interleave_OBJECTS)
+sndfile_interleave_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_metadata_get_OBJECTS = sndfile-metadata-get.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_metadata_get_OBJECTS = $(am_sndfile_metadata_get_OBJECTS)
+sndfile_metadata_get_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_metadata_set_OBJECTS = sndfile-metadata-set.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_metadata_set_OBJECTS = $(am_sndfile_metadata_set_OBJECTS)
+sndfile_metadata_set_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_play_OBJECTS = sndfile-play.$(OBJEXT) common.$(OBJEXT)
+sndfile_play_OBJECTS = $(am_sndfile_play_OBJECTS)
+am__DEPENDENCIES_1 =
+sndfile_play_DEPENDENCIES = $(top_builddir)/src/libsndfile.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_sndfile_salvage_OBJECTS = sndfile-salvage.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_salvage_OBJECTS = $(am_sndfile_salvage_OBJECTS)
+sndfile_salvage_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/src
+depcomp = $(SHELL) $(top_srcdir)/Cfg/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo "  CC    " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(sndfile_cmp_SOURCES) $(sndfile_concat_SOURCES) \
+	$(sndfile_convert_SOURCES) $(sndfile_deinterleave_SOURCES) \
+	$(sndfile_info_SOURCES) $(sndfile_interleave_SOURCES) \
+	$(sndfile_metadata_get_SOURCES) \
+	$(sndfile_metadata_set_SOURCES) $(sndfile_play_SOURCES) \
+	$(sndfile_salvage_SOURCES)
+DIST_SOURCES = $(sndfile_cmp_SOURCES) $(sndfile_concat_SOURCES) \
+	$(sndfile_convert_SOURCES) $(sndfile_deinterleave_SOURCES) \
+	$(sndfile_info_SOURCES) $(sndfile_interleave_SOURCES) \
+	$(sndfile_metadata_get_SOURCES) \
+	$(sndfile_metadata_set_SOURCES) $(sndfile_play_SOURCES) \
+	$(sndfile_salvage_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run aclocal-1.11
+ACLOCAL_AMFLAGS = -I M4
+ALSA_LIBS = 
+AMTAR = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run tar
+AM_DEFAULT_VERBOSITY = 0
+AR = ar
+AUTOCONF = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run automake-1.11
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef  -pipe 
+CLEAN_VERSION = 1.0.25
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2 -Wall -Wextra -Wcast-align -Wcast-qual -Wshadow -Wwrite-strings -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wreorder -Wsign-promo -Wundef 
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = false
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /usr/bin/grep -E
+EXEEXT = 
+EXTERNAL_CFLAGS = 
+EXTERNAL_LIBS = 
+FGREP = /usr/bin/grep -F
+FLAC_CFLAGS = 
+FLAC_LIBS = 
+GCC_MAJOR_VERSION = 4
+GCC_MINOR_VERSION = 7
+GCC_VERSION = 4.7.2
+GETCONF = 
+GREP = /usr/bin/grep
+HAVE_AUTOGEN = no
+HAVE_MKOCTFILE = no
+HAVE_OCTAVE = no
+HAVE_OCTAVE_CONFIG = no
+HAVE_WINE = no
+HOST_TRIPLET = x86_64-unknown-linux-gnu
+HTML_BGCOLOUR = black
+HTML_FGCOLOUR = white
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = -lm 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBTOOL_DEPS = Cfg/ltmain.sh
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run makeinfo
+MANIFEST_TOOL = :
+MKDIR_P = /usr/bin/mkdir -p
+MKOCTFILE = 
+MKOCTFILE_VERSION = 
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = 
+OCTAVE_CONFIG = 
+OCTAVE_CONFIG_VERSION = 
+OCTAVE_DEST_MDIR = 
+OCTAVE_DEST_ODIR = 
+OCTAVE_VERSION = 
+OGG_CFLAGS = 
+OGG_LIBS = 
+OS_SPECIFIC_CFLAGS = 
+OS_SPECIFIC_LINKS = 
+OTOOL = 
+OTOOL64 = 
+PACKAGE = libsndfile
+PACKAGE_BUGREPORT = sndfile@mega-nerd.com
+PACKAGE_NAME = libsndfile
+PACKAGE_STRING = libsndfile 1.0.25
+PACKAGE_TARNAME = libsndfile
+PACKAGE_URL = http://www.mega-nerd.com/libsndfile/
+PACKAGE_VERSION = 1.0.25
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_LIBDIR = 
+PKG_CONFIG_PATH = 
+RANLIB = ranlib
+RC = 
+SED = /usr/bin/sed
+SET_MAKE = 
+SF_COUNT_MAX = 0x7FFFFFFFFFFFFFFFLL
+SHARED_VERSION_INFO = 1:25:0
+SHELL = /bin/sh
+SHLIB_VERSION_ARG = -Wl,--version-script=$(srcdir)/Symbols.gnu-binutils
+SIZEOF_SF_COUNT_T = 8
+SNDIO_LIBS = 
+SPEEX_CFLAGS = 
+SPEEX_LIBS = 
+SQLITE3_CFLAGS =  
+SQLITE3_LIBS = -lsqlite3  
+STRIP = strip
+TYPEOF_SF_COUNT_T = int64_t
+VERSION = 1.0.25
+VORBISENC_CFLAGS = 
+VORBISENC_LIBS = 
+VORBIS_CFLAGS = 
+VORBIS_LIBS = 
+WIN_RC_VERSION = 1,0,25
+abs_builddir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs
+abs_srcdir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs
+abs_top_builddir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25
+abs_top_srcdir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25
+ac_ct_AR = ar
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+htmldocdir = /usr/local/share/doc/libsndfile1-dev/html
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /usr/bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-unknown-linux-gnu
+target_alias = 
+target_cpu = x86_64
+target_os = linux-gnu
+target_vendor = unknown
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+INCLUDES = -I$(top_srcdir)/src $(OS_SPECIFIC_CFLAGS)
+CLEANFILES = *~
+
+# This is the BeOS version of sndfile-play. It needs to be compiled with the C++
+# compiler.
+EXTRA_DIST = sndfile-play-beos.cpp test-sndfile-metadata-set.py
+sndfile_info_SOURCES = sndfile-info.c common.c common.h
+sndfile_info_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_play_SOURCES = sndfile-play.c common.c common.h
+sndfile_play_LDADD = $(top_builddir)/src/libsndfile.la $(OS_SPECIFIC_LINKS) $(ALSA_LIBS) $(SNDIO_LIBS)
+sndfile_convert_SOURCES = sndfile-convert.c common.c common.h
+sndfile_convert_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_cmp_SOURCES = sndfile-cmp.c common.c common.h
+sndfile_cmp_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_metadata_set_SOURCES = sndfile-metadata-set.c common.c common.h
+sndfile_metadata_set_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_metadata_get_SOURCES = sndfile-metadata-get.c common.c common.h
+sndfile_metadata_get_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_interleave_SOURCES = sndfile-interleave.c common.c common.h
+sndfile_interleave_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_deinterleave_SOURCES = sndfile-deinterleave.c common.c common.h
+sndfile_deinterleave_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_concat_SOURCES = sndfile-concat.c common.c common.h
+sndfile_concat_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_salvage_SOURCES = sndfile-salvage.c common.c common.h
+sndfile_salvage_LDADD = $(top_builddir)/src/libsndfile.la
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu programs/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu programs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+sndfile-cmp$(EXEEXT): $(sndfile_cmp_OBJECTS) $(sndfile_cmp_DEPENDENCIES) 
+	@rm -f sndfile-cmp$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_cmp_OBJECTS) $(sndfile_cmp_LDADD) $(LIBS)
+sndfile-concat$(EXEEXT): $(sndfile_concat_OBJECTS) $(sndfile_concat_DEPENDENCIES) 
+	@rm -f sndfile-concat$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_concat_OBJECTS) $(sndfile_concat_LDADD) $(LIBS)
+sndfile-convert$(EXEEXT): $(sndfile_convert_OBJECTS) $(sndfile_convert_DEPENDENCIES) 
+	@rm -f sndfile-convert$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_convert_OBJECTS) $(sndfile_convert_LDADD) $(LIBS)
+sndfile-deinterleave$(EXEEXT): $(sndfile_deinterleave_OBJECTS) $(sndfile_deinterleave_DEPENDENCIES) 
+	@rm -f sndfile-deinterleave$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_deinterleave_OBJECTS) $(sndfile_deinterleave_LDADD) $(LIBS)
+sndfile-info$(EXEEXT): $(sndfile_info_OBJECTS) $(sndfile_info_DEPENDENCIES) 
+	@rm -f sndfile-info$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_info_OBJECTS) $(sndfile_info_LDADD) $(LIBS)
+sndfile-interleave$(EXEEXT): $(sndfile_interleave_OBJECTS) $(sndfile_interleave_DEPENDENCIES) 
+	@rm -f sndfile-interleave$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_interleave_OBJECTS) $(sndfile_interleave_LDADD) $(LIBS)
+sndfile-metadata-get$(EXEEXT): $(sndfile_metadata_get_OBJECTS) $(sndfile_metadata_get_DEPENDENCIES) 
+	@rm -f sndfile-metadata-get$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_metadata_get_OBJECTS) $(sndfile_metadata_get_LDADD) $(LIBS)
+sndfile-metadata-set$(EXEEXT): $(sndfile_metadata_set_OBJECTS) $(sndfile_metadata_set_DEPENDENCIES) 
+	@rm -f sndfile-metadata-set$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_metadata_set_OBJECTS) $(sndfile_metadata_set_LDADD) $(LIBS)
+sndfile-play$(EXEEXT): $(sndfile_play_OBJECTS) $(sndfile_play_DEPENDENCIES) 
+	@rm -f sndfile-play$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_play_OBJECTS) $(sndfile_play_LDADD) $(LIBS)
+sndfile-salvage$(EXEEXT): $(sndfile_salvage_OBJECTS) $(sndfile_salvage_DEPENDENCIES) 
+	@rm -f sndfile-salvage$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_salvage_OBJECTS) $(sndfile_salvage_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/common.Po
+include ./$(DEPDIR)/sndfile-cmp.Po
+include ./$(DEPDIR)/sndfile-concat.Po
+include ./$(DEPDIR)/sndfile-convert.Po
+include ./$(DEPDIR)/sndfile-deinterleave.Po
+include ./$(DEPDIR)/sndfile-info.Po
+include ./$(DEPDIR)/sndfile-interleave.Po
+include ./$(DEPDIR)/sndfile-metadata-get.Po
+include ./$(DEPDIR)/sndfile-metadata-set.Po
+include ./$(DEPDIR)/sndfile-play.Po
+include ./$(DEPDIR)/sndfile-salvage.Po
+
+.c.o:
+	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	$(AM_V_CC) \
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(COMPILE) -c $<
+
+.c.obj:
+	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	$(AM_V_CC) \
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	$(AM_V_CC) \
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool ctags distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-binPROGRAMS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/jni/libsndfile-1.0.25/programs/Makefile.am b/jni/libsndfile-1.0.25/programs/Makefile.am
new file mode 100644
index 0000000..b513c56
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/Makefile.am
@@ -0,0 +1,47 @@
+## Process this file with automake to produce Makefile.in
+
+bin_PROGRAMS = sndfile-info sndfile-play sndfile-convert sndfile-cmp \
+				sndfile-metadata-set sndfile-metadata-get sndfile-interleave \
+				sndfile-deinterleave sndfile-concat sndfile-salvage
+
+OS_SPECIFIC_CFLAGS = @OS_SPECIFIC_CFLAGS@
+OS_SPECIFIC_LINKS = @OS_SPECIFIC_LINKS@
+
+INCLUDES = -I$(top_srcdir)/src $(OS_SPECIFIC_CFLAGS)
+
+CLEANFILES = *~
+
+# This is the BeOS version of sndfile-play. It needs to be compiled with the C++
+# compiler.
+EXTRA_DIST = sndfile-play-beos.cpp test-sndfile-metadata-set.py
+
+sndfile_info_SOURCES = sndfile-info.c common.c common.h
+sndfile_info_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_play_SOURCES = sndfile-play.c common.c common.h
+sndfile_play_LDADD = $(top_builddir)/src/libsndfile.la $(OS_SPECIFIC_LINKS) $(ALSA_LIBS) $(SNDIO_LIBS)
+
+sndfile_convert_SOURCES = sndfile-convert.c common.c common.h
+sndfile_convert_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_cmp_SOURCES = sndfile-cmp.c common.c common.h
+sndfile_cmp_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_metadata_set_SOURCES = sndfile-metadata-set.c common.c common.h
+sndfile_metadata_set_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_metadata_get_SOURCES = sndfile-metadata-get.c common.c common.h
+sndfile_metadata_get_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_interleave_SOURCES = sndfile-interleave.c common.c common.h
+sndfile_interleave_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_deinterleave_SOURCES = sndfile-deinterleave.c common.c common.h
+sndfile_deinterleave_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_concat_SOURCES = sndfile-concat.c common.c common.h
+sndfile_concat_LDADD = $(top_builddir)/src/libsndfile.la
+
+sndfile_salvage_SOURCES = sndfile-salvage.c common.c common.h
+sndfile_salvage_LDADD = $(top_builddir)/src/libsndfile.la
+
diff --git a/jni/libsndfile-1.0.25/programs/Makefile.in b/jni/libsndfile-1.0.25/programs/Makefile.in
new file mode 100644
index 0000000..db33994
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/Makefile.in
@@ -0,0 +1,709 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+bin_PROGRAMS = sndfile-info$(EXEEXT) sndfile-play$(EXEEXT) \
+	sndfile-convert$(EXEEXT) sndfile-cmp$(EXEEXT) \
+	sndfile-metadata-set$(EXEEXT) sndfile-metadata-get$(EXEEXT) \
+	sndfile-interleave$(EXEEXT) sndfile-deinterleave$(EXEEXT) \
+	sndfile-concat$(EXEEXT) sndfile-salvage$(EXEEXT)
+subdir = programs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/M4/add_cflags.m4 \
+	$(top_srcdir)/M4/add_cxxflags.m4 $(top_srcdir)/M4/clip_mode.m4 \
+	$(top_srcdir)/M4/endian.m4 $(top_srcdir)/M4/extra_largefile.m4 \
+	$(top_srcdir)/M4/extra_pkg.m4 \
+	$(top_srcdir)/M4/flexible_array.m4 \
+	$(top_srcdir)/M4/gcc_version.m4 $(top_srcdir)/M4/libtool.m4 \
+	$(top_srcdir)/M4/lrint.m4 $(top_srcdir)/M4/lrintf.m4 \
+	$(top_srcdir)/M4/ltoptions.m4 $(top_srcdir)/M4/ltsugar.m4 \
+	$(top_srcdir)/M4/ltversion.m4 $(top_srcdir)/M4/lt~obsolete.m4 \
+	$(top_srcdir)/M4/mkoctfile_version.m4 \
+	$(top_srcdir)/M4/octave.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_sndfile_cmp_OBJECTS = sndfile-cmp.$(OBJEXT) common.$(OBJEXT)
+sndfile_cmp_OBJECTS = $(am_sndfile_cmp_OBJECTS)
+sndfile_cmp_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+am_sndfile_concat_OBJECTS = sndfile-concat.$(OBJEXT) common.$(OBJEXT)
+sndfile_concat_OBJECTS = $(am_sndfile_concat_OBJECTS)
+sndfile_concat_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_convert_OBJECTS = sndfile-convert.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_convert_OBJECTS = $(am_sndfile_convert_OBJECTS)
+sndfile_convert_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_deinterleave_OBJECTS = sndfile-deinterleave.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_deinterleave_OBJECTS = $(am_sndfile_deinterleave_OBJECTS)
+sndfile_deinterleave_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_info_OBJECTS = sndfile-info.$(OBJEXT) common.$(OBJEXT)
+sndfile_info_OBJECTS = $(am_sndfile_info_OBJECTS)
+sndfile_info_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_interleave_OBJECTS = sndfile-interleave.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_interleave_OBJECTS = $(am_sndfile_interleave_OBJECTS)
+sndfile_interleave_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_metadata_get_OBJECTS = sndfile-metadata-get.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_metadata_get_OBJECTS = $(am_sndfile_metadata_get_OBJECTS)
+sndfile_metadata_get_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_metadata_set_OBJECTS = sndfile-metadata-set.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_metadata_set_OBJECTS = $(am_sndfile_metadata_set_OBJECTS)
+sndfile_metadata_set_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+am_sndfile_play_OBJECTS = sndfile-play.$(OBJEXT) common.$(OBJEXT)
+sndfile_play_OBJECTS = $(am_sndfile_play_OBJECTS)
+am__DEPENDENCIES_1 =
+sndfile_play_DEPENDENCIES = $(top_builddir)/src/libsndfile.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_sndfile_salvage_OBJECTS = sndfile-salvage.$(OBJEXT) \
+	common.$(OBJEXT)
+sndfile_salvage_OBJECTS = $(am_sndfile_salvage_OBJECTS)
+sndfile_salvage_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
+depcomp = $(SHELL) $(top_srcdir)/Cfg/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo "  CC    " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(sndfile_cmp_SOURCES) $(sndfile_concat_SOURCES) \
+	$(sndfile_convert_SOURCES) $(sndfile_deinterleave_SOURCES) \
+	$(sndfile_info_SOURCES) $(sndfile_interleave_SOURCES) \
+	$(sndfile_metadata_get_SOURCES) \
+	$(sndfile_metadata_set_SOURCES) $(sndfile_play_SOURCES) \
+	$(sndfile_salvage_SOURCES)
+DIST_SOURCES = $(sndfile_cmp_SOURCES) $(sndfile_concat_SOURCES) \
+	$(sndfile_convert_SOURCES) $(sndfile_deinterleave_SOURCES) \
+	$(sndfile_info_SOURCES) $(sndfile_interleave_SOURCES) \
+	$(sndfile_metadata_get_SOURCES) \
+	$(sndfile_metadata_set_SOURCES) $(sndfile_play_SOURCES) \
+	$(sndfile_salvage_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLEAN_VERSION = @CLEAN_VERSION@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXTERNAL_CFLAGS = @EXTERNAL_CFLAGS@
+EXTERNAL_LIBS = @EXTERNAL_LIBS@
+FGREP = @FGREP@
+FLAC_CFLAGS = @FLAC_CFLAGS@
+FLAC_LIBS = @FLAC_LIBS@
+GCC_MAJOR_VERSION = @GCC_MAJOR_VERSION@
+GCC_MINOR_VERSION = @GCC_MINOR_VERSION@
+GCC_VERSION = @GCC_VERSION@
+GETCONF = @GETCONF@
+GREP = @GREP@
+HAVE_AUTOGEN = @HAVE_AUTOGEN@
+HAVE_MKOCTFILE = @HAVE_MKOCTFILE@
+HAVE_OCTAVE = @HAVE_OCTAVE@
+HAVE_OCTAVE_CONFIG = @HAVE_OCTAVE_CONFIG@
+HAVE_WINE = @HAVE_WINE@
+HOST_TRIPLET = @HOST_TRIPLET@
+HTML_BGCOLOUR = @HTML_BGCOLOUR@
+HTML_FGCOLOUR = @HTML_FGCOLOUR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKOCTFILE = @MKOCTFILE@
+MKOCTFILE_VERSION = @MKOCTFILE_VERSION@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OCTAVE = @OCTAVE@
+OCTAVE_CONFIG = @OCTAVE_CONFIG@
+OCTAVE_CONFIG_VERSION = @OCTAVE_CONFIG_VERSION@
+OCTAVE_DEST_MDIR = @OCTAVE_DEST_MDIR@
+OCTAVE_DEST_ODIR = @OCTAVE_DEST_ODIR@
+OCTAVE_VERSION = @OCTAVE_VERSION@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+OS_SPECIFIC_CFLAGS = @OS_SPECIFIC_CFLAGS@
+OS_SPECIFIC_LINKS = @OS_SPECIFIC_LINKS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+RC = @RC@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SF_COUNT_MAX = @SF_COUNT_MAX@
+SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
+SHELL = @SHELL@
+SHLIB_VERSION_ARG = @SHLIB_VERSION_ARG@
+SIZEOF_SF_COUNT_T = @SIZEOF_SF_COUNT_T@
+SNDIO_LIBS = @SNDIO_LIBS@
+SPEEX_CFLAGS = @SPEEX_CFLAGS@
+SPEEX_LIBS = @SPEEX_LIBS@
+SQLITE3_CFLAGS = @SQLITE3_CFLAGS@
+SQLITE3_LIBS = @SQLITE3_LIBS@
+STRIP = @STRIP@
+TYPEOF_SF_COUNT_T = @TYPEOF_SF_COUNT_T@
+VERSION = @VERSION@
+VORBISENC_CFLAGS = @VORBISENC_CFLAGS@
+VORBISENC_LIBS = @VORBISENC_LIBS@
+VORBIS_CFLAGS = @VORBIS_CFLAGS@
+VORBIS_LIBS = @VORBIS_LIBS@
+WIN_RC_VERSION = @WIN_RC_VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+htmldocdir = @htmldocdir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+INCLUDES = -I$(top_srcdir)/src $(OS_SPECIFIC_CFLAGS)
+CLEANFILES = *~
+
+# This is the BeOS version of sndfile-play. It needs to be compiled with the C++
+# compiler.
+EXTRA_DIST = sndfile-play-beos.cpp test-sndfile-metadata-set.py
+sndfile_info_SOURCES = sndfile-info.c common.c common.h
+sndfile_info_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_play_SOURCES = sndfile-play.c common.c common.h
+sndfile_play_LDADD = $(top_builddir)/src/libsndfile.la $(OS_SPECIFIC_LINKS) $(ALSA_LIBS) $(SNDIO_LIBS)
+sndfile_convert_SOURCES = sndfile-convert.c common.c common.h
+sndfile_convert_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_cmp_SOURCES = sndfile-cmp.c common.c common.h
+sndfile_cmp_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_metadata_set_SOURCES = sndfile-metadata-set.c common.c common.h
+sndfile_metadata_set_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_metadata_get_SOURCES = sndfile-metadata-get.c common.c common.h
+sndfile_metadata_get_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_interleave_SOURCES = sndfile-interleave.c common.c common.h
+sndfile_interleave_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_deinterleave_SOURCES = sndfile-deinterleave.c common.c common.h
+sndfile_deinterleave_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_concat_SOURCES = sndfile-concat.c common.c common.h
+sndfile_concat_LDADD = $(top_builddir)/src/libsndfile.la
+sndfile_salvage_SOURCES = sndfile-salvage.c common.c common.h
+sndfile_salvage_LDADD = $(top_builddir)/src/libsndfile.la
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu programs/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu programs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+sndfile-cmp$(EXEEXT): $(sndfile_cmp_OBJECTS) $(sndfile_cmp_DEPENDENCIES) 
+	@rm -f sndfile-cmp$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_cmp_OBJECTS) $(sndfile_cmp_LDADD) $(LIBS)
+sndfile-concat$(EXEEXT): $(sndfile_concat_OBJECTS) $(sndfile_concat_DEPENDENCIES) 
+	@rm -f sndfile-concat$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_concat_OBJECTS) $(sndfile_concat_LDADD) $(LIBS)
+sndfile-convert$(EXEEXT): $(sndfile_convert_OBJECTS) $(sndfile_convert_DEPENDENCIES) 
+	@rm -f sndfile-convert$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_convert_OBJECTS) $(sndfile_convert_LDADD) $(LIBS)
+sndfile-deinterleave$(EXEEXT): $(sndfile_deinterleave_OBJECTS) $(sndfile_deinterleave_DEPENDENCIES) 
+	@rm -f sndfile-deinterleave$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_deinterleave_OBJECTS) $(sndfile_deinterleave_LDADD) $(LIBS)
+sndfile-info$(EXEEXT): $(sndfile_info_OBJECTS) $(sndfile_info_DEPENDENCIES) 
+	@rm -f sndfile-info$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_info_OBJECTS) $(sndfile_info_LDADD) $(LIBS)
+sndfile-interleave$(EXEEXT): $(sndfile_interleave_OBJECTS) $(sndfile_interleave_DEPENDENCIES) 
+	@rm -f sndfile-interleave$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_interleave_OBJECTS) $(sndfile_interleave_LDADD) $(LIBS)
+sndfile-metadata-get$(EXEEXT): $(sndfile_metadata_get_OBJECTS) $(sndfile_metadata_get_DEPENDENCIES) 
+	@rm -f sndfile-metadata-get$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_metadata_get_OBJECTS) $(sndfile_metadata_get_LDADD) $(LIBS)
+sndfile-metadata-set$(EXEEXT): $(sndfile_metadata_set_OBJECTS) $(sndfile_metadata_set_DEPENDENCIES) 
+	@rm -f sndfile-metadata-set$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_metadata_set_OBJECTS) $(sndfile_metadata_set_LDADD) $(LIBS)
+sndfile-play$(EXEEXT): $(sndfile_play_OBJECTS) $(sndfile_play_DEPENDENCIES) 
+	@rm -f sndfile-play$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_play_OBJECTS) $(sndfile_play_LDADD) $(LIBS)
+sndfile-salvage$(EXEEXT): $(sndfile_salvage_OBJECTS) $(sndfile_salvage_DEPENDENCIES) 
+	@rm -f sndfile-salvage$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sndfile_salvage_OBJECTS) $(sndfile_salvage_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-cmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-concat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-convert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-deinterleave.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-info.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-interleave.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-metadata-get.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-metadata-set.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-play.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndfile-salvage.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool ctags distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-binPROGRAMS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/jni/libsndfile-1.0.25/programs/common.c b/jni/libsndfile-1.0.25/programs/common.c
new file mode 100644
index 0000000..41b8e6e
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/common.c
@@ -0,0 +1,379 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+** Copyright (C) 2008 George Blood Audio
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdint.h>
+
+#include <sndfile.h>
+
+#include "common.h"
+
+#define	 BUFFER_LEN	4096
+
+#define	MIN(x,y)	((x) < (y) ? (x) : (y))
+
+void
+sfe_copy_data_fp (SNDFILE *outfile, SNDFILE *infile, int channels)
+{	static double	data [BUFFER_LEN], max ;
+	int		frames, readcount, k ;
+
+	frames = BUFFER_LEN / channels ;
+	readcount = frames ;
+
+	sf_command (infile, SFC_CALC_SIGNAL_MAX, &max, sizeof (max)) ;
+
+	if (max < 1.0)
+	{	while (readcount > 0)
+		{	readcount = sf_readf_double (infile, data, frames) ;
+			sf_writef_double (outfile, data, readcount) ;
+			} ;
+		}
+	else
+	{	sf_command (infile, SFC_SET_NORM_DOUBLE, NULL, SF_FALSE) ;
+
+		while (readcount > 0)
+		{	readcount = sf_readf_double (infile, data, frames) ;
+			for (k = 0 ; k < readcount * channels ; k++)
+				data [k] /= max ;
+			sf_writef_double (outfile, data, readcount) ;
+			} ;
+		} ;
+
+	return ;
+} /* sfe_copy_data_fp */
+
+void
+sfe_copy_data_int (SNDFILE *outfile, SNDFILE *infile, int channels)
+{	static int	data [BUFFER_LEN] ;
+	int		frames, readcount ;
+
+	frames = BUFFER_LEN / channels ;
+	readcount = frames ;
+
+	while (readcount > 0)
+	{	readcount = sf_readf_int (infile, data, frames) ;
+		sf_writef_int (outfile, data, readcount) ;
+		} ;
+
+	return ;
+} /* sfe_copy_data_int */
+
+/*==============================================================================
+*/
+
+static int
+merge_broadcast_info (SNDFILE * infile, SNDFILE * outfile, int format, const METADATA_INFO * info)
+{	SF_BROADCAST_INFO_2K binfo ;
+	int infileminor ;
+
+	memset (&binfo, 0, sizeof (binfo)) ;
+
+	if ((SF_FORMAT_TYPEMASK & format) != SF_FORMAT_WAV)
+	{	printf ("Error : This is not a WAV file and hence broadcast info cannot be added to it.\n\n") ;
+		return 1 ;
+		} ;
+
+	infileminor = SF_FORMAT_SUBMASK & format ;
+
+	switch (infileminor)
+	{	case SF_FORMAT_PCM_16 :
+		case SF_FORMAT_PCM_24 :
+		case SF_FORMAT_PCM_32 :
+			break ;
+
+		default :
+			printf (
+				"Warning : The EBU Technical Recommendation R68-2000 states that the only\n"
+				"          allowed encodings are Linear PCM and MPEG3. This file is not in\n"
+				"          the right format.\n\n"
+				) ;
+			break ;
+		} ;
+
+	if (sf_command (infile, SFC_GET_BROADCAST_INFO, &binfo, sizeof (binfo)) == 0)
+	{	if (infile == outfile)
+		{	printf (
+				"Error : Attempting in-place broadcast info update, but file does not\n"
+				"        have a 'bext' chunk to modify. The solution is to specify both\n"
+				"        input and output files on the command line.\n\n"
+				) ;
+			return 1 ;
+			} ;
+		} ;
+
+#define REPLACE_IF_NEW(x) \
+		if (info->x != NULL) \
+		{	memset (binfo.x, 0, sizeof (binfo.x)) ; \
+			memcpy (binfo.x, info->x, MIN (strlen (info->x), sizeof (binfo.x))) ; \
+			} ;
+
+	REPLACE_IF_NEW (description) ;
+	REPLACE_IF_NEW (originator) ;
+	REPLACE_IF_NEW (originator_reference) ;
+	REPLACE_IF_NEW (origination_date) ;
+	REPLACE_IF_NEW (origination_time) ;
+	REPLACE_IF_NEW (umid) ;
+
+	/* Special case for Time Ref. */
+	if (info->time_ref != NULL)
+	{	uint64_t ts = atoll (info->time_ref) ;
+
+		binfo.time_reference_high = (ts >> 32) ;
+		binfo.time_reference_low = (ts & 0xffffffff) ;
+		} ;
+
+	/* Special case for coding_history because we may want to append. */
+	if (info->coding_history != NULL)
+	{	if (info->coding_hist_append)
+		{	int slen = strlen (binfo.coding_history) ;
+
+			while (slen > 1 && isspace (binfo.coding_history [slen - 1]))
+				slen -- ;
+
+			memcpy (binfo.coding_history + slen, info->coding_history, sizeof (binfo.coding_history) - slen) ;
+			}
+		else
+		{	size_t slen = MIN (strlen (info->coding_history), sizeof (binfo.coding_history)) ;
+
+			memset (binfo.coding_history, 0, sizeof (binfo.coding_history)) ;
+			memcpy (binfo.coding_history, info->coding_history, slen) ;
+			binfo.coding_history_size = slen ;
+			} ;
+		} ;
+
+	if (sf_command (outfile, SFC_SET_BROADCAST_INFO, &binfo, sizeof (binfo)) == 0)
+	{	printf ("Error : Setting of broadcast info chunks failed.\n\n") ;
+		return 1 ;
+		} ;
+
+	return 0 ;
+} /* merge_broadcast_info*/
+
+static void
+update_strings (SNDFILE * outfile, const METADATA_INFO * info)
+{
+	if (info->title != NULL)
+		sf_set_string (outfile, SF_STR_TITLE, info->title) ;
+
+	if (info->copyright != NULL)
+		sf_set_string (outfile, SF_STR_COPYRIGHT, info->copyright) ;
+
+	if (info->artist != NULL)
+		sf_set_string (outfile, SF_STR_ARTIST, info->artist) ;
+
+	if (info->comment != NULL)
+		sf_set_string (outfile, SF_STR_COMMENT, info->comment) ;
+
+	if (info->date != NULL)
+		sf_set_string (outfile, SF_STR_DATE, info->date) ;
+
+	if (info->album != NULL)
+		sf_set_string (outfile, SF_STR_ALBUM, info->album) ;
+
+	if (info->license != NULL)
+		sf_set_string (outfile, SF_STR_LICENSE, info->license) ;
+
+} /* update_strings */
+
+
+
+void
+sfe_apply_metadata_changes (const char * filenames [2], const METADATA_INFO * info)
+{	SNDFILE *infile = NULL, *outfile = NULL ;
+	SF_INFO sfinfo ;
+	METADATA_INFO tmpinfo ;
+	int error_code = 0 ;
+
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+	memset (&tmpinfo, 0, sizeof (tmpinfo)) ;
+
+	if (filenames [1] == NULL)
+		infile = outfile = sf_open (filenames [0], SFM_RDWR, &sfinfo) ;
+	else
+	{	infile = sf_open (filenames [0], SFM_READ, &sfinfo) ;
+
+		/* Output must be WAV. */
+		sfinfo.format = SF_FORMAT_WAV | (SF_FORMAT_SUBMASK & sfinfo.format) ;
+		outfile = sf_open (filenames [1], SFM_WRITE, &sfinfo) ;
+		} ;
+
+	if (infile == NULL)
+	{	printf ("Error : Not able to open input file '%s' : %s\n", filenames [0], sf_strerror (infile)) ;
+		error_code = 1 ;
+		goto cleanup_exit ;
+		} ;
+
+	if (outfile == NULL)
+	{	printf ("Error : Not able to open output file '%s' : %s\n", filenames [1], sf_strerror (outfile)) ;
+		error_code = 1 ;
+		goto cleanup_exit ;
+		} ;
+
+	if (info->has_bext_fields && merge_broadcast_info (infile, outfile, sfinfo.format, info))
+	{	error_code = 1 ;
+		goto cleanup_exit ;
+		} ;
+
+	if (infile != outfile)
+	{	int infileminor = SF_FORMAT_SUBMASK & sfinfo.format ;
+
+		/* If the input file is not the same as the output file, copy the data. */
+		if ((infileminor == SF_FORMAT_DOUBLE) || (infileminor == SF_FORMAT_FLOAT))
+			sfe_copy_data_fp (outfile, infile, sfinfo.channels) ;
+		else
+			sfe_copy_data_int (outfile, infile, sfinfo.channels) ;
+		} ;
+
+	update_strings (outfile, info) ;
+
+cleanup_exit :
+
+	if (outfile != NULL && outfile != infile)
+		sf_close (outfile) ;
+
+	if (infile != NULL)
+		sf_close (infile) ;
+
+	if (error_code)
+		exit (error_code) ;
+
+	return ;
+} /* sfe_apply_metadata_changes */
+
+/*==============================================================================
+*/
+
+typedef struct
+{	const char	*ext ;
+	int			len ;
+	int			format ;
+} OUTPUT_FORMAT_MAP ;
+
+static OUTPUT_FORMAT_MAP format_map [] =
+{
+	{	"aif",		3,	SF_FORMAT_AIFF	},
+	{	"wav", 		0,	SF_FORMAT_WAV	},
+	{	"au",		0,	SF_FORMAT_AU	},
+	{	"caf",		0,	SF_FORMAT_CAF	},
+	{	"flac",		0,	SF_FORMAT_FLAC	},
+	{	"snd",		0,	SF_FORMAT_AU	},
+	{	"svx",		0,	SF_FORMAT_SVX	},
+	{	"paf",		0,	SF_ENDIAN_BIG | SF_FORMAT_PAF	},
+	{	"fap",		0,	SF_ENDIAN_LITTLE | SF_FORMAT_PAF	},
+	{	"gsm",		0,	SF_FORMAT_RAW	},
+	{	"nist", 	0,	SF_FORMAT_NIST	},
+	{	"htk",		0,	SF_FORMAT_HTK	},
+	{	"ircam",	0,	SF_FORMAT_IRCAM	},
+	{	"sf",		0, 	SF_FORMAT_IRCAM	},
+	{	"voc",		0, 	SF_FORMAT_VOC	},
+	{	"w64", 		0, 	SF_FORMAT_W64	},
+	{	"raw",		0,	SF_FORMAT_RAW	},
+	{	"mat4", 	0,	SF_FORMAT_MAT4	},
+	{	"mat5", 	0, 	SF_FORMAT_MAT5 	},
+	{	"mat",		0, 	SF_FORMAT_MAT4 	},
+	{	"pvf",		0, 	SF_FORMAT_PVF 	},
+	{	"sds",		0, 	SF_FORMAT_SDS 	},
+	{	"sd2",		0, 	SF_FORMAT_SD2 	},
+	{	"vox",		0, 	SF_FORMAT_RAW 	},
+	{	"xi",		0, 	SF_FORMAT_XI 	},
+	{	"wve",		0,	SF_FORMAT_WVE	},
+	{	"oga",		0,	SF_FORMAT_OGG	},
+	{	"mpc",		0,	SF_FORMAT_MPC2K	},
+	{	"rf64",		0,	SF_FORMAT_RF64	},
+} ; /* format_map */
+
+int
+sfe_file_type_of_ext (const char *str, int format)
+{	char	buffer [16], *cptr ;
+	int		k ;
+
+	format &= SF_FORMAT_SUBMASK ;
+
+	if ((cptr = strrchr (str, '.')) == NULL)
+		return 0 ;
+
+	strncpy (buffer, cptr + 1, 15) ;
+	buffer [15] = 0 ;
+
+	for (k = 0 ; buffer [k] ; k++)
+		buffer [k] = tolower ((buffer [k])) ;
+
+	if (strcmp (buffer, "gsm") == 0)
+		return SF_FORMAT_RAW | SF_FORMAT_GSM610 ;
+
+	if (strcmp (buffer, "vox") == 0)
+		return SF_FORMAT_RAW | SF_FORMAT_VOX_ADPCM ;
+
+	for (k = 0 ; k < (int) (sizeof (format_map) / sizeof (format_map [0])) ; k++)
+	{	if (format_map [k].len > 0 && strncmp (buffer, format_map [k].ext, format_map [k].len) == 0)
+			return format_map [k].format | format ;
+		else if (strcmp (buffer, format_map [k].ext) == 0)
+			return format_map [k].format | format ;
+		} ;
+
+	/* Default if all the above fails. */
+	return (SF_FORMAT_WAV | SF_FORMAT_PCM_24) ;
+} /* sfe_file_type_of_ext */
+
+void
+sfe_dump_format_map (void)
+{	SF_FORMAT_INFO	info ;
+	int k ;
+
+	for (k = 0 ; k < ARRAY_LEN (format_map) ; k++)
+	{	info.format = format_map [k].format ;
+		sf_command (NULL, SFC_GET_FORMAT_INFO, &info, sizeof (info)) ;
+		printf ("        %-10s : %s\n", format_map [k].ext, info.name == NULL ? "????" : info.name) ;
+		} ;
+
+} /* sfe_dump_format_map */
+
+const char *
+program_name (const char * argv0)
+{	const char * tmp ;
+
+	tmp = strrchr (argv0, '/') ;
+	argv0 = tmp ? tmp + 1 : argv0 ;
+
+	tmp = strrchr (argv0, '/') ;
+	argv0 = tmp ? tmp + 1 : argv0 ;
+
+	/* Remove leading libtool name mangling. */
+	if (strstr (argv0, "lt-") == argv0)
+		return argv0 + 3 ;
+
+	return argv0 ;
+} /* program_name */
diff --git a/jni/libsndfile-1.0.25/programs/common.h b/jni/libsndfile-1.0.25/programs/common.h
new file mode 100644
index 0000000..999690d
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/common.h
@@ -0,0 +1,73 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+#define	ARRAY_LEN(x)	((int) (sizeof (x) / sizeof (x [0])))
+#define	MAX(a,b)		((a) > (b) ? (a) : (b))
+
+typedef struct
+{	const char * title ;
+	const char * copyright ;
+	const char * artist ;
+	const char * comment ;
+	const char * date ;
+	const char * album ;
+	const char * license ;
+
+
+	/* Stuff to go in the 'bext' chunk of WAV files. */
+	int has_bext_fields ;
+	int coding_hist_append ;
+
+	const char * description ;
+	const char * originator ;
+	const char * originator_reference ;
+	const char * origination_date ;
+	const char * origination_time ;
+	const char * umid ;
+	const char * coding_history ;
+	const char * time_ref ;
+} METADATA_INFO ;
+
+typedef SF_BROADCAST_INFO_VAR (2048) SF_BROADCAST_INFO_2K ;
+
+void sfe_apply_metadata_changes (const char * filenames [2], const METADATA_INFO * info) ;
+
+void sfe_copy_data_fp (SNDFILE *outfile, SNDFILE *infile, int channels) ;
+
+void sfe_copy_data_int (SNDFILE *outfile, SNDFILE *infile, int channels) ;
+
+int sfe_file_type_of_ext (const char *filename, int format) ;
+
+void sfe_dump_format_map (void) ;
+
+const char * program_name (const char * argv0) ;
diff --git a/jni/libsndfile-1.0.25/programs/common.o b/jni/libsndfile-1.0.25/programs/common.o
new file mode 100644
index 0000000..3540025
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/common.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-cmp b/jni/libsndfile-1.0.25/programs/sndfile-cmp
new file mode 100755
index 0000000..2b47165
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-cmp
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-cmp - temporary wrapper script for .libs/sndfile-cmp
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-cmp program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-cmp.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-cmp:sndfile-cmp:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-cmp:sndfile-cmp:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-cmp:sndfile-cmp:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-cmp'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-cmp.c b/jni/libsndfile-1.0.25/programs/sndfile-cmp.c
new file mode 100644
index 0000000..f550d13
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-cmp.c
@@ -0,0 +1,165 @@
+/*
+** Copyright (C) 2008-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+** Copyright (C) 2008 Conrad Parker <conrad@metadecks.org>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "sfconfig.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <inttypes.h>
+
+#include <sndfile.h>
+
+#include "common.h"
+
+/* Length of comparison data buffers in units of items */
+#define BUFLEN 65536
+
+static const char * progname = NULL ;
+static char * filename1 = NULL, * filename2 = NULL ;
+
+static int
+comparison_error (const char * what, sf_count_t frame_offset)
+{	char buffer [128] = "" ;
+
+	if (frame_offset >= 0)
+		snprintf (buffer, sizeof (buffer), " (at frame offset %" PRId64 ")", frame_offset) ;
+
+	printf ("%s: %s of files %s and %s differ%s.\n", progname, what, filename1, filename2, buffer) ;
+	return 1 ;
+} /* comparison_error */
+
+static int
+compare (void)
+{
+	double buf1 [BUFLEN], buf2 [BUFLEN] ;
+	SF_INFO sfinfo1, sfinfo2 ;
+	SNDFILE * sf1 = NULL, * sf2 = NULL ;
+	sf_count_t items, i, nread1, nread2, offset = 0 ;
+	int retval = 0 ;
+
+	memset (&sfinfo1, 0, sizeof (SF_INFO)) ;
+	sf1 = sf_open (filename1, SFM_READ, &sfinfo1) ;
+	if (sf1 == NULL)
+	{	printf ("Error opening %s.\n", filename1) ;
+		retval = 1 ;
+		goto out ;
+		} ;
+
+	memset (&sfinfo2, 0, sizeof (SF_INFO)) ;
+	sf2 = sf_open (filename2, SFM_READ, &sfinfo2) ;
+	if (sf2 == NULL)
+	{	printf ("Error opening %s.\n", filename2) ;
+		retval = 1 ;
+		goto out ;
+		} ;
+
+	if (sfinfo1.samplerate != sfinfo2.samplerate)
+	{	retval = comparison_error ("Samplerates", -1) ;
+		goto out ;
+		} ;
+
+	if (sfinfo1.channels != sfinfo2.channels)
+	{	retval = comparison_error ("Number of channels", -1) ;
+		goto out ;
+		} ;
+
+	/* Calculate the framecount that will fit in our data buffers */
+	items = BUFLEN / sfinfo1.channels ;
+
+	while ( (nread1 = sf_readf_double (sf1, buf1, items)) > 0)
+	{	nread2 = sf_readf_double (sf2, buf2, nread1) ;
+		if (nread2 != nread1)
+		{	retval = comparison_error ("PCM data lengths", -1) ;
+			goto out ;
+			} ;
+		for (i = 0 ; i < nread1 * sfinfo1.channels ; i++)
+		{	if (buf1 [i] != buf2 [i])
+			{	retval = comparison_error ("PCM data", offset + i / sfinfo1.channels) ;
+				goto out ;
+				} ;
+			} ;
+		offset += nread1 ;
+		} ;
+
+	if ( (nread2 = sf_readf_double (sf2, buf2, nread1)) != 0)
+	{	retval = comparison_error ("PCM data lengths", -1) ;
+		goto out ;
+		} ;
+
+out :
+	sf_close (sf1) ;
+	sf_close (sf2) ;
+
+	return retval ;
+} /* compare */
+
+static void
+print_version (void)
+{	char buffer [256] ;
+
+	sf_command (NULL, SFC_GET_LIB_VERSION, buffer, sizeof (buffer)) ;
+	printf ("\nVersion : %s\n\n", buffer) ;
+} /* print_version */
+
+static void
+usage_exit (void)
+{
+	print_version () ;
+
+	printf ("Usage : %s <filename> <filename>\n", progname) ;
+	printf ("	Compare the PCM data of two sound files.\n\n") ;
+	exit (0) ;
+} /* usage_exit */
+
+int
+main (int argc, char *argv [])
+{
+	progname = program_name (argv [0]) ;
+
+	if (argc != 3)
+	{	usage_exit () ;
+		return 1 ;
+		} ;
+
+	filename1 = argv [argc - 2] ;
+	filename2 = argv [argc - 1] ;
+
+	if (strcmp (filename1, filename2) == 0)
+	{	printf ("Error : Input filenames are the same.\n\n") ;
+		usage_exit () ;
+		return 1 ;
+		} ;
+
+	return compare () ;
+} /* main */
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-cmp.o b/jni/libsndfile-1.0.25/programs/sndfile-cmp.o
new file mode 100644
index 0000000..82b8784
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-cmp.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-concat b/jni/libsndfile-1.0.25/programs/sndfile-concat
new file mode 100755
index 0000000..01f9b3d
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-concat
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-concat - temporary wrapper script for .libs/sndfile-concat
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-concat program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-concat.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-concat:sndfile-concat:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-concat:sndfile-concat:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-concat:sndfile-concat:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-concat'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-concat.c b/jni/libsndfile-1.0.25/programs/sndfile-concat.c
new file mode 100644
index 0000000..cc24782
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-concat.c
@@ -0,0 +1,169 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include	<stdio.h>
+#include	<stdlib.h>
+#include	<string.h>
+#include	<ctype.h>
+
+#include	<sndfile.h>
+
+#include	"common.h"
+
+#define		BUFFER_LEN	(1<<16)
+
+
+static void concat_data_fp (SNDFILE *wfile, SNDFILE *rofile, int channels) ;
+static void concat_data_int (SNDFILE *wfile, SNDFILE *rofile, int channels) ;
+
+static void
+usage_exit (const char *progname)
+{
+	printf ("\nUsage : %s <infile1> <infile2>  ... <outfile>\n\n", progname) ;
+	puts (
+		"    Create a new output file <outfile> containing the concatenated\n"
+		"    audio data from froms <infile1> <infile2> ....\n"
+		"\n"
+		"    The joined file will be encoded in the same format as the data\n"
+		"    in infile1, with all the data in subsequent files automatically\n"
+		"    converted to the correct encoding.\n"
+		"\n"
+		"    The only restriction is that the two files must have the same\n"
+		"    number of channels.\n"
+		) ;
+
+	exit (0) ;
+} /* usage_exit */
+
+int
+main (int argc, char *argv [])
+{	const char	*progname, *outfilename ;
+	SNDFILE	 	*outfile, **infiles ;
+	SF_INFO	 	sfinfo_out, sfinfo_in ;
+	void 		(*func) (SNDFILE*, SNDFILE*, int) ;
+	int			k ;
+
+	progname = program_name (argv [0]) ;
+
+	if (argc < 4)
+		usage_exit (progname) ;
+
+	argv ++ ;
+	argc -- ;
+
+	argc -- ;
+	outfilename = argv [argc] ;
+
+	if ((infiles = calloc (argc, sizeof (SNDFILE*))) == NULL)
+	{	printf ("\nError : Malloc failed.\n\n") ;
+		exit (1) ;
+		} ;
+
+	memset (&sfinfo_in, 0, sizeof (sfinfo_in)) ;
+
+	if ((infiles [0] = sf_open (argv [0], SFM_READ, &sfinfo_in)) == NULL)
+	{	printf ("\nError : failed to open file '%s'.\n\n", argv [0]) ;
+		exit (1) ;
+		} ;
+
+	sfinfo_out = sfinfo_in ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	if ((infiles [k] = sf_open (argv [k], SFM_READ, &sfinfo_in)) == NULL)
+		{	printf ("\nError : failed to open file '%s'.\n\n", argv [k]) ;
+			exit (1) ;
+			} ;
+
+		if (sfinfo_in.channels != sfinfo_out.channels)
+		{	printf ("\nError : File '%s' has %d channels (should have %d).\n\n", argv [k], sfinfo_in.channels, sfinfo_out.channels) ;
+			exit (1) ;
+			} ;
+		} ;
+
+	if ((outfile = sf_open (outfilename, SFM_WRITE, &sfinfo_out)) == NULL)
+	{	printf ("\nError : Not able to open input file %s.\n", outfilename) ;
+		puts (sf_strerror (NULL)) ;
+		exit (1) ;
+		} ;
+
+	if ((sfinfo_out.format & SF_FORMAT_SUBMASK) == SF_FORMAT_DOUBLE ||
+			(sfinfo_out.format & SF_FORMAT_SUBMASK) == SF_FORMAT_FLOAT)
+		func = concat_data_fp ;
+	else
+		func = concat_data_int ;
+
+	for (k = 0 ; k < argc ; k++)
+	{	func (outfile, infiles [k], sfinfo_out.channels) ;
+		sf_close (infiles [k]) ;
+		} ;
+
+	sf_close (outfile) ;
+
+	return 0 ;
+} /* main */
+
+static void
+concat_data_fp (SNDFILE *wfile, SNDFILE *rofile, int channels)
+{	static double	data [BUFFER_LEN] ;
+	int		frames, readcount ;
+
+	frames = BUFFER_LEN / channels ;
+	readcount = frames ;
+
+	sf_seek (wfile, 0, SEEK_END) ;
+
+	while (readcount > 0)
+	{	readcount = sf_readf_double (rofile, data, frames) ;
+		sf_writef_double (wfile, data, readcount) ;
+		} ;
+
+	return ;
+} /* concat_data_fp */
+
+static void
+concat_data_int (SNDFILE *wfile, SNDFILE *rofile, int channels)
+{	static int	data [BUFFER_LEN] ;
+	int		frames, readcount ;
+
+	frames = BUFFER_LEN / channels ;
+	readcount = frames ;
+
+	sf_seek (wfile, 0, SEEK_END) ;
+
+	while (readcount > 0)
+	{	readcount = sf_readf_int (rofile, data, frames) ;
+		sf_writef_int (wfile, data, readcount) ;
+		} ;
+
+	return ;
+} /* concat_data_int */
+
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-concat.o b/jni/libsndfile-1.0.25/programs/sndfile-concat.o
new file mode 100644
index 0000000..a51ee38
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-concat.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-convert b/jni/libsndfile-1.0.25/programs/sndfile-convert
new file mode 100755
index 0000000..4385e70
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-convert
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-convert - temporary wrapper script for .libs/sndfile-convert
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-convert program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-convert.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-convert:sndfile-convert:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-convert:sndfile-convert:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-convert:sndfile-convert:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-convert'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-convert.c b/jni/libsndfile-1.0.25/programs/sndfile-convert.c
new file mode 100644
index 0000000..0988982
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-convert.c
@@ -0,0 +1,299 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include <sndfile.h>
+
+#include "common.h"
+
+
+typedef	struct
+{	char	*infilename, *outfilename ;
+	SF_INFO	infileinfo, outfileinfo ;
+} OptionData ;
+
+static void copy_metadata (SNDFILE *outfile, SNDFILE *infile, int channels) ;
+
+static void
+usage_exit (const char *progname)
+{
+	printf ("\nUsage : %s [options] [encoding] <input file> <output file>\n", progname) ;
+	puts ("\n"
+		"    where [option] may be:\n\n"
+		"        -override-sample-rate=X  : force sample rate of input to X\n"
+		) ;
+
+	puts (
+		"    where [encoding] may be one of the following:\n\n"
+		"        -pcms8     : force the output to signed 8 bit pcm\n"
+		"        -pcmu8     : force the output to unsigned 8 bit pcm\n"
+		"        -pcm16     : force the output to 16 bit pcm\n"
+		"        -pcm24     : force the output to 24 bit pcm\n"
+		"        -pcm32     : force the output to 32 bit pcm\n"
+		"        -float32   : force the output to 32 bit floating point"
+		) ;
+	puts (
+		"        -ulaw      : force the output ULAW\n"
+		"        -alaw      : force the output ALAW\n"
+		"        -ima-adpcm : force the output to IMA ADPCM (WAV only)\n"
+		"        -ms-adpcm  : force the output to MS ADPCM (WAV only)\n"
+		"        -gsm610    : force the GSM6.10 (WAV only)\n"
+		"        -dwvw12    : force the output to 12 bit DWVW (AIFF only)\n"
+		"        -dwvw16    : force the output to 16 bit DWVW (AIFF only)\n"
+		"        -dwvw24    : force the output to 24 bit DWVW (AIFF only)\n"
+		"        -vorbis    : force the output to Vorbis (OGG only)\n"
+		) ;
+
+	puts (
+		"    The format of the output file is determined by the file extension of the\n"
+		"    output file name. The following extensions are currently understood:\n"
+		) ;
+
+	sfe_dump_format_map () ;
+
+	puts ("") ;
+	exit (0) ;
+} /* usage_exit */
+
+int
+main (int argc, char * argv [])
+{	const char	*progname, *infilename, *outfilename ;
+	SNDFILE	 	*infile = NULL, *outfile = NULL ;
+	SF_INFO	 	sfinfo ;
+	int			k, outfilemajor, outfileminor = 0, infileminor ;
+	int			override_sample_rate = 0 ; /* assume no sample rate override. */
+
+	progname = program_name (argv [0]) ;
+
+	if (argc < 3 || argc > 5)
+	{	usage_exit (progname) ;
+		return 1 ;
+		} ;
+
+	infilename = argv [argc-2] ;
+	outfilename = argv [argc-1] ;
+
+	if (strcmp (infilename, outfilename) == 0)
+	{	printf ("Error : Input and output filenames are the same.\n\n") ;
+		usage_exit (progname) ;
+		return 1 ;
+		} ;
+
+	if (strlen (infilename) > 1 && infilename [0] == '-')
+	{	printf ("Error : Input filename (%s) looks like an option.\n\n", infilename) ;
+		usage_exit (progname) ;
+		return 1 ;
+		} ;
+
+	if (outfilename [0] == '-')
+	{	printf ("Error : Output filename (%s) looks like an option.\n\n", outfilename) ;
+		usage_exit (progname) ;
+		return 1 ;
+		} ;
+
+	for (k = 1 ; k < argc - 2 ; k++)
+	{	if (! strcmp (argv [k], "-pcms8"))
+		{	outfileminor = SF_FORMAT_PCM_S8 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-pcmu8"))
+		{	outfileminor = SF_FORMAT_PCM_U8 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-pcm16"))
+		{	outfileminor = SF_FORMAT_PCM_16 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-pcm24"))
+		{	outfileminor = SF_FORMAT_PCM_24 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-pcm32"))
+		{	outfileminor = SF_FORMAT_PCM_32 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-float32"))
+		{	outfileminor = SF_FORMAT_FLOAT ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-ulaw"))
+		{	outfileminor = SF_FORMAT_ULAW ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-alaw"))
+		{	outfileminor = SF_FORMAT_ALAW ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-ima-adpcm"))
+		{	outfileminor = SF_FORMAT_IMA_ADPCM ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-ms-adpcm"))
+		{	outfileminor = SF_FORMAT_MS_ADPCM ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-gsm610"))
+		{	outfileminor = SF_FORMAT_GSM610 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-dwvw12"))
+		{	outfileminor = SF_FORMAT_DWVW_12 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-dwvw16"))
+		{	outfileminor = SF_FORMAT_DWVW_16 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-dwvw24"))
+		{	outfileminor = SF_FORMAT_DWVW_24 ;
+			continue ;
+			} ;
+		if (! strcmp (argv [k], "-vorbis"))
+		{	outfileminor = SF_FORMAT_VORBIS ;
+			continue ;
+			} ;
+
+		if (strstr (argv [k], "-override-sample-rate=") == argv [k])
+		{	const char *ptr ;
+
+			ptr = argv [k] + strlen ("-override-sample-rate=") ;
+			override_sample_rate = atoi (ptr) ;
+			continue ;
+			} ;
+
+		printf ("Error : Not able to decode argunment '%s'.\n", argv [k]) ;
+		exit (1) ;
+		} ;
+
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	if ((infile = sf_open (infilename, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("Not able to open input file %s.\n", infilename) ;
+		puts (sf_strerror (NULL)) ;
+		return 1 ;
+		} ;
+
+	/* Update sample rate if forced to something else. */
+	if (override_sample_rate)
+		sfinfo.samplerate = override_sample_rate ;
+
+	infileminor = sfinfo.format & SF_FORMAT_SUBMASK ;
+
+	if ((sfinfo.format = sfe_file_type_of_ext (outfilename, sfinfo.format)) == 0)
+	{	printf ("Error : Not able to determine output file type for %s.\n", outfilename) ;
+		return 1 ;
+		} ;
+
+	outfilemajor = sfinfo.format & (SF_FORMAT_TYPEMASK | SF_FORMAT_ENDMASK) ;
+
+	if (outfileminor == 0)
+		outfileminor = sfinfo.format & SF_FORMAT_SUBMASK ;
+
+	if (outfileminor != 0)
+		sfinfo.format = outfilemajor | outfileminor ;
+	else
+		sfinfo.format = outfilemajor | (sfinfo.format & SF_FORMAT_SUBMASK) ;
+
+	if ((sfinfo.format & SF_FORMAT_TYPEMASK) == SF_FORMAT_XI)
+		switch (sfinfo.format & SF_FORMAT_SUBMASK)
+		{	case SF_FORMAT_PCM_16 :
+					sfinfo.format = outfilemajor | SF_FORMAT_DPCM_16 ;
+					break ;
+
+			case SF_FORMAT_PCM_S8 :
+			case SF_FORMAT_PCM_U8 :
+					sfinfo.format = outfilemajor | SF_FORMAT_DPCM_8 ;
+					break ;
+			} ;
+
+	if (sf_format_check (&sfinfo) == 0)
+	{	printf ("Error : output file format is invalid (0x%08X).\n", sfinfo.format) ;
+		return 1 ;
+		} ;
+
+	/* Open the output file. */
+	if ((outfile = sf_open (outfilename, SFM_WRITE, &sfinfo)) == NULL)
+	{	printf ("Not able to open output file %s : %s\n", outfilename, sf_strerror (NULL)) ;
+		return 1 ;
+		} ;
+
+	/* Copy the metadata */
+	copy_metadata (outfile, infile, sfinfo.channels) ;
+
+	if ((outfileminor == SF_FORMAT_DOUBLE) || (outfileminor == SF_FORMAT_FLOAT)
+			|| (infileminor == SF_FORMAT_DOUBLE) || (infileminor == SF_FORMAT_FLOAT)
+			|| (infileminor == SF_FORMAT_VORBIS) || (outfileminor == SF_FORMAT_VORBIS))
+		sfe_copy_data_fp (outfile, infile, sfinfo.channels) ;
+	else
+		sfe_copy_data_int (outfile, infile, sfinfo.channels) ;
+
+	sf_close (infile) ;
+	sf_close (outfile) ;
+
+	return 0 ;
+} /* main */
+
+static void
+copy_metadata (SNDFILE *outfile, SNDFILE *infile, int channels)
+{	SF_INSTRUMENT inst ;
+	SF_BROADCAST_INFO_2K binfo ;
+	const char *str ;
+	int k, chanmap [256] ;
+
+	for (k = SF_STR_FIRST ; k <= SF_STR_LAST ; k++)
+	{	str = sf_get_string (infile, k) ;
+		if (str != NULL)
+			sf_set_string (outfile, k, str) ;
+		} ;
+
+	memset (&inst, 0, sizeof (inst)) ;
+	memset (&binfo, 0, sizeof (binfo)) ;
+
+	if (channels < ARRAY_LEN (chanmap))
+	{	size_t size = channels * sizeof (chanmap [0]) ;
+
+		if (sf_command (infile, SFC_GET_CHANNEL_MAP_INFO, chanmap, size) == SF_TRUE)
+			sf_command (outfile, SFC_SET_CHANNEL_MAP_INFO, chanmap, size) ;
+		} ;
+
+	if (sf_command (infile, SFC_GET_INSTRUMENT, &inst, sizeof (inst)) == SF_TRUE)
+		sf_command (outfile, SFC_SET_INSTRUMENT, &inst, sizeof (inst)) ;
+
+	if (sf_command (infile, SFC_GET_BROADCAST_INFO, &binfo, sizeof (binfo)) == SF_TRUE)
+		sf_command (outfile, SFC_SET_BROADCAST_INFO, &binfo, sizeof (binfo)) ;
+
+} /* copy_metadata */
+
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-convert.o b/jni/libsndfile-1.0.25/programs/sndfile-convert.o
new file mode 100644
index 0000000..26b4371
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-convert.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-deinterleave b/jni/libsndfile-1.0.25/programs/sndfile-deinterleave
new file mode 100755
index 0000000..f115017
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-deinterleave
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-deinterleave - temporary wrapper script for .libs/sndfile-deinterleave
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-deinterleave program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-deinterleave.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-deinterleave:sndfile-deinterleave:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-deinterleave:sndfile-deinterleave:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-deinterleave:sndfile-deinterleave:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-deinterleave'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-deinterleave.c b/jni/libsndfile-1.0.25/programs/sndfile-deinterleave.c
new file mode 100644
index 0000000..df80b04
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-deinterleave.c
@@ -0,0 +1,194 @@
+/*
+** Copyright (C) 2009-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sndfile.h>
+
+#include "common.h"
+
+#define	BUFFER_LEN	4096
+#define	MAX_CHANNELS	16
+
+
+typedef struct
+{	SNDFILE * infile ;
+	SNDFILE * outfile [MAX_CHANNELS] ;
+
+	union
+	{	double	d [MAX_CHANNELS * BUFFER_LEN] ;
+		int		i [MAX_CHANNELS * BUFFER_LEN] ;
+	} din ;
+
+	union
+	{	double	d [BUFFER_LEN] ;
+		int		i [BUFFER_LEN] ;
+	} dout ;
+
+	int channels ;
+} STATE ;
+
+static void usage_exit (void) ;
+
+static void deinterleave_int (STATE * state) ;
+static void deinterleave_double (STATE * state) ;
+
+int
+main (int argc, char **argv)
+{	STATE state ;
+	SF_INFO sfinfo ;
+	char pathname [512], ext [32], *cptr ;
+	int ch, double_split ;
+
+	if (argc != 2)
+	{	if (argc != 1)
+			puts ("\nError : need a single input file.\n") ;
+		usage_exit () ;
+		} ;
+
+	memset (&state, 0, sizeof (state)) ;
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	if ((state.infile = sf_open (argv [1], SFM_READ, &sfinfo)) == NULL)
+	{	printf ("\nError : Not able to open input file '%s'\n%s\n", argv [1], sf_strerror (NULL)) ;
+		exit (1) ;
+		} ;
+
+	if (sfinfo.channels < 2)
+	{	printf ("\nError : Input file '%s' only has one channel.\n", argv [1]) ;
+		exit (1) ;
+		} ;
+
+	state.channels = sfinfo.channels ;
+	sfinfo.channels = 1 ;
+
+	snprintf (pathname, sizeof (pathname), "%s", argv [1]) ;
+	if ((cptr = strrchr (pathname, '.')) == NULL)
+		ext [0] = 0 ;
+	else
+	{	snprintf (ext, sizeof (ext), "%s", cptr) ;
+		cptr [0] = 0 ;
+		} ;
+
+	printf ("Input file : %s\n", pathname) ;
+	puts ("Output files :") ;
+
+	for (ch = 0 ; ch < state.channels ; ch++)
+	{	char filename [520] ;
+
+		snprintf (filename, sizeof (filename), "%s_%02d%s", pathname, ch, ext) ;
+
+		if ((state.outfile [ch] = sf_open (filename, SFM_WRITE, &sfinfo)) == NULL)
+		{	printf ("Not able to open output file '%s'\n%s\n", filename, sf_strerror (NULL)) ;
+			exit (1) ;
+			} ;
+
+		printf ("    %s\n", filename) ;
+		} ;
+
+	switch (sfinfo.format & SF_FORMAT_SUBMASK)
+	{	case SF_FORMAT_FLOAT :
+		case SF_FORMAT_DOUBLE :
+		case SF_FORMAT_VORBIS :
+			double_split = 1 ;
+			break ;
+
+		default :
+			double_split = 0 ;
+			break ;
+		} ;
+
+	if (double_split)
+		deinterleave_double (&state) ;
+	else
+		deinterleave_int (&state) ;
+
+	sf_close (state.infile) ;
+	for (ch = 0 ; ch < MAX_CHANNELS ; ch++)
+		if (state.outfile [ch] != NULL)
+			sf_close (state.outfile [ch]) ;
+
+	return 0 ;
+} /* main */
+
+/*------------------------------------------------------------------------------
+*/
+
+static void
+usage_exit (void)
+{	puts ("\nUsage : sndfile-deinterleave <filename>\n") ;
+	puts (
+		"Split a mutli-channel file into a set of mono files.\n"
+		"\n"
+		"If the input file is named 'a.wav', the output files will be named\n"
+		"a_00.wav, a_01.wav and so on.\n"
+		) ;
+	printf ("Using %s.\n\n", sf_version_string ()) ;
+	exit (0) ;
+} /* usage_exit */
+
+static void
+deinterleave_int (STATE * state)
+{	int read_len ;
+	int ch, k ;
+
+	do
+	{	read_len = sf_readf_int (state->infile, state->din.i, BUFFER_LEN) ;
+
+		for (ch = 0 ; ch < state->channels ; ch ++)
+		{	for (k = 0 ; k < read_len ; k++)
+				state->dout.i [k] = state->din.i [k * state->channels + ch] ;
+			sf_write_int (state->outfile [ch], state->dout.i, read_len) ;
+			} ;
+		}
+	while (read_len > 0) ;
+
+} /* deinterleave_int */
+
+static void
+deinterleave_double (STATE * state)
+{	int read_len ;
+	int ch, k ;
+
+	do
+	{	read_len = sf_readf_double (state->infile, state->din.d, BUFFER_LEN) ;
+
+		for (ch = 0 ; ch < state->channels ; ch ++)
+		{	for (k = 0 ; k < read_len ; k++)
+				state->dout.d [k] = state->din.d [k * state->channels + ch] ;
+			sf_write_double (state->outfile [ch], state->dout.d, read_len) ;
+			} ;
+		}
+	while (read_len > 0) ;
+
+} /* deinterleave_double */
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-deinterleave.o b/jni/libsndfile-1.0.25/programs/sndfile-deinterleave.o
new file mode 100644
index 0000000..6bcaa34
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-deinterleave.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-info b/jni/libsndfile-1.0.25/programs/sndfile-info
new file mode 100755
index 0000000..d459b37
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-info
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-info - temporary wrapper script for .libs/sndfile-info
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-info program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-info.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-info:sndfile-info:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-info:sndfile-info:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-info:sndfile-info:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-info'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-info.c b/jni/libsndfile-1.0.25/programs/sndfile-info.c
new file mode 100644
index 0000000..5663044
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-info.c
@@ -0,0 +1,472 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include	<stdio.h>
+#include	<stdlib.h>
+#include	<string.h>
+#include	<inttypes.h>
+#include	<ctype.h>
+#include	<math.h>
+
+#include	<sndfile.h>
+
+#include "common.h"
+
+#define	BUFFER_LEN		(1 << 16)
+
+#if (defined (WIN32) || defined (_WIN32))
+#include <windows.h>
+#endif
+
+static void print_version (void) ;
+static void usage_exit (const char *progname) ;
+
+static void info_dump (const char *filename) ;
+static int	instrument_dump (const char *filename) ;
+static int	broadcast_dump (const char *filename) ;
+static int	chanmap_dump (const char *filename) ;
+static void total_dump (void) ;
+
+static double total_seconds = 0.0 ;
+
+int
+main (int argc, char *argv [])
+{	int	k ;
+
+	print_version () ;
+
+	if (argc < 2 || strcmp (argv [1], "--help") == 0 || strcmp (argv [1], "-h") == 0)
+	{	usage_exit (program_name (argv [0])) ;
+		return 1 ;
+		} ;
+
+	if (strcmp (argv [1], "-i") == 0)
+	{	int error = 0 ;
+
+		for (k = 2 ; k < argc ; k++)
+			error += instrument_dump (argv [k]) ;
+		return error ;
+		} ;
+
+	if (strcmp (argv [1], "-b") == 0)
+	{	int error = 0 ;
+
+		for (k = 2 ; k < argc ; k++)
+			error += broadcast_dump (argv [k]) ;
+		return error ;
+		} ;
+
+	if (strcmp (argv [1], "-c") == 0)
+	{	int error = 0 ;
+
+		for (k = 2 ; k < argc ; k++)
+			error += chanmap_dump (argv [k]) ;
+		return error ;
+		} ;
+
+	for (k = 1 ; k < argc ; k++)
+		info_dump (argv [k]) ;
+
+	if (argc > 2)
+		total_dump () ;
+
+	return 0 ;
+} /* main */
+
+/*==============================================================================
+**	Print version and usage.
+*/
+
+static double	data [BUFFER_LEN] ;
+
+static void
+print_version (void)
+{	char buffer [256] ;
+
+	sf_command (NULL, SFC_GET_LIB_VERSION, buffer, sizeof (buffer)) ;
+	printf ("\nVersion : %s\n\n", buffer) ;
+} /* print_version */
+
+
+static void
+usage_exit (const char *progname)
+{	printf ("Usage :\n  %s <file> ...\n", progname) ;
+	printf ("    Prints out information about one or more sound files.\n\n") ;
+	printf ("  %s -i <file>\n", progname) ;
+	printf ("    Prints out the instrument data for the given file.\n\n") ;
+	printf ("  %s -b <file>\n", progname) ;
+	printf ("    Prints out the broadcast WAV info for the given file.\n\n") ;
+#if (defined (_WIN32) || defined (WIN32))
+		printf ("This is a Unix style command line application which\n"
+				"should be run in a MSDOS box or Command Shell window.\n\n") ;
+		printf ("Sleeping for 5 seconds before exiting.\n\n") ;
+		fflush (stdout) ;
+
+		/* This is the officially blessed by microsoft way but I can't get
+		** it to link.
+		**     Sleep (15) ;
+		** Instead, use this:
+		*/
+		Sleep (5 * 1000) ;
+#endif
+	printf ("Using %s.\n\n", sf_version_string ()) ;
+	exit (0) ;
+} /* usage_exit */
+
+/*==============================================================================
+**	Dumping of sndfile info.
+*/
+
+static double	data [BUFFER_LEN] ;
+
+static double
+get_signal_max (SNDFILE *file)
+{	double	max ;
+
+	sf_command (file, SFC_CALC_SIGNAL_MAX, &max, sizeof (max)) ;
+
+	return max ;
+} /* get_signal_max */
+
+static double
+calc_decibels (SF_INFO * sfinfo, double max)
+{	double decibels ;
+
+	switch (sfinfo->format & SF_FORMAT_SUBMASK)
+	{	case SF_FORMAT_PCM_U8 :
+		case SF_FORMAT_PCM_S8 :
+			decibels = max / 0x80 ;
+			break ;
+
+		case SF_FORMAT_PCM_16 :
+			decibels = max / 0x8000 ;
+			break ;
+
+		case SF_FORMAT_PCM_24 :
+			decibels = max / 0x800000 ;
+			break ;
+
+		case SF_FORMAT_PCM_32 :
+			decibels = max / 0x80000000 ;
+			break ;
+
+		case SF_FORMAT_FLOAT :
+		case SF_FORMAT_DOUBLE :
+			decibels = max / 1.0 ;
+			break ;
+
+		default :
+			decibels = max / 0x8000 ;
+			break ;
+		} ;
+
+	return 20.0 * log10 (decibels) ;
+} /* calc_decibels */
+
+static const char *
+format_duration_str (double seconds)
+{	static char str [128] ;
+	int hrs, min ;
+	double sec ;
+
+	memset (str, 0, sizeof (str)) ;
+
+	hrs = (int) (seconds / 3600.0) ;
+	min = (int) ((seconds - (hrs * 3600.0)) / 60.0) ;
+	sec = seconds - (hrs * 3600.0) - (min * 60.0) ;
+
+	snprintf (str, sizeof (str) - 1, "%02d:%02d:%06.3f", hrs, min, sec) ;
+
+	return str ;
+} /* format_duration_str */
+
+static const char *
+generate_duration_str (SF_INFO *sfinfo)
+{
+	double seconds ;
+
+	if (sfinfo->samplerate < 1)
+		return NULL ;
+
+	if (sfinfo->frames / sfinfo->samplerate > 0x7FFFFFFF)
+		return "unknown" ;
+
+	seconds = (1.0 * sfinfo->frames) / sfinfo->samplerate ;
+
+	/* Accumulate the total of all known file durations */
+	total_seconds += seconds ;
+
+	return format_duration_str (seconds) ;
+} /* generate_duration_str */
+
+static void
+info_dump (const char *filename)
+{	static	char	strbuffer [BUFFER_LEN] ;
+	SNDFILE	 	*file ;
+	SF_INFO	 	sfinfo ;
+	double		signal_max, decibels ;
+
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	if ((file = sf_open (filename, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("Error : Not able to open input file %s.\n", filename) ;
+		fflush (stdout) ;
+		memset (data, 0, sizeof (data)) ;
+		sf_command (file, SFC_GET_LOG_INFO, strbuffer, BUFFER_LEN) ;
+		puts (strbuffer) ;
+		puts (sf_strerror (NULL)) ;
+		return ;
+		} ;
+
+	printf ("========================================\n") ;
+	sf_command (file, SFC_GET_LOG_INFO, strbuffer, BUFFER_LEN) ;
+	puts (strbuffer) ;
+	printf ("----------------------------------------\n") ;
+
+	printf ("Sample Rate : %d\n", sfinfo.samplerate) ;
+
+	if (sfinfo.frames == SF_COUNT_MAX)
+		printf ("Frames      : unknown\n") ;
+	else
+		printf ("Frames      : %" PRId64 "\n", sfinfo.frames) ;
+
+	printf ("Channels    : %d\n", sfinfo.channels) ;
+	printf ("Format      : 0x%08X\n", sfinfo.format) ;
+	printf ("Sections    : %d\n", sfinfo.sections) ;
+	printf ("Seekable    : %s\n", (sfinfo.seekable ? "TRUE" : "FALSE")) ;
+	printf ("Duration    : %s\n", generate_duration_str (&sfinfo)) ;
+
+	if (sfinfo.frames < 100 * 1024 * 1024)
+	{	/* Do not use sf_signal_max because it doesn't work for non-seekable files . */
+		signal_max = get_signal_max (file) ;
+		decibels = calc_decibels (&sfinfo, signal_max) ;
+		printf ("Signal Max  : %g (%4.2f dB)\n", signal_max, decibels) ;
+		} ;
+	putchar ('\n') ;
+
+	sf_close (file) ;
+
+} /* info_dump */
+
+/*==============================================================================
+**	Dumping of SF_INSTRUMENT data.
+*/
+
+static const char *
+str_of_type (int mode)
+{	switch (mode)
+	{	case SF_LOOP_NONE : return "none" ;
+		case SF_LOOP_FORWARD : return "fwd " ;
+		case SF_LOOP_BACKWARD : return "back" ;
+		case SF_LOOP_ALTERNATING : return "alt " ;
+		default : break ;
+		} ;
+
+	return "????" ;
+} /* str_of_mode */
+
+static int
+instrument_dump (const char *filename)
+{	SNDFILE	 *file ;
+	SF_INFO	 sfinfo ;
+	SF_INSTRUMENT inst ;
+	int got_inst, k ;
+
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	if ((file = sf_open (filename, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("Error : Not able to open input file %s.\n", filename) ;
+		fflush (stdout) ;
+		memset (data, 0, sizeof (data)) ;
+		puts (sf_strerror (NULL)) ;
+		return 1 ;
+		} ;
+
+	got_inst = sf_command (file, SFC_GET_INSTRUMENT, &inst, sizeof (inst)) ;
+	sf_close (file) ;
+
+	if (got_inst == SF_FALSE)
+	{	printf ("Error : File '%s' does not contain instrument data.\n\n", filename) ;
+		return 1 ;
+		} ;
+
+	printf ("Instrument : %s\n\n", filename) ;
+	printf ("  Gain        : %d\n", inst.gain) ;
+	printf ("  Base note   : %d\n", inst.basenote) ;
+	printf ("  Velocity    : %d - %d\n", (int) inst.velocity_lo, (int) inst.velocity_hi) ;
+	printf ("  Key         : %d - %d\n", (int) inst.key_lo, (int) inst.key_hi) ;
+	printf ("  Loop points : %d\n", inst.loop_count) ;
+
+	for (k = 0 ; k < inst.loop_count ; k++)
+		printf ("  %-2d    Mode : %s    Start : %6d   End : %6d   Count : %6d\n", k, str_of_type (inst.loops [k].mode), inst.loops [k].start, inst.loops [k].end, inst.loops [k].count) ;
+
+	putchar ('\n') ;
+	return 0 ;
+} /* instrument_dump */
+
+static int
+broadcast_dump (const char *filename)
+{	SNDFILE	 *file ;
+	SF_INFO	 sfinfo ;
+	SF_BROADCAST_INFO_2K bext ;
+	double time_ref_sec ;
+	int got_bext ;
+
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	if ((file = sf_open (filename, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("Error : Not able to open input file %s.\n", filename) ;
+		fflush (stdout) ;
+		memset (data, 0, sizeof (data)) ;
+		puts (sf_strerror (NULL)) ;
+		return 1 ;
+		} ;
+
+	memset (&bext, 0, sizeof (SF_BROADCAST_INFO_2K)) ;
+
+	got_bext = sf_command (file, SFC_GET_BROADCAST_INFO, &bext, sizeof (bext)) ;
+	sf_close (file) ;
+
+	if (got_bext == SF_FALSE)
+	{	printf ("Error : File '%s' does not contain broadcast information.\n\n", filename) ;
+		return 1 ;
+		} ;
+
+	/*
+	**	From : http://www.ebu.ch/en/technical/publications/userguides/bwf_user_guide.php
+	**
+	**	Time Reference:
+	**		This field is a count from midnight in samples to the first sample
+	**		of the audio sequence.
+	*/
+
+	time_ref_sec = ((pow (2.0, 32) * bext.time_reference_high) + (1.0 * bext.time_reference_low)) / sfinfo.samplerate ;
+
+	printf ("Description      : %.*s\n", (int) sizeof (bext.description), bext.description) ;
+	printf ("Originator       : %.*s\n", (int) sizeof (bext.originator), bext.originator) ;
+	printf ("Origination ref  : %.*s\n", (int) sizeof (bext.originator_reference), bext.originator_reference) ;
+	printf ("Origination date : %.*s\n", (int) sizeof (bext.origination_date), bext.origination_date) ;
+	printf ("Origination time : %.*s\n", (int) sizeof (bext.origination_time), bext.origination_time) ;
+
+	if (bext.time_reference_high == 0 && bext.time_reference_low == 0)
+		printf ("Time ref         : 0\n") ;
+	else
+		printf ("Time ref         : 0x%x%08x (%.6f seconds)\n", bext.time_reference_high, bext.time_reference_low, time_ref_sec) ;
+
+	printf ("BWF version      : %d\n", bext.version) ;
+	printf ("UMID             : %.*s\n", (int) sizeof (bext.umid), bext.umid) ;
+	printf ("Coding history   : %.*s\n", bext.coding_history_size, bext.coding_history) ;
+
+	return 0 ;
+} /* broadcast_dump */
+
+static int
+chanmap_dump (const char *filename)
+{	SNDFILE	 *file ;
+	SF_INFO	 sfinfo ;
+	int * channel_map ;
+	int got_chanmap, k ;
+
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	if ((file = sf_open (filename, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("Error : Not able to open input file %s.\n", filename) ;
+		fflush (stdout) ;
+		memset (data, 0, sizeof (data)) ;
+		puts (sf_strerror (NULL)) ;
+		return 1 ;
+		} ;
+
+	if ((channel_map = calloc (sfinfo.channels, sizeof (int))) == NULL)
+	{	printf ("Error : malloc failed.\n\n") ;
+		return 1 ;
+		} ;
+
+	got_chanmap = sf_command (file, SFC_GET_CHANNEL_MAP_INFO, channel_map, sfinfo.channels * sizeof (int)) ;
+	sf_close (file) ;
+
+	if (got_chanmap == SF_FALSE)
+	{	printf ("Error : File '%s' does not contain channel map information.\n\n", filename) ;
+		free (channel_map) ;
+		return 1 ;
+		} ;
+
+	printf ("File : %s\n\n", filename) ;
+
+	puts ("    Chan    Position") ;
+	for (k = 0 ; k < sfinfo.channels ; k ++)
+	{	const char * name ;
+
+#define CASE_NAME(x)	case x : name = #x ; break ;
+		switch (channel_map [k])
+		{	CASE_NAME (SF_CHANNEL_MAP_INVALID) ;
+			CASE_NAME (SF_CHANNEL_MAP_MONO) ;
+			CASE_NAME (SF_CHANNEL_MAP_LEFT) ;
+			CASE_NAME (SF_CHANNEL_MAP_RIGHT) ;
+			CASE_NAME (SF_CHANNEL_MAP_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_FRONT_LEFT) ;
+			CASE_NAME (SF_CHANNEL_MAP_FRONT_RIGHT) ;
+			CASE_NAME (SF_CHANNEL_MAP_FRONT_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_REAR_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_REAR_LEFT) ;
+			CASE_NAME (SF_CHANNEL_MAP_REAR_RIGHT) ;
+			CASE_NAME (SF_CHANNEL_MAP_LFE) ;
+			CASE_NAME (SF_CHANNEL_MAP_FRONT_LEFT_OF_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_FRONT_RIGHT_OF_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_SIDE_LEFT) ;
+			CASE_NAME (SF_CHANNEL_MAP_SIDE_RIGHT) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_FRONT_LEFT) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_FRONT_RIGHT) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_FRONT_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_REAR_LEFT) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_REAR_RIGHT) ;
+			CASE_NAME (SF_CHANNEL_MAP_TOP_REAR_CENTER) ;
+			CASE_NAME (SF_CHANNEL_MAP_MAX) ;
+			default : name = "default" ;
+				break ;
+			} ;
+
+		printf ("    %3d     %s\n", k, name) ;
+		} ;
+
+	putchar ('\n') ;
+	free (channel_map) ;
+
+	return 0 ;
+} /* chanmap_dump */
+
+static void
+total_dump (void)
+{	printf ("========================================\n") ;
+	printf ("Total Duration : %s\n", format_duration_str (total_seconds)) ;
+} /* total_dump */
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-info.o b/jni/libsndfile-1.0.25/programs/sndfile-info.o
new file mode 100644
index 0000000..17b7468
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-info.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-interleave b/jni/libsndfile-1.0.25/programs/sndfile-interleave
new file mode 100755
index 0000000..5c8b789
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-interleave
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-interleave - temporary wrapper script for .libs/sndfile-interleave
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-interleave program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-interleave.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-interleave:sndfile-interleave:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-interleave:sndfile-interleave:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-interleave:sndfile-interleave:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-interleave'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-interleave.c b/jni/libsndfile-1.0.25/programs/sndfile-interleave.c
new file mode 100644
index 0000000..24d6b9d
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-interleave.c
@@ -0,0 +1,202 @@
+/*
+** Copyright (C) 2009-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sndfile.h>
+
+#include "common.h"
+
+#define	BUFFER_LEN	4096
+#define	MAX_INPUTS	16
+
+
+typedef struct
+{	SNDFILE * infile [MAX_INPUTS] ;
+	SNDFILE * outfile ;
+
+	union
+	{	double	d [BUFFER_LEN] ;
+		int		i [BUFFER_LEN] ;
+	} din ;
+
+	union
+
+	{	double	d [MAX_INPUTS * BUFFER_LEN] ;
+		int		i [MAX_INPUTS * BUFFER_LEN] ;
+	} dout ;
+
+	int channels ;
+} STATE ;
+
+
+static void usage_exit (void) ;
+static void interleave_int (STATE * state) ;
+static void interleave_double (STATE * state) ;
+
+
+int
+main (int argc, char **argv)
+{	STATE state ;
+	SF_INFO sfinfo ;
+	int k, double_merge = 0 ;
+
+	if (argc < 5)
+	{	if (argc > 1)
+			puts ("\nError : need at least 2 input files.") ;
+		usage_exit () ;
+		} ;
+
+	if (strcmp (argv [argc - 2], "-o") != 0)
+	{	puts ("\nError : second last command line parameter should be '-o'.\n") ;
+		usage_exit () ;
+		} ;
+
+	if (argc - 3 > MAX_INPUTS)
+	{	printf ("\nError : Cannot handle more than %d input channels.\n\n", MAX_INPUTS) ;
+		exit (1) ;
+		} ;
+
+	memset (&state, 0, sizeof (state)) ;
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+	for (k = 1 ; k < argc - 2 ; k++)
+	{
+		if ((state.infile [k - 1] = sf_open (argv [k], SFM_READ, &sfinfo)) == NULL)
+		{	printf ("\nError : Not able to open input file '%s'\n%s\n", argv [k], sf_strerror (NULL)) ;
+			exit (1) ;
+			} ;
+
+		if (sfinfo.channels != 1)
+		{	printf ("\bError : Input file '%s' should be mono (has %d channels).\n", argv [k], sfinfo.channels) ;
+			exit (1) ;
+			} ;
+
+		switch (sfinfo.format & SF_FORMAT_SUBMASK)
+		{	case SF_FORMAT_FLOAT :
+			case SF_FORMAT_DOUBLE :
+			case SF_FORMAT_VORBIS :
+				double_merge = 1 ;
+				break ;
+
+			default :
+				break ;
+			} ;
+
+		state.channels ++ ;
+		} ;
+
+	sfinfo.channels = state.channels ;
+	sfinfo.format = sfe_file_type_of_ext (argv [argc - 1], sfinfo.format) ;
+
+	if ((state.outfile = sf_open (argv [argc - 1], SFM_WRITE, &sfinfo)) == NULL)
+	{	printf ("Not able to open output file '%s'\n%s\n", argv [argc - 1], sf_strerror (NULL)) ;
+		exit (1) ;
+		} ;
+
+	if (double_merge)
+		interleave_double (&state) ;
+	else
+		interleave_int (&state) ;
+
+	for (k = 0 ; k < MAX_INPUTS ; k++)
+		if (state.infile [k] != NULL)
+			sf_close (state.infile [k]) ;
+	sf_close (state.outfile) ;
+
+	return 0 ;
+} /* main */
+
+/*------------------------------------------------------------------------------
+*/
+
+
+static void
+usage_exit (void)
+{	puts ("\nUsage : sndfile-interleave <input 1> <input 2> ... -o <output file>\n") ;
+	puts ("Merge two or more mono files into a single multi-channel file.\n") ;
+	printf ("Using %s.\n\n", sf_version_string ()) ;
+	exit (0) ;
+} /* usage_exit */
+
+
+static void
+interleave_int (STATE * state)
+{	int max_read_len, read_len ;
+	int ch, k ;
+
+	do
+	{	max_read_len = 0 ;
+
+		for (ch = 0 ; ch < state->channels ; ch ++)
+		{	read_len = sf_read_int (state->infile [ch], state->din.i, BUFFER_LEN) ;
+			if (read_len < BUFFER_LEN)
+				memset (state->din.i + read_len, 0, sizeof (state->din.i [0]) * (BUFFER_LEN - read_len)) ;
+
+			for (k = 0 ; k < read_len ; k++)
+				state->dout.i [k * state->channels + ch] = state->din.i [k] ;
+
+			max_read_len = MAX (max_read_len, read_len) ;
+			} ;
+
+		sf_writef_int (state->outfile, state->dout.i, max_read_len) ;
+		}
+	while (max_read_len > 0) ;
+
+} /* interleave_int */
+
+
+static void
+interleave_double (STATE * state)
+{	int max_read_len, read_len ;
+	int ch, k ;
+
+	do
+	{	max_read_len = 0 ;
+
+		for (ch = 0 ; ch < state->channels ; ch ++)
+		{	read_len = sf_read_double (state->infile [ch], state->din.d, BUFFER_LEN) ;
+			if (read_len < BUFFER_LEN)
+				memset (state->din.d + read_len, 0, sizeof (state->din.d [0]) * (BUFFER_LEN - read_len)) ;
+
+			for (k = 0 ; k < read_len ; k++)
+				state->dout.d [k * state->channels + ch] = state->din.d [k] ;
+
+			max_read_len = MAX (max_read_len, read_len) ;
+			} ;
+
+		sf_writef_double (state->outfile, state->dout.d, max_read_len) ;
+		}
+	while (max_read_len > 0) ;
+
+} /* interleave_double */
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-interleave.o b/jni/libsndfile-1.0.25/programs/sndfile-interleave.o
new file mode 100644
index 0000000..daf4c6c
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-interleave.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-metadata-get b/jni/libsndfile-1.0.25/programs/sndfile-metadata-get
new file mode 100755
index 0000000..43bf95c
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-metadata-get
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-metadata-get - temporary wrapper script for .libs/sndfile-metadata-get
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-metadata-get program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-metadata-get.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-metadata-get:sndfile-metadata-get:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-metadata-get:sndfile-metadata-get:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-metadata-get:sndfile-metadata-get:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-metadata-get'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-metadata-get.c b/jni/libsndfile-1.0.25/programs/sndfile-metadata-get.c
new file mode 100644
index 0000000..b77ef4f
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-metadata-get.c
@@ -0,0 +1,176 @@
+/*
+** Copyright (C) 2008-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+** Copyright (C) 2008-2010 George Blood Audio
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <time.h>
+
+#include <sndfile.h>
+
+#include "common.h"
+
+#define	BUFFER_LEN		(1 << 16)
+
+static void usage_exit (const char *progname, int exit_code) ;
+static void process_args (SNDFILE * file, const SF_BROADCAST_INFO_2K * binfo, int argc, char * argv []) ;
+
+int
+main (int argc, char *argv [])
+{	SNDFILE *file ;
+	SF_INFO sfinfo ;
+	SF_BROADCAST_INFO_2K binfo ;
+	const char *progname ;
+	const char * filename = NULL ;
+	int	start ;
+
+	/* Store the program name. */
+	progname = program_name (argv [0]) ;
+
+	/* Check if we've been asked for help. */
+	if (argc <= 2 || strcmp (argv [1], "--help") == 0 || strcmp (argv [1], "-h") == 0)
+		usage_exit (progname, 0) ;
+
+	if (argv [argc - 1][0] != '-')
+	{	filename = argv [argc - 1] ;
+		start = 1 ;
+		}
+	else if (argv [1][0] != '-')
+	{	filename = argv [1] ;
+		start = 2 ;
+		}
+	else
+	{	printf ("Error : Either the first or the last command line parameter should be a filename.\n\n") ;
+		exit (1) ;
+		} ;
+
+	/* Get the time in case we need it later. */
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+	if ((file = sf_open (filename, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("Error : Open of file '%s' failed : %s\n\n", filename, sf_strerror (file)) ;
+		exit (1) ;
+		} ;
+
+	memset (&binfo, 0, sizeof (binfo)) ;
+	if (sf_command (file, SFC_GET_BROADCAST_INFO, &binfo, sizeof (binfo)) == 0)
+		memset (&binfo, 0, sizeof (binfo)) ;
+
+	process_args (file, &binfo, argc - 2, argv + start) ;
+
+	sf_close (file) ;
+	return 0 ;
+} /* main */
+
+/*==============================================================================
+**	Print version and usage.
+*/
+
+static void
+usage_exit (const char *progname, int exit_code)
+{	printf ("\nUsage :\n  %s [options] <file>\n\nOptions:\n", progname) ;
+
+	puts (
+		"    --bext-description    Print the 'bext' description.\n"
+		"    --bext-originator     Print the 'bext; originator info.\n"
+		"    --bext-orig-ref       Print the 'bext' origination reference.\n"
+		"    --bext-umid           Print the 'bext' UMID.\n"
+		"    --bext-orig-date      Print the 'bext' origination date.\n"
+		"    --bext-orig-time      Print the 'bext' origination time.\n"
+		"    --bext-coding-hist    Print the 'bext' coding history.\n"
+		) ;
+
+	puts (
+		"    --str-title           Print the title metadata.\n"
+		"    --str-copyright       Print the copyright metadata.\n"
+		"    --str-artist          Print the artist metadata.\n"
+		"    --str-comment         Print the comment metadata.\n"
+		"    --str-date            Print the creation date metadata.\n"
+		"    --str-album           Print the album metadata.\n"
+		"    --str-license         Print the license metadata.\n"
+		) ;
+
+	printf ("Using %s.\n\n", sf_version_string ()) ;
+	exit (exit_code) ;
+} /* usage_exit */
+
+static void
+process_args (SNDFILE * file, const SF_BROADCAST_INFO_2K * binfo, int argc, char * argv [])
+{	const char * str ;
+	int k, do_all = 0 ;
+
+#define HANDLE_BEXT_ARG(cmd,name,field) \
+		if (do_all || strcmp (argv [k], cmd) == 0) \
+		{	printf ("%-20s : %.*s\n", name, (int) sizeof (binfo->field), binfo->field) ; \
+			if (! do_all) \
+				continue ; \
+			} ;
+
+#define HANDLE_STR_ARG(cmd,name,id) \
+		if (do_all || strcmp (argv [k], cmd) == 0) \
+		{	str = sf_get_string (file, id) ; \
+			printf ("%-20s : %s\n", name, str ? str : "") ; \
+			if (! do_all) continue ; \
+			} ;
+
+	for (k = 0 ; k < argc ; k++)
+	{	if (do_all || strcmp (argv [k], "--all") == 0)
+			do_all = 1 ;
+
+		HANDLE_BEXT_ARG ("--bext-description", "Description", description) ;
+		HANDLE_BEXT_ARG ("--bext-originator", "Originator", originator) ;
+		HANDLE_BEXT_ARG ("--bext-orig-ref", "Origination ref", originator_reference) ;
+		HANDLE_BEXT_ARG ("--bext-umid", "UMID", umid) ;
+		HANDLE_BEXT_ARG ("--bext-orig-date", "Origination date", origination_date) ;
+		HANDLE_BEXT_ARG ("--bext-orig-time", "Origination time", origination_time) ;
+		HANDLE_BEXT_ARG ("--bext-coding-hist", "Coding history", coding_history) ;
+
+		HANDLE_STR_ARG ("--str-title", "Name", SF_STR_TITLE) ;
+		HANDLE_STR_ARG ("--str-copyright", "Copyright", SF_STR_COPYRIGHT) ;
+		HANDLE_STR_ARG ("--str-artist", "Artist", SF_STR_ARTIST) ;
+		HANDLE_STR_ARG ("--str-comment", "Comment", SF_STR_COMMENT) ;
+		HANDLE_STR_ARG ("--str-date", "Create date", SF_STR_DATE) ;
+		HANDLE_STR_ARG ("--str-album", "Album", SF_STR_ALBUM) ;
+		HANDLE_STR_ARG ("--str-license", "License", SF_STR_LICENSE) ;
+
+		if (! do_all)
+		{	printf ("Error : Don't know what to do with command line arg '%s'.\n\n", argv [k]) ;
+			exit (1) ;
+			} ;
+		break ;
+		} ;
+
+	return ;
+} /* process_args */
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-metadata-get.o b/jni/libsndfile-1.0.25/programs/sndfile-metadata-get.o
new file mode 100644
index 0000000..e5ccc3f
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-metadata-get.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-metadata-set b/jni/libsndfile-1.0.25/programs/sndfile-metadata-set
new file mode 100755
index 0000000..779ce1c
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-metadata-set
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-metadata-set - temporary wrapper script for .libs/sndfile-metadata-set
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-metadata-set program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-metadata-set.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-metadata-set:sndfile-metadata-set:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-metadata-set:sndfile-metadata-set:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-metadata-set:sndfile-metadata-set:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-metadata-set'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-metadata-set.c b/jni/libsndfile-1.0.25/programs/sndfile-metadata-set.c
new file mode 100644
index 0000000..cf0babf
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-metadata-set.c
@@ -0,0 +1,284 @@
+/*
+** Copyright (C) 2008-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+** Copyright (C) 2008-2010 George Blood Audio
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <time.h>
+
+#include <sndfile.h>
+
+#include "common.h"
+
+#define	BUFFER_LEN		(1 << 16)
+
+
+static void usage_exit (const char *progname, int exit_code) ;
+static void missing_param (const char * option) ;
+static void read_localtime (struct tm * timedata) ;
+static int has_bext_fields_set (const METADATA_INFO * info) ;
+
+int
+main (int argc, char *argv [])
+{	METADATA_INFO info ;
+	struct tm timedata ;
+	const char *progname ;
+	const char * filenames [2] = { NULL, NULL } ;
+	int	k ;
+
+	/* Store the program name. */
+	progname = program_name (argv [0]) ;
+
+	/* Check if we've been asked for help. */
+	if (argc < 3 || strcmp (argv [1], "--help") == 0 || strcmp (argv [1], "-h") == 0)
+		usage_exit (progname, 0) ;
+
+	/* Clear set all fields of the struct to zero bytes. */
+	memset (&info, 0, sizeof (info)) ;
+
+	/* Get the time in case we need it later. */
+	read_localtime (&timedata) ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	char tmp [20] ;
+
+		if (argv [k][0] != '-')
+		{	if (filenames [0] == NULL)
+				filenames [0] = argv [k] ;
+			else if (filenames [1] == NULL)
+				filenames [1] = argv [k] ;
+			else
+			{	printf ("Error : Already have two file names on the command line and then found '%s'.\n\n", argv [k]) ;
+				usage_exit (progname, 1) ;
+				} ;
+			continue ;
+			} ;
+
+#define HANDLE_BEXT_ARG(cmd,field) \
+		if (strcmp (argv [k], cmd) == 0) \
+		{	k ++ ; \
+			if (k == argc) missing_param (argv [k - 1]) ; \
+			info.field = argv [k] ; \
+			continue ; \
+			} ;
+
+		HANDLE_BEXT_ARG ("--bext-description", description) ;
+		HANDLE_BEXT_ARG ("--bext-originator", originator) ;
+		HANDLE_BEXT_ARG ("--bext-orig-ref", originator_reference) ;
+		HANDLE_BEXT_ARG ("--bext-umid", umid) ;
+		HANDLE_BEXT_ARG ("--bext-orig-date", origination_date) ;
+		HANDLE_BEXT_ARG ("--bext-orig-time", origination_time) ;
+		HANDLE_BEXT_ARG ("--bext-coding-hist", coding_history) ;
+		HANDLE_BEXT_ARG ("--bext-time-ref", time_ref) ;
+
+#define HANDLE_STR_ARG(cmd,field) \
+	if (strcmp (argv [k], cmd) == 0) \
+	{	k ++ ; \
+		if (k == argc) missing_param (argv [k - 1]) ; \
+		info.field = argv [k] ; \
+		continue ; \
+		} ;
+
+		HANDLE_STR_ARG ("--str-comment", comment) ;
+		HANDLE_STR_ARG ("--str-title", title) ;
+		HANDLE_STR_ARG ("--str-copyright", copyright) ;
+		HANDLE_STR_ARG ("--str-artist", artist) ;
+		HANDLE_STR_ARG ("--str-date", date) ;
+		HANDLE_STR_ARG ("--str-album", album) ;
+		HANDLE_STR_ARG ("--str-license", license) ;
+
+		/* Following options do not take an argument. */
+		if (strcmp (argv [k], "--bext-auto-time-date") == 0)
+		{	snprintf (tmp, sizeof (tmp), "%02d:%02d:%02d", timedata.tm_hour, timedata.tm_min, timedata.tm_sec) ;
+			info.origination_time = strdup (tmp) ;
+
+			snprintf (tmp, sizeof (tmp), "%04d-%02d-%02d", timedata.tm_year + 1900, timedata.tm_mon + 1, timedata.tm_mday) ;
+			info.origination_date = strdup (tmp) ;
+			continue ;
+			} ;
+
+		if (strcmp (argv [k], "--bext-auto-time") == 0)
+		{	snprintf (tmp, sizeof (tmp), "%02d:%02d:%02d", timedata.tm_hour, timedata.tm_min, timedata.tm_sec) ;
+			info.origination_time = strdup (tmp) ;
+			continue ;
+			} ;
+
+		if (strcmp (argv [k], "--bext-auto-date") == 0)
+		{	snprintf (tmp, sizeof (tmp), "%04d-%02d-%02d", timedata.tm_year + 1900, timedata.tm_mon + 1, timedata.tm_mday) ;
+			info.origination_date = strdup (tmp) ;
+			continue ;
+			} ;
+
+		if (strcmp (argv [k], "--str-auto-date") == 0)
+		{	snprintf (tmp, sizeof (tmp), "%04d-%02d-%02d", timedata.tm_year + 1900, timedata.tm_mon + 1, timedata.tm_mday) ;
+
+			info.date = strdup (tmp) ;
+			continue ;
+			} ;
+
+		printf ("Error : Don't know what to do with command line arg '%s'.\n\n", argv [k]) ;
+		usage_exit (progname, 1) ;
+		} ;
+
+	/* Find out if any of the 'bext' fields are set. */
+	info.has_bext_fields = has_bext_fields_set (&info) ;
+
+	if (filenames [0] == NULL)
+	{	printf ("Error : No input file specificed.\n\n") ;
+		exit (1) ;
+		} ;
+
+	if (filenames [1] != NULL && strcmp (filenames [0], filenames [1]) == 0)
+	{	printf ("Error : Input and output files are the same.\n\n") ;
+		exit (1) ;
+		} ;
+
+	if (info.coding_history != NULL && filenames [1] == NULL)
+	{	printf ("\n"
+			"Error : Trying to update coding history of an existing file which unfortunately\n"
+			"        is not supported. Instead, create a new file using :\n"
+			"\n"
+			"        %s --bext-coding-hist \"Coding history\" old_file.wav new_file.wav\n"
+			"\n",
+			progname) ;
+		exit (1) ;
+		} ;
+
+	sfe_apply_metadata_changes (filenames, &info) ;
+
+	return 0 ;
+} /* main */
+
+/*==============================================================================
+**	Print version and usage.
+*/
+
+static void
+usage_exit (const char *progname, int exit_code)
+{	printf ("\nUsage :\n\n"
+		"  %s [options] <file>\n"
+		"  %s [options] <input file> <output file>\n"
+		"\n",
+		progname, progname) ;
+
+	puts (
+		"Where an option is made up of a pair of a field to set (one of\n"
+		"the 'bext' or metadata fields below) and a string. Fields are\n"
+		"as follows :\n"
+		) ;
+
+	puts (
+		"    --bext-description       Set the 'bext' description.\n"
+		"    --bext-originator        Set the 'bext' originator.\n"
+		"    --bext-orig-ref          Set the 'bext' originator reference.\n"
+		"    --bext-umid              Set the 'bext' UMID.\n"
+		"    --bext-orig-date         Set the 'bext' origination date.\n"
+		"    --bext-orig-time         Set the 'bext' origination time.\n"
+		"    --bext-coding-hist       Set the 'bext' coding history.\n"
+		"    --bext-time-raf          Set the 'bext' Time ref.\n"
+		"\n"
+		"    --str-comment            Set the metadata comment.\n"
+		"    --str-title              Set the metadata title.\n"
+		"    --str-copyright          Set the metadata copyright.\n"
+		"    --str-artist             Set the metadata artist.\n"
+		"    --str-date               Set the metadata date.\n"
+		"    --str-album              Set the metadata album.\n"
+		"    --str-license            Set the metadata license.\n"
+		) ;
+
+	puts (
+		"There are also the following arguments which do not take a\n"
+		"parameter :\n\n"
+		"    --bext-auto-time-date    Set the 'bext' time and date to current time/date.\n"
+		"    --bext-auto-time         Set the 'bext' time to current time.\n"
+		"    --bext-auto-date         Set the 'bext' date to current date.\n"
+		"    --str-auto-date          Set the metadata date to current date.\n"
+		) ;
+
+	puts (
+		"Most of the above operations can be done in-place on an existing\n"
+		"file. If any operation cannot be performed, the application will\n"
+		"exit with an appropriate error message.\n"
+		) ;
+
+	printf ("Using %s.\n\n", sf_version_string ()) ;
+	exit (exit_code) ;
+} /* usage_exit */
+
+static void
+missing_param (const char * option)
+{
+	printf ("Error : Option '%s' needs a parameter but doesn't seem to have one.\n\n", option) ;
+	exit (1) ;
+} /* missing_param */
+
+/*==============================================================================
+*/
+
+static int
+has_bext_fields_set (const METADATA_INFO * info)
+{
+	if (info->description || info->originator || info->originator_reference)
+		return 1 ;
+
+	if (info->origination_date || info->origination_time || info->umid || info->coding_history || info->time_ref)
+		return 1 ;
+
+	return 0 ;
+} /* has_bext_fields_set */
+
+static void
+read_localtime (struct tm * timedata)
+{	time_t		current ;
+
+	time (&current) ;
+	memset (timedata, 0, sizeof (struct tm)) ;
+
+#if defined (HAVE_LOCALTIME_R)
+	/* If the re-entrant version is available, use it. */
+	localtime_r (&current, timedata) ;
+#elif defined (HAVE_LOCALTIME)
+	{
+		struct tm	*tmptr ;
+		/* Otherwise use the standard one and copy the data to local storage. */
+		if ((tmptr = localtime (&current)) != NULL)
+			memcpy (timedata, tmptr, sizeof (struct tm)) ;
+	}
+#endif
+
+	return ;
+} /* read_localtime */
+
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-metadata-set.o b/jni/libsndfile-1.0.25/programs/sndfile-metadata-set.o
new file mode 100644
index 0000000..dc0b0cd
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-metadata-set.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-play b/jni/libsndfile-1.0.25/programs/sndfile-play
new file mode 100755
index 0000000..0d999e7
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-play
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-play - temporary wrapper script for .libs/sndfile-play
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-play program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-play.o common.o  ../src/.libs/libsndfile.so -lasound -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-play:sndfile-play:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-play:sndfile-play:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-play:sndfile-play:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-play'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-play-beos.cpp b/jni/libsndfile-1.0.25/programs/sndfile-play-beos.cpp
new file mode 100644
index 0000000..fb3fde4
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-play-beos.cpp
@@ -0,0 +1,144 @@
+/*
+** Copyright (C) 2001 Marcus Overhagen <marcus@overhagen.de>
+**  
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+** 
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+** GNU General Public License for more details.
+** 
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software 
+** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include	<stdio.h>
+
+#include 	<Application.h>
+#include 	<SoundPlayer.h>
+#include 	<string.h>
+
+#include	<sndfile.h>
+
+#define	BUFFER_LEN		1024
+
+/*------------------------------------------------------------------------------
+**	BeOS functions for playing a sound.
+*/
+
+#if defined (__BEOS__)
+
+struct shared_data
+{
+	BSoundPlayer *player;
+	SNDFILE *sndfile;
+	SF_INFO sfinfo;	
+	sem_id finished;
+};
+
+static void 
+buffer_callback(void *theCookie, void *buf, size_t size, const media_raw_audio_format &format) 
+{
+	shared_data *data = (shared_data *)theCookie;
+	short *buffer = (short *)buf;
+	int count = size / sizeof(short);
+	int m, readcount;
+
+	if (!data->player->HasData())
+		return;
+
+	readcount = sf_read_short(data->sndfile, buffer, count);
+	if (readcount == 0) 
+	{	data->player->SetHasData(false);		
+		release_sem(data->finished);
+		}
+	if (readcount < count) 
+	{	for (m = readcount ; m < count ; m++)
+			buffer [m] = 0 ;
+		}
+	if (data->sfinfo.pcmbitwidth < 16) 
+	{	for (m = 0 ; m < count ; m++)
+			buffer [m] *= 256 ;
+		}
+}
+
+static void
+beos_play (int argc, char *argv [])
+{
+	shared_data data;
+	status_t status;
+	int	k;
+
+	/* BSoundPlayer requires a BApplication object */
+	BApplication app("application/x-vnd.MarcusOverhagen-sfplay");
+
+	for (k = 1 ; k < argc ; k++)
+	{	printf ("Playing %s\n", argv [k]) ;	
+		if (! (data.sndfile = sf_open_read (argv [k], &data.sfinfo)))
+		{	sf_perror (NULL) ;
+			continue ;
+			} ;
+			
+		if (data.sfinfo.channels < 1 || data.sfinfo.channels > 2)
+		{	printf ("Error : channels = %d.\n", data.sfinfo.channels) ;
+			sf_close (data.sndfile) ;
+			continue ;
+			} ;		
+
+		data.finished = create_sem(0,"finished");			
+
+		media_raw_audio_format format = 
+		{ 	data.sfinfo.samplerate,
+			data.sfinfo.channels,
+			media_raw_audio_format::B_AUDIO_SHORT,
+			B_HOST_IS_LENDIAN ? B_MEDIA_LITTLE_ENDIAN : B_MEDIA_BIG_ENDIAN,
+			BUFFER_LEN * sizeof(short)
+			};
+
+		BSoundPlayer player(&format,"player",buffer_callback,NULL,&data);
+		data.player = &player;
+		
+		if ((status = player.InitCheck()) != B_OK) 
+		{
+			printf ("Error : BSoundPlayer init failed, %s.\n", strerror(status)) ;
+			delete_sem(data.finished);
+			sf_close (data.sndfile) ;
+			continue ;
+			}
+
+		player.SetVolume(1.0);
+		player.Start();
+		player.SetHasData(true);
+		acquire_sem(data.finished);
+		player.Stop();
+		delete_sem(data.finished);
+		
+		sf_close (data.sndfile) ;
+
+		} ;
+
+} /* beos_play */
+
+#endif
+
+/*==============================================================================
+**	Main function.
+*/
+
+int 
+main (int argc, char *argv [])
+{
+	if (argc < 2)
+	{	printf ("Usage : %s <input sound file>\n\n", argv [0]) ;
+		return 1 ;
+		} ;
+	
+	beos_play (argc, argv) ;
+
+	return 0 ;
+} /* main */
+		
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-play.c b/jni/libsndfile-1.0.25/programs/sndfile-play.c
new file mode 100644
index 0000000..f2a32d7
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-play.c
@@ -0,0 +1,1023 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "sfconfig.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <sndfile.h>
+
+#include "common.h"
+
+#if HAVE_ALSA_ASOUNDLIB_H
+	#define ALSA_PCM_NEW_HW_PARAMS_API
+	#define ALSA_PCM_NEW_SW_PARAMS_API
+	#include <alsa/asoundlib.h>
+	#include <sys/time.h>
+#endif
+
+#if defined (__linux__) || defined (__FreeBSD_kernel__) || defined (__FreeBSD__)
+	#include 	<fcntl.h>
+	#include 	<sys/ioctl.h>
+	#include 	<sys/soundcard.h>
+
+#elif (defined (__MACH__) && defined (__APPLE__))
+	#include <Carbon.h>
+	#include <CoreAudio/AudioHardware.h>
+
+#elif defined (HAVE_SNDIO_H)
+	#include <sndio.h>
+
+#elif (defined (sun) && defined (unix))
+	#include <fcntl.h>
+	#include <sys/ioctl.h>
+	#include <sys/audioio.h>
+
+#elif (OS_IS_WIN32 == 1)
+	#include <windows.h>
+	#include <mmsystem.h>
+
+#endif
+
+#define	SIGNED_SIZEOF(x)	((int) sizeof (x))
+#define	BUFFER_LEN			(2048)
+
+/*------------------------------------------------------------------------------
+**	Linux/OSS functions for playing a sound.
+*/
+
+#if HAVE_ALSA_ASOUNDLIB_H
+
+static snd_pcm_t * alsa_open (int channels, unsigned srate, int realtime) ;
+static int alsa_write_float (snd_pcm_t *alsa_dev, float *data, int frames, int channels) ;
+
+static void
+alsa_play (int argc, char *argv [])
+{	static float buffer [BUFFER_LEN] ;
+	SNDFILE *sndfile ;
+	SF_INFO sfinfo ;
+	snd_pcm_t * alsa_dev ;
+	int		k, readcount, subformat ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+		printf ("Playing %s\n", argv [k]) ;
+		if (! (sndfile = sf_open (argv [k], SFM_READ, &sfinfo)))
+		{	puts (sf_strerror (NULL)) ;
+			continue ;
+			} ;
+
+		if (sfinfo.channels < 1 || sfinfo.channels > 2)
+		{	printf ("Error : channels = %d.\n", sfinfo.channels) ;
+			continue ;
+			} ;
+
+		if ((alsa_dev = alsa_open (sfinfo.channels, (unsigned) sfinfo.samplerate, SF_FALSE)) == NULL)
+			continue ;
+
+		subformat = sfinfo.format & SF_FORMAT_SUBMASK ;
+
+		if (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE)
+		{	double	scale ;
+			int 	m ;
+
+			sf_command (sndfile, SFC_CALC_SIGNAL_MAX, &scale, sizeof (scale)) ;
+			if (scale < 1e-10)
+				scale = 1.0 ;
+			else
+				scale = 32700.0 / scale ;
+
+			while ((readcount = sf_read_float (sndfile, buffer, BUFFER_LEN)))
+			{	for (m = 0 ; m < readcount ; m++)
+					buffer [m] *= scale ;
+				alsa_write_float (alsa_dev, buffer, BUFFER_LEN / sfinfo.channels, sfinfo.channels) ;
+				} ;
+			}
+		else
+		{	while ((readcount = sf_read_float (sndfile, buffer, BUFFER_LEN)))
+				alsa_write_float (alsa_dev, buffer, BUFFER_LEN / sfinfo.channels, sfinfo.channels) ;
+			} ;
+
+		snd_pcm_drain (alsa_dev) ;
+		snd_pcm_close (alsa_dev) ;
+
+		sf_close (sndfile) ;
+		} ;
+
+	return ;
+} /* alsa_play */
+
+static snd_pcm_t *
+alsa_open (int channels, unsigned samplerate, int realtime)
+{	const char * device = "default" ;
+	snd_pcm_t *alsa_dev = NULL ;
+	snd_pcm_hw_params_t *hw_params ;
+	snd_pcm_uframes_t buffer_size ;
+	snd_pcm_uframes_t alsa_period_size, alsa_buffer_frames ;
+	snd_pcm_sw_params_t *sw_params ;
+
+	int err ;
+
+	if (realtime)
+	{	alsa_period_size = 256 ;
+		alsa_buffer_frames = 3 * alsa_period_size ;
+		}
+	else
+	{	alsa_period_size = 1024 ;
+		alsa_buffer_frames = 4 * alsa_period_size ;
+		} ;
+
+	if ((err = snd_pcm_open (&alsa_dev, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0)
+	{	fprintf (stderr, "cannot open audio device \"%s\" (%s)\n", device, snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	snd_pcm_nonblock (alsa_dev, 0) ;
+
+	if ((err = snd_pcm_hw_params_malloc (&hw_params)) < 0)
+	{	fprintf (stderr, "cannot allocate hardware parameter structure (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_any (alsa_dev, hw_params)) < 0)
+	{	fprintf (stderr, "cannot initialize hardware parameter structure (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_set_access (alsa_dev, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0)
+	{	fprintf (stderr, "cannot set access type (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_set_format (alsa_dev, hw_params, SND_PCM_FORMAT_FLOAT)) < 0)
+	{	fprintf (stderr, "cannot set sample format (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_set_rate_near (alsa_dev, hw_params, &samplerate, 0)) < 0)
+	{	fprintf (stderr, "cannot set sample rate (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_set_channels (alsa_dev, hw_params, channels)) < 0)
+	{	fprintf (stderr, "cannot set channel count (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_set_buffer_size_near (alsa_dev, hw_params, &alsa_buffer_frames)) < 0)
+	{	fprintf (stderr, "cannot set buffer size (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params_set_period_size_near (alsa_dev, hw_params, &alsa_period_size, 0)) < 0)
+	{	fprintf (stderr, "cannot set period size (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_hw_params (alsa_dev, hw_params)) < 0)
+	{	fprintf (stderr, "cannot set parameters (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	/* extra check: if we have only one period, this code won't work */
+	snd_pcm_hw_params_get_period_size (hw_params, &alsa_period_size, 0) ;
+	snd_pcm_hw_params_get_buffer_size (hw_params, &buffer_size) ;
+	if (alsa_period_size == buffer_size)
+	{	fprintf (stderr, "Can't use period equal to buffer size (%lu == %lu)", alsa_period_size, buffer_size) ;
+		goto catch_error ;
+		} ;
+
+	snd_pcm_hw_params_free (hw_params) ;
+
+	if ((err = snd_pcm_sw_params_malloc (&sw_params)) != 0)
+	{	fprintf (stderr, "%s: snd_pcm_sw_params_malloc: %s", __func__, snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_sw_params_current (alsa_dev, sw_params)) != 0)
+	{	fprintf (stderr, "%s: snd_pcm_sw_params_current: %s", __func__, snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	/* note: set start threshold to delay start until the ring buffer is full */
+	snd_pcm_sw_params_current (alsa_dev, sw_params) ;
+
+	if ((err = snd_pcm_sw_params_set_start_threshold (alsa_dev, sw_params, buffer_size)) < 0)
+	{	fprintf (stderr, "cannot set start threshold (%s)\n", snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	if ((err = snd_pcm_sw_params (alsa_dev, sw_params)) != 0)
+	{	fprintf (stderr, "%s: snd_pcm_sw_params: %s", __func__, snd_strerror (err)) ;
+		goto catch_error ;
+		} ;
+
+	snd_pcm_sw_params_free (sw_params) ;
+
+	snd_pcm_reset (alsa_dev) ;
+
+catch_error :
+
+	if (err < 0 && alsa_dev != NULL)
+	{	snd_pcm_close (alsa_dev) ;
+		return NULL ;
+		} ;
+
+	return alsa_dev ;
+} /* alsa_open */
+
+static int
+alsa_write_float (snd_pcm_t *alsa_dev, float *data, int frames, int channels)
+{	static	int epipe_count = 0 ;
+
+	int total = 0 ;
+	int retval ;
+
+	if (epipe_count > 0)
+		epipe_count -- ;
+
+	while (total < frames)
+	{	retval = snd_pcm_writei (alsa_dev, data + total * channels, frames - total) ;
+
+		if (retval >= 0)
+		{	total += retval ;
+			if (total == frames)
+				return total ;
+
+			continue ;
+			} ;
+
+		switch (retval)
+		{	case -EAGAIN :
+					puts ("alsa_write_float: EAGAIN") ;
+					continue ;
+					break ;
+
+			case -EPIPE :
+					if (epipe_count > 0)
+					{	printf ("alsa_write_float: EPIPE %d\n", epipe_count) ;
+						if (epipe_count > 140)
+							return retval ;
+						} ;
+					epipe_count += 100 ;
+
+#if 0
+					if (0)
+					{	snd_pcm_status_t *status ;
+
+						snd_pcm_status_alloca (&status) ;
+						if ((retval = snd_pcm_status (alsa_dev, status)) < 0)
+							fprintf (stderr, "alsa_out: xrun. can't determine length\n") ;
+						else if (snd_pcm_status_get_state (status) == SND_PCM_STATE_XRUN)
+						{	struct timeval now, diff, tstamp ;
+
+							gettimeofday (&now, 0) ;
+							snd_pcm_status_get_trigger_tstamp (status, &tstamp) ;
+							timersub (&now, &tstamp, &diff) ;
+
+							fprintf (stderr, "alsa_write_float xrun: of at least %.3f msecs. resetting stream\n",
+									diff.tv_sec * 1000 + diff.tv_usec / 1000.0) ;
+							}
+						else
+							fprintf (stderr, "alsa_write_float: xrun. can't determine length\n") ;
+						} ;
+#endif
+
+					snd_pcm_prepare (alsa_dev) ;
+					break ;
+
+			case -EBADFD :
+					fprintf (stderr, "alsa_write_float: Bad PCM state.n") ;
+					return 0 ;
+					break ;
+
+			case -ESTRPIPE :
+					fprintf (stderr, "alsa_write_float: Suspend event.n") ;
+					return 0 ;
+					break ;
+
+			case -EIO :
+					puts ("alsa_write_float: EIO") ;
+					return 0 ;
+
+			default :
+					fprintf (stderr, "alsa_write_float: retval = %d\n", retval) ;
+					return 0 ;
+					break ;
+			} ; /* switch */
+		} ; /* while */
+
+	return total ;
+} /* alsa_write_float */
+
+#endif /* HAVE_ALSA_ASOUNDLIB_H */
+
+/*------------------------------------------------------------------------------
+**	Linux/OSS functions for playing a sound.
+*/
+
+#if defined (__linux__) || defined (__FreeBSD_kernel__) || defined (__FreeBSD__)
+
+static	int	opensoundsys_open_device (int channels, int srate) ;
+
+static int
+opensoundsys_play (int argc, char *argv [])
+{	static short buffer [BUFFER_LEN] ;
+	SNDFILE *sndfile ;
+	SF_INFO sfinfo ;
+	int		k, audio_device, readcount, writecount, subformat ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+
+		printf ("Playing %s\n", argv [k]) ;
+		if (! (sndfile = sf_open (argv [k], SFM_READ, &sfinfo)))
+		{	puts (sf_strerror (NULL)) ;
+			continue ;
+			} ;
+
+		if (sfinfo.channels < 1 || sfinfo.channels > 2)
+		{	printf ("Error : channels = %d.\n", sfinfo.channels) ;
+			continue ;
+			} ;
+
+		audio_device = opensoundsys_open_device (sfinfo.channels, sfinfo.samplerate) ;
+
+		subformat = sfinfo.format & SF_FORMAT_SUBMASK ;
+
+		if (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE)
+		{	static float float_buffer [BUFFER_LEN] ;
+			double	scale ;
+			int 	m ;
+
+			sf_command (sndfile, SFC_CALC_SIGNAL_MAX, &scale, sizeof (scale)) ;
+			if (scale < 1e-10)
+				scale = 1.0 ;
+			else
+				scale = 32700.0 / scale ;
+
+			while ((readcount = sf_read_float (sndfile, float_buffer, BUFFER_LEN)))
+			{	for (m = 0 ; m < readcount ; m++)
+					buffer [m] = scale * float_buffer [m] ;
+				writecount = write (audio_device, buffer, readcount * sizeof (short)) ;
+				} ;
+			}
+		else
+		{	while ((readcount = sf_read_short (sndfile, buffer, BUFFER_LEN)))
+				writecount = write (audio_device, buffer, readcount * sizeof (short)) ;
+			} ;
+
+		if (ioctl (audio_device, SNDCTL_DSP_POST, 0) == -1)
+			perror ("ioctl (SNDCTL_DSP_POST) ") ;
+
+		if (ioctl (audio_device, SNDCTL_DSP_SYNC, 0) == -1)
+			perror ("ioctl (SNDCTL_DSP_SYNC) ") ;
+
+		close (audio_device) ;
+
+		sf_close (sndfile) ;
+		} ;
+
+	return writecount ;
+} /* opensoundsys_play */
+
+static int
+opensoundsys_open_device (int channels, int srate)
+{	int fd, stereo, fmt ;
+
+	if ((fd = open ("/dev/dsp", O_WRONLY, 0)) == -1 &&
+		(fd = open ("/dev/sound/dsp", O_WRONLY, 0)) == -1)
+	{	perror ("opensoundsys_open_device : open ") ;
+		exit (1) ;
+		} ;
+
+	stereo = 0 ;
+	if (ioctl (fd, SNDCTL_DSP_STEREO, &stereo) == -1)
+	{ 	/* Fatal error */
+		perror ("opensoundsys_open_device : stereo ") ;
+		exit (1) ;
+		} ;
+
+	if (ioctl (fd, SNDCTL_DSP_RESET, 0))
+	{	perror ("opensoundsys_open_device : reset ") ;
+		exit (1) ;
+		} ;
+
+	fmt = CPU_IS_BIG_ENDIAN ? AFMT_S16_BE : AFMT_S16_LE ;
+	if (ioctl (fd, SNDCTL_DSP_SETFMT, &fmt) != 0)
+	{	perror ("opensoundsys_open_device : set format ") ;
+		exit (1) ;
+  		} ;
+
+	if (ioctl (fd, SNDCTL_DSP_CHANNELS, &channels) != 0)
+	{	perror ("opensoundsys_open_device : channels ") ;
+		exit (1) ;
+		} ;
+
+	if (ioctl (fd, SNDCTL_DSP_SPEED, &srate) != 0)
+	{	perror ("opensoundsys_open_device : sample rate ") ;
+		exit (1) ;
+		} ;
+
+	if (ioctl (fd, SNDCTL_DSP_SYNC, 0) != 0)
+	{	perror ("opensoundsys_open_device : sync ") ;
+		exit (1) ;
+		} ;
+
+	return 	fd ;
+} /* opensoundsys_open_device */
+
+#endif /* __linux__ */
+
+/*------------------------------------------------------------------------------
+**	Mac OS X functions for playing a sound.
+*/
+
+#if (defined (__MACH__) && defined (__APPLE__)) /* MacOSX */
+
+typedef struct
+{	AudioStreamBasicDescription		format ;
+
+	UInt32 			buf_size ;
+	AudioDeviceID 	device ;
+
+	SNDFILE 		*sndfile ;
+	SF_INFO 		sfinfo ;
+
+	int				fake_stereo ;
+	int				done_playing ;
+} MacOSXAudioData ;
+
+#include <math.h>
+
+static OSStatus
+macosx_audio_out_callback (AudioDeviceID device, const AudioTimeStamp* current_time,
+	const AudioBufferList* data_in, const AudioTimeStamp* time_in,
+	AudioBufferList*	data_out, const AudioTimeStamp* time_out,
+	void* client_data)
+{	MacOSXAudioData	*audio_data ;
+	int		size, sample_count, read_count, k ;
+	float	*buffer ;
+
+	/* Prevent compiler warnings. */
+	device = device ;
+	current_time = current_time ;
+	data_in = data_in ;
+	time_in = time_in ;
+	time_out = time_out ;
+
+	audio_data = (MacOSXAudioData*) client_data ;
+
+	size = data_out->mBuffers [0].mDataByteSize ;
+	sample_count = size / sizeof (float) ;
+
+	buffer = (float*) data_out->mBuffers [0].mData ;
+
+	if (audio_data->fake_stereo != 0)
+	{	read_count = sf_read_float (audio_data->sndfile, buffer, sample_count / 2) ;
+
+		for (k = read_count - 1 ; k >= 0 ; k--)
+		{	buffer [2 * k	] = buffer [k] ;
+			buffer [2 * k + 1] = buffer [k] ;
+			} ;
+		read_count *= 2 ;
+		}
+	else
+		read_count = sf_read_float (audio_data->sndfile, buffer, sample_count) ;
+
+	/* Fill the remainder with zeroes. */
+	if (read_count < sample_count)
+	{	if (audio_data->fake_stereo == 0)
+			memset (&(buffer [read_count]), 0, (sample_count - read_count) * sizeof (float)) ;
+		/* Tell the main application to terminate. */
+		audio_data->done_playing = SF_TRUE ;
+		} ;
+
+	return noErr ;
+} /* macosx_audio_out_callback */
+
+static void
+macosx_play (int argc, char *argv [])
+{	MacOSXAudioData 	audio_data ;
+	OSStatus	err ;
+	UInt32		count, buffer_size ;
+	int 		k ;
+
+	audio_data.fake_stereo = 0 ;
+	audio_data.device = kAudioDeviceUnknown ;
+
+	/*  get the default output device for the HAL */
+	count = sizeof (AudioDeviceID) ;
+	if ((err = AudioHardwareGetProperty (kAudioHardwarePropertyDefaultOutputDevice,
+				&count, (void *) &(audio_data.device))) != noErr)
+	{	printf ("AudioHardwareGetProperty (kAudioDevicePropertyDefaultOutputDevice) failed.\n") ;
+		return ;
+		} ;
+
+	/*  get the buffersize that the default device uses for IO */
+	count = sizeof (UInt32) ;
+	if ((err = AudioDeviceGetProperty (audio_data.device, 0, false, kAudioDevicePropertyBufferSize,
+				&count, &buffer_size)) != noErr)
+	{	printf ("AudioDeviceGetProperty (kAudioDevicePropertyBufferSize) failed.\n") ;
+		return ;
+		} ;
+
+	/*  get a description of the data format used by the default device */
+	count = sizeof (AudioStreamBasicDescription) ;
+	if ((err = AudioDeviceGetProperty (audio_data.device, 0, false, kAudioDevicePropertyStreamFormat,
+				&count, &(audio_data.format))) != noErr)
+	{	printf ("AudioDeviceGetProperty (kAudioDevicePropertyStreamFormat) failed.\n") ;
+		return ;
+		} ;
+
+	/* Base setup completed. Now play files. */
+	for (k = 1 ; k < argc ; k++)
+	{	printf ("Playing %s\n", argv [k]) ;
+		if (! (audio_data.sndfile = sf_open (argv [k], SFM_READ, &(audio_data.sfinfo))))
+		{	puts (sf_strerror (NULL)) ;
+			continue ;
+			} ;
+
+		if (audio_data.sfinfo.channels < 1 || audio_data.sfinfo.channels > 2)
+		{	printf ("Error : channels = %d.\n", audio_data.sfinfo.channels) ;
+			continue ;
+			} ;
+
+		audio_data.format.mSampleRate = audio_data.sfinfo.samplerate ;
+
+		if (audio_data.sfinfo.channels == 1)
+		{	audio_data.format.mChannelsPerFrame = 2 ;
+			audio_data.fake_stereo = 1 ;
+			}
+		else
+		audio_data.format.mChannelsPerFrame = audio_data.sfinfo.channels ;
+
+		if ((err = AudioDeviceSetProperty (audio_data.device, NULL, 0, false, kAudioDevicePropertyStreamFormat,
+					sizeof (AudioStreamBasicDescription), &(audio_data.format))) != noErr)
+		{	printf ("AudioDeviceSetProperty (kAudioDevicePropertyStreamFormat) failed.\n") ;
+			return ;
+			} ;
+
+		/*  we want linear pcm */
+		if (audio_data.format.mFormatID != kAudioFormatLinearPCM)
+			return ;
+
+		/* Fire off the device. */
+		if ((err = AudioDeviceAddIOProc (audio_data.device, macosx_audio_out_callback,
+				(void *) &audio_data)) != noErr)
+		{	printf ("AudioDeviceAddIOProc failed.\n") ;
+			return ;
+			} ;
+
+		err = AudioDeviceStart (audio_data.device, macosx_audio_out_callback) ;
+		if	(err != noErr)
+			return ;
+
+		audio_data.done_playing = SF_FALSE ;
+
+		while (audio_data.done_playing == SF_FALSE)
+			usleep (10 * 1000) ; /* 10 000 milliseconds. */
+
+		if ((err = AudioDeviceStop (audio_data.device, macosx_audio_out_callback)) != noErr)
+		{	printf ("AudioDeviceStop failed.\n") ;
+			return ;
+			} ;
+
+		err = AudioDeviceRemoveIOProc (audio_data.device, macosx_audio_out_callback) ;
+		if (err != noErr)
+		{	printf ("AudioDeviceRemoveIOProc failed.\n") ;
+			return ;
+			} ;
+
+		sf_close (audio_data.sndfile) ;
+		} ;
+
+	return ;
+} /* macosx_play */
+
+#endif /* MacOSX */
+
+
+/*------------------------------------------------------------------------------
+**	Win32 functions for playing a sound.
+**
+**	This API sucks. Its needlessly complicated and is *WAY* too loose with
+**	passing pointers arounf in integers and and using char* pointers to
+**  point to data instead of short*. It plain sucks!
+*/
+
+#if (OS_IS_WIN32 == 1)
+
+#define	WIN32_BUFFER_LEN	(1<<15)
+
+typedef struct
+{	HWAVEOUT	hwave ;
+	WAVEHDR		whdr [2] ;
+
+	CRITICAL_SECTION	mutex ;		/* to control access to BuffersInUSe */
+	HANDLE		Event ;			/* signal that a buffer is free */
+
+	short		buffer [WIN32_BUFFER_LEN / sizeof (short)] ;
+	int			current, bufferlen ;
+	int			BuffersInUse ;
+
+	SNDFILE 	*sndfile ;
+	SF_INFO 	sfinfo ;
+
+	sf_count_t	remaining ;
+} Win32_Audio_Data ;
+
+
+static void
+win32_play_data (Win32_Audio_Data *audio_data)
+{	int thisread, readcount ;
+
+	/* fill a buffer if there is more data and we can read it sucessfully */
+	readcount = (audio_data->remaining > audio_data->bufferlen) ? audio_data->bufferlen : (int) audio_data->remaining ;
+
+	thisread = (int) sf_read_short (audio_data->sndfile, (short *) (audio_data->whdr [audio_data->current].lpData), readcount) ;
+
+	audio_data->remaining -= thisread ;
+
+	if (thisread > 0)
+	{	/* Fix buffer length if this is only a partial block. */
+		if (thisread < audio_data->bufferlen)
+			audio_data->whdr [audio_data->current].dwBufferLength = thisread * sizeof (short) ;
+
+		/* Queue the WAVEHDR */
+		waveOutWrite (audio_data->hwave, (LPWAVEHDR) &(audio_data->whdr [audio_data->current]), sizeof (WAVEHDR)) ;
+
+		/* count another buffer in use */
+		EnterCriticalSection (&audio_data->mutex) ;
+		audio_data->BuffersInUse ++ ;
+		LeaveCriticalSection (&audio_data->mutex) ;
+
+		/* use the other buffer next time */
+		audio_data->current = (audio_data->current + 1) % 2 ;
+		} ;
+
+	return ;
+} /* win32_play_data */
+
+static void CALLBACK
+win32_audio_out_callback (HWAVEOUT hwave, UINT msg, DWORD_PTR data, DWORD param1, DWORD param2)
+{	Win32_Audio_Data	*audio_data ;
+
+	/* Prevent compiler warnings. */
+	hwave = hwave ;
+	param1 = param2 ;
+
+	if (data == 0)
+		return ;
+
+	/*
+	** I consider this technique of passing a pointer via an integer as
+	** fundamentally broken but thats the way microsoft has defined the
+	** interface.
+	*/
+	audio_data = (Win32_Audio_Data*) data ;
+
+	/* let main loop know a buffer is free */
+	if (msg == MM_WOM_DONE)
+	{	EnterCriticalSection (&audio_data->mutex) ;
+		audio_data->BuffersInUse -- ;
+		LeaveCriticalSection (&audio_data->mutex) ;
+		SetEvent (audio_data->Event) ;
+		} ;
+
+	return ;
+} /* win32_audio_out_callback */
+
+static void
+win32_play (int argc, char *argv [])
+{	Win32_Audio_Data	audio_data ;
+
+	WAVEFORMATEX wf ;
+	int	k, error ;
+
+	audio_data.sndfile = NULL ;
+	audio_data.hwave = 0 ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	printf ("Playing %s\n", argv [k]) ;
+
+		if (! (audio_data.sndfile = sf_open (argv [k], SFM_READ, &(audio_data.sfinfo))))
+		{	puts (sf_strerror (NULL)) ;
+			continue ;
+			} ;
+
+		audio_data.remaining = audio_data.sfinfo.frames * audio_data.sfinfo.channels ;
+		audio_data.current = 0 ;
+
+		InitializeCriticalSection (&audio_data.mutex) ;
+		audio_data.Event = CreateEvent (0, FALSE, FALSE, 0) ;
+
+		wf.nChannels = audio_data.sfinfo.channels ;
+		wf.wFormatTag = WAVE_FORMAT_PCM ;
+		wf.cbSize = 0 ;
+		wf.wBitsPerSample = 16 ;
+
+		wf.nSamplesPerSec = audio_data.sfinfo.samplerate ;
+
+		wf.nBlockAlign = audio_data.sfinfo.channels * sizeof (short) ;
+
+		wf.nAvgBytesPerSec = wf.nBlockAlign * wf.nSamplesPerSec ;
+
+		error = waveOutOpen (&(audio_data.hwave), WAVE_MAPPER, &wf, (DWORD_PTR) win32_audio_out_callback,
+							(DWORD_PTR) &audio_data, CALLBACK_FUNCTION) ;
+		if (error)
+		{	puts ("waveOutOpen failed.") ;
+			audio_data.hwave = 0 ;
+			continue ;
+			} ;
+
+		audio_data.whdr [0].lpData = (char*) audio_data.buffer ;
+		audio_data.whdr [1].lpData = ((char*) audio_data.buffer) + sizeof (audio_data.buffer) / 2 ;
+
+		audio_data.whdr [0].dwBufferLength = sizeof (audio_data.buffer) / 2 ;
+		audio_data.whdr [1].dwBufferLength = sizeof (audio_data.buffer) / 2 ;
+
+		audio_data.whdr [0].dwFlags = 0 ;
+		audio_data.whdr [1].dwFlags = 0 ;
+
+		/* length of each audio buffer in samples */
+		audio_data.bufferlen = sizeof (audio_data.buffer) / 2 / sizeof (short) ;
+
+		/* Prepare the WAVEHDRs */
+		if ((error = waveOutPrepareHeader (audio_data.hwave, &(audio_data.whdr [0]), sizeof (WAVEHDR))))
+		{	printf ("waveOutPrepareHeader [0] failed : %08X\n", error) ;
+			waveOutClose (audio_data.hwave) ;
+			continue ;
+			} ;
+
+		if ((error = waveOutPrepareHeader (audio_data.hwave, &(audio_data.whdr [1]), sizeof (WAVEHDR))))
+		{	printf ("waveOutPrepareHeader [1] failed : %08X\n", error) ;
+			waveOutUnprepareHeader (audio_data.hwave, &(audio_data.whdr [0]), sizeof (WAVEHDR)) ;
+			waveOutClose (audio_data.hwave) ;
+			continue ;
+			} ;
+
+		/* Fill up both buffers with audio data */
+		audio_data.BuffersInUse = 0 ;
+		win32_play_data (&audio_data) ;
+		win32_play_data (&audio_data) ;
+
+		/* loop until both buffers are released */
+		while (audio_data.BuffersInUse > 0)
+		{
+			/* wait for buffer to be released */
+			WaitForSingleObject (audio_data.Event, INFINITE) ;
+
+			/* refill the buffer if there is more data to play */
+			win32_play_data (&audio_data) ;
+			} ;
+
+		waveOutUnprepareHeader (audio_data.hwave, &(audio_data.whdr [0]), sizeof (WAVEHDR)) ;
+		waveOutUnprepareHeader (audio_data.hwave, &(audio_data.whdr [1]), sizeof (WAVEHDR)) ;
+
+		waveOutClose (audio_data.hwave) ;
+		audio_data.hwave = 0 ;
+
+		DeleteCriticalSection (&audio_data.mutex) ;
+
+		sf_close (audio_data.sndfile) ;
+		} ;
+
+} /* win32_play */
+
+#endif /* Win32 */
+
+/*------------------------------------------------------------------------------
+**	OpenBDS's sndio.
+*/
+
+#if defined (HAVE_SNDIO_H)
+
+static void
+sndio_play (int argc, char *argv [])
+{	struct sio_hdl	*hdl ;
+	struct sio_par	par ;
+	short	 	buffer [BUFFER_LEN] ;
+	SNDFILE	*sndfile ;
+	SF_INFO	sfinfo ;
+	int		k, readcount ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	printf ("Playing %s\n", argv [k]) ;
+		if (! (sndfile = sf_open (argv [k], SFM_READ, &sfinfo)))
+		{	puts (sf_strerror (NULL)) ;
+			continue ;
+			} ;
+
+		if (sfinfo.channels < 1 || sfinfo.channels > 2)
+		{	printf ("Error : channels = %d.\n", sfinfo.channels) ;
+			continue ;
+			} ;
+
+		if ((hdl = sio_open (NULL, SIO_PLAY, 0)) == NULL)
+		{	fprintf (stderr, "open sndio device failed") ;
+			return ;
+			} ;
+
+		sio_initpar (&par) ;
+		par.rate = sfinfo.samplerate ;
+		par.pchan = sfinfo.channels ;
+		par.bits = 16 ;
+		par.sig = 1 ;
+		par.le = SIO_LE_NATIVE ;
+
+		if (! sio_setpar (hdl, &par) || ! sio_getpar (hdl, &par))
+		{	fprintf (stderr, "set sndio params failed") ;
+			return ;
+			} ;
+
+		if (! sio_start (hdl))
+		{	fprintf (stderr, "sndio start failed") ;
+			return ;
+			} ;
+
+		while ((readcount = sf_read_short (sndfile, buffer, BUFFER_LEN)))
+			sio_write (hdl, buffer, readcount * sizeof (short)) ;
+
+		sio_close (hdl) ;
+		} ;
+
+	return ;
+} /* sndio_play */
+
+#endif /* sndio */
+
+/*------------------------------------------------------------------------------
+**	Solaris.
+*/
+
+#if (defined (sun) && defined (unix)) /* ie Solaris */
+
+static void
+solaris_play (int argc, char *argv [])
+{	static short 	buffer [BUFFER_LEN] ;
+	audio_info_t	audio_info ;
+	SNDFILE			*sndfile ;
+	SF_INFO			sfinfo ;
+	unsigned long	delay_time ;
+	long			k, start_count, output_count, write_count, read_count ;
+	int				audio_fd, error, done ;
+
+	for (k = 1 ; k < argc ; k++)
+	{	printf ("Playing %s\n", argv [k]) ;
+		if (! (sndfile = sf_open (argv [k], SFM_READ, &sfinfo)))
+		{	puts (sf_strerror (NULL)) ;
+			continue ;
+			} ;
+
+		if (sfinfo.channels < 1 || sfinfo.channels > 2)
+		{	printf ("Error : channels = %d.\n", sfinfo.channels) ;
+			continue ;
+			} ;
+
+		/* open the audio device - write only, non-blocking */
+		if ((audio_fd = open ("/dev/audio", O_WRONLY | O_NONBLOCK)) < 0)
+		{	perror ("open (/dev/audio) failed") ;
+			return ;
+			} ;
+
+		/*	Retrive standard values. */
+		AUDIO_INITINFO (&audio_info) ;
+
+		audio_info.play.sample_rate = sfinfo.samplerate ;
+		audio_info.play.channels = sfinfo.channels ;
+		audio_info.play.precision = 16 ;
+		audio_info.play.encoding = AUDIO_ENCODING_LINEAR ;
+		audio_info.play.gain = AUDIO_MAX_GAIN ;
+		audio_info.play.balance = AUDIO_MID_BALANCE ;
+
+		if ((error = ioctl (audio_fd, AUDIO_SETINFO, &audio_info)))
+		{	perror ("ioctl (AUDIO_SETINFO) failed") ;
+			return ;
+			} ;
+
+		/* Delay time equal to 1/4 of a buffer in microseconds. */
+		delay_time = (BUFFER_LEN * 1000000) / (audio_info.play.sample_rate * 4) ;
+
+		done = 0 ;
+		while (! done)
+		{	read_count = sf_read_short (sndfile, buffer, BUFFER_LEN) ;
+			if (read_count < BUFFER_LEN)
+			{	memset (&(buffer [read_count]), 0, (BUFFER_LEN - read_count) * sizeof (short)) ;
+				/* Tell the main application to terminate. */
+				done = SF_TRUE ;
+				} ;
+
+			start_count = 0 ;
+			output_count = BUFFER_LEN * sizeof (short) ;
+
+			while (output_count > 0)
+			{	/* write as much data as possible */
+				write_count = write (audio_fd, &(buffer [start_count]), output_count) ;
+				if (write_count > 0)
+				{	output_count -= write_count ;
+					start_count += write_count ;
+					}
+				else
+				{	/*	Give the audio output time to catch up. */
+					usleep (delay_time) ;
+					} ;
+				} ; /* while (outpur_count > 0) */
+			} ; /* while (! done) */
+
+		close (audio_fd) ;
+		} ;
+
+	return ;
+} /* solaris_play */
+
+#endif /* Solaris */
+
+/*==============================================================================
+**	Main function.
+*/
+
+int
+main (int argc, char *argv [])
+{
+	if (argc < 2)
+	{
+		printf ("\nUsage : %s <input sound file>\n\n", program_name (argv [0])) ;
+		printf ("  Using %s.\n\n", sf_version_string ()) ;
+#if (OS_IS_WIN32 == 1)
+		printf ("This is a Unix style command line application which\n"
+				"should be run in a MSDOS box or Command Shell window.\n\n") ;
+		printf ("Sleeping for 5 seconds before exiting.\n\n") ;
+
+		Sleep (5 * 1000) ;
+#endif
+		return 1 ;
+		} ;
+
+#if defined (__linux__)
+	#if HAVE_ALSA_ASOUNDLIB_H
+		if (access ("/proc/asound/cards", R_OK) == 0)
+			alsa_play (argc, argv) ;
+		else
+	#endif
+		opensoundsys_play (argc, argv) ;
+#elif defined (__FreeBSD_kernel__) || defined (__FreeBSD__)
+	opensoundsys_play (argc, argv) ;
+#elif (defined (__MACH__) && defined (__APPLE__))
+	macosx_play (argc, argv) ;
+#elif defined HAVE_SNDIO_H
+	sndio_play (argc, argv) ;
+#elif (defined (sun) && defined (unix))
+	solaris_play (argc, argv) ;
+#elif (OS_IS_WIN32 == 1)
+	win32_play (argc, argv) ;
+#elif defined (__BEOS__)
+	printf ("This program cannot be compiled on BeOS.\n") ;
+	printf ("Instead, compile the file sfplay_beos.cpp.\n") ;
+	return 1 ;
+#else
+	puts ("*** Playing sound not yet supported on this platform.") ;
+	puts ("*** Please feel free to submit a patch.") ;
+	return 1 ;
+#endif
+
+	return 0 ;
+} /* main */
+
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-play.o b/jni/libsndfile-1.0.25/programs/sndfile-play.o
new file mode 100644
index 0000000..b0ba63c
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-play.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-salvage b/jni/libsndfile-1.0.25/programs/sndfile-salvage
new file mode 100755
index 0000000..b4802e6
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-salvage
@@ -0,0 +1,225 @@
+#! /bin/sh
+
+# sndfile-salvage - temporary wrapper script for .libs/sndfile-salvage
+# Generated by libtool (GNU libtool) 2.4 Debian-2.4-2
+#
+# The sndfile-salvage program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/programs; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin:/home/lisional/.local/bin:/usr/local/bin:/home/lisional/bin:/home/lisional/Dev/ADT/sdk/tools:/home/lisional/Dev/ADT/sdk/platform-tools:/home/lisional/Dev/ADT/ndk:/home/lisional/.local/bin; export PATH; gcc -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef -pipe -o \$progdir/\$file sndfile-salvage.o common.o  ../src/.libs/libsndfile.so -lm -Wl,-rpath -Wl,/home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src/.libs -Wl,-rpath -Wl,/usr/local/lib)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.4'
+  notinst_deplibs=' ../src/libsndfile.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+    ECHO="printf %s\\n"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's ../libtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=$0
+  shift
+  for lt_opt
+  do
+    case "$lt_opt" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+        test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+        lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+        cat "$lt_dump_D/$lt_dump_F"
+        exit 0
+      ;;
+    --lt-*)
+        $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n "$lt_option_debug"; then
+    echo "sndfile-salvage:sndfile-salvage:${LINENO}: libtool wrapper (GNU libtool) 2.4 Debian-2.4-2" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    $ECHO "sndfile-salvage:sndfile-salvage:${LINENO}: newargv[$lt_dump_args_N]: $lt_arg"
+    lt_dump_args_N=`expr $lt_dump_args_N + 1`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+      if test -n "$lt_option_debug"; then
+        $ECHO "sndfile-salvage:sndfile-salvage:${LINENO}: newargv[0]: $progdir/$program" 1>&2
+        func_lt_dump_args ${1+"$@"} 1>&2
+      fi
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case $lt_wr_arg in
+    --lt-*) ;;
+    *) set x "$@" "$lt_wr_arg"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core ${1+"$@"}
+}
+
+  # Parse options
+  func_parse_lt_options "$0" ${1+"$@"}
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'sndfile-salvage'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	printf %s\n "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+      func_exec_program ${1+"$@"}
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    $ECHO "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-salvage.c b/jni/libsndfile-1.0.25/programs/sndfile-salvage.c
new file mode 100644
index 0000000..a39a57a
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-salvage.c
@@ -0,0 +1,277 @@
+/*
+** Copyright (C) 2010-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**
+**     * Redistributions of source code must retain the above copyright
+**       notice, this list of conditions and the following disclaimer.
+**     * Redistributions in binary form must reproduce the above copyright
+**       notice, this list of conditions and the following disclaimer in
+**       the documentation and/or other materials provided with the
+**       distribution.
+**     * Neither the author nor the names of any contributors may be used
+**       to endorse or promote products derived from this software without
+**       specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include	<stdio.h>
+#include	<stdlib.h>
+#include	<string.h>
+#include	<inttypes.h>
+#include	<ctype.h>
+#include	<math.h>
+#include	<errno.h>
+#include	<unistd.h>
+#include	<fcntl.h>
+#include	<sys/stat.h>
+#include	<sys/types.h>
+
+#include	<sndfile.h>
+
+#include	"common.h"
+
+#define	BUFFER_LEN		(1 << 16)
+
+#define	NOT(x)			(! (x))
+
+
+static void usage_exit (const char *progname) ;
+static void salvage_file (const char * broken_wav, const char * fixed_w64) ;
+
+int
+main (int argc, char *argv [])
+{
+	if (argc != 3)
+		usage_exit (program_name (argv [0])) ;
+
+	salvage_file (argv [1], argv [2]) ;
+
+	return 0 ;
+} /* main */
+
+/*==============================================================================
+*/
+
+static void lseek_or_die (int fd, off_t offset, int whence) ;
+static sf_count_t get_file_length (int fd, const char * name) ;
+static sf_count_t find_data_offset (int fd, int format) ;
+static void copy_data (int fd, SNDFILE * sndfile, int readsize) ;
+
+
+static void
+usage_exit (const char *progname)
+{	printf ("Usage :\n\n  %s <broken wav file> <fixed w64 file>\n\n", progname) ;
+	puts ("Salvages the audio data from WAV files which are more than 4G in length.\n") ;
+	printf ("Using %s.\n\n", sf_version_string ()) ;
+	exit (0) ;
+} /* usage_exit */
+
+static void
+salvage_file (const char * broken_wav, const char * fixed_w64)
+{	SNDFILE * sndfile ;
+	SF_INFO sfinfo ;
+	sf_count_t broken_len, data_offset ;
+	int fd, read_size ;
+
+	if (strcmp (broken_wav, fixed_w64) == 0)
+	{	printf ("Error : Input and output files must be different.\n\n") ;
+		exit (1) ;
+		} ;
+
+	if ((fd = open (broken_wav, O_RDONLY)) < 0)
+	{	printf ("Error : Not able to open file '%s' : %s\n", broken_wav, strerror (errno)) ;
+		exit (1) ;
+		} ;
+
+	broken_len = get_file_length (fd, broken_wav) ;
+	if (broken_len <= 0xffffffff)
+		printf ("File is not greater than 4Gig but salvaging anyway.\n") ;
+
+	/* Grab the format info from the broken file. */
+	memset (&sfinfo, 0, sizeof (sfinfo)) ;
+	if ((sndfile = sf_open (broken_wav, SFM_READ, &sfinfo)) == NULL)
+	{	printf ("sf_open ('%s') failed : %s\n", broken_wav, sf_strerror (NULL)) ;
+		exit (1) ;
+		} ;
+	sf_close (sndfile) ;
+
+	data_offset = find_data_offset (fd, sfinfo.format & SF_FORMAT_TYPEMASK) ;
+
+	printf ("Offset to audio data : %" PRId64 "\n", data_offset) ;
+
+	switch (sfinfo.format & SF_FORMAT_TYPEMASK)
+	{	case SF_FORMAT_WAV :
+		case SF_FORMAT_WAVEX :
+			sfinfo.format = SF_FORMAT_W64 | (sfinfo.format & SF_FORMAT_SUBMASK) ;
+			break ;
+
+		default :
+			printf ("Don't currently support this file type.\n") ;
+			exit (1) ;
+		} ;
+
+	switch (sfinfo.format & SF_FORMAT_SUBMASK)
+	{	case SF_FORMAT_PCM_U8 :
+		case SF_FORMAT_PCM_S8 :
+				read_size = 1 ;
+				break ;
+
+		case SF_FORMAT_PCM_16 :
+				read_size = 2 ;
+				break ;
+
+		case SF_FORMAT_PCM_24 :
+				read_size = 3 ;
+				break ;
+
+		case SF_FORMAT_PCM_32 :
+		case SF_FORMAT_FLOAT :
+				read_size = 4 ;
+				break ;
+
+		case SF_FORMAT_DOUBLE :
+				read_size = 8 ;
+				break ;
+
+		default :
+			printf ("Sorry, don't currently support this file encoding type.\n") ;
+			exit (1) ;
+		} ;
+
+	read_size *= sfinfo.channels ;
+
+	if ((sndfile = sf_open (fixed_w64, SFM_WRITE, &sfinfo)) == NULL)
+	{	printf ("sf_open ('%s') failed : %s\n", broken_wav, sf_strerror (NULL)) ;
+		exit (1) ;
+		} ;
+
+	lseek_or_die (fd, data_offset, SEEK_SET) ;
+
+	copy_data (fd, sndfile, read_size) ;
+
+	sf_close (sndfile) ;
+
+	puts ("Done!") ;
+} /* salvage_file */
+
+/*------------------------------------------------------------------------------
+*/
+
+static void
+lseek_or_die (int fd, off_t offset, int whence)
+{
+	if (lseek (fd, offset, whence) < 0)
+	{	printf ("lseek failed : %s\n", strerror (errno)) ;
+		exit (1) ;
+		} ;
+
+	return ;
+} /* lseek_or_die */
+
+
+static sf_count_t
+get_file_length (int fd, const char * name)
+{	struct stat sbuf ;
+
+	if (sizeof (sbuf.st_size) != 8)
+	{	puts ("Error : sizeof (sbuf.st_size) != 8. Was program compiled with\n"
+				"        64 bit file offsets?\n") ;
+		exit (1) ;
+		} ;
+
+	if (fstat (fd, &sbuf) != 0)
+	{	printf ("Error : fstat ('%s') failed : %s\n", name, strerror (errno)) ;
+		exit (1) ;
+		} ;
+
+	return sbuf.st_size ;
+} /* get_file_length */
+
+static sf_count_t
+find_data_offset (int fd, int format)
+{	char buffer [8192], *cptr ;
+	const char * target = "XXXX" ;
+	sf_count_t offset = -1, extra ;
+	int rlen, slen ;
+
+	switch (format)
+	{	case SF_FORMAT_WAV :
+		case SF_FORMAT_WAVEX :
+			target = "data" ;
+			extra = 8 ;
+			break ;
+
+		case SF_FORMAT_AIFF :
+			target = "SSND" ;
+			extra = 16 ;
+			break ;
+
+		default :
+			puts ("Error : Sorry, don't handle this input file format.\n") ;
+			exit (1) ;
+		} ;
+
+	slen = strlen (target) ;
+
+	lseek_or_die (fd, 0, SEEK_SET) ;
+
+	printf ("Searching for '%s' maker.\n", target) ;
+
+	if ((rlen = read (fd, buffer, sizeof (buffer))) < 0)
+	{	printf ("Error : failed read : %s\n", strerror (errno)) ;
+		exit (1) ;
+		} ;
+
+	cptr = memchr (buffer, target [0], rlen - slen) ;
+	if (cptr && memcmp (cptr, target, slen) == 0)
+		offset = cptr - buffer  ;
+	else
+	{	printf ("Error : Could not find data offset.\n") ;
+		exit (1) ;
+		} ;
+
+	return offset + extra ;
+} /* find_data_offset */
+
+static void
+copy_data (int fd, SNDFILE * sndfile, int readsize)
+{	static char * buffer ;
+	sf_count_t readlen, count ;
+	int bufferlen, done = 0 ;
+
+	bufferlen = readsize * 1024 ;
+	buffer = malloc (bufferlen) ;
+
+	while (NOT (done) && (readlen = read (fd, buffer, bufferlen)) >= 0)
+	{	if (readlen < bufferlen)
+		{	readlen -= readlen % readsize ;
+			done = 1 ;
+			} ;
+
+		if ((count = sf_write_raw (sndfile, buffer, readlen)) != readlen)
+		{	printf ("Error : sf_write_raw returned %" PRId64 " : %s\n", count, sf_strerror (sndfile)) ;
+			return ;
+			} ;
+		} ;
+
+	free (buffer) ;
+
+	return ;
+} /* copy_data */
+
diff --git a/jni/libsndfile-1.0.25/programs/sndfile-salvage.o b/jni/libsndfile-1.0.25/programs/sndfile-salvage.o
new file mode 100644
index 0000000..0d067cd
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/sndfile-salvage.o
Binary files differ
diff --git a/jni/libsndfile-1.0.25/programs/test-sndfile-metadata-set.py b/jni/libsndfile-1.0.25/programs/test-sndfile-metadata-set.py
new file mode 100755
index 0000000..a21a36b
--- /dev/null
+++ b/jni/libsndfile-1.0.25/programs/test-sndfile-metadata-set.py
@@ -0,0 +1,188 @@
+#!/usr/bin/python
+
+# Copyright (C) 2008-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in
+#       the documentation and/or other materials provided with the
+#       distribution.
+#     * Neither the author nor the names of any contributors may be used
+#       to endorse or promote products derived from this software without
+#       specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Simple test script for the sndfile-metadata-set program.
+
+import commands, os, sys
+import time, datetime
+
+def print_test_name (name):
+	print "    %-30s :" % name,
+
+def assert_info (filename, arg, value):
+	cmd = "./sndfile-metadata-get %s %s" % (arg, filename)
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	if output.find (value) < 0:
+		print "\n\nError : not able to find '%s'." % value
+		print output
+		sys.exit (1)
+	return
+
+
+def check_executable (name):
+	if not (os.path.isfile (name)):
+		print "\n\nError : Can't find executable '%s'. Have you run make?" % name
+		sys.exit (1)
+
+def test_empty_fail ():
+	print_test_name ("Empty fail test")
+	cmd = "./sndfile-metadata-set --bext-description Alpha sine.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if not status:
+		print "\n\nError : command '%s' should have failed." % cmd
+		sys.exit (1)
+	print "ok"
+
+def test_copy ():
+	print_test_name ("Copy test")
+	cmd = "./sndfile-metadata-set --bext-description \"First Try\" sine.wav output.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	assert_info ("output.wav", "--bext-description", "First Try")
+	print "ok"
+
+def test_update (tests):
+	print_test_name ("Update test")
+	for arg, value in tests:
+		cmd = "./sndfile-metadata-set %s \"%s\" output.wav" % (arg, value)
+		status, output = commands.getstatusoutput (cmd)
+		if status:
+			print "\n\nError : command '%s' should not have failed." % cmd
+			sys.exit (1)
+		assert_info ("output.wav", arg, value)
+	print "ok"
+
+def test_post_mod (tests):
+	print_test_name ("Post mod test")
+	for arg, value in tests:
+		assert_info ("output.wav", arg, value)
+	print "ok"
+
+def test_auto_date ():
+	print_test_name ("Auto date test")
+	cmd = "./sndfile-metadata-set --bext-auto-time-date sine.wav date-time.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	target = datetime.date.today ().__str__ ()
+	assert_info ("date-time.wav", "--bext-orig-date", target)
+	print "ok"
+
+
+#-------------------------------------------------------------------------------
+
+def test_coding_history ():
+	print_test_name ("Coding history test")
+	cmd = "./sndfile-metadata-set --bext-coding-hist \"alpha beta\" output.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	cmd = "./sndfile-metadata-get --bext-coding-hist output.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	print "ok"
+
+#-------------------------------------------------------------------------------
+
+def test_rewrite ():
+	print_test_name ("Rewrite test")
+	cmd = "./sndfile-metadata-set --bext-originator \"Really, really long string\" output.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	cmd = "./sndfile-metadata-set --bext-originator \"Short\" output.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	cmd = "./sndfile-metadata-get --bext-originator output.wav"
+	status, output = commands.getstatusoutput (cmd)
+	if status:
+		print "\n\nError : command '%s' should not have failed." % cmd
+		sys.exit (1)
+	if output.find ("really long") > 0:
+		print "\n\nError : output '%s' should not contain 'really long'." % output
+		sys.exit (1)
+	print "ok"
+
+#===============================================================================
+
+test_dir = "programs"
+
+if os.path.isdir (test_dir):
+	os.chdir (test_dir)
+
+for f in [ "sndfile-metadata-set", "sndfile-metadata-get", "../examples/make_sine" ]:
+	check_executable (f)
+
+os.system ("../examples/make_sine")
+if not os.path.isfile ("sine.wav"):
+	print "\n\nError : Can't file file 'sine.wav'."
+	sys.exit (1)
+
+print ""
+
+test_empty_fail ()
+test_copy ()
+
+tests = [
+	("--bext-description", "Alpha"), ("--bext-originator", "Beta"), ("--bext-orig-ref", "Charlie"),
+	("--bext-umid", "Delta"), ("--bext-orig-date", "2001-10-01"),  ("--bext-orig-time", "01:02:03"),
+	("--str-title", "Echo"), ("--str-artist", "Fox trot")
+	]
+
+test_auto_date ()
+test_update (tests)
+test_post_mod (tests)
+
+test_update ([ ("--str-artist", "Fox") ])
+
+# This never worked.
+# test_coding_history ()
+
+test_rewrite ()
+
+
+print ""
+
+sys.exit (0)
+