meta-digi/meta-digi-dey/recipes-multimedia/gst-plugins/gst-fsl-plugin-2.0.3/0001-gst-fsl-plugin-update-...

2096 lines
90 KiB
Diff

From: Javier Viguera <javier.viguera@digi.com>
Date: Fri, 22 Nov 2013 16:57:32 +0100
Subject: [PATCH] gst-fsl-plugin: update to DEL revision
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
Makefile.am | 1 +
configure | 387 ++++++++++++++--------
configure.ac | 18 +-
libs/me/TimeStamp.c | 279 ++++++++--------
src/audio/aac_dec/src/mfw_gst_aacdec.c | 48 ++-
src/audio/aacplus_dec/src/mfw_gst_aacplusdec.c | 42 ++-
src/audio/mp3_dec/src/mfw_gst_mp3dec.c | 99 +-----
src/audio/mp3_dec/src/mfw_gst_mp3dec.h | 9 +-
src/audio/vorbis_dec/src/mfw_gst_vorbisdec.c | 12 +-
src/misc/v4l_sink/src/mfw_gst_v4l_buffer.c | 1 +
src/misc/v4l_sink/src/mfw_gst_v4lsink.c | 6 +
src/parser/aiur/src/aiurdemux.c | 2 +-
src/video/mpeg4asp_dec/src/mfw_gst_mpeg4asp_dec.c | 5 +-
src/video/vpu_dec.full/src/mfw_gst_vpu_decoder.c | 12 +-
tools/gplay/gplay_header.tgz | Bin 8807 -> 0 bytes
tools/gplay/mfw_gplay.c | 11 +-
tools/gplay/mfw_gplay_core.c | 8 +-
tools/gplay/mfw_gplay_core.h | 4 +-
18 files changed, 514 insertions(+), 430 deletions(-)
delete mode 100644 tools/gplay/gplay_header.tgz
diff --git a/Makefile.am b/Makefile.am
index be3d1d2..0f1c23c 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,4 @@
+ACLOCAL_AMFLAGS = -I m4
LIBSDIRS = \
libs/sconf \
diff --git a/configure b/configure
index d29d19d..b4c9303 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
+# Generated by GNU Autoconf 2.59 for GStreamer i.MX Plug-ins 2.0.3.
+#
+# Report bugs to <http://www.freescale.com>.
#
# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
@@ -419,11 +421,11 @@ SHELL=${CONFIG_SHELL-/bin/sh}
: ${ac_max_here_lines=38}
# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
+PACKAGE_NAME='GStreamer i.MX Plug-ins'
+PACKAGE_TARNAME='gstreamer-i-mx-plug-ins'
+PACKAGE_VERSION='2.0.3'
+PACKAGE_STRING='GStreamer i.MX Plug-ins 2.0.3'
+PACKAGE_BUGREPORT='http://www.freescale.com'
# Factoring default headers for most tests.
ac_includes_default="\
@@ -462,7 +464,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar BUILD_GCC_TRUE BUILD_GCC_FALSE ACLOCAL_AMFLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL HAVE_PKGCONFIG PLATFORM PKG_CONFIG ac_pt_PKG_CONFIG GST_CFLAGS GST_LIBS GST_MAJORMINOR GST_BASE_CFLAGS GST_BASE_LIBS GST_PLUGINS_BASE_CFLAGS GST_PLUGINS_BASE_LIBS FSL_MM_CORE_CFLAGS FSL_MM_CORE_LIBS VPU_CFLAGS VPU_LIBS IPU_CFLAGS IPU_LIBS asf_arm9_SONAME asf_arm11_SONAME avi_arm9_SONAME avi_arm11_SONAME flv_arm9_SONAME flv_arm11_SONAME mpg2_arm9_SONAME mpg2_arm11_SONAME mp4_arm9_SONAME mp4_arm11_SONAME mkv_arm9_SONAME mkv_arm11_SONAME ogg_arm9_SONAME ogg_arm11_SONAME plugindir GST_PLUGIN_LDFLAGS PLATFORM_IS_MX2X_TRUE PLATFORM_IS_MX2X_FALSE PLATFORM_IS_MX233_TRUE PLATFORM_IS_MX233_FALSE PLATFORM_IS_MX25_TRUE PLATFORM_IS_MX25_FALSE PLATFORM_IS_MX27_TRUE PLATFORM_IS_MX27_FALSE PLATFORM_IS_MX28_TRUE PLATFORM_IS_MX28_FALSE PLATFORM_IS_MX3X_TRUE PLATFORM_IS_MX3X_FALSE PLATFORM_IS_MX31_TRUE PLATFORM_IS_MX31_FALSE PLATFORM_IS_MX35_TRUE PLATFORM_IS_MX35_FALSE PLATFORM_IS_MX37_TRUE PLATFORM_IS_MX37_FALSE PLATFORM_IS_MX5X_TRUE PLATFORM_IS_MX5X_FALSE PLATFORM_IS_MX51_TRUE PLATFORM_IS_MX51_FALSE PLATFORM_IS_MX53_TRUE PLATFORM_IS_MX53_FALSE PLATFORM_IS_MX50_TRUE PLATFORM_IS_MX50_FALSE PLATFORM_IS_MX6X_TRUE PLATFORM_IS_MX6X_FALSE LTIBBUILD_TRUE LTIBBUILD_FALSE USE_AAC_DEC_TRUE USE_AAC_DEC_FALSE USE_AACP_DEC_TRUE USE_AACP_DEC_FALSE USE_BSAC_DEC_TRUE USE_BSAC_DEC_FALSE USE_MP3_DEC_TRUE USE_MP3_DEC_FALSE USE_MP3_ENC_TRUE USE_MP3_ENC_FALSE USE_VORBIS_DEC_TRUE USE_VORBIS_DEC_FALSE USE_WMA10_DEC_TRUE USE_WMA10_DEC_FALSE USE_DOWNMIX_TRUE USE_DOWNMIX_FALSE USE_WMA8_ENC_TRUE USE_WMA8_ENC_FALSE USE_AC3_DEC_TRUE USE_AC3_DEC_FALSE USE_H264_DEC_TRUE USE_H264_DEC_FALSE USE_MPEG4_DEC_TRUE USE_MPEG4_DEC_FALSE USE_MPEG2_DEC_TRUE USE_MPEG2_DEC_FALSE USE_WMV9MP_DEC_TRUE USE_WMV9MP_DEC_FALSE USE_WMV78_DEC_TRUE USE_WMV78_DEC_FALSE USE_X11_TRUE USE_X11_FALSE GSTMXLIBS_VERSION LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar ACLOCAL_AMFLAGS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT BUILD_GCC_TRUE BUILD_GCC_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL HAVE_PKGCONFIG PLATFORM PKG_CONFIG ac_pt_PKG_CONFIG GST_CFLAGS GST_LIBS GST_MAJORMINOR GST_BASE_CFLAGS GST_BASE_LIBS GST_PLUGINS_BASE_CFLAGS GST_PLUGINS_BASE_LIBS FSL_MM_CORE_CFLAGS FSL_MM_CORE_LIBS VPU_CFLAGS VPU_LIBS IPU_CFLAGS IPU_LIBS asf_arm9_SONAME asf_arm11_SONAME avi_arm9_SONAME avi_arm11_SONAME flv_arm9_SONAME flv_arm11_SONAME mpg2_arm9_SONAME mpg2_arm11_SONAME mp4_arm9_SONAME mp4_arm11_SONAME mkv_arm9_SONAME mkv_arm11_SONAME ogg_arm9_SONAME ogg_arm11_SONAME plugindir GST_PLUGIN_LDFLAGS PLATFORM_IS_MX2X_TRUE PLATFORM_IS_MX2X_FALSE PLATFORM_IS_MX233_TRUE PLATFORM_IS_MX233_FALSE PLATFORM_IS_MX25_TRUE PLATFORM_IS_MX25_FALSE PLATFORM_IS_MX27_TRUE PLATFORM_IS_MX27_FALSE PLATFORM_IS_MX28_TRUE PLATFORM_IS_MX28_FALSE PLATFORM_IS_MX3X_TRUE PLATFORM_IS_MX3X_FALSE PLATFORM_IS_MX31_TRUE PLATFORM_IS_MX31_FALSE PLATFORM_IS_MX35_TRUE PLATFORM_IS_MX35_FALSE PLATFORM_IS_MX37_TRUE PLATFORM_IS_MX37_FALSE PLATFORM_IS_MX5X_TRUE PLATFORM_IS_MX5X_FALSE PLATFORM_IS_MX51_TRUE PLATFORM_IS_MX51_FALSE PLATFORM_IS_MX53_TRUE PLATFORM_IS_MX53_FALSE PLATFORM_IS_MX50_TRUE PLATFORM_IS_MX50_FALSE PLATFORM_IS_MX6X_TRUE PLATFORM_IS_MX6X_FALSE LTIBBUILD_TRUE LTIBBUILD_FALSE USE_AAC_DEC_TRUE USE_AAC_DEC_FALSE USE_AACP_DEC_TRUE USE_AACP_DEC_FALSE USE_BSAC_DEC_TRUE USE_BSAC_DEC_FALSE USE_MP3_DEC_TRUE USE_MP3_DEC_FALSE USE_MP3_ENC_TRUE USE_MP3_ENC_FALSE USE_VORBIS_DEC_TRUE USE_VORBIS_DEC_FALSE USE_WMA10_DEC_TRUE USE_WMA10_DEC_FALSE USE_DOWNMIX_TRUE USE_DOWNMIX_FALSE USE_WMA8_ENC_TRUE USE_WMA8_ENC_FALSE USE_AC3_DEC_TRUE USE_AC3_DEC_FALSE USE_H264_DEC_TRUE USE_H264_DEC_FALSE USE_MPEG4_DEC_TRUE USE_MPEG4_DEC_FALSE USE_MPEG2_DEC_TRUE USE_MPEG2_DEC_FALSE USE_WMV9MP_DEC_TRUE USE_WMV9MP_DEC_FALSE USE_WMV78_DEC_TRUE USE_WMV78_DEC_FALSE USE_X11_TRUE USE_X11_FALSE GSTMXLIBS_VERSION LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -1003,7 +1005,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
+\`configure' configures GStreamer i.MX Plug-ins 2.0.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1068,7 +1070,9 @@ _ACEOF
fi
if test -n "$ac_init_help"; then
-
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of GStreamer i.MX Plug-ins 2.0.3:";;
+ esac
cat <<\_ACEOF
Optional Features:
@@ -1147,6 +1151,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
+Report bugs to <http://www.freescale.com>.
_ACEOF
fi
@@ -1242,6 +1247,8 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
+GStreamer i.MX Plug-ins configure 2.0.3
+generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1254,7 +1261,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by $as_me, which was
+It was created by GStreamer i.MX Plug-ins $as_me 2.0.3, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1592,40 +1599,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi;
- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
am__api_version="1.9"
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
@@ -1932,8 +1905,8 @@ fi
# Define the identity of the package.
- PACKAGE=$PACKAGE
- VERSION=$VERSION
+ PACKAGE=gst-fsl-plugins
+ VERSION=2.0.3
cat >>confdefs.h <<_ACEOF
@@ -2064,6 +2037,53 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+ACLOCAL_AMFLAGS="-I m4"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi;
+ echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+
+
+if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
my_add_modules=
echo "$as_me:$LINENO: checking for generating Plugins for gcc" >&5
echo $ECHO_N "checking for generating Plugins for gcc... $ECHO_C" >&6
@@ -2099,8 +2119,6 @@ else
BUILD_GCC_FALSE=
fi
-ACLOCAL_AMFLAGS="-I m4"
-
@@ -3208,6 +3226,109 @@ else
fi
+if test "x$CC" != xcc; then
+ echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
+echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6
+else
+ echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5
+echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6
+fi
+set dummy $CC; ac_cc=`echo $2 |
+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest.$ac_objext >&5'
+if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); };
+then
+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+ if test "x$CC" != xcc; then
+ # Test first that cc exists at all.
+ if { ac_try='cc -c conftest.$ac_ext >&5'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_try='cc -c conftest.$ac_ext -o conftest.$ac_objext >&5'
+ if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); };
+ then
+ # cc works too.
+ :
+ else
+ # cc exists but doesn't like -o.
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
+ fi
+ fi
+else
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define NO_MINUS_C_MINUS_O 1
+_ACEOF
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+
# Check whether --enable-shared or --disable-shared was given.
if test "${enable_shared+set}" = set; then
enableval="$enable_shared"
@@ -3830,7 +3951,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 3833 "configure"' > conftest.$ac_ext
+ echo '#line 3954 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -4607,9 +4728,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&
echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -5429,7 +5550,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:5432:" \
+echo "$as_me:5553:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6492,11 +6613,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6495: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6616: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6499: \$? = $ac_status" >&5
+ echo "$as_me:6620: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6760,11 +6881,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6763: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6884: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6767: \$? = $ac_status" >&5
+ echo "$as_me:6888: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6864,11 +6985,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6867: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6988: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6871: \$? = $ac_status" >&5
+ echo "$as_me:6992: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8333,7 +8454,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 8336 "configure"' > conftest.$ac_ext
+ echo '#line 8457 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -9230,7 +9351,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9233 "configure"
+#line 9354 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9330,7 +9451,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9333 "configure"
+#line 9454 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11673,11 +11794,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11676: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11797: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11680: \$? = $ac_status" >&5
+ echo "$as_me:11801: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -11777,11 +11898,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11780: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11901: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11784: \$? = $ac_status" >&5
+ echo "$as_me:11905: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12313,7 +12434,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 12316 "configure"' > conftest.$ac_ext
+ echo '#line 12437 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -13371,11 +13492,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13374: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13495: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13378: \$? = $ac_status" >&5
+ echo "$as_me:13499: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13475,11 +13596,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13478: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13599: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13482: \$? = $ac_status" >&5
+ echo "$as_me:13603: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14924,7 +15045,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 14927 "configure"' > conftest.$ac_ext
+ echo '#line 15048 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -15702,11 +15823,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15705: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15826: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15709: \$? = $ac_status" >&5
+ echo "$as_me:15830: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15970,11 +16091,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15973: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16094: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15977: \$? = $ac_status" >&5
+ echo "$as_me:16098: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16074,11 +16195,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16077: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16198: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16081: \$? = $ac_status" >&5
+ echo "$as_me:16202: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17543,7 +17664,7 @@ linux*)
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 17546 "configure"' > conftest.$ac_ext
+ echo '#line 17667 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -20097,9 +20218,9 @@ echo "$as_me: WARNING: aacd_dec_interface.h: proceeding with the preprocessor's
echo "$as_me: WARNING: aacd_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -20331,9 +20452,9 @@ echo "$as_me: WARNING: aacplus_dec_interface.h: proceeding with the preprocessor
echo "$as_me: WARNING: aacplus_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -20565,9 +20686,9 @@ echo "$as_me: WARNING: bsacd_dec_interface.h: proceeding with the preprocessor's
echo "$as_me: WARNING: bsacd_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -20799,9 +20920,9 @@ echo "$as_me: WARNING: mp3_dec_interface.h: proceeding with the preprocessor's r
echo "$as_me: WARNING: mp3_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -21034,9 +21155,9 @@ echo "$as_me: WARNING: mp3_enc_interface.h: proceeding with the preprocessor's r
echo "$as_me: WARNING: mp3_enc_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -21270,9 +21391,9 @@ echo "$as_me: WARNING: oggvorbis_dec_api.h: proceeding with the preprocessor's r
echo "$as_me: WARNING: oggvorbis_dec_api.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -21505,9 +21626,9 @@ echo "$as_me: WARNING: wma10_dec/wma10_dec_interface.h: proceeding with the prep
echo "$as_me: WARNING: wma10_dec/wma10_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -21740,9 +21861,9 @@ echo "$as_me: WARNING: downmix_dec_interface.h: proceeding with the preprocessor
echo "$as_me: WARNING: downmix_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -21975,9 +22096,9 @@ echo "$as_me: WARNING: wma8_enc_interface.h: proceeding with the preprocessor's
echo "$as_me: WARNING: wma8_enc_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -22210,9 +22331,9 @@ echo "$as_me: WARNING: ac3d_dec_interface.h: proceeding with the preprocessor's
echo "$as_me: WARNING: ac3d_dec_interface.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -22446,9 +22567,9 @@ echo "$as_me: WARNING: avcd_dec_api.h: proceeding with the preprocessor's result
echo "$as_me: WARNING: avcd_dec_api.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -22681,9 +22802,9 @@ echo "$as_me: WARNING: mpeg4_asp_api.h: proceeding with the preprocessor's resul
echo "$as_me: WARNING: mpeg4_asp_api.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -22916,9 +23037,9 @@ echo "$as_me: WARNING: mpeg2_dec_api.h: proceeding with the preprocessor's resul
echo "$as_me: WARNING: mpeg2_dec_api.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -23151,9 +23272,9 @@ echo "$as_me: WARNING: wmv9mp_dec_api.h: proceeding with the preprocessor's resu
echo "$as_me: WARNING: wmv9mp_dec_api.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -23386,9 +23507,9 @@ echo "$as_me: WARNING: wmv789_dec_api.h: proceeding with the preprocessor's resu
echo "$as_me: WARNING: wmv789_dec_api.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -23577,9 +23698,9 @@ echo "$as_me: WARNING: X11/Xlib.h: proceeding with the preprocessor's result" >&
echo "$as_me: WARNING: X11/Xlib.h: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
+## --------------------------------------- ##
+## Report this to http://www.freescale.com ##
+## --------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -24263,7 +24384,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by $as_me, which was
+This file was extended by GStreamer i.MX Plug-ins $as_me 2.0.3, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -24321,7 +24442,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-config.status
+GStreamer i.MX Plug-ins config.status 2.0.3
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -24557,9 +24678,6 @@ s,@ECHO_C@,$ECHO_C,;t t
s,@ECHO_N@,$ECHO_N,;t t
s,@ECHO_T@,$ECHO_T,;t t
s,@LIBS@,$LIBS,;t t
-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
-s,@MAINT@,$MAINT,;t t
s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t
@@ -24582,9 +24700,12 @@ s,@am__leading_dot@,$am__leading_dot,;t t
s,@AMTAR@,$AMTAR,;t t
s,@am__tar@,$am__tar,;t t
s,@am__untar@,$am__untar,;t t
+s,@ACLOCAL_AMFLAGS@,$ACLOCAL_AMFLAGS,;t t
+s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
+s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
+s,@MAINT@,$MAINT,;t t
s,@BUILD_GCC_TRUE@,$BUILD_GCC_TRUE,;t t
s,@BUILD_GCC_FALSE@,$BUILD_GCC_FALSE,;t t
-s,@ACLOCAL_AMFLAGS@,$ACLOCAL_AMFLAGS,;t t
s,@CC@,$CC,;t t
s,@CFLAGS@,$CFLAGS,;t t
s,@LDFLAGS@,$LDFLAGS,;t t
diff --git a/configure.ac b/configure.ac
index 1587668..341484d 100755
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,16 @@
-AC_INIT
+AC_PREREQ(2.59)
+
+dnl initialize autoconf
+dnl releases only do -Wall, git and prerelease does -Werror too
+dnl use a three digit version number for releases, and four for git/prerelease
+AC_INIT(GStreamer i.MX Plug-ins, 2.0.3, http://www.freescale.com)
+
+
+dnl initialize automake
+AM_INIT_AUTOMAKE(gst-fsl-plugins,2.0.3)
+
+
+AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
AC_DEFUN([FIND_PARSER_SONAME],
[
@@ -201,8 +213,6 @@ fi
dnl AM_MAINTAINER_MODE provides the option to enable maintainer mode
AM_MAINTAINER_MODE
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
-
dnl Added for BUILD options.
my_add_modules=
AC_MSG_CHECKING([for generating Plugins for gcc])
@@ -223,12 +233,12 @@ AC_ARG_WITH(unix,
AM_CONDITIONAL(BUILD_GCC, test $my_build_gcc = yes)
dnl make aclocal work in maintainer mode
-AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
dnl check for tools
AC_PROG_CC
+AM_PROG_CC_C_O
AC_PROG_LIBTOOL
diff --git a/libs/me/TimeStamp.c b/libs/me/TimeStamp.c
index 30e7b35..536a94b 100755
--- a/libs/me/TimeStamp.c
+++ b/libs/me/TimeStamp.c
@@ -38,13 +38,34 @@
#include <stdio.h>
#include <stdlib.h>
-
-#define xDEBUG
-
const char *debug_env = "ME_DEBUG";
char *debug= NULL;
int debug_level = 0;
+enum {
+ DEBUG_LEVEL_ERROR = 0,
+ DEBUG_LEVEL_WARNING = 1,
+ DEBUG_LEVEL_LOG = 2,
+ DEBUG_LEVEL_VERBOSE = 3,
+};
+
+
+#define TSM_MESSAGE(level, fmt, ...)\
+ do{\
+ if (debug_level>=(level)){\
+ printf("TSM:"fmt, ##__VA_ARGS__);\
+ }\
+ }while(0)
+
+#define TSM_ERROR(...) TSM_MESSAGE(DEBUG_LEVEL_ERROR, ##__VA_ARGS__)
+#define TSM_WARNING(...) TSM_MESSAGE(DEBUG_LEVEL_WARNING, ##__VA_ARGS__)
+#define TSM_LOG(...) TSM_MESSAGE(DEBUG_LEVEL_LOG, ##__VA_ARGS__)
+#define TSM_VERBOSE(...) TSM_MESSAGE(DEBUG_LEVEL_VERBOSE, ##__VA_ARGS__)
+
+
+
+
+
#define TSM_HISTORY_POWER 5
#define TSM_HISTORY_SIZE (1<<TSM_HISTORY_POWER)
#define TSM_ADAPTIVE_INTERVAL(tsm) \
@@ -106,10 +127,9 @@ typedef struct _TSManager
TSM_TIMESTAMP dur_history_buf[TSM_HISTORY_SIZE];
TSMControl * ts_buf;
unsigned long long age;
-//#ifdef DEBUG
int tx_cnt;
int rx_cnt;
-//#endif
+ int cnt;
} TSManager;
@@ -131,33 +151,34 @@ void TSManagerReceive(void * handle, TSM_TIMESTAMP timestamp)
TSManager * tsm = (TSManager *)handle;
if (tsm){
- if (tsm->mode==MODE_AI){
-
- if (TSM_TS_IS_VALID (timestamp) && (TSM_ABS(timestamp, tsm->last_ts_sent)<TSM_SECOND*10))
- {
- tsm->ts_buf[tsm->rx].ts = timestamp;
- tsm->ts_buf[tsm->rx].age = tsm->age+TSM_PLUS_AGE(tsm);
- #ifdef DEBUG
- //printf("age should %lld %lld\n", tsm->age, tsm->ts_buf[tsm->rx].age);
- //printf("++++++ distance = %d tx=%d, rx=%d, invalid count=%d\n", TSM_DISTANCE(tsm), tsm->tx, tsm->rx,tsm->invalid_ts_count);
- #endif
- tsm->rx = ((tsm->rx + 1) % tsm->ts_buf_size);
- }
- else {
- tsm->invalid_ts_count++;
- }
- }else if (tsm->mode==MODE_FIFO){
- tsm->ts_buf[tsm->rx].ts = timestamp;
- tsm->rx = ((tsm->rx + 1) % tsm->ts_buf_size);
+ tsm->rx_cnt++;
+ if (tsm->cnt<tsm->ts_buf_size-1){
+ tsm->cnt++;
+ if (tsm->mode==MODE_AI){
+
+ if (TSM_TS_IS_VALID (timestamp) && (TSM_ABS(timestamp, tsm->last_ts_sent)<TSM_SECOND*10))
+ {
+ tsm->ts_buf[tsm->rx].ts = timestamp;
+ tsm->ts_buf[tsm->rx].age = tsm->age+TSM_PLUS_AGE(tsm);
+ #ifdef DEBUG
+ //printf("age should %lld %lld\n", tsm->age, tsm->ts_buf[tsm->rx].age);
+ //printf("++++++ distance = %d tx=%d, rx=%d, invalid count=%d\n", TSM_DISTANCE(tsm), tsm->tx, tsm->rx,tsm->invalid_ts_count);
+ #endif
+ tsm->rx = ((tsm->rx + 1) % tsm->ts_buf_size);
+ }
+ else {
+ tsm->invalid_ts_count++;
+ }
+ }else if (tsm->mode==MODE_FIFO){
+ tsm->ts_buf[tsm->rx].ts = timestamp;
+ tsm->rx = ((tsm->rx + 1) % tsm->ts_buf_size);
+ }
+ TSM_LOG("++Receive %d:%"TSM_TIME_FORMAT", invalid:%d, size:%d\n", tsm->rx_cnt, TSM_TIME_ARGS(timestamp), tsm->invalid_ts_count, tsm->cnt);
+ }else{
+ TSM_ERROR("Too many timestamps recieved!! (cnt=%d)\n", tsm->cnt);
}
}
-
- if(debug_level==2) {
- printf("coming %d ts = %"TSM_TIME_FORMAT", last_ts=%"TSM_TIME_FORMAT", invalid cnt=%d\n",
- tsm->rx_cnt++, TSM_TIME_ARGS(timestamp), TSM_TIME_ARGS(tsm->last_ts_sent), tsm->invalid_ts_count);
- }
- //#endif
}
/*======================================================================================
@@ -182,107 +203,101 @@ TSM_TIMESTAMP TSManagerSend (void * handle)
int age;
TSM_TIMESTAMP half_interval = TSM_ADAPTIVE_INTERVAL(tsm)>>1;
- if (tsm==NULL)
- goto fail;
-
-
-
- if (tsm->mode==MODE_AI){
-
- if (tsm->first==0){
- tstmp = tsm->last_ts_sent + TSM_ADAPTIVE_INTERVAL(tsm);
- }else{
- tstmp = tsm->last_ts_sent;
- }
-
- while (i != tsm->rx) {
- if (index>=0) {
- if (tsm->ts_buf[i].ts < ts0) {
- ts0 = tsm->ts_buf[i].ts;
- age = tsm->ts_buf[i].age;
- index = i;
- }
- }
- else {
- ts0 = tsm->ts_buf[i].ts;
- age = tsm->ts_buf[i].age;
- index = i;
- }
- i = ((i + 1) % tsm->ts_buf_size);
- }
- if (index>=0) {
- if ((tsm->invalid_ts_count) && (ts0 >=((tstmp) + half_interval)) && (age>tsm->age)){
- /* use calculated ts0 */
- tsm->invalid_ts_count--;
- }else{
- if (index != tsm->tx) {
- tsm->ts_buf[index] =
- tsm->ts_buf[tsm->tx];
- }
- tsm->tx = ((tsm->tx + 1) % tsm->ts_buf_size);
-
- #if 0
- if (ts0 >=((tstmp) + half_interval))
- tstmp = tstmp;
- else
- tstmp = ts0;
- #else
- tstmp = ts0;
- #endif
- }
-
- }else{
- tsm->invalid_ts_count--;
- }
-
- if (tsm->first==0){
-
-
- if (tstmp>tsm->last_ts_sent){
- ts0 = (tstmp-tsm->last_ts_sent);
- }else{
- ts0 = 0;
- tstmp=tsm->last_ts_sent;
- }
-
- if(debug_level==3)
- {
- if (ts0>TSM_ADAPTIVE_INTERVAL(tsm)*3/2)
- printf("Warning: !!!!!!!!!!!!dur this time %"TSM_TIME_FORMAT" > frame_interval:%"TSM_TIME_FORMAT"* 3/2\n",
- TSM_TIME_ARGS(ts0), TSM_TIME_ARGS(TSM_ADAPTIVE_INTERVAL(tsm)));
- }
-
- tsm->dur_history_total-=tsm->dur_history_buf[tsm->dur_history_tx];
- tsm->dur_history_buf[tsm->dur_history_tx] = ts0;
- tsm->dur_history_tx = ((tsm->dur_history_tx + 1) % TSM_HISTORY_SIZE);
- tsm->dur_history_total+=ts0;
- }
-
- tsm->last_ts_sent = tstmp;
- tsm->age++;
- tsm->first = 0;
-
-
- }else if (tsm->mode==MODE_FIFO){
- if (tsm->tx!=tsm->rx){
- tstmp = tsm->ts_buf[tsm->tx].ts;
- tsm->tx = ((tsm->tx + 1) % tsm->ts_buf_size);
- tsm->last_ts_sent = tstmp;
- }else{
- tstmp = tsm->last_ts_sent;
- printf("\FATAL Error[no timestamp received], Maybe a framework bug!\n");
- }
+ if (tsm){
+ tsm->tx_cnt++;
+ if (tsm->cnt>0){
+ tsm->cnt--;
+ if (tsm->mode==MODE_AI){
+
+ if (tsm->first==0){
+ tstmp = tsm->last_ts_sent + TSM_ADAPTIVE_INTERVAL(tsm);
+ }else{
+ tstmp = tsm->last_ts_sent;
+ }
+
+ while (i != tsm->rx) {
+ if (index>=0) {
+ if (tsm->ts_buf[i].ts < ts0) {
+ ts0 = tsm->ts_buf[i].ts;
+ age = tsm->ts_buf[i].age;
+ index = i;
+ }
+ }
+ else {
+ ts0 = tsm->ts_buf[i].ts;
+ age = tsm->ts_buf[i].age;
+ index = i;
+ }
+ i = ((i + 1) % tsm->ts_buf_size);
+ }
+ if (index>=0) {
+ if ((tsm->invalid_ts_count) && (ts0 >=((tstmp) + half_interval)) && (age>tsm->age)){
+ /* use calculated ts0 */
+ tsm->invalid_ts_count--;
+ }else{
+ if (index != tsm->tx) {
+ tsm->ts_buf[index] =
+ tsm->ts_buf[tsm->tx];
+ }
+ tsm->tx = ((tsm->tx + 1) % tsm->ts_buf_size);
+
+ #if 0
+ if (ts0 >=((tstmp) + half_interval))
+ tstmp = tstmp;
+ else
+ tstmp = ts0;
+ #else
+ tstmp = ts0;
+ #endif
+ }
+
+ }else{
+ tsm->invalid_ts_count--;
+ }
+
+ if (tsm->first==0){
+
+
+ if (tstmp>tsm->last_ts_sent){
+ ts0 = (tstmp-tsm->last_ts_sent);
+ }else{
+ ts0 = 0;
+ tstmp=tsm->last_ts_sent;
+ }
+
+
+ if (ts0>TSM_ADAPTIVE_INTERVAL(tsm)*3/2){
+ TSM_WARNING("Jitter:%"TSM_TIME_FORMAT"\n", TSM_TIME_ARGS(ts0));
+ }else if (ts0==0){
+ TSM_WARNING("Jitter:%"TSM_TIME_FORMAT"\n", TSM_TIME_ARGS(ts0));
+ }
+ tsm->dur_history_total-=tsm->dur_history_buf[tsm->dur_history_tx];
+ tsm->dur_history_buf[tsm->dur_history_tx] = ts0;
+ tsm->dur_history_tx = ((tsm->dur_history_tx + 1) % TSM_HISTORY_SIZE);
+ tsm->dur_history_total+=ts0;
+ }
+
+ tsm->last_ts_sent = tstmp;
+ tsm->age++;
+ tsm->first = 0;
+
+
+ }else if (tsm->mode==MODE_FIFO){
+ tstmp = tsm->ts_buf[tsm->tx].ts;
+ tsm->tx = ((tsm->tx + 1) % tsm->ts_buf_size);
+ ts0 = tstmp - tsm->last_ts_sent;
+ tsm->last_ts_sent = tstmp;
+ }
+
+ TSM_LOG("--Send %d:%"TSM_TIME_FORMAT", int:%"TSM_TIME_FORMAT", avg:%"TSM_TIME_FORMAT"\n",
+ tsm->tx_cnt, TSM_TIME_ARGS(tstmp), TSM_TIME_ARGS(ts0),
+ TSM_TIME_ARGS(TSM_ADAPTIVE_INTERVAL(tsm)));
+
+ }else{
+ TSM_ERROR("Too many timestamps send!!\n");
}
- if(debug_level==1){
- printf("frame_interval = %"TSM_TIME_FORMAT"\n", TSM_TIME_ARGS(TSM_ADAPTIVE_INTERVAL(tsm)));
- }
-
- if(debug_level==2) {
- printf("outing +++++++ %d ts out:%"TSM_TIME_FORMAT" frame_interval:%"TSM_TIME_FORMAT"\n",
- tsm->tx_cnt++, TSM_TIME_ARGS(tstmp), TSM_TIME_ARGS(ts0));
- }
- //#endif
+ }
fail:
return tstmp;
@@ -300,10 +315,7 @@ void resyncTSManager(void * handle, TSM_TIMESTAMP synctime, TSMGR_MODE mode)
tsm->invalid_ts_count = 0;
tsm->mode = mode;
tsm->age = 0;
- //#ifdef DEBUG
- tsm->rx_cnt = tsm->tx_cnt = 0;
- //#endif
- //TSM_BUFFER_SET(tsm->ts_buf, TSM_TIMESTAMP_NONE, tsm->ts_buf_size);
+ tsm->rx_cnt = tsm->tx_cnt = tsm->cnt = 0;
}
}
@@ -330,7 +342,6 @@ void * createTSManager(int ts_buf_size)
// printf("debug = %s \n ++++++++++++++++++++++++++++",debug);
if (tsm){
- tsm->tx = tsm->rx = 0;
if (ts_buf_size<=0){
ts_buf_size = TSM_DEFAULT_TS_BUFFER_SIZE;
}
@@ -388,7 +399,7 @@ void setTSManagerFrameRate(void * handle, int fps_n, int fps_d)
TSM_BUFFER_SET(tsm->dur_history_buf, ts, TSM_HISTORY_SIZE);
tsm->dur_history_total = (ts<<TSM_HISTORY_POWER);
if(debug)
- printf("+++Frame intrval:%"TSM_TIME_FORMAT"+++\n",TSM_TIME_ARGS(ts));
+ TSM_LOG("Set frame intrval:%"TSM_TIME_FORMAT"\n",TSM_TIME_ARGS(ts));
}
}
diff --git a/src/audio/aac_dec/src/mfw_gst_aacdec.c b/src/audio/aac_dec/src/mfw_gst_aacdec.c
index 01d21d8..6e8a37b 100755
--- a/src/audio/aac_dec/src/mfw_gst_aacdec.c
+++ b/src/audio/aac_dec/src/mfw_gst_aacdec.c
@@ -1521,6 +1521,11 @@ mfw_gst_aacdec_data (MFW_GST_AACDEC_INFO_T * aacdec_info, gint inbuffsize)
dec_info.aacd_num_channels = aacdec_info->number_of_channels;
dec_info.aacd_len = AAC_FRAME_SIZE;
aacdec_info->corrupt_bs = TRUE;
+
+ GST_INFO("consume len %d %d %d\n",
+ consumelen, gst_adapter_available(aacdec_info->pAdapter),
+ dec_info.BitsInBlock / 8);
+ consumelen=gst_adapter_available (aacdec_info->pAdapter);
memset (outbuf, 0, AAC_FRAME_SIZE * CHANS * sizeof (AACD_OutputFmtType));
} else {
aacdec_info->flow_error = TRUE;
@@ -1530,6 +1535,9 @@ mfw_gst_aacdec_data (MFW_GST_AACDEC_INFO_T * aacdec_info, gint inbuffsize)
GST_ERROR ("Error in decoding the frame error is %d", rc);
GST_DEBUG ("inbuffsize = %d", inbuffsize);
}
+ else {
+ aacdec_info->error_cnt = 0;
+ }
/* engr113747 : sometimes the audio sample rate is not common used, such
* as 41000, so there is no corresponding AAC sample rate index. The
@@ -1561,8 +1569,12 @@ mfw_gst_aacdec_data (MFW_GST_AACDEC_INFO_T * aacdec_info, gint inbuffsize)
if (dec_info.BitsInBlock < 8)
g_print ("consumed:%d\n", dec_info.BitsInBlock);
+
consumelen += (dec_info.BitsInBlock / 8);
+ if (consumelen>gst_adapter_available (aacdec_info->pAdapter))
+ consumelen=gst_adapter_available (aacdec_info->pAdapter);
+
if (*(dec_config->AACD_bno) < 2) {
get_timestamp_with_length (&aacdec_info->tsMgr, consumelen);
goto bail;
@@ -1588,26 +1600,22 @@ mfw_gst_aacdec_data (MFW_GST_AACDEC_INFO_T * aacdec_info, gint inbuffsize)
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
} else if (dec_info.aacd_num_channels == 3) {
- g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
- gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
- } else if (dec_info.aacd_num_channels == 4) { /* FC,FCL,FCR,BC */
- g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
+ g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_LFE);
gst_value_array_append_value (&chanpos, &pos);
- g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER);
+ } else if (dec_info.aacd_num_channels == 4) {
+ g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
- g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER);
+ g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
- g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER);
+ g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT);
gst_value_array_append_value (&chanpos, &pos);
- } else if (dec_info.aacd_num_channels == 5) { /* FC,FL,FR,BL,BR */
- g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
+ g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
+ } else if (dec_info.aacd_num_channels == 5) {
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
@@ -1616,9 +1624,9 @@ mfw_gst_aacdec_data (MFW_GST_AACDEC_INFO_T * aacdec_info, gint inbuffsize)
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
- } else if (dec_info.aacd_num_channels == 6) { /* FC,FL,FR,BL,BR,LFE */
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
gst_value_array_append_value (&chanpos, &pos);
+ } else if (dec_info.aacd_num_channels == 6) {
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
@@ -1627,6 +1635,8 @@ mfw_gst_aacdec_data (MFW_GST_AACDEC_INFO_T * aacdec_info, gint inbuffsize)
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
+ g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
+ gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_LFE);
gst_value_array_append_value (&chanpos, &pos);
}
@@ -1928,7 +1938,7 @@ PutBits (MFW_GST_AACDEC_INFO_T * aacdec_info, guint8 ** PositionDest,
guint8 *dummyDest;
- GST_INFO ("Put data:%x, len:%d.", Data, NumberOfBits);
+ GST_DEBUG ("Put data:%x, len:%d.", Data, NumberOfBits);
/* Hold the Address of the passed Destination source address. */
if (PositionDest == NULL) {
dummyDest = NULL;
@@ -2309,16 +2319,22 @@ mfw_gst_aacdec_chain (GstPad * pad, GstBuffer * buf)
/* searching for sync word so that can give correct
data to the decode library */
if (aacdec_info->app_params.App_adts_header_present) {
- while (1) {
+ while (i<inbuffsize) {
if ((inbuffer[i] == 0xFF) && ((inbuffer[i + 1] == 0xF9)
|| (inbuffer[i + 1] == 0xF1))) {
break;
}
i++;
}
- inbuffer = inbuffer + i;
+ if (i >= inbuffsize) {
+ aacdec_info->app_params.App_adts_header_present = FALSE;
+ }
+ else {
+ inbuffer = inbuffer + i;
+ inbuffsize = inbuffsize - i;
+ }
}
- inbuffsize = inbuffsize - i;
+
GST_BUFFER_OFFSET (aacdec_info->inbuffer1) = 0;
App_bs_readinit ((gchar *) inbuffer, inbuffsize, aacdec_info);
diff --git a/src/audio/aacplus_dec/src/mfw_gst_aacplusdec.c b/src/audio/aacplus_dec/src/mfw_gst_aacplusdec.c
index 2180735..2d0304c 100755
--- a/src/audio/aacplus_dec/src/mfw_gst_aacplusdec.c
+++ b/src/audio/aacplus_dec/src/mfw_gst_aacplusdec.c
@@ -1552,6 +1552,12 @@ mfw_gst_aacplusdec_data (MFW_GST_AACPLUSDEC_INFO_T * aacplusdec_info,
aacplusdec_info->number_of_channels;
dec_info.aacd_len = AAC_FRAME_SIZE;
aacplusdec_info->corrupt_bs = TRUE;
+
+ GST_INFO("consume len %d %d %d\n",
+ consumelen, gst_adapter_available(aacplusdec_info->pAdapter),
+ dec_info.BitsInBlock / 8);
+ consumelen=gst_adapter_available (aacplusdec_info->pAdapter);
+
memset (outbuf, 0,
AAC_FRAME_SIZE * CHANS * sizeof (AACD_OutputFmtType));
}
@@ -1562,6 +1568,9 @@ mfw_gst_aacplusdec_data (MFW_GST_AACPLUSDEC_INFO_T * aacplusdec_info,
GST_ERROR ("Error in decoding the frame error is %d\n", rc);
GST_DEBUG ("inbuffsize = %d\n", inbuffsize);
}
+ else {
+ aacplusdec_info->error_cnt = 0;
+ }
/* engr113747 : sometimes the audio sample rate is not common used, such
* as 41000, so there is no corresponding AAC sample rate index. The
@@ -1607,6 +1616,9 @@ mfw_gst_aacplusdec_data (MFW_GST_AACPLUSDEC_INFO_T * aacplusdec_info,
consumelen += (dec_info.BitsInBlock / 8);
+ if (consumelen>gst_adapter_available (aacplusdec_info->pAdapter))
+ consumelen=gst_adapter_available (aacplusdec_info->pAdapter);
+
if (*(dec_config->AACD_bno) < 2) {
get_timestamp_with_length (&aacplusdec_info->tsMgr, consumelen);
return consumelen;
@@ -1644,34 +1656,31 @@ mfw_gst_aacplusdec_data (MFW_GST_AACPLUSDEC_INFO_T * aacplusdec_info,
gst_value_array_append_value (&chanpos, &pos);
}
else if (dec_info.aacd_num_channels == 3) {
- g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
- gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
- }
- else if (dec_info.aacd_num_channels == 4) { /* FC,FCL,FCR,BC */
- g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
+ g_value_set_enum (&pos,
+ GST_AUDIO_CHANNEL_POSITION_LFE);
gst_value_array_append_value (&chanpos, &pos);
+ }
+ else if (dec_info.aacd_num_channels == 4) {
g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER);
+ GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER);
+ GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_REAR_CENTER);
+ GST_AUDIO_CHANNEL_POSITION_REAR_LEFT);
gst_value_array_append_value (&chanpos, &pos);
- }
- else if (dec_info.aacd_num_channels == 5) { /* FC,FL,FR,BL,BR */
g_value_set_enum (&pos,
- GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
+ GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
+ }
+ else if (dec_info.aacd_num_channels == 5) {
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
@@ -1684,11 +1693,11 @@ mfw_gst_aacplusdec_data (MFW_GST_AACPLUSDEC_INFO_T * aacplusdec_info,
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
- }
- else if (dec_info.aacd_num_channels == 6) { /* FC,FL,FR,BL,BR,LFE */
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
gst_value_array_append_value (&chanpos, &pos);
+ }
+ else if (dec_info.aacd_num_channels == 6) {
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT);
gst_value_array_append_value (&chanpos, &pos);
@@ -1701,6 +1710,9 @@ mfw_gst_aacplusdec_data (MFW_GST_AACPLUSDEC_INFO_T * aacplusdec_info,
g_value_set_enum (&pos,
GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT);
gst_value_array_append_value (&chanpos, &pos);
+ g_value_set_enum (&pos,
+ GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER);
+ gst_value_array_append_value (&chanpos, &pos);
g_value_set_enum (&pos, GST_AUDIO_CHANNEL_POSITION_LFE);
gst_value_array_append_value (&chanpos, &pos);
}
diff --git a/src/audio/mp3_dec/src/mfw_gst_mp3dec.c b/src/audio/mp3_dec/src/mfw_gst_mp3dec.c
index dff345b..1787ec6 100755
--- a/src/audio/mp3_dec/src/mfw_gst_mp3dec.c
+++ b/src/audio/mp3_dec/src/mfw_gst_mp3dec.c
@@ -1,9 +1,4 @@
/*
- * Copyright (C) 2005-2011 Freescale Semiconductor, Inc. All rights reserved.
- *
- */
-
-/*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
@@ -20,6 +15,13 @@
* Boston, MA 02111-1307, USA.
*/
+ /*
+ * Copyright (C) <2005-2011> Freescale Semiconductor, Inc .
+
+ * Based on gstmad.c by
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ */
+
/*
* Module Name: mfw_gst_mp3dec.c
*
@@ -113,12 +115,6 @@ GST_STATIC_PAD_TEMPLATE("src",
#define MFW_MP3DEC_CBKSIZE 512
#define PULL_SIZE 4096
-/* threshold for timestamp resetting */
-#define TS_RESET_THRESHOLD 2
-
-/* fadein step */
-#define FADEIN_STEP 1
-
/* the clock in MHz for IMX31 to be changed for other platforms */
#define PROCESSOR_CLOCK 532
@@ -1002,9 +998,6 @@ mfw_gst_mp3dec_change_state(GstElement * element,
mp3dec_info->layerchk = FALSE;
mp3dec_info->strm_info_get = FALSE;
mp3dec_info->new_segment = 1;
- mp3dec_info->flushed_bytes = 0;
- mp3dec_info->buf_list = NULL;
- mp3dec_info->fadein_factor = 0;
memset(&mp3dec_info->strm_info, 0, sizeof(mp3_fr_info));
break;
}
@@ -1995,47 +1988,6 @@ static GstClockTime decode_mp3_get_timestamp(MfwGstMp3DecInfo * mp3dec_info)
return ts;
}
-
-static void decode_mp3_fadein_mono(MfwGstMp3DecInfo * mp3dec_info, GstBuffer *buffer)
-{
- gint size = GST_BUFFER_SIZE (buffer) / 2;
- gint16 *data = (gint16 *)GST_BUFFER_DATA (buffer);
- gint number = size;
- gint max = mp3dec_info->dec_param->mp3d_sampling_freq - mp3dec_info->fadein_factor;
-
- if (max > 0) {
- gint i = 0;
- number = MIN(size, max);
- for (i = 0; i < number; i++) {
- data[i] = (gint16)(data[i] * mp3dec_info->fadein_factor /
- mp3dec_info->dec_param->mp3d_sampling_freq);
- mp3dec_info->fadein_factor += FADEIN_STEP;
- }
- }
-}
-
-
-static void decode_mp3_fadein_steoro(MfwGstMp3DecInfo * mp3dec_info, GstBuffer *buffer)
-{
- gint size = GST_BUFFER_SIZE (buffer) / 2;
- gint16 *data = (gint16 *)GST_BUFFER_DATA (buffer);
- gint number = 0;
- gint max = mp3dec_info->dec_param->mp3d_sampling_freq - mp3dec_info->fadein_factor;
-
- if (max > 0) {
- gint i = 0;
- number = MIN(size, max);
- for (i = 0; i < number; i += 2) {
- data[i] = (gint16)(data[i] * mp3dec_info->fadein_factor /
- mp3dec_info->dec_param->mp3d_sampling_freq);
- data[i + 1] = (gint16)(data[i + 1] * mp3dec_info->fadein_factor /
- mp3dec_info->dec_param->mp3d_sampling_freq);
- mp3dec_info->fadein_factor += FADEIN_STEP;
- }
- }
-}
-
-
/*==================================================================================================
FUNCTION: mfw_gst_mp3dec_chain
@@ -2109,7 +2061,6 @@ static GstFlowReturn mfw_gst_mp3dec_chain(GstPad * pad, GstBuffer * buffer)
size = GST_BUFFER_SIZE(buffer);
ts = GST_BUFFER_TIMESTAMP(buffer);
- decode_mp3_add_buf_to_list(mp3dec_info, buffer);
gst_adapter_push(adapter, buffer);
@@ -2125,7 +2076,6 @@ static GstFlowReturn mfw_gst_mp3dec_chain(GstPad * pad, GstBuffer * buffer)
GST_DEBUG("Size of ID3 Data = %d", mp3dec_info->id3v2_size);
}
if (size > mp3dec_info->id3v2_size) {
- decode_mp3_flush_buf_from_list(mp3dec_info, mp3dec_info->id3v2_size);
gst_adapter_flush(adapter, mp3dec_info->id3v2_size);
} else {
return GST_FLOW_OK;
@@ -2171,7 +2121,6 @@ static GstFlowReturn mfw_gst_mp3dec_chain(GstPad * pad, GstBuffer * buffer)
else {
fr_size = mp3_parser_parse_frame_header((gchar *) data, size, &mp3dec_info->strm_info);
if (fr_size.index < size) {
- decode_mp3_flush_buf_from_list(mp3dec_info, fr_size.index);
gst_adapter_flush(adapter, fr_size.index);
}
#if 0
@@ -2302,7 +2251,6 @@ static GstFlowReturn decode_mp3_chunk(MfwGstMp3DecInfo * mp3dec_info, guint bufs
struct timeval tv_prof, tv_prof1;
long time_before = 0, time_after = 0;
guint loop_cnt=0;
- GstClockTime ts, diff;
{
if (mp3dec_info->demo_mode == 2)
@@ -2352,18 +2300,6 @@ static GstFlowReturn decode_mp3_chunk(MfwGstMp3DecInfo * mp3dec_info, guint bufs
decode_out);
//g_print (RED_STR("mp3d_decode_frame() returns %d, error count %d\n", retval, err_count));
- ts = decode_mp3_get_timestamp(mp3dec_info);
-#if 0
- if ((err_count > 0) && !IS_MP3_DEC_ERROR(retval)) {
- /* if this is the first correct output after error, reset the time offset */
- if (GST_CLOCK_TIME_IS_VALID(ts)) {
- GST_ERROR ("Encountered error, "
- "reset time offset from %"GST_TIME_FORMAT" to %"GST_TIME_FORMAT"\n",
- GST_TIME_ARGS(mp3dec_info->time_offset), GST_TIME_ARGS(ts));
- mp3dec_info->time_offset = ts;
- }
- }
-#endif
#ifdef PUSH_MODE
if (mp3dec_info->dec_config->consumedBufLen>0){
@@ -2372,11 +2308,9 @@ static GstFlowReturn decode_mp3_chunk(MfwGstMp3DecInfo * mp3dec_info, guint bufs
//mp3dec_info->dec_config->consumedBufLen = bufsize;
//}
//gst_adapter_flush(mp3dec_global_info->adapter, mp3dec_info->dec_config->consumedBufLen);
- decode_mp3_flush_buf_from_list(mp3dec_info, mp3dec_info->dec_config->consumedBufLen);
gst_adapter_flush(mp3dec_info->adapter, mp3dec_info->dec_config->consumedBufLen);
}
-
#endif
if (IS_MP3_DEC_ERROR(retval)){
err_count++;
@@ -2463,13 +2397,11 @@ static GstFlowReturn decode_mp3_chunk(MfwGstMp3DecInfo * mp3dec_info, guint bufs
if (mp3dec_info->dec_param->mp3d_num_channels == 1) {
GST_BUFFER_SIZE(outbuffer) = MP3D_FRAME_SIZE * 2;
num_samples = MP3D_FRAME_SIZE;
- decode_mp3_fadein_mono(mp3dec_info, outbuffer);
}
if (mp3dec_info->dec_param->mp3d_num_channels == 2) {
GST_BUFFER_SIZE(outbuffer) = MP3D_FRAME_SIZE * 2 * 2;
num_samples = MP3D_FRAME_SIZE*2;
- decode_mp3_fadein_steoro(mp3dec_info, outbuffer);
}
mp3dec_info->total_samples += num_samples;
@@ -2479,22 +2411,7 @@ static GstFlowReturn decode_mp3_chunk(MfwGstMp3DecInfo * mp3dec_info, guint bufs
time_duration =
gst_util_uint64_scale_int(loop_cnt, GST_SECOND, mp3dec_info->dec_param->mp3d_sampling_freq);
- /* A/V sync for fuzzy stream:
- * Check the difference between calculated ts and accumulated ts. If it is
- * bigger than the threshold, reset the timestamp to the calculated one. */
- diff = (mp3dec_info->time_offset > ts) ?
- (mp3dec_info->time_offset - ts) : (ts - mp3dec_info->time_offset);
- if ((GST_CLOCK_TIME_IS_VALID(ts)) &&
- (diff > (time_duration * TS_RESET_THRESHOLD))) {
- GST_WARNING ("difference between calculated ts and accumulated ts is bigger than %d frames, "
- "reset time offset from %"GST_TIME_FORMAT" to %"GST_TIME_FORMAT"",
- TS_RESET_THRESHOLD,
- GST_TIME_ARGS(mp3dec_info->time_offset), GST_TIME_ARGS(ts));
- mp3dec_info->time_offset = ts;
- mp3dec_info->fadein_factor = 0;
- }
-
- GST_BUFFER_TIMESTAMP(outbuffer) = mp3dec_info->time_offset;
+ GST_BUFFER_TIMESTAMP(outbuffer) = mp3dec_info->time_offset;
GST_BUFFER_DURATION(outbuffer) = time_duration;
GST_BUFFER_OFFSET(outbuffer) = 0;
diff --git a/src/audio/mp3_dec/src/mfw_gst_mp3dec.h b/src/audio/mp3_dec/src/mfw_gst_mp3dec.h
index c45b8b6..e25e7a0 100755
--- a/src/audio/mp3_dec/src/mfw_gst_mp3dec.h
+++ b/src/audio/mp3_dec/src/mfw_gst_mp3dec.h
@@ -110,14 +110,9 @@ G_BEGIN_DECLS
mp3_fr_info strm_info;
gint demo_mode; /* 0: Normal mode, 1: Demo mode 2: Demo ending */
gint new_segment;
-
- /* buffer list for calculating timestamp */
- GList *buf_list;
+ /* buffer list for calculating timestamp */
+ GList *buf_list;
gint flushed_bytes;
-
- /* for fade in after error frame */
- gint fadein_factor;
-
} MfwGstMp3DecInfo;
typedef struct _MfwGstMp3DecInfoClass {
diff --git a/src/audio/vorbis_dec/src/mfw_gst_vorbisdec.c b/src/audio/vorbis_dec/src/mfw_gst_vorbisdec.c
index 1fb883f..dba400a 100755
--- a/src/audio/vorbis_dec/src/mfw_gst_vorbisdec.c
+++ b/src/audio/vorbis_dec/src/mfw_gst_vorbisdec.c
@@ -431,7 +431,7 @@ void mfw_gst_vorbisdec_set_caps_channel_pos(GstCaps *caps, gint channum)
{
GValue chanpos = { 0 };
GValue pos = { 0 };
-
+
g_value_init (&chanpos, GST_TYPE_ARRAY);
g_value_init (&pos, GST_TYPE_AUDIO_CHANNEL_POSITION);
@@ -699,7 +699,7 @@ mfw_gst_vorbisdec_chain(GstPad * pad, GstBuffer * buf)
GST_DEBUG(GREEN_STR("time_offset = %lld", vordec_info->time_offset));
}
if (vordec_info->codec_data){
- gst_adapter_push(vordec_info->pAdapter, vordec_info->codec_data);
+ gst_adapter_push(vordec_info->pAdapter, gst_buffer_ref(vordec_info->codec_data));
vordec_info->codec_data = NULL;
}
gst_adapter_push(vordec_info->pAdapter, buf);
@@ -763,7 +763,7 @@ mfw_gst_vorbisdec_chain(GstPad * pad, GstBuffer * buf)
gst_tag_list_add(list,GST_TAG_MERGE_APPEND, GST_TAG_AUDIO_CODEC,
codec_name,NULL);
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, GST_TAG_BITRATE,
- (guint)(psOVDecObj->ave_bitrate),NULL);
+ (guint)(psOVDecObj->ave_bitrate),NULL);
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, GST_TAG_MFW_VORBIS_SAMPLING_RATE,
(guint)vordec_info->sampling_freq,NULL);
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, GST_TAG_MFW_VORBIS_CHANNELS,
@@ -851,12 +851,12 @@ mfw_gst_vorbisdec_change_state(GstElement * element,
memset(psOVDecObj, 0, sizeof(sOggVorbisDecObj));
break;
- case GST_STATE_CHANGE_READY_TO_PAUSED:
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
gst_tag_register (GST_TAG_MFW_VORBIS_CHANNELS, GST_TAG_FLAG_DECODED,G_TYPE_UINT,
"number of channels","number of channels", NULL);
gst_tag_register (GST_TAG_MFW_VORBIS_SAMPLING_RATE, GST_TAG_FLAG_DECODED,G_TYPE_UINT,
- "sampling frequency (Hz)","sampling frequency (Hz)", NULL);
-
+ "sampling frequency (Hz)","sampling frequency (Hz)", NULL);
+
vordec_info->pAdapter = gst_adapter_new();
init_tsmanager(&vordec_info->tsMgr);
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4l_buffer.c b/src/misc/v4l_sink/src/mfw_gst_v4l_buffer.c
index 5febe48..82230f5 100755
--- a/src/misc/v4l_sink/src/mfw_gst_v4l_buffer.c
+++ b/src/misc/v4l_sink/src/mfw_gst_v4l_buffer.c
@@ -280,6 +280,7 @@ MFWGstV4LSinkBuffer *mfw_gst_v4l2_new_swbuffer(MFW_GST_V4LSINK_INFO_T * v4l_info
switch (v4l_info->outformat) {
case V4L2_PIX_FMT_RGB565:
case V4L2_PIX_FMT_YUYV:
+ case V4L2_PIX_FMT_UYVY:
buf_size = (v4l_info->width+v4l_info->cr_left_bypixel+v4l_info->cr_right_bypixel)*
(v4l_info->height+v4l_info->cr_left_bypixel+v4l_info->cr_right_bypixel)*2;
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
index db6da3a..c6a6b6c 100755
--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
+++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
@@ -1209,6 +1209,10 @@ mfw_gst_v4lsink_set_format (MFW_GST_V4LSINK_INFO_T * v4l_info, GstCaps * caps)
if (v4l_info->fourcc == GST_STR_FOURCC ("I420")) {
GST_WARNING ("Default mode: I420");
}
+ else if (v4l_info->fourcc == GST_STR_FOURCC ("UYVY")) {
+ GST_WARNING ("set to UYVY mode");
+ v4l_info->outformat = V4L2_PIX_FMT_UYVY;
+ }
else if (v4l_info->fourcc == GST_STR_FOURCC ("NV12")) {
GST_WARNING ("set to nv12 mode");
v4l_info->outformat = V4L2_PIX_FMT_NV12;
@@ -1918,6 +1922,7 @@ mfw_gst_v4lsink_buffer_alloc (GstBaseSink * bsink, guint64 offset,
case V4L2_PIX_FMT_RGB565:
frame_buffer_size = (v4l_info->width * v4l_info->height) * 2;
break;
+ case V4L2_PIX_FMT_UYVY:
case V4L2_PIX_FMT_YUYV:
case V4L2_PIX_FMT_YUV422P:
frame_buffer_size = (v4l_info->width * v4l_info->height) * 2;
@@ -2044,6 +2049,7 @@ mfw_gst_v4lsink_base_init (gpointer g_class)
guint32 formats[] = {
GST_MAKE_FOURCC ('I', '4', '2', '0'),
GST_MAKE_FOURCC ('Y', 'V', '1', '2'),
+ GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'),
GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V'),
GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'),
GST_MAKE_FOURCC ('N', 'V', '1', '2'),
diff --git a/src/parser/aiur/src/aiurdemux.c b/src/parser/aiur/src/aiurdemux.c
index e2567d9..10427a8 100755
--- a/src/parser/aiur/src/aiurdemux.c
+++ b/src/parser/aiur/src/aiurdemux.c
@@ -2418,7 +2418,7 @@ aiurdemux_parse_video (GstAiurDemux * demux, AiurDemuxStream * stream,
case VIDEO_MPEG2:
//mime = "video/mp2v";
mime =
- "video/mpeg, systemstream = (boolean)false, parsed = (boolean)true";
+ "video/mpeg, systemstream = (boolean)false, parsed = (boolean)true, mpegversion=(int)2";
codec = "MPEG2";
break;
case VIDEO_MPEG4:
diff --git a/src/video/mpeg4asp_dec/src/mfw_gst_mpeg4asp_dec.c b/src/video/mpeg4asp_dec/src/mfw_gst_mpeg4asp_dec.c
index 1ae390c..8e3a591 100755
--- a/src/video/mpeg4asp_dec/src/mfw_gst_mpeg4asp_dec.c
+++ b/src/video/mpeg4asp_dec/src/mfw_gst_mpeg4asp_dec.c
@@ -69,9 +69,6 @@
"video/x-h263, " \
"width = (int) [0, 1280], " \
"height = (int)[0, 720]; " \
- "video/x-divx, " \
- "width = (int) [16, 1280], " \
- "height = (int)[16, 720]; " \
\
"video/x-xvid, " \
"width = (int) [16, 1280], " \
@@ -1819,4 +1816,4 @@ GST_PLUGIN_DEFINE(GST_VERSION_MAJOR, /* major version of Gstreamer */
plugin_init, /* first function to be called */
VERSION,
GST_LICENSE_UNKNOWN,
- FSL_GST_MM_PLUGIN_PACKAGE_NAME, FSL_GST_MM_PLUGIN_PACKAGE_ORIG)
\ No newline at end of file
+ FSL_GST_MM_PLUGIN_PACKAGE_NAME, FSL_GST_MM_PLUGIN_PACKAGE_ORIG)
diff --git a/src/video/vpu_dec.full/src/mfw_gst_vpu_decoder.c b/src/video/vpu_dec.full/src/mfw_gst_vpu_decoder.c
index 44266d8..dc7ab44 100755
--- a/src/video/vpu_dec.full/src/mfw_gst_vpu_decoder.c
+++ b/src/video/vpu_dec.full/src/mfw_gst_vpu_decoder.c
@@ -2664,7 +2664,7 @@ mfw_gst_vpudec_prep_gstbuf (MfwGstVPU_Dec * vpu_dec)
}
retval = TRUE;
memcpy (GST_BUFFER_DATA (vpu_dec->pushbuff),
- vpu_dec->frame_virt[vpu_dec->outputInfo->indexFrameDisplay],
+ GST_BUFFER_DATA(vpu_dec->outbuffers[vpu_dec->outputInfo->indexFrameDisplay]),
vpu_dec->yuv_frame_size);
vpu_ret =
vpu_DecClrDispFlag (*(vpu_dec->handle),
@@ -4431,8 +4431,7 @@ mfw_gst_vpudec_setcaps (GstPad * pad, GstCaps * caps)
else if ((strcmp (mime, "video/x-pn-realvideo") == 0) &&
HAS_RV_DECODER (vpu_dec->chip_code))
vpu_dec->codec = STD_RV;
- else if (((strcmp (mime, "video/x-divx") == 0) ||
- (strcmp (mime, "video/x-xvid") == 0)) &&
+ else if ((strcmp (mime, "video/x-divx") == 0) &&
HAS_DIVX_DECODER (vpu_dec->chip_code)) {
gint divx_version;
gst_structure_get_int (structure, "divxversion", &divx_version);
@@ -4445,7 +4444,10 @@ mfw_gst_vpudec_setcaps (GstPad * pad, GstCaps * caps)
vpu_dec->mp4Class = MP4_DIVX5_HIGHER;
else
vpu_dec->mp4Class = MP4_DIVX4;
- } else if ((strcmp (mime, "image/jpeg") == 0) &&
+ }else if ( strcmp (mime, "video/x-xvid") == 0) {
+ vpu_dec->codec = STD_MPEG4;
+ vpu_dec->mp4Class = MP4_XVID;
+ }else if ((strcmp (mime, "image/jpeg") == 0) &&
HAS_MJPEG_DECODER (vpu_dec->chip_code))
vpu_dec->codec = STD_MJPG;
else {
@@ -4609,7 +4611,7 @@ mfw_gst_vpudec_gen_sink_pad_caps (CHIP_CODE chip_code)
caps_list[i++] = "video/x-pn-realvideo, %s;";
case CC_MX37:
- caps_list[i++] = "video/x-xvid, %s, " "divxversion = (int)[3, 6];";
+ caps_list[i++] = "video/x-xvid, %s;";
caps_list[i++] = "video/x-divx, %s, " "divxversion = (int)[3, 6];";
diff --git a/tools/gplay/gplay_header.tgz b/tools/gplay/gplay_header.tgz
deleted file mode 100644
index 1ee46bb2e9fea9257f252f6ca477132c3a9d7d14..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 8807
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
diff --git a/tools/gplay/mfw_gplay.c b/tools/gplay/mfw_gplay.c
index 0bcd78c..ee65100 100755
--- a/tools/gplay/mfw_gplay.c
+++ b/tools/gplay/mfw_gplay.c
@@ -858,18 +858,13 @@ int main(int argc,char *argv[])
case 'v': // Volume
{
- int volume;
- PRINT("Set volume[0,100]:");
+ double volume;
+ PRINT("Set volume[0-1.0]:");
kb_restore_term(STDIN_FILENO);
gbdisplay = FSL_PLAYER_FALSE;
- scanf("%d",&volume);
+ scanf("%lf",&volume);
gbdisplay = FSL_PLAYER_TRUE;
kb_set_raw_term(STDIN_FILENO);
- if( volume<0 || volume>1000 )
- {
- printf("Invalid volume!\n");
- break;
- }
pplayer->klass->set_volume(pplayer, (volume));
break;
}
diff --git a/tools/gplay/mfw_gplay_core.c b/tools/gplay/mfw_gplay_core.c
index 8361499..4705cac 100755
--- a/tools/gplay/mfw_gplay_core.c
+++ b/tools/gplay/mfw_gplay_core.c
@@ -100,7 +100,7 @@ fsl_player_ret_val fsl_player_stop(fsl_player_handle handle);
fsl_player_ret_val fsl_player_seek(fsl_player_handle handle, fsl_player_u32 time_ms, fsl_player_u32 flags);
fsl_player_ret_val fsl_player_set_playback_rate(fsl_player_handle handle, double playback_rate);
-fsl_player_ret_val fsl_player_set_volume(fsl_player_handle handle, /*double*/fsl_player_s32 volume);
+fsl_player_ret_val fsl_player_set_volume(fsl_player_handle handle, double volume);
fsl_player_ret_val fsl_player_mute(fsl_player_handle handle);
fsl_player_ret_val fsl_player_snapshot(fsl_player_handle handle);
fsl_player_ret_val fsl_player_set_video_output(fsl_player_handle handle, fsl_player_video_output_mode mode);
@@ -1170,18 +1170,18 @@ fsl_player_ret_val fsl_player_stop(fsl_player_handle handle)
}
/* accept 0-1000, corresponding as 0-10.0*/
-fsl_player_ret_val fsl_player_set_volume(fsl_player_handle handle, fsl_player_s32 volume)
+fsl_player_ret_val fsl_player_set_volume(fsl_player_handle handle, double volume)
{
fsl_player* pplayer = (fsl_player*)handle;
fsl_player_property* pproperty = (fsl_player_property*)pplayer->property_handle;
GValue value = {0};
- if( volume > 1000 || volume < 0 )
+ if( volume < 0.0 )
{
FSL_PLAYER_PRINT("Set volume failed: Invalid volume=%lf which should be between [0, 1000]!\n" ,volume);
return FSL_PLAYER_ERROR_BAD_PARAM;
}
- pproperty->volume = (double)volume/100;
+ pproperty->volume = (double)volume;
g_value_init(&value, G_TYPE_DOUBLE);
g_value_set_double(&value, pproperty->volume);
g_object_set_property(G_OBJECT(pproperty->playbin), "volume", &value);
diff --git a/tools/gplay/mfw_gplay_core.h b/tools/gplay/mfw_gplay_core.h
index 85323b4..1d9ea13 100755
--- a/tools/gplay/mfw_gplay_core.h
+++ b/tools/gplay/mfw_gplay_core.h
@@ -221,7 +221,7 @@ typedef struct{
fsl_player_u32 features;
char * video_sink_name;
- char * audio_sink_name;
+ char * audio_sink_name;
char * visual_name;
@@ -249,7 +249,7 @@ struct _fsl_player_class
fsl_player_ret_val (*seek) (fsl_player_handle that, fsl_player_u32 time_ms, fsl_player_u32 flags);
fsl_player_ret_val (*set_playback_rate) (fsl_player_handle that, double playback_rate);
- fsl_player_ret_val (*set_volume) (fsl_player_handle that, fsl_player_s32 volume);
+ fsl_player_ret_val (*set_volume) (fsl_player_handle that, double volume);
fsl_player_ret_val (*mute) (fsl_player_handle that);
fsl_player_ret_val (*snapshot) (fsl_player_handle that);
fsl_player_ret_val (*set_video_output) (fsl_player_handle that, fsl_player_video_output_mode mode);