Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
fd0bc419
Commit
fd0bc419
authored
Sep 18, 2002
by
Henri Fallon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lpcm support (tested on 1 source only)
parent
f213a1d6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
386 additions
and
296 deletions
+386
-296
configure.in
configure.in
+207
-208
modules/audio_filter/converter/s16tofloat32swab.c
modules/audio_filter/converter/s16tofloat32swab.c
+118
-0
modules/codec/lpcm/lpcm.c
modules/codec/lpcm/lpcm.c
+55
-85
modules/codec/lpcm/lpcm.h
modules/codec/lpcm/lpcm.h
+6
-3
No files found.
configure.in
View file @
fd0bc419
...
@@ -37,18 +37,18 @@ dnl Check for GNU make
...
@@ -37,18 +37,18 @@ dnl Check for GNU make
dnl
dnl
AC_PATH_PROG(GMAKE, gmake, no)
AC_PATH_PROG(GMAKE, gmake, no)
if test "x${GMAKE}" = "xno"; then
if test "x${GMAKE}" = "xno"; then
AC_CACHE_CHECK([whether GNU make is installed],
AC_CACHE_CHECK([whether GNU make is installed],
[ac_cv_gmake],
[ac_cv_gmake],
[if make --version | grep -q -i gnu; then
[if make --version | grep -q -i gnu; then
ac_cv_gmake="yes"
ac_cv_gmake="yes"
else
else
echo "This software needs you to install GNU make to compile properly."
echo "This software needs you to install GNU make to compile properly."
echo "You can get it from http://www.gnu.org/."
echo "You can get it from http://www.gnu.org/."
exit
exit
fi])
fi])
VLC_MAKE="make"
VLC_MAKE="make"
else
else
VLC_MAKE="gmake"
VLC_MAKE="gmake"
fi
fi
dnl Gettext stuff
dnl Gettext stuff
...
@@ -72,66 +72,66 @@ dnl
...
@@ -72,66 +72,66 @@ dnl
dnl Check the operating system
dnl Check the operating system
dnl
dnl
case "x${target_os}" in
case "x${target_os}" in
x)
x)
SYS=unknown
SYS=unknown
;;
;;
xlinux*)
xlinux*)
SYS=linux
SYS=linux
;;
;;
xbsdi*)
xbsdi*)
SYS=bsdi
SYS=bsdi
save_CFLAGS="${save_CFLAGS} -pthread"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -pthread"; CFLAGS="${save_CFLAGS}"
dvd_LDFLAGS="${dvd_LDFLAGS} -ldvd"
dvd_LDFLAGS="${dvd_LDFLAGS} -ldvd"
vcd_LDFLAGS="${vcd_LDFLAGS} -ldvd"
vcd_LDFLAGS="${vcd_LDFLAGS} -ldvd"
;;
;;
x*bsd*)
x*bsd*)
SYS="${target_os}"
SYS="${target_os}"
save_CFLAGS="${save_CFLAGS} -pthread"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -pthread"; CFLAGS="${save_CFLAGS}"
;;
;;
xdarwin*)
xdarwin*)
SYS=darwin
SYS=darwin
save_CFLAGS="${save_CFLAGS} -no-cpp-precomp"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -no-cpp-precomp"; CFLAGS="${save_CFLAGS}"
vlc_LDFLAGS="${vlc_LDFLAGS} -all_load"
vlc_LDFLAGS="${vlc_LDFLAGS} -all_load"
;;
;;
x*mingw32*)
x*mingw32*)
SYS=mingw32
SYS=mingw32
AC_CHECK_TOOL(WINDRES, windres, :)
AC_CHECK_TOOL(WINDRES, windres, :)
save_CFLAGS="${save_CFLAGS} -fnative-struct -D_OFF_T_ -D_off_t=long"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -fnative-struct -D_OFF_T_ -D_off_t=long"; CFLAGS="${save_CFLAGS}"
vlc_LDFLAGS="${vlc_LDFLAGS} -mwindows -Xlinker --force-exe-suffix"
vlc_LDFLAGS="${vlc_LDFLAGS} -mwindows -Xlinker --force-exe-suffix"
vlc_LDFLAGS="${vlc_LDFLAGS} -lws2_32 -lnetapi32"
vlc_LDFLAGS="${vlc_LDFLAGS} -lws2_32 -lnetapi32"
ipv4_LDFLAGS="${ipv4_LDFLAGS} -lws2_32"
ipv4_LDFLAGS="${ipv4_LDFLAGS} -lws2_32"
ipv6_LDFLAGS="${ipv6_LDFLAGS} -lws2_32"
ipv6_LDFLAGS="${ipv6_LDFLAGS} -lws2_32"
http_LDFLAGS="${http_LDFLAGS} -lws2_32"
http_LDFLAGS="${http_LDFLAGS} -lws2_32"
rc_LDFLAGS="${rc_LDFLAGS} -lws2_32"
rc_LDFLAGS="${rc_LDFLAGS} -lws2_32"
;;
;;
x*nto*)
x*nto*)
SYS=nto
SYS=nto
x11_LDFLAGS="${x11_LDFLAGS} -lsocket"
x11_LDFLAGS="${x11_LDFLAGS} -lsocket"
xvideo_LDFLAGS="${xvideo_LDFLAGS} -lsocket"
xvideo_LDFLAGS="${xvideo_LDFLAGS} -lsocket"
;;
;;
xsolaris*)
xsolaris*)
SYS=solaris
SYS=solaris
;;
;;
xbeos)
xbeos)
SYS=beos
SYS=beos
save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${save_CFLAGS}"
vlc_LDFLAGS="${vlc_LDFLAGS} -lbe"
vlc_LDFLAGS="${vlc_LDFLAGS} -lbe"
plugins_LDFLAGS="${plugins_LDFLAGS} -nostart"
plugins_LDFLAGS="${plugins_LDFLAGS} -nostart"
beos_LDFLAGS="${beos_LDFLAGS} -lbe -lgame -lroot -ltracker -lstdc++.r4"
beos_LDFLAGS="${beos_LDFLAGS} -lbe -lgame -lroot -ltracker -lstdc++.r4"
ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind"
ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind"
;;
;;
x*)
x*)
SYS="${target_os}"
SYS="${target_os}"
;;
;;
esac
esac
dnl Flags for plugin compilation
dnl Flags for plugin compilation
if test "x${SYS}" = "xmingw32"
if test "x${SYS}" = "xmingw32"
then
then
plugins_CFLAGS="${plugins_CFLAGS} -fnative-struct"
plugins_CFLAGS="${plugins_CFLAGS} -fnative-struct"
else
else
plugins_CFLAGS="${plugins_CFLAGS} -fPIC"
plugins_CFLAGS="${plugins_CFLAGS} -fPIC"
plugins_LDFLAGS="${plugins_LDFLAGS} -fPIC"
plugins_LDFLAGS="${plugins_LDFLAGS} -fPIC"
fi
fi
dnl The -DSYS_FOO flag
dnl The -DSYS_FOO flag
...
@@ -141,17 +141,17 @@ dnl Check for system libs needed
...
@@ -141,17 +141,17 @@ dnl Check for system libs needed
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll strndup)
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll strndup)
AC_CHECK_FUNC(connect,,[
AC_CHECK_FUNC(connect,,[
AC_CHECK_LIB(socket,connect,
AC_CHECK_LIB(socket,connect,
ipv4_LDFLAGS="${ipv4_LDFLAGS} -lsocket"
ipv4_LDFLAGS="${ipv4_LDFLAGS} -lsocket"
vlc_LDFLAGS="${vlc_LDFLAGS} -lsocket"
vlc_LDFLAGS="${vlc_LDFLAGS} -lsocket"
)])
)])
AC_CHECK_FUNC(send,,[
AC_CHECK_FUNC(send,,[
AC_CHECK_LIB(socket,send,
AC_CHECK_LIB(socket,send,
http_LDFLAGS="${http_LDFLAGS} -lsocket"
http_LDFLAGS="${http_LDFLAGS} -lsocket"
)])
)])
AC_CHECK_FUNC(gethostbyname,,[
AC_CHECK_FUNC(gethostbyname,,[
AC_CHECK_LIB(nsl,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lnsl",[
AC_CHECK_LIB(nsl,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lnsl",[
AC_CHECK_LIB(bind,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind")])
AC_CHECK_LIB(bind,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind")])
])
])
have_nanosleep=0
have_nanosleep=0
AC_CHECK_FUNC(nanosleep,have_nanosleep=1,[
AC_CHECK_FUNC(nanosleep,have_nanosleep=1,[
...
@@ -162,42 +162,42 @@ AC_CHECK_FUNC(nanosleep,have_nanosleep=1,[
...
@@ -162,42 +162,42 @@ AC_CHECK_FUNC(nanosleep,have_nanosleep=1,[
)
)
])
])
if test x$have_nanosleep = x1; then
if test x$have_nanosleep = x1; then
AC_DEFINE(HAVE_NANOSLEEP, 1,
AC_DEFINE(HAVE_NANOSLEEP, 1,
Define if nanosleep is available.)
Define if nanosleep is available.)
fi
fi
# HP/UX port
# HP/UX port
AC_CHECK_LIB(rt,sem_init, [pthread_LDFLAGS="${pthread_LDFLAGS} -lrt"])
AC_CHECK_LIB(rt,sem_init, [pthread_LDFLAGS="${pthread_LDFLAGS} -lrt"])
AC_CHECK_FUNC(inet_aton,,[
AC_CHECK_FUNC(inet_aton,,[
AC_CHECK_LIB(resolv,inet_aton,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lresolv")
AC_CHECK_LIB(resolv,inet_aton,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lresolv")
])
])
AC_CHECK_FUNC(textdomain,,[
AC_CHECK_FUNC(textdomain,,[
AC_CHECK_LIB(intl,textdomain,
AC_CHECK_LIB(intl,textdomain,
vlc_LDFLAGS="${vlc_LDFLAGS} -lintl"
vlc_LDFLAGS="${vlc_LDFLAGS} -lintl"
plugins_LDFLAGS="${plugins_LDFLAGS} -lintl"
plugins_LDFLAGS="${plugins_LDFLAGS} -lintl"
)
)
])
])
dnl Check for getopt
dnl Check for getopt
NEED_GETOPT=0
NEED_GETOPT=0
AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
[ # FreeBSD has a gnugetopt library for this:
[ # FreeBSD has a gnugetopt library for this:
AC_CHECK_LIB([gnugetopt],[getopt_long],
AC_CHECK_LIB([gnugetopt],[getopt_long],
[AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) vlc_LDFLAGS="${vlc_LDFLAGS} -lgnugetopt"],
[AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) vlc_LDFLAGS="${vlc_LDFLAGS} -lgnugetopt"],
[NEED_GETOPT=1])])
[NEED_GETOPT=1])])
AC_TYPE_SIGNAL
AC_TYPE_SIGNAL
AC_CHECK_LIB(dl,dlopen,vlc_LDFLAGS="${vlc_LDFLAGS} -ldl")
AC_CHECK_LIB(dl,dlopen,vlc_LDFLAGS="${vlc_LDFLAGS} -ldl")
AC_CHECK_LIB(m,cos,
AC_CHECK_LIB(m,cos,
imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
filter_distort_LDFLAGS="${filter_distort_LDFLAGS} -lm")
filter_distort_LDFLAGS="${filter_distort_LDFLAGS} -lm")
AC_CHECK_LIB(m,pow,
AC_CHECK_LIB(m,pow,
ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lm"
ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lm"
imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
imdct3dn_LDFLAGS="${imdct3dn_LDFLAGS} -lm"
imdct3dn_LDFLAGS="${imdct3dn_LDFLAGS} -lm"
imdctsse_LDFLAGS="${imdctsse_LDFLAGS} -lm"
imdctsse_LDFLAGS="${imdctsse_LDFLAGS} -lm"
i420_rgb_LDFLAGS="${i420_rgb_LDFLAGS} -lm"
i420_rgb_LDFLAGS="${i420_rgb_LDFLAGS} -lm"
faad_LDFLAGS="${faad_LDFLAGS} -lm"
faad_LDFLAGS="${faad_LDFLAGS} -lm"
)
)
dnl Check for pthreads - borrowed from XMMS
dnl Check for pthreads - borrowed from XMMS
...
@@ -209,11 +209,11 @@ if test "x${THREAD_LIB}" = "xerror"; then
...
@@ -209,11 +209,11 @@ if test "x${THREAD_LIB}" = "xerror"; then
AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads ${pthread_LDFLAGS}")
AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads ${pthread_LDFLAGS}")
fi
fi
if test "x${THREAD_LIB}" = "xerror"; then
if test "x${THREAD_LIB}" = "xerror"; then
AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
fi
fi
if test "x${THREAD_LIB}" = "xerror"; then
if test "x${THREAD_LIB}" = "xerror"; then
AC_CHECK_FUNC(pthread_mutex_lock)
AC_CHECK_FUNC(pthread_mutex_lock)
THREAD_LIB=""
THREAD_LIB=""
fi
fi
dnl Check for cthreads under GNU/Hurd for instance
dnl Check for cthreads under GNU/Hurd for instance
...
@@ -221,14 +221,14 @@ AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
...
@@ -221,14 +221,14 @@ AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
dnl Check for misc headers
dnl Check for misc headers
AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
Define if <pthread.h> defines pthread_cond_t.)])
Define if <pthread.h> defines pthread_cond_t.)])
AC_EGREP_HEADER(pthread_once,pthread.h,[
AC_EGREP_HEADER(pthread_once,pthread.h,[
AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
Define if <pthread.h> defines pthread_once.)])
Define if <pthread.h> defines pthread_once.)])
AC_EGREP_HEADER(strncasecmp,strings.h,[
AC_EGREP_HEADER(strncasecmp,strings.h,[
AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
Define if <strings.h> defines strncasecmp.)])
Define if <strings.h> defines strncasecmp.)])
dnl Check for headers
dnl Check for headers
AC_CHECK_HEADERS(stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
AC_CHECK_HEADERS(stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
...
@@ -242,14 +242,14 @@ AC_HEADER_TIME
...
@@ -242,14 +242,14 @@ AC_HEADER_TIME
dnl Mac OS X and other OSes don't have declaration for nanosleep
dnl Mac OS X and other OSes don't have declaration for nanosleep
AC_EGREP_HEADER(nanosleep,time.h,[
AC_EGREP_HEADER(nanosleep,time.h,[
AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
Define if <time.h> defines nanosleep.)
Define if <time.h> defines nanosleep.)
])
])
dnl Make sure we have timespecs
dnl Make sure we have timespecs
AC_EGREP_HEADER(timespec,sys/time.h,[
AC_EGREP_HEADER(timespec,sys/time.h,[
AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
Define if <sys/time.h> defines struct timespec.)
Define if <sys/time.h> defines struct timespec.)
])
])
dnl Check for threads library
dnl Check for threads library
...
@@ -257,10 +257,10 @@ AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
...
@@ -257,10 +257,10 @@ AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
dnl Default X headers and libraries
dnl Default X headers and libraries
if test "x${x_includes}" = "xNONE"; then
if test "x${x_includes}" = "xNONE"; then
x_includes="/usr/X11R6/include"
x_includes="/usr/X11R6/include"
fi
fi
if test "x${x_libraries}" = "xNONE"; then
if test "x${x_libraries}" = "xNONE"; then
x_libraries="/usr/X11R6/lib"
x_libraries="/usr/X11R6/lib"
fi
fi
dnl Build the gtk_main plugin?
dnl Build the gtk_main plugin?
...
@@ -269,174 +269,174 @@ NEED_GTK_MAIN=no
...
@@ -269,174 +269,174 @@ NEED_GTK_MAIN=no
dnl Check for DPMS
dnl Check for DPMS
if test "x${SYS}" != "xmingw32"
if test "x${SYS}" != "xmingw32"
then
then
CPPFLAGS="${save_CPPFLAGS} -I${x_includes}"
CPPFLAGS="${save_CPPFLAGS} -I${x_includes}"
AC_CHECK_HEADERS(X11/extensions/dpms.h, [
AC_CHECK_HEADERS(X11/extensions/dpms.h, [
AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
Define if <X11/extensions/dpms.h> defines DPMSInfo.)
Define if <X11/extensions/dpms.h> defines DPMSInfo.)
])
])
])
])
CPPFLAGS="${save_CPPFLAGS}"
CPPFLAGS="${save_CPPFLAGS}"
fi
fi
dnl Check for ntohl, etc.
dnl Check for ntohl, etc.
AC_CACHE_CHECK([for ntohl in sys/param.h],
AC_CACHE_CHECK([for ntohl in sys/param.h],
[ac_cv_c_ntohl_sys_param_h],
[ac_cv_c_ntohl_sys_param_h],
[CFLAGS="${save_CFLAGS} -Wall -Werror"
[CFLAGS="${save_CFLAGS} -Wall -Werror"
AC_TRY_COMPILE([#include <sys/param.h>],
AC_TRY_COMPILE([#include <sys/param.h>],
[void foo() { int meuh; ntohl(meuh); }],
[void foo() { int meuh; ntohl(meuh); }],
ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
if test "x${ac_cv_c_ntohl_sys_param_h}" != "xno"; then
if test "x${ac_cv_c_ntohl_sys_param_h}" != "xno"; then
AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
fi
fi
dnl Check for inline function size limit
dnl Check for inline function size limit
AC_CACHE_CHECK([if \$CC accepts -finline-limit],
AC_CACHE_CHECK([if \$CC accepts -finline-limit],
[ac_cv_c_inline_limit],
[ac_cv_c_inline_limit],
[CFLAGS="${save_CFLAGS} -finline-limit-30000"
[CFLAGS="${save_CFLAGS} -finline-limit-30000"
AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
if test "x${ac_cv_c_inline_limit}" != "xno"; then
if test "x${ac_cv_c_inline_limit}" != "xno"; then
save_CFLAGS="${save_CFLAGS} -finline-limit-30000"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -finline-limit-30000"; CFLAGS="${save_CFLAGS}"
fi
fi
dnl Check for -W or -w flags
dnl Check for -W or -w flags
AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
[ac_cv_c_Wall_Winline],
[ac_cv_c_Wall_Winline],
[CFLAGS="-Wall -Winline ${save_CFLAGS}"
[CFLAGS="-Wall -Winline ${save_CFLAGS}"
AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
if test "x${ac_cv_c_Wall_Winline}" != "xno"; then
if test "x${ac_cv_c_Wall_Winline}" != "xno"; then
save_CFLAGS="-Wall -Winline ${save_CFLAGS}"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="-Wall -Winline ${save_CFLAGS}"; CFLAGS="${save_CFLAGS}"
else
else
AC_CACHE_CHECK([if \$CC accepts -wall -winline],
AC_CACHE_CHECK([if \$CC accepts -wall -winline],
[ac_cv_c_wall_winline],
[ac_cv_c_wall_winline],
[CFLAGS="-wall -winline ${save_CFLAGS}"
[CFLAGS="-wall -winline ${save_CFLAGS}"
AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
if test "x${ac_cv_c_wall_winline}" != "xno"; then
if test "x${ac_cv_c_wall_winline}" != "xno"; then
save_CFLAGS="-wall -winline ${save_CFLAGS}"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="-wall -winline ${save_CFLAGS}"; CFLAGS="${save_CFLAGS}"
fi
fi
fi
fi
dnl Check for -pipe
dnl Check for -pipe
AC_CACHE_CHECK([if \$CC accepts -pipe],
AC_CACHE_CHECK([if \$CC accepts -pipe],
[ac_cv_c_pipe],
[ac_cv_c_pipe],
[CFLAGS="${save_CFLAGS} -pipe"
[CFLAGS="${save_CFLAGS} -pipe"
AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
if test "x${ac_cv_c_pipe}" != "xno"; then
if test "x${ac_cv_c_pipe}" != "xno"; then
save_CFLAGS="${save_CFLAGS} -pipe"; CFLAGS="${save_CFLAGS}"
save_CFLAGS="${save_CFLAGS} -pipe"; CFLAGS="${save_CFLAGS}"
fi
fi
dnl Check for various optimization flags
dnl Check for various optimization flags
AC_CACHE_CHECK([if \$CC accepts -O3],
AC_CACHE_CHECK([if \$CC accepts -O3],
[ac_cv_c_o3],
[ac_cv_c_o3],
[CFLAGS="${save_CFLAGS} -O3"
[CFLAGS="${save_CFLAGS} -O3"
AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
if test "x${ac_cv_c_o3}" != "xno"; then
if test "x${ac_cv_c_o3}" != "xno"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
else
else
AC_CACHE_CHECK([if \$CC accepts -O2],
AC_CACHE_CHECK([if \$CC accepts -O2],
[ac_cv_c_o2],
[ac_cv_c_o2],
[CFLAGS="${save_CFLAGS} -O2"
[CFLAGS="${save_CFLAGS} -O2"
AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
if test "x${ac_cv_c_o2}" != "xno"; then
if test "x${ac_cv_c_o2}" != "xno"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
else
else
AC_CACHE_CHECK([if \$CC accepts -O],
AC_CACHE_CHECK([if \$CC accepts -O],
[ac_cv_c_o],
[ac_cv_c_o],
[CFLAGS="${save_CFLAGS} -O"
[CFLAGS="${save_CFLAGS} -O"
AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
if test "x${ac_cv_c_o}" != "xno"; then
if test "x${ac_cv_c_o}" != "xno"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
fi
fi
fi
fi
fi
fi
dnl Check for -ffast-math
dnl Check for -ffast-math
AC_CACHE_CHECK([if \$CC accepts -ffast-math],
AC_CACHE_CHECK([if \$CC accepts -ffast-math],
[ac_cv_c_fast_math],
[ac_cv_c_fast_math],
[CFLAGS="${save_CFLAGS} -ffast-math"
[CFLAGS="${save_CFLAGS} -ffast-math"
AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
if test "x${ac_cv_c_fast_math}" != "xno"; then
if test "x${ac_cv_c_fast_math}" != "xno"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
fi
fi
dnl Check for -funroll-loops
dnl Check for -funroll-loops
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
[ac_cv_c_unroll_loops],
[ac_cv_c_unroll_loops],
[CFLAGS="${save_CFLAGS} -funroll-loops"
[CFLAGS="${save_CFLAGS} -funroll-loops"
AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
if test "x${ac_cv_c_unroll_loops}" != "xno"; then
if test "x${ac_cv_c_unroll_loops}" != "xno"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
fi
fi
dnl Check for -fomit-frame-pointer
dnl Check for -fomit-frame-pointer
AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
[ac_cv_c_omit_frame_pointer],
[ac_cv_c_omit_frame_pointer],
[CFLAGS="${save_CFLAGS} -fomit-frame-pointer"
[CFLAGS="${save_CFLAGS} -fomit-frame-pointer"
AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
if test "x${ac_cv_c_omit_frame_pointer}" != "xno"; then
if test "x${ac_cv_c_omit_frame_pointer}" != "xno"; then
CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
# this plugin does not compile without -fomit-frame-pointer, damn gcc!
# this plugin does not compile without -fomit-frame-pointer, damn gcc!
i420_yuy2_mmx_CFLAGS="${i420_yuy2_mmx_CFLAGS} -fomit-frame-pointer"
i420_yuy2_mmx_CFLAGS="${i420_yuy2_mmx_CFLAGS} -fomit-frame-pointer"
fi
fi
dnl Check for Darwin plugin linking flags
dnl Check for Darwin plugin linking flags
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
[ac_cv_ld_darwin],
[ac_cv_ld_darwin],
[CFLAGS="${save_CFLAGS} -bundle -undefined error -lcc_dynamic"
[CFLAGS="${save_CFLAGS} -bundle -undefined error -lcc_dynamic"
AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
if test "x${ac_cv_ld_darwin}" != "xno"; then
if test "x${ac_cv_ld_darwin}" != "xno"; then
plugins_LDFLAGS="${plugins_LDFLAGS} -bundle -undefined error -lcc_dynamic"
plugins_LDFLAGS="${plugins_LDFLAGS} -bundle -undefined error -lcc_dynamic"
fi
fi
dnl Check for standard plugin linking flags
dnl Check for standard plugin linking flags
AC_CACHE_CHECK([if \$CC accepts -shared],
AC_CACHE_CHECK([if \$CC accepts -shared],
[ac_cv_ld_plugins],
[ac_cv_ld_plugins],
[CFLAGS="${save_CFLAGS} -shared"
[CFLAGS="${save_CFLAGS} -shared"
AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
if test "x${ac_cv_ld_plugins}" != "xno"; then
if test "x${ac_cv_ld_plugins}" != "xno"; then
plugins_LDFLAGS="${plugins_LDFLAGS} -shared"
plugins_LDFLAGS="${plugins_LDFLAGS} -shared"
fi
fi
dnl Check for variadic macros
dnl Check for variadic macros
AC_CACHE_CHECK([for variadic cpp macros],
AC_CACHE_CHECK([for variadic cpp macros],
[ac_cv_cpp_variadic_macros],
[ac_cv_cpp_variadic_macros],
[CFLAGS="${save_CFLAGS}"
[CFLAGS="${save_CFLAGS}"
AC_TRY_COMPILE(
AC_TRY_COMPILE(
[#include <stdio.h>
[#include <stdio.h>
#define a(b,c...) printf(b,##c)],
#define a(b,c...) printf(b,##c)],
[a("foo");a("%s","bar");a("%s%s","baz","quux");],
[a("foo");a("%s","bar");a("%s%s","baz","quux");],
ac_cv_cpp_variadic_macros=yes,
ac_cv_cpp_variadic_macros=yes,
ac_cv_cpp_variadic_macros=no)])
ac_cv_cpp_variadic_macros=no)])
if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
fi
fi
dnl Checks for __attribute__(aligned()) directive
dnl Checks for __attribute__(aligned()) directive
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
[ac_cv_c_attribute_aligned],
[ac_cv_c_attribute_aligned],
[ac_cv_c_attribute_aligned=0
[ac_cv_c_attribute_aligned=0
CFLAGS="${save_CFLAGS} -Werror"
CFLAGS="${save_CFLAGS} -Werror"
for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
AC_TRY_COMPILE([],
AC_TRY_COMPILE([],
[static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
[static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
[ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
[ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
done
done
CFLAGS="${save_CFLAGS}"])
CFLAGS="${save_CFLAGS}"])
if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
[${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
[${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
fi
fi
dnl
dnl
dnl Check the CPU
dnl Check the CPU
dnl
dnl
case "x${target_cpu}" in
case "x${target_cpu}" in
x)
x)
ARCH=unknown
ARCH=unknown
;;
;;
*)
*)
ARCH="${target_cpu}"
ARCH="${target_cpu}"
;;
;;
esac
esac
dnl
dnl
...
@@ -447,10 +447,9 @@ PLUGINS="${PLUGINS} misc/dummy/dummy misc/null"
...
@@ -447,10 +447,9 @@ PLUGINS="${PLUGINS} misc/dummy/dummy misc/null"
PLUGINS="${PLUGINS} control/rc/rc misc/logger/logger access/file misc/memcpy/memcpy"
PLUGINS="${PLUGINS} control/rc/rc misc/logger/logger access/file misc/memcpy/memcpy"
PLUGINS="${PLUGINS} demux/mpeg/es demux/mpeg/audio demux/mpeg/mpeg_system demux/mpeg/ps demux/mpeg/ts demux/a52sys"
PLUGINS="${PLUGINS} demux/mpeg/es demux/mpeg/audio demux/mpeg/mpeg_system demux/mpeg/ps demux/mpeg/ts demux/a52sys"
PLUGINS="${PLUGINS} codec/mpeg_video/idct/idct codec/mpeg_video/idct/idctclassic codec/mpeg_video/motion/motion codec/mpeg_video/mpeg_video codec/spudec/spudec codec/mpeg_audio/mpeg_audio"
PLUGINS="${PLUGINS} codec/mpeg_video/idct/idct codec/mpeg_video/idct/idctclassic codec/mpeg_video/motion/motion codec/mpeg_video/mpeg_video codec/spudec/spudec codec/mpeg_audio/mpeg_audio"
PLUGINS="${PLUGINS} codec/a52old/imdct/imdct codec/a52old/downmix/downmix codec/a52old/a52old codec/a52"
PLUGINS="${PLUGINS} codec/a52old/imdct/imdct codec/a52old/downmix/downmix codec/a52old/a52old codec/a52 codec/lpcm/lpcm"
#PLUGINS="${PLUGINS} codec/lpcm/lpcm"
PLUGINS="${PLUGINS} video_filter/deinterlace/deinterlace video_filter/invert video_filter/wall video_filter/transform video_filter/distort video_filter/clone video_filter/crop video_filter/motionblur"
PLUGINS="${PLUGINS} video_filter/deinterlace/deinterlace video_filter/invert video_filter/wall video_filter/transform video_filter/distort video_filter/clone video_filter/crop video_filter/motionblur"
PLUGINS="${PLUGINS} audio_filter/converter/float32tos16 audio_filter/converter/float32tos8 audio_filter/converter/float32tou16 audio_filter/converter/float32tou8 audio_filter/converter/a52tospdif audio_filter/converter/fixed32tofloat32 audio_filter/converter/fixed32tos16 audio_filter/converter/s16tofloat32"
PLUGINS="${PLUGINS} audio_filter/converter/float32tos16 audio_filter/converter/float32tos8 audio_filter/converter/float32tou16 audio_filter/converter/float32tou8 audio_filter/converter/a52tospdif audio_filter/converter/fixed32tofloat32 audio_filter/converter/fixed32tos16 audio_filter/converter/s16tofloat32
audio_filter/converter/s16tofloat32swab
"
PLUGINS="${PLUGINS} audio_filter/resampler/trivial audio_filter/resampler/ugly"
PLUGINS="${PLUGINS} audio_filter/resampler/trivial audio_filter/resampler/ugly"
PLUGINS="${PLUGINS} audio_filter/channel_mixer/trivial"
PLUGINS="${PLUGINS} audio_filter/channel_mixer/trivial"
PLUGINS="${PLUGINS} audio_mixer/float32 audio_mixer/trivial audio_mixer/spdif"
PLUGINS="${PLUGINS} audio_mixer/float32 audio_mixer/trivial audio_mixer/spdif"
...
...
modules/audio_filter/converter/s16tofloat32swab.c
0 → 100644
View file @
fd0bc419
/*****************************************************************************
* s16tofloat32.c : converter from signed 16 bits integer to float32
* with endianness change
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: s16tofloat32swab.c,v 1.1 2002/09/18 01:28:04 henri Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Henri Fallon <henri@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <errno.h>
#include <stdlib.h>
/* malloc(), free() */
#include <string.h>
#include <vlc/vlc.h>
#include "audio_output.h"
#include "aout_internal.h"
/*****************************************************************************
* Local prototypes
*****************************************************************************/
static
int
Create
(
vlc_object_t
*
);
static
void
DoWork
(
aout_instance_t
*
,
aout_filter_t
*
,
aout_buffer_t
*
,
aout_buffer_t
*
);
/*****************************************************************************
* Module descriptor
*****************************************************************************/
vlc_module_begin
();
set_description
(
_
(
"audio filter for s16->float32 with endianness conversion"
)
);
set_capability
(
"audio filter"
,
1
);
set_callbacks
(
Create
,
NULL
);
vlc_module_end
();
/*****************************************************************************
* Create: allocate trivial mixer
*****************************************************************************
* This function allocates and initializes a Crop vout method.
*****************************************************************************/
static
int
Create
(
vlc_object_t
*
p_this
)
{
aout_filter_t
*
p_filter
=
(
aout_filter_t
*
)
p_this
;
if
(
!
AOUT_FMTS_SIMILAR
(
&
p_filter
->
input
,
&
p_filter
->
output
)
)
{
return
-
1
;
}
if
(
(
p_filter
->
input
.
i_format
==
AOUT_FMT_S16_LE
||
p_filter
->
input
.
i_format
==
AOUT_FMT_S16_BE
)
&&
p_filter
->
output
.
i_format
==
AOUT_FMT_FLOAT32
&&
p_filter
->
input
.
i_format
!=
AOUT_FMT_S16_NE
)
{
p_filter
->
pf_do_work
=
DoWork
;
p_filter
->
b_in_place
=
VLC_TRUE
;
return
0
;
}
return
-
1
;
}
/*****************************************************************************
* DoWork: convert a buffer
*****************************************************************************/
static
void
DoWork
(
aout_instance_t
*
p_aout
,
aout_filter_t
*
p_filter
,
aout_buffer_t
*
p_in_buf
,
aout_buffer_t
*
p_out_buf
)
{
int
i
=
p_in_buf
->
i_nb_samples
*
p_filter
->
input
.
i_channels
;
/* We start from the end because b_in_place is true */
s16
*
p_in
=
(
s16
*
)
p_in_buf
->
p_buffer
+
i
-
1
;
float
*
p_out
=
(
float
*
)
p_out_buf
->
p_buffer
+
i
-
1
;
#ifdef HAVE_SWAB
s16
*
p_swabbed
=
malloc
(
i
*
sizeof
(
s16
)
);
swab
(
p_in_buf
->
p_buffer
,
p_swabbed
,
i
*
sizeof
(
s16
)
);
p_in
=
p_swabbed
+
i
-
1
;
#else
byte_t
temp
;
#endif
while
(
i
--
)
{
#ifndef HAVE_SWAB
temp
=
*
(
byte_t
*
)
p_in
;
*
(
byte_t
*
)
p_in
=
*
(
byte_t
*
)
p_in
+
1
;
*
(
byte_t
*
)
p_in
+
1
=
temp
;
#endif
*
p_out
=
(
float
)
*
p_in
/
32768
.
0
;
p_in
--
;
p_out
--
;
}
p_out_buf
->
i_nb_samples
=
p_in_buf
->
i_nb_samples
;
p_out_buf
->
i_nb_bytes
=
p_in_buf
->
i_nb_bytes
*
2
;
}
modules/codec/lpcm/lpcm.c
View file @
fd0bc419
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* lpcm.c: lpcm decoder module
* lpcm.c: lpcm decoder module
*****************************************************************************
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* Copyright (C) 1999-2001 VideoLAN
* $Id: lpcm.c,v 1.
3 2002/08/30 22:22:24 massiot
Exp $
* $Id: lpcm.c,v 1.
4 2002/09/18 01:28:05 henri
Exp $
*
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Authors: Samuel Hocevar <sam@zoy.org>
* Henri Fallon <henri@videolan.org>
* Henri Fallon <henri@videolan.org>
...
@@ -25,19 +25,19 @@
...
@@ -25,19 +25,19 @@
/*****************************************************************************
/*****************************************************************************
* Preamble
* Preamble
*****************************************************************************/
*****************************************************************************/
#include <string.h>
/* memcpy(), memset() */
#include <stdlib.h>
/* malloc(), free() */
#include <stdlib.h>
/* malloc(), free() */
#include <string.h>
/* memcpy(), memset() */
#include <vlc/vlc.h>
#include <vlc/vlc.h>
#include <vlc/aout.h>
#include <vlc/aout.h>
#include <vlc/decoder.h>
#include <vlc/decoder.h>
#include <input_ext-dec.h>
#ifdef HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
# include <unistd.h>
/* getpid() */
# include <unistd.h>
/* getpid() */
#endif
#endif
#include "lpcm.h"
#include "lpcm.h"
/*****************************************************************************
/*****************************************************************************
* Local prototypes
* Local prototypes
*****************************************************************************/
*****************************************************************************/
...
@@ -45,7 +45,7 @@ static int OpenDecoder ( vlc_object_t * );
...
@@ -45,7 +45,7 @@ static int OpenDecoder ( vlc_object_t * );
static
int
RunDecoder
(
decoder_fifo_t
*
);
static
int
RunDecoder
(
decoder_fifo_t
*
);
void
DecodeFrame
(
lpcmdec_thread_t
*
);
void
DecodeFrame
(
lpcmdec_thread_t
*
);
static
int
InitThread
(
lpcmdec_thread_t
*
);
//
static int InitThread ( lpcmdec_thread_t * );
static
void
EndThread
(
lpcmdec_thread_t
*
);
static
void
EndThread
(
lpcmdec_thread_t
*
);
/*****************************************************************************
/*****************************************************************************
...
@@ -95,10 +95,25 @@ static int RunDecoder( decoder_fifo_t * p_fifo )
...
@@ -95,10 +95,25 @@ static int RunDecoder( decoder_fifo_t * p_fifo )
*/
*/
p_lpcmdec
->
p_fifo
=
p_fifo
;
p_lpcmdec
->
p_fifo
=
p_fifo
;
if
(
InitThread
(
p_lpcmdec
)
)
/* Init the BitStream */
InitBitstream
(
&
p_lpcmdec
->
bit_stream
,
p_lpcmdec
->
p_fifo
,
NULL
,
NULL
);
/* FIXME : I suppose the number of channel ans sampling rate
* are someway in the headers */
p_lpcmdec
->
output_format
.
i_format
=
AOUT_FMT_S16_BE
;
p_lpcmdec
->
output_format
.
i_channels
=
2
;
p_lpcmdec
->
output_format
.
i_rate
=
48000
;
aout_DateInit
(
&
p_lpcmdec
->
end_date
,
48000
);
p_lpcmdec
->
p_aout_input
=
aout_InputNew
(
p_lpcmdec
->
p_fifo
,
&
p_lpcmdec
->
p_aout
,
&
p_lpcmdec
->
output_format
);
if
(
p_lpcmdec
->
p_aout_input
==
NULL
)
{
{
DecoderError
(
p_fifo
);
msg_Err
(
p_lpcmdec
->
p_fifo
,
"failed to create aout fifo"
);
free
(
p_lpcmdec
)
;
p_lpcmdec
->
p_fifo
->
b_error
=
1
;
return
(
-
1
);
return
(
-
1
);
}
}
...
@@ -120,67 +135,41 @@ static int RunDecoder( decoder_fifo_t * p_fifo )
...
@@ -120,67 +135,41 @@ static int RunDecoder( decoder_fifo_t * p_fifo )
return
(
0
);
return
(
0
);
}
}
/*****************************************************************************
* InitThread : initialize an lpcm decoder thread
*****************************************************************************/
static
int
InitThread
(
lpcmdec_thread_t
*
p_lpcmdec
)
{
/* Init the BitStream */
InitBitstream
(
&
p_lpcmdec
->
bit_stream
,
p_lpcmdec
->
p_fifo
,
NULL
,
NULL
);
/* Creating the audio output fifo */
p_lpcmdec
->
p_aout_fifo
=
aout_CreateFifo
(
p_lpcmdec
->
p_fifo
,
AOUT_FIFO_PCM
,
2
,
48000
,
LPCMDEC_FRAME_SIZE
/
2
,
NULL
);
if
(
p_lpcmdec
->
p_aout_fifo
==
NULL
)
{
return
(
-
1
);
}
return
(
0
);
}
/*****************************************************************************
/*****************************************************************************
* DecodeFrame: decodes a frame.
* DecodeFrame: decodes a frame.
*****************************************************************************/
*****************************************************************************/
void
DecodeFrame
(
lpcmdec_thread_t
*
p_lpcmdec
)
void
DecodeFrame
(
lpcmdec_thread_t
*
p_lpcmdec
)
{
{
byte_t
*
buffer
;
byte_t
buffer
[
LPCMDEC_FRAME_SIZE
]
;
#ifndef WORDS_BIGENDIAN
byte_t
*
p_temp
[
LPCMDEC_FRAME_SIZE
]
;
aout_buffer_t
*
p_aout_buffer
;
#endif
mtime_t
i_pts
;
vlc_bool_t
b_sync
;
vlc_bool_t
b_sync
;
int
i_loop
;
int
i_loop
;
CurrentPTS
(
&
p_lpcmdec
->
bit_stream
,
NextPTS
(
&
p_lpcmdec
->
bit_stream
,
&
i_pts
,
NULL
);
&
p_lpcmdec
->
p_aout_fifo
->
date
[
p_lpcmdec
->
p_aout_fifo
->
i_end_frame
],
NULL
);
if
(
i_pts
!=
0
&&
i_pts
!=
aout_DateGet
(
&
p_lpcmdec
->
end_date
)
)
if
(
!
p_lpcmdec
->
p_aout_fifo
->
date
[
p_lpcmdec
->
p_aout_fifo
->
i_end_frame
]
)
{
{
p_lpcmdec
->
p_aout_fifo
->
date
[
p_lpcmdec
->
p_aout_fifo
->
i_end_frame
]
=
aout_DateSet
(
&
p_lpcmdec
->
end_date
,
i_pts
);
LAST_MDATE
;
}
}
buffer
=
((
byte_t
*
)
p_lpcmdec
->
p_aout_fifo
->
buffer
)
+
(
p_lpcmdec
->
p_aout_fifo
->
i_end_frame
*
LPCMDEC_FRAME_SIZE
);
RemoveBits32
(
&
p_lpcmdec
->
bit_stream
);
#if 0
byte1 = GetBits(&p_lpcmdec->bit_stream, 8) ;
byte2 = GetBits(&p_lpcmdec->bit_stream, 8) ;
/* I only have 2 test streams. As far as I understand
p_aout_buffer
=
aout_BufferNew
(
p_lpcmdec
->
p_aout
,
* after the RemoveBits and the 2 GetBits, we should be exactly
p_lpcmdec
->
p_aout_input
,
* where we want : the sync word : 0x0180.
LPCMDEC_FRAME_SIZE
/
4
);
* If not, we go and find it. */
while( ( byte1 != 0x01 || byte2 != 0x80 ) && (!p_lpcmdec->p_fifo->b_die)
if
(
!
p_aout_buffer
)
&& (!p_lpcmdec->p_fifo->b_error) )
{
{
byte1 = byte2;
msg_Err
(
p_lpcmdec
->
p_fifo
,
"cannot get aout buffer"
);
byte2 = GetBits(&p_lpcmdec->bit_stream, 8);
p_lpcmdec
->
p_fifo
->
b_error
=
1
;
return
;
}
}
#else
p_aout_buffer
->
start_date
=
aout_DateGet
(
&
p_lpcmdec
->
end_date
);
p_aout_buffer
->
end_date
=
aout_DateIncrement
(
&
p_lpcmdec
->
end_date
,
LPCMDEC_FRAME_SIZE
/
4
);
b_sync
=
0
;
b_sync
=
0
;
while
(
(
!
p_lpcmdec
->
p_fifo
->
b_die
)
&&
while
(
(
!
p_lpcmdec
->
p_fifo
->
b_die
)
&&
(
!
p_lpcmdec
->
p_fifo
->
b_error
)
&&
(
!
p_lpcmdec
->
p_fifo
->
b_error
)
&&
...
@@ -191,33 +180,18 @@ void DecodeFrame( lpcmdec_thread_t * p_lpcmdec )
...
@@ -191,33 +180,18 @@ void DecodeFrame( lpcmdec_thread_t * p_lpcmdec )
(
GetBits
(
&
p_lpcmdec
->
bit_stream
,
8
)
!=
0x01
)
);
(
GetBits
(
&
p_lpcmdec
->
bit_stream
,
8
)
!=
0x01
)
);
b_sync
=
(
ShowBits
(
&
p_lpcmdec
->
bit_stream
,
8
)
==
0x80
);
b_sync
=
(
ShowBits
(
&
p_lpcmdec
->
bit_stream
,
8
)
==
0x80
);
}
}
RemoveBits
(
&
p_lpcmdec
->
bit_stream
,
8
);
RemoveBits
(
&
p_lpcmdec
->
bit_stream
,
8
);
#endif
#ifndef WORDS_BIGENDIAN
GetChunk
(
&
p_lpcmdec
->
bit_stream
,
p_aout_buffer
->
p_buffer
,
GetChunk
(
&
p_lpcmdec
->
bit_stream
,
p_temp
,
LPCMDEC_FRAME_SIZE
);
LPCMDEC_FRAME_SIZE
);
if
(
p_lpcmdec
->
p_fifo
->
b_die
||
p_lpcmdec
->
p_fifo
->
b_error
)
return
;
# ifdef HAVE_SWAB
swab
(
buffer
,
p_temp
,
LPCMDEC_FRAME_SIZE
);
# else
for
(
i_loop
=
0
;
i_loop
<
LPCMDEC_FRAME_SIZE
/
2
;
i_loop
++
)
{
buffer
[
2
*
i_loop
]
=
p_temp
[
2
*
i_loop
+
1
];
buffer
[
2
*
i_loop
+
1
]
=
p_temp
[
2
*
i_loop
];
}
# endif
#else
if
(
p_lpcmdec
->
p_fifo
->
b_die
||
p_lpcmdec
->
p_fifo
->
b_error
)
GetChunk
(
&
p_lpcmdec
->
bit_stream
,
buffer
,
LPCMDEC_FRAME_SIZE
);
return
;
if
(
p_lpcmdec
->
p_fifo
->
b_die
)
return
;
#endif
aout_BufferPlay
(
p_lpcmdec
->
p_aout
,
p_lpcmdec
->
p_aout_input
,
p_aout_buffer
);
vlc_mutex_lock
(
&
p_lpcmdec
->
p_aout_fifo
->
data_lock
);
p_lpcmdec
->
p_aout_fifo
->
i_end_frame
=
(
p_lpcmdec
->
p_aout_fifo
->
i_end_frame
+
1
)
&
AOUT_FIFO_SIZE
;
vlc_cond_signal
(
&
p_lpcmdec
->
p_aout_fifo
->
data_wait
);
vlc_mutex_unlock
(
&
p_lpcmdec
->
p_aout_fifo
->
data_lock
);
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -226,14 +200,10 @@ void DecodeFrame( lpcmdec_thread_t * p_lpcmdec )
...
@@ -226,14 +200,10 @@ void DecodeFrame( lpcmdec_thread_t * p_lpcmdec )
static
void
EndThread
(
lpcmdec_thread_t
*
p_lpcmdec
)
static
void
EndThread
(
lpcmdec_thread_t
*
p_lpcmdec
)
{
{
/* If the audio output fifo was created, we destroy it */
/* If the audio output fifo was created, we destroy it */
if
(
p_lpcmdec
->
p_aout_
fifo
!=
NULL
)
if
(
p_lpcmdec
->
p_aout_
input
)
{
{
aout_DestroyFifo
(
p_lpcmdec
->
p_aout_fifo
);
aout_InputDelete
(
p_lpcmdec
->
p_aout
,
p_lpcmdec
->
p_aout_input
);
/* Make sure the output thread leaves the NextFrame() function */
vlc_mutex_lock
(
&
(
p_lpcmdec
->
p_aout_fifo
->
data_lock
)
);
vlc_cond_signal
(
&
(
p_lpcmdec
->
p_aout_fifo
->
data_wait
)
);
vlc_mutex_unlock
(
&
(
p_lpcmdec
->
p_aout_fifo
->
data_lock
)
);
}
}
/* Destroy descriptor */
/* Destroy descriptor */
...
...
modules/codec/lpcm/lpcm.h
View file @
fd0bc419
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* lpcm.h : lpcm decoder module
* lpcm.h : lpcm decoder module
*****************************************************************************
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* Copyright (C) 1999, 2000 VideoLAN
* $Id: lpcm.h,v 1.
1 2002/08/04 17:23:42 sam
Exp $
* $Id: lpcm.h,v 1.
2 2002/09/18 01:28:05 henri
Exp $
*
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Authors: Samuel Hocevar <sam@zoy.org>
*
*
...
@@ -42,8 +42,11 @@ typedef struct lpcmdec_thread_s
...
@@ -42,8 +42,11 @@ typedef struct lpcmdec_thread_s
/*
/*
* Output properties
* Output properties
*/
*/
aout_fifo_t
*
p_aout_fifo
;
/* stores the decompressed audio frames */
aout_instance_t
*
p_aout
;
aout_input_t
*
p_aout_input
;
audio_sample_format_t
output_format
;
audio_date_t
end_date
;
/* The bit stream structure handles the PES stream at the bit level */
/* The bit stream structure handles the PES stream at the bit level */
bit_stream_t
bit_stream
;
bit_stream_t
bit_stream
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment