From: Javier Viguera Date: Fri, 22 Nov 2013 16:57:32 +0100 Subject: [PATCH] gst-fsl-plugin: update to DEL revision Signed-off-by: Javier Viguera --- 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 . # # 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 #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 . _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 &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 < conftest.$ac_ext <&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 #include - -#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<mode==MODE_AI){ - - if (TSM_TS_IS_VALID (timestamp) && (TSM_ABS(timestamp, tsm->last_ts_sent)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->cntts_buf_size-1){ + tsm->cnt++; + if (tsm->mode==MODE_AI){ + + if (TSM_TS_IS_VALID (timestamp) && (TSM_ABS(timestamp, tsm->last_ts_sent)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<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) { + 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 + */ + /* * 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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 ) - { - 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);