Commit 95a333bf authored by Sam Hocevar's avatar Sam Hocevar

  * Borrowed MPlayer's fast memcpy() routines. Best is autodetected, choose
    "--memcpy <whatever>" to choose one from c, mmx, mmxext or 3dn.
    Please test! Especially Athlon users.
  * Added versioned build-dep to libasound2-dev (Closes Debian bug #121057).
  * Updated Gtk/GNOME interfaces to use "udpstream" instead of "ts".
  * Unrolled ChangeLog.
parent c4535c4c
......@@ -4,6 +4,79 @@
HEAD
* Borrowed MPlayer's fast memcpy() routines. Best is autodetected, choose
"--memcpy <whatever>" to choose one from c, mmx, mmxext or 3dn.
* Added versioned build-dep to libasound2-dev (Closes Debian bug #121057).
* Updated Gtk/GNOME interfaces to use "udpstream" instead of "ts".
* More checks for GTK headers.
* Fixed a crash when pausing.
* Fixed numerous bugs in ES selection.
* Fixed stupid bug in vout_Manage. It sometimes called SetDSequenceMatrix
when there was no valid sequence.
* Hopeless fix for the input netlist corruption bug.
* Implemented simple BDirectWindow (DMA) support.
* DeleteDecoderConfig wasn't freeing (anymore) the packets left in the
decoder fifo. This bug was creating an io_vec starving on title change
when playing DVDs.
* Removed a bug in the Makefile that made the CVS-snapshots building fail.
* Added "#include <string.>" to include/threads.h.
* Removed the mutex the vout and intf thread (were supposed to use)
for syncronizing acces to the p_vout->p_sys structure.
* Added error checking in pthread wrapper; as a result, intf_msg.h must
now be included *before* threads.h.
* Changed all files to include intf_msg.h before threads.h; while I was
at it, I update the copyright notices.
* Removed the obsolete darwin plug-in.
* Fixed a deadlock (bug reported by marcari).
* Various (sometimes hopeless) fixes to try to improve xvideo stability.
* Documentation updates.
* Updated man page.
* dvd:<device>[@<raw device>] to avoid device namespace collision under
win32.
* Fixed a compilation issue under Win32.
* Fixed a potential packet corruption in the DVD input.
* Changed the protocol version for communication between vlc and vlcs
from 12 to 13 (due to change from ts:// to udpstream://)
* Big clean-up to allow compiling every module as plugins.
* Added bytes_swap.h to provide ntoh() and htol() on Win32. With this
change we don't have to link winsock2 with every plugin anymore. This
should also give us a slight speed increase.
* Added #define WIN32_LEAN_AND_MEAN in threads.h to speed-up compilation
on Win32.
* Modified ac_downmix_3dn and sse so they compile with the latest gcc for
Win32.
* Support for libdvdread.
* Added "Video" menu hint to debian/*menu (Closes Debian bug #121036).
* Major rewrite of the network layer. only supported syntax is:
udp[stream]:[//][serveraddr:[serverport]][@[bindaddr][:bindport]]
* Don`t use long long, use u64/s64 (int_types.h).
* Fixed a stale pointer in mpeg_vdec_Run().
* (Hopefully) fixed the network connect() bug under UNIX.
* aRts audio output courtesy of Emmanuel Blindauer <manu@agat.net>.
* Fix to the esd plugin when esd-config --cflags is nonempty.
* --channels puts gtk/gnome in multi-channel network mode.
* The network window of the interface reports the values of the environment
variables.
* Channels mode excludes vls configuration.
* The vlc does not try to bind vls.via.ecp.fr by default when you select
channels mode.
* Fixed MacOS X 10.1 network input, thanks to Mathias Kretschmer
<mathias@research.att.com>.
* Fixed a few crashes due to race conditions in the decoder spawning.
* Removed unused code here and there.
* Fixed a bug in altivec detection on MacOS X.
* It seems that the 'focus' bug under WinME is solved.
* Updated the INSTALL-win32.txt file.
* The ./configure script is more friendly for Win32 users.
* Moved warning message to debug message in spdif pass-through plugin.
* Changed a bit the wait time. It works better here, please test.
* The default file-translation mode was not being set under win32.
* Fixed heap corruption issues in ac3dec (thanks reno).
* Fixed a crash when using `--input dvd /dev/dvd' instead of `dvd:/dev/dvd'.
* configure should no longer assume AltiVec is supported when it actually
isn't with buggy compilers and/or pre-set $CFLAGS.
* Commited my little release-howto (only useful to core vlc developers).
* Closing Debian bug #119369 which was fixed a while ago.
* Decoder modularization.
0.2.91
......
......@@ -4,7 +4,10 @@
HEAD
* Nothing yet.
* Update for libdvdcss documentation.
* Reworked Keith Packard's raw device patch. The name of the raw device
is in the environment variable DVDCSS_RAW_DEVICE.
* Fixed a bug in libdvdcss: the key wasn't searched when it had to.
1.0.0
Mon, 12 Nov 2001 17:14:29 +0100
......
......@@ -34,6 +34,7 @@ PLUGINS_DIR := ac3_adec \
kde \
lpcm_adec \
macosx \
memcpy \
mga \
motion \
mpeg \
......@@ -78,6 +79,10 @@ PLUGINS_TARGETS := ac3_adec/ac3_adec \
kde/kde \
lpcm_adec/lpcm_adec \
macosx/macosx \
memcpy/memcpy \
memcpy/memcpymmx \
memcpy/memcpymmxext \
memcpy/memcpy3dn \
mga/mga \
motion/motion \
motion/motionmmx \
......
......@@ -2376,15 +2376,12 @@ else
#include <sys/types.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <stdlib.h>
#include <sys/stat.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
......@@ -2439,7 +2436,7 @@ main()
/*
* First, make a file with some known garbage in it.
*/
data = (char*)malloc(pagesize);
data = malloc(pagesize);
if (!data)
exit(1);
for (i = 0; i < pagesize; ++i)
......@@ -2460,7 +2457,7 @@ main()
fd = open("conftestmmap", O_RDWR);
if (fd < 0)
exit(1);
data2 = (char*)malloc(2 * pagesize);
data2 = malloc(2 * pagesize);
if (!data2)
exit(1);
data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
......@@ -2478,7 +2475,7 @@ main()
*/
for (i = 0; i < pagesize; ++i)
*(data2 + i) = *(data2 + i) + 1;
data3 = (char*)malloc(pagesize);
data3 = malloc(pagesize);
if (!data3)
exit(1);
if (read(fd, data3, pagesize) != pagesize)
......@@ -2492,7 +2489,7 @@ main()
}
EOF
if { (eval echo configure:2496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:2493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
......@@ -2515,12 +2512,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
echo "configure:2519: checking return type of signal handlers" >&5
echo "configure:2516: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2524 "configure"
#line 2521 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
......@@ -2537,7 +2534,7 @@ int main() {
int i;
; return 0; }
EOF
if { (eval echo configure:2541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:2538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
......@@ -2556,7 +2553,7 @@ EOF
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "configure:2560: checking for dlopen in -ldl" >&5
echo "configure:2557: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -2564,7 +2561,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2568 "configure"
#line 2565 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -2575,7 +2572,7 @@ int main() {
dlopen()
; return 0; }
EOF
if { (eval echo configure:2579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -2596,7 +2593,7 @@ else
fi
echo $ac_n "checking for pow in -lm""... $ac_c" 1>&6
echo "configure:2600: checking for pow in -lm" >&5
echo "configure:2597: checking for pow in -lm" >&5
ac_lib_var=`echo m'_'pow | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -2604,7 +2601,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2608 "configure"
#line 2605 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -2615,7 +2612,7 @@ int main() {
pow()
; return 0; }
EOF
if { (eval echo configure:2619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -2639,7 +2636,7 @@ fi
THREAD_LIB=error
if test "x${THREAD_LIB}" = xerror; then
echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6
echo "configure:2643: checking for pthread_attr_init in -lpthread" >&5
echo "configure:2640: checking for pthread_attr_init in -lpthread" >&5
ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -2647,7 +2644,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2651 "configure"
#line 2648 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -2658,7 +2655,7 @@ int main() {
pthread_attr_init()
; return 0; }
EOF
if { (eval echo configure:2662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -2681,7 +2678,7 @@ fi
fi
if test "x${THREAD_LIB}" = xerror; then
echo $ac_n "checking for pthread_attr_init in -lpthreads""... $ac_c" 1>&6
echo "configure:2685: checking for pthread_attr_init in -lpthreads" >&5
echo "configure:2682: checking for pthread_attr_init in -lpthreads" >&5
ac_lib_var=`echo pthreads'_'pthread_attr_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -2689,7 +2686,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpthreads $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2693 "configure"
#line 2690 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -2700,7 +2697,7 @@ int main() {
pthread_attr_init()
; return 0; }
EOF
if { (eval echo configure:2704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -2723,7 +2720,7 @@ fi
fi
if test "x${THREAD_LIB}" = xerror; then
echo $ac_n "checking for pthread_attr_init in -lc_r""... $ac_c" 1>&6
echo "configure:2727: checking for pthread_attr_init in -lc_r" >&5
echo "configure:2724: checking for pthread_attr_init in -lc_r" >&5
ac_lib_var=`echo c_r'_'pthread_attr_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -2731,7 +2728,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lc_r $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2735 "configure"
#line 2732 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -2742,7 +2739,7 @@ int main() {
pthread_attr_init()
; return 0; }
EOF
if { (eval echo configure:2746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -2765,12 +2762,12 @@ fi
fi
if test "x${THREAD_LIB}" = xerror; then
echo $ac_n "checking for pthread_attr_init""... $ac_c" 1>&6
echo "configure:2769: checking for pthread_attr_init" >&5
echo "configure:2766: checking for pthread_attr_init" >&5
if eval "test \"`echo '$''{'ac_cv_func_pthread_attr_init'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2774 "configure"
#line 2771 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char pthread_attr_init(); below. */
......@@ -2793,7 +2790,7 @@ pthread_attr_init();
; return 0; }
EOF
if { (eval echo configure:2797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_pthread_attr_init=yes"
else
......@@ -2816,7 +2813,7 @@ fi
fi
echo $ac_n "checking for cthread_fork in -lthreads""... $ac_c" 1>&6
echo "configure:2820: checking for cthread_fork in -lthreads" >&5
echo "configure:2817: checking for cthread_fork in -lthreads" >&5
ac_lib_var=`echo threads'_'cthread_fork | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -2824,7 +2821,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lthreads $LIBS"
cat > conftest.$ac_ext <<EOF
#line 2828 "configure"
#line 2825 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -2835,7 +2832,7 @@ int main() {
cthread_fork()
; return 0; }
EOF
if { (eval echo configure:2839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:2836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -2857,7 +2854,7 @@ fi
cat > conftest.$ac_ext <<EOF
#line 2861 "configure"
#line 2858 "configure"
#include "confdefs.h"
#include <pthread.h>
EOF
......@@ -2873,7 +2870,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
#line 2877 "configure"
#line 2874 "configure"
#include "confdefs.h"
#include <strings.h>
EOF
......@@ -2893,17 +2890,17 @@ for ac_hdr in stddef.h getopt.h strings.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:2897: checking for $ac_hdr" >&5
echo "configure:2894: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2902 "configure"
#line 2899 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -2933,17 +2930,17 @@ for ac_hdr in sys/sockio.h fcntl.h sys/time.h sys/times.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:2937: checking for $ac_hdr" >&5
echo "configure:2934: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2942 "configure"
#line 2939 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2947: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -2973,17 +2970,17 @@ for ac_hdr in sys/soundcard.h machine/soundcard.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:2977: checking for $ac_hdr" >&5
echo "configure:2974: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 2982 "configure"
#line 2979 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:2987: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:2984: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -3013,17 +3010,17 @@ for ac_hdr in dlfcn.h image.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3017: checking for $ac_hdr" >&5
echo "configure:3014: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3022 "configure"
#line 3019 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -3053,17 +3050,17 @@ for ac_hdr in arpa/inet.h net/if.h netinet/in.h sys/socket.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3057: checking for $ac_hdr" >&5
echo "configure:3054: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3062 "configure"
#line 3059 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3067: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3064: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -3093,17 +3090,17 @@ for ac_hdr in machine/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3097: checking for $ac_hdr" >&5
echo "configure:3094: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3102 "configure"
#line 3099 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3107: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -3134,17 +3131,17 @@ for ac_hdr in cthreads.h pthread.h kernel/scheduler.h kernel/OS.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3138: checking for $ac_hdr" >&5
echo "configure:3135: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3143 "configure"
#line 3140 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3148: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -3172,20 +3169,20 @@ done
echo $ac_n "checking for ntohl in sys/param.h""... $ac_c" 1>&6
echo "configure:3176: checking for ntohl in sys/param.h" >&5
echo "configure:3173: checking for ntohl in sys/param.h" >&5
if eval "test \"`echo '$''{'ac_cv_c_ntohl_sys_param_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
CFLAGS="${save_CFLAGS} -Wall -Werror"
cat > conftest.$ac_ext <<EOF
#line 3182 "configure"
#line 3179 "configure"
#include "confdefs.h"
#include <sys/param.h>
int main() {
void foo() { int meuh; ntohl(meuh); }
; return 0; }
EOF
if { (eval echo configure:3189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_ntohl_sys_param_h=yes
else
......@@ -3206,20 +3203,20 @@ EOF
fi
echo $ac_n "checking if \$CC accepts -finline-limit""... $ac_c" 1>&6
echo "configure:3210: checking if \$CC accepts -finline-limit" >&5
echo "configure:3207: checking if \$CC accepts -finline-limit" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline_limit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
CFLAGS="${save_CFLAGS} -finline-limit-30000"
cat > conftest.$ac_ext <<EOF
#line 3216 "configure"
#line 3213 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:3223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline_limit=yes
else
......@@ -3237,20 +3234,20 @@ if test x"$ac_cv_c_inline_limit" != x"no"; then
fi
echo $ac_n "checking if \$CC accepts -bundle -undefined error""... $ac_c" 1>&6
echo "configure:3241: checking if \$CC accepts -bundle -undefined error" >&5
echo "configure:3238: checking if \$CC accepts -bundle -undefined error" >&5
if eval "test \"`echo '$''{'ac_cv_ld_darwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
CFLAGS="${save_CFLAGS} -bundle -undefined error"
cat > conftest.$ac_ext <<EOF
#line 3247 "configure"
#line 3244 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:3254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3251: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_ld_darwin=yes
else
......@@ -3268,20 +3265,20 @@ if test x"$ac_cv_ld_darwin" != x"no"; then
fi
echo $ac_n "checking if \$CC accepts -shared""... $ac_c" 1>&6
echo "configure:3272: checking if \$CC accepts -shared" >&5
echo "configure:3269: checking if \$CC accepts -shared" >&5
if eval "test \"`echo '$''{'ac_cv_ld_plugins'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
CFLAGS="${save_CFLAGS} -shared"
cat > conftest.$ac_ext <<EOF
#line 3278 "configure"
#line 3275 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:3285: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3282: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_ld_plugins=yes
else
......@@ -3300,7 +3297,7 @@ fi
if test x"${SOFLAGS}" = x; then
echo $ac_n "checking for soname setting""... $ac_c" 1>&6
echo "configure:3304: checking for soname setting" >&5
echo "configure:3301: checking for soname setting" >&5
if eval "test \"`echo '$''{'ac_cv_ld_soname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -3309,14 +3306,14 @@ else
try_SOFLAGS="-Wl,-soname -Wl,"
LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
cat > conftest.$ac_ext <<EOF
#line 3313 "configure"
#line 3310 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:3320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_ld_soname="${try_SOFLAGS}"
else
......@@ -3328,14 +3325,14 @@ else
try_SOFLAGS="-Wl,-h -Wl,"
LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
cat > conftest.$ac_ext <<EOF
#line 3332 "configure"
#line 3329 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:3339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_ld_soname="${try_SOFLAGS}"
else
......@@ -3364,7 +3361,7 @@ have problems using libdvdcss.
fi
echo $ac_n "checking __attribute__ ((aligned ())) support""... $ac_c" 1>&6
echo "configure:3368: checking __attribute__ ((aligned ())) support" >&5
echo "configure:3365: checking __attribute__ ((aligned ())) support" >&5
if eval "test \"`echo '$''{'ac_cv_c_attribute_aligned'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -3372,14 +3369,14 @@ else
CFLAGS="${save_CFLAGS} -Werror"
for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
cat > conftest.$ac_ext <<EOF
#line 3376 "configure"
#line 3373 "configure"
#include "confdefs.h"
int main() {
static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;
; return 0; }
EOF
if { (eval echo configure:3383: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try
else
......@@ -3402,19 +3399,19 @@ CFLAGS="${save_CFLAGS}"
LDFLAGS="${save_LDFLAGS}"
echo $ac_n "checking for boolean_t in sys/types.h""... $ac_c" 1>&6
echo "configure:3406: checking for boolean_t in sys/types.h" >&5
echo "configure:3403: checking for boolean_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_c_boolean_t_sys_types_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3411 "configure"
#line 3408 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
boolean_t foo;
; return 0; }
EOF
if { (eval echo configure:3418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_boolean_t_sys_types_h=yes
else
......@@ -3435,19 +3432,19 @@ EOF
fi
echo $ac_n "checking for boolean_t in pthread.h""... $ac_c" 1>&6
echo "configure:3439: checking for boolean_t in pthread.h" >&5
echo "configure:3436: checking for boolean_t in pthread.h" >&5
if eval "test \"`echo '$''{'ac_cv_c_boolean_t_pthread_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3444 "configure"
#line 3441 "configure"
#include "confdefs.h"
#include <pthread.h>
int main() {
boolean_t foo;
; return 0; }
EOF
if { (eval echo configure:3451: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_boolean_t_pthread_h=yes
else
......@@ -3468,19 +3465,19 @@ EOF
fi
echo $ac_n "checking for boolean_t in cthreads.h""... $ac_c" 1>&6
echo "configure:3472: checking for boolean_t in cthreads.h" >&5
echo "configure:3469: checking for boolean_t in cthreads.h" >&5
if eval "test \"`echo '$''{'ac_cv_c_boolean_t_cthreads_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3477 "configure"
#line 3474 "configure"
#include "confdefs.h"
#include <cthreads.h>
int main() {
boolean_t foo;
; return 0; }
EOF
if { (eval echo configure:3484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_boolean_t_cthreads_h=yes
else
......@@ -3501,18 +3498,18 @@ EOF
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
echo "configure:3505: checking for working const" >&5
echo "configure:3502: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3510 "configure"
#line 3507 "configure"
#include "confdefs.h"
int main() {
/* Ultrix mips cc rejects this. */
typedef int charset[2]; const charset x = {0,0};
typedef int charset[2]; const charset x;
/* SunOS 4.1.1 cc rejects this. */
char const *const *ccp;
char **p;
......@@ -3555,7 +3552,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
if { (eval echo configure:3559: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
......@@ -3576,12 +3573,12 @@ EOF
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
echo "configure:3580: checking for ANSI C header files" >&5
echo "configure:3577: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3585 "configure"
#line 3582 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
......@@ -3589,7 +3586,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3593: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -3606,7 +3603,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 3610 "configure"
#line 3607 "configure"
#include "confdefs.h"
#include <string.h>
EOF
......@@ -3624,7 +3621,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 3628 "configure"
#line 3625 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
......@@ -3645,7 +3642,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
#line 3649 "configure"
#line 3646 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
......@@ -3656,7 +3653,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
if { (eval echo configure:3660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:3657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
......@@ -3680,12 +3677,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
echo "configure:3684: checking for size_t" >&5
echo "configure:3681: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3689 "configure"
#line 3686 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
......@@ -3713,12 +3710,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
echo "configure:3717: checking whether time.h and sys/time.h may both be included" >&5
echo "configure:3714: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3722 "configure"
#line 3719 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
......@@ -3727,7 +3724,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
if { (eval echo configure:3731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
......@@ -3751,29 +3748,29 @@ fi
ARCH=${target_cpu}
BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion imdct downmix mpeg_adec lpcm_adec ac3_adec mpeg_vdec"
BUILTINS="${BUILTINS} es ps ts memcpy yuv idct idctclassic motion imdct downmix mpeg_adec lpcm_adec ac3_adec mpeg_vdec"
PLUGINS="${PLUGINS} ac3_spdif spu_dec"
MMX_MODULES="yuvmmx idctmmx motionmmx"
MMXEXT_MODULES="idctmmxext motionmmxext"
THREEDNOW_MODULES="imdct3dn downmix3dn"
MMX_MODULES="memcpymmx yuvmmx idctmmx motionmmx"
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
SSE_MODULES="imdctsse downmixsse"
ALTIVEC_MODULES="idctaltivec motionaltivec"
echo $ac_n "checking if \$CC groks MMX inline assembly""... $ac_c" 1>&6
echo "configure:3765: checking if \$CC groks MMX inline assembly" >&5
echo "configure:3762: checking if \$CC groks MMX inline assembly" >&5
if eval "test \"`echo '$''{'ac_cv_mmx_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3770 "configure"
#line 3767 "configure"
#include "confdefs.h"
int main() {
void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));
; return 0; }
EOF
if { (eval echo configure:3777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mmx_inline=yes
else
......@@ -3791,19 +3788,19 @@ if test x"$ac_cv_mmx_inline" != x"no"; then
fi
echo $ac_n "checking if \$CC groks MMX EXT inline assembly""... $ac_c" 1>&6
echo "configure:3795: checking if \$CC groks MMX EXT inline assembly" >&5
echo "configure:3792: checking if \$CC groks MMX EXT inline assembly" >&5
if eval "test \"`echo '$''{'ac_cv_mmxext_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3800 "configure"
#line 3797 "configure"
#include "confdefs.h"
int main() {
void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));
; return 0; }
EOF
if { (eval echo configure:3807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mmxext_inline=yes
else
......@@ -3821,19 +3818,19 @@ if test x"$ac_cv_mmxext_inline" != x"no"; then
fi
echo $ac_n "checking if \$CC groks 3D Now! inline assembly""... $ac_c" 1>&6
echo "configure:3825: checking if \$CC groks 3D Now! inline assembly" >&5
echo "configure:3822: checking if \$CC groks 3D Now! inline assembly" >&5
if eval "test \"`echo '$''{'ac_cv_3dnow_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3830 "configure"
#line 3827 "configure"
#include "confdefs.h"
int main() {
void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));
; return 0; }
EOF
if { (eval echo configure:3837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3834: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_3dnow_inline=yes
else
......@@ -3848,26 +3845,26 @@ fi
echo "$ac_t""$ac_cv_3dnow_inline" 1>&6
if test x"$ac_cv_3dnow_inline" != x"no"; then
cat >> confdefs.h <<\EOF
#define HAVE_3DNOW 1
#define CAN_COMPILE_3DNOW 1
EOF
ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
fi
echo $ac_n "checking if \$CC groks SSE inline assembly""... $ac_c" 1>&6
echo "configure:3859: checking if \$CC groks SSE inline assembly" >&5
echo "configure:3856: checking if \$CC groks SSE inline assembly" >&5
if eval "test \"`echo '$''{'ac_cv_sse_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3864 "configure"
#line 3861 "configure"
#include "confdefs.h"
int main() {
void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));
; return 0; }
EOF
if { (eval echo configure:3871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sse_inline=yes
else
......@@ -3882,26 +3879,26 @@ fi
echo "$ac_t""$ac_cv_sse_inline" 1>&6
if test x"$ac_cv_sse_inline" != x"no"; then
cat >> confdefs.h <<\EOF
#define HAVE_SSE 1
#define CAN_COMPILE_SSE 1
EOF
ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
fi
echo $ac_n "checking if \$CC groks Altivec inline assembly""... $ac_c" 1>&6
echo "configure:3893: checking if \$CC groks Altivec inline assembly" >&5
echo "configure:3890: checking if \$CC groks Altivec inline assembly" >&5
if eval "test \"`echo '$''{'ac_cv_altivec_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3898 "configure"
#line 3895 "configure"
#include "confdefs.h"
int main() {
asm volatile("vperm 0,1,2,3");
; return 0; }
EOF
if { (eval echo configure:3905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_altivec_inline=yes
else
......@@ -3911,14 +3908,14 @@ else
save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -Wa,-m7400"
cat > conftest.$ac_ext <<EOF
#line 3915 "configure"
#line 3912 "configure"
#include "confdefs.h"
int main() {
asm volatile("vperm 0,1,2,3");
; return 0; }
EOF
if { (eval echo configure:3922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_altivec_inline=yes; CFLAGS_ALTIVEC="-Wa,-m7400"
else
......@@ -3937,14 +3934,14 @@ fi
echo "$ac_t""$ac_cv_altivec_inline" 1>&6
if test x"$ac_cv_altivec_inline" != x"no"; then
cat >> confdefs.h <<\EOF
#define HAVE_ALTIVEC 1
#define CAN_COMPILE_ALTIVEC 1
EOF
ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
fi
echo $ac_n "checking if \$CC groks Altivec C extensions""... $ac_c" 1>&6
echo "configure:3948: checking if \$CC groks Altivec C extensions" >&5
echo "configure:3945: checking if \$CC groks Altivec C extensions" >&5
if eval "test \"`echo '$''{'ac_cv_c_altivec'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -3952,14 +3949,14 @@ else
CFLAGS="$CFLAGS -faltivec"
# Darwin test
cat > conftest.$ac_ext <<EOF
#line 3956 "configure"
#line 3953 "configure"
#include "confdefs.h"
int main() {
vec_mtvscr((vector unsigned int)(0));
; return 0; }
EOF
if { (eval echo configure:3963: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_altivec=-faltivec
else
......@@ -3970,14 +3967,14 @@ else
# Linux/PPC test
CFLAGS="$save_CFLAGS $CFLAGS_ALTIVEC -fvec"
cat > conftest.$ac_ext <<EOF
#line 3974 "configure"
#line 3971 "configure"
#include "confdefs.h"
int main() {
vec_mtvscr((vector unsigned int)(0));
; return 0; }
EOF
if { (eval echo configure:3981: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:3978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_altivec="-fvec"
else
......@@ -3997,7 +3994,7 @@ fi
echo "$ac_t""$ac_cv_c_altivec" 1>&6
if test x"$ac_cv_c_altivec" != x"no"; then
cat >> confdefs.h <<\EOF
#define HAVE_C_ALTIVEC 1
#define CAN_COMPILE_C_ALTIVEC 1
EOF
CFLAGS_ALTIVEC="$CFLAGS_ALTIVEC $ac_cv_c_altivec"
......@@ -4005,21 +4002,21 @@ EOF
fi
echo $ac_n "checking if linker needs -framework vecLib""... $ac_c" 1>&6
echo "configure:4009: checking if linker needs -framework vecLib" >&5
echo "configure:4006: checking if linker needs -framework vecLib" >&5
if eval "test \"`echo '$''{'ac_cv_ld_altivec'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -framework vecLib"
cat > conftest.$ac_ext <<EOF
#line 4016 "configure"
#line 4013 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
if { (eval echo configure:4023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_ld_altivec=yes
else
......@@ -4060,7 +4057,7 @@ if test $SYS = mingw32; then
# Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
set dummy ${ac_tool_prefix}windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4064: checking for $ac_word" >&5
echo "configure:4061: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -4092,7 +4089,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4096: checking for $ac_word" >&5
echo "configure:4093: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -4135,17 +4132,17 @@ for ac_hdr in winioctl.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4139: checking for $ac_hdr" >&5
echo "configure:4136: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4144 "configure"
#line 4141 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -4178,17 +4175,17 @@ for ac_hdr in sys/ioctl.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4182: checking for $ac_hdr" >&5
echo "configure:4179: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4187 "configure"
#line 4184 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -4214,17 +4211,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4218: checking for $ac_hdr" >&5
echo "configure:4215: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4223 "configure"
#line 4220 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4228: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -4254,7 +4251,7 @@ done
LINUX_DVD_STRUCT=0
OPENBSD_DVD_STRUCT=0
cat > conftest.$ac_ext <<EOF
#line 4258 "configure"
#line 4255 "configure"
#include "confdefs.h"
#include <sys/cdio.h>
EOF
......@@ -4267,7 +4264,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
EOF
cat > conftest.$ac_ext <<EOF
#line 4271 "configure"
#line 4268 "configure"
#include "confdefs.h"
#include <sys/cdio.h>
EOF
......@@ -4287,7 +4284,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
#line 4291 "configure"
#line 4288 "configure"
#include "confdefs.h"
#include <sys/dvdio.h>
EOF
......@@ -4300,7 +4297,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
EOF
cat > conftest.$ac_ext <<EOF
#line 4304 "configure"
#line 4301 "configure"
#include "confdefs.h"
#include <sys/dvdio.h>
EOF
......@@ -4320,7 +4317,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
#line 4324 "configure"
#line 4321 "configure"
#include "confdefs.h"
#include <linux/cdrom.h>
EOF
......@@ -4339,7 +4336,7 @@ rm -f conftest*
NEED_BSDI_LIBDVD=0
cat > conftest.$ac_ext <<EOF
#line 4343 "configure"
#line 4340 "configure"
#include "confdefs.h"
#include <dvd.h>
EOF
......@@ -4361,17 +4358,17 @@ else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4365: checking for $ac_hdr" >&5
echo "configure:4362: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4370 "configure"
#line 4367 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4372: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -4411,17 +4408,17 @@ rm -f conftest*
ac_safe=`echo "sys/scsi/scsi_types.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/scsi/scsi_types.h""... $ac_c" 1>&6
echo "configure:4415: checking for sys/scsi/scsi_types.h" >&5
echo "configure:4412: checking for sys/scsi/scsi_types.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4420 "configure"
#line 4417 "configure"
#include "confdefs.h"
#include <sys/scsi/scsi_types.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4425: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4422: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -4440,17 +4437,17 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
ac_safe=`echo "sys/scsi/impl/uscsi.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/scsi/impl/uscsi.h""... $ac_c" 1>&6
echo "configure:4444: checking for sys/scsi/impl/uscsi.h" >&5
echo "configure:4441: checking for sys/scsi/impl/uscsi.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4449 "configure"
#line 4446 "configure"
#include "confdefs.h"
#include <sys/scsi/impl/uscsi.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -4605,7 +4602,7 @@ if test "${enable_pth+set}" = set; then
enableval="$enable_pth"
if test x$enableval = xyes; then
echo $ac_n "checking for pth_init in -lpth""... $ac_c" 1>&6
echo "configure:4609: checking for pth_init in -lpth" >&5
echo "configure:4606: checking for pth_init in -lpth" >&5
ac_lib_var=`echo pth'_'pth_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -4613,7 +4610,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpth $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4617 "configure"
#line 4614 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
......@@ -4624,7 +4621,7 @@ int main() {
pth_init()
; return 0; }
EOF
if { (eval echo configure:4628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......@@ -4652,7 +4649,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
#line 4656 "configure"
#line 4653 "configure"
#include "confdefs.h"
#include <pth.h>
EOF
......@@ -4773,7 +4770,7 @@ fi
if test x$enable_vcd != xno
then
cat > conftest.$ac_ext <<EOF
#line 4777 "configure"
#line 4774 "configure"
#include "confdefs.h"
#include <linux/cdrom.h>
EOF
......@@ -4861,7 +4858,7 @@ if test "${enable_esd+set}" = set; then
# Extract the first word of "esd-config", so it can be a program name with args.
set dummy esd-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4865: checking for $ac_word" >&5
echo "configure:4862: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_ESD_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -4912,7 +4909,7 @@ if test "${enable_arts+set}" = set; then
# Extract the first word of "artsc-config", so it can be a program name with args.
set dummy artsc-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4916: checking for $ac_word" >&5
echo "configure:4913: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_ARTS_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -4969,17 +4966,17 @@ else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4973: checking for $ac_hdr" >&5
echo "configure:4970: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4978 "configure"
#line 4975 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4983: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5023,17 +5020,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5027: checking for $ac_hdr" >&5
echo "configure:5024: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5032 "configure"
#line 5029 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5037: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5034: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5111,7 +5108,7 @@ fi
# Extract the first word of "sdl12-config", so it can be a program name with args.
set dummy sdl12-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5115: checking for $ac_word" >&5
echo "configure:5112: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_SDL12_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -5151,7 +5148,7 @@ fi
# Extract the first word of "sdl11-config", so it can be a program name with args.
set dummy sdl11-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5155: checking for $ac_word" >&5
echo "configure:5152: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_SDL11_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -5192,7 +5189,7 @@ fi
# Extract the first word of "sdl-config", so it can be a program name with args.
set dummy sdl-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5196: checking for $ac_word" >&5
echo "configure:5193: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_SDL_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -5238,17 +5235,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5242: checking for $ac_hdr" >&5
echo "configure:5239: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5247 "configure"
#line 5244 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5318,17 +5315,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5322: checking for $ac_hdr" >&5
echo "configure:5319: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5327 "configure"
#line 5324 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5332: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5357,7 +5354,7 @@ done
else
echo $ac_n "checking for directX headers in ${withval}""... $ac_c" 1>&6
echo "configure:5361: checking for directX headers in ${withval}" >&5
echo "configure:5358: checking for directX headers in ${withval}" >&5
if test -f ${withval}/include/directx.h
then
PLUGINS="${PLUGINS} directx"
......@@ -5440,7 +5437,7 @@ if test "${enable_gnome+set}" = set; then
# Extract the first word of "gnome-config", so it can be a program name with args.
set dummy gnome-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5444: checking for $ac_word" >&5
echo "configure:5441: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GNOME_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -5485,17 +5482,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5489: checking for $ac_hdr" >&5
echo "configure:5486: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5494 "configure"
#line 5491 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5496: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5555,7 +5552,7 @@ fi
# Extract the first word of "gtk-config", so it can be a program name with args.
set dummy gtk-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:5559: checking for $ac_word" >&5
echo "configure:5556: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
......@@ -5600,17 +5597,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5604: checking for $ac_hdr" >&5
echo "configure:5601: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5609 "configure"
#line 5606 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5662,17 +5659,17 @@ if test x$enable_x11 != xno &&
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5666: checking for $ac_hdr" >&5
echo "configure:5663: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5671 "configure"
#line 5668 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5725,17 +5722,17 @@ if test x$enable_xvideo != xno &&
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:5729: checking for $ac_hdr" >&5
echo "configure:5726: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5734 "configure"
#line 5731 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5739: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5773,19 +5770,19 @@ if test "${enable_alsa+set}" = set; then
enableval="$enable_alsa"
if test x$enable_alsa = xyes
then
ac_safe=`echo "sys/asoundlib.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/asoundlib.h""... $ac_c" 1>&6
echo "configure:5779: checking for sys/asoundlib.h" >&5
ac_safe=`echo "alsa/asoundlib.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for alsa/asoundlib.h""... $ac_c" 1>&6
echo "configure:5776: checking for alsa/asoundlib.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5784 "configure"
#line 5781 "configure"
#include "confdefs.h"
#include <sys/asoundlib.h>
#include <alsa/asoundlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
......@@ -5802,7 +5799,7 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for main in -lasound""... $ac_c" 1>&6
echo "configure:5806: checking for main in -lasound" >&5
echo "configure:5803: checking for main in -lasound" >&5
ac_lib_var=`echo asound'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
......@@ -5810,14 +5807,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lasound $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5814 "configure"
#line 5811 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
if { (eval echo configure:5821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
......
......@@ -295,15 +295,15 @@ ARCH=${target_cpu}
dnl
dnl default modules
dnl
BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion imdct downmix mpeg_adec lpcm_adec ac3_adec mpeg_vdec"
BUILTINS="${BUILTINS} es ps ts memcpy yuv idct idctclassic motion imdct downmix mpeg_adec lpcm_adec ac3_adec mpeg_vdec"
PLUGINS="${PLUGINS} ac3_spdif spu_dec"
dnl
dnl Accelerated modules
dnl
MMX_MODULES="yuvmmx idctmmx motionmmx"
MMXEXT_MODULES="idctmmxext motionmmxext"
THREEDNOW_MODULES="imdct3dn downmix3dn"
MMX_MODULES="memcpymmx yuvmmx idctmmx motionmmx"
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
SSE_MODULES="imdctsse downmixsse"
ALTIVEC_MODULES="idctaltivec motionaltivec"
......@@ -328,7 +328,7 @@ AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
[AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
if test x"$ac_cv_3dnow_inline" != x"no"; then
AC_DEFINE(HAVE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
fi
......@@ -337,7 +337,7 @@ AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
[AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
if test x"$ac_cv_sse_inline" != x"no"; then
AC_DEFINE(HAVE_SSE, 1, Define if \$CC groks SSE inline assembly.)
AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
fi
......@@ -353,7 +353,7 @@ AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
CFLAGS=$save_CFLAGS
])])
if test x"$ac_cv_altivec_inline" != x"no"; then
AC_DEFINE(HAVE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
fi
......@@ -372,7 +372,7 @@ AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
CFLAGS=$save_CFLAGS
])
if test x"$ac_cv_c_altivec" != x"no"; then
AC_DEFINE(HAVE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
CFLAGS_ALTIVEC="$CFLAGS_ALTIVEC $ac_cv_c_altivec"
ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
fi
......@@ -1129,7 +1129,7 @@ AC_ARG_ENABLE(alsa,
(default disabled)],
[if test x$enable_alsa = xyes
then
AC_CHECK_HEADER(sys/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
if test x$have_alsa = xtrue
then
PLUGINS="${PLUGINS} alsa"
......
vlc (0.2.91-2) unstable; urgency=low
* Added versioned build-dep to libasound2-dev (Closes: #121057).
* Added "Video" menu hints (Closes: #121036).
-- Samuel Hocevar <sam@zoy.org> Sun, 25 Nov 2001 02:25:34 +0100
......
......@@ -2,7 +2,7 @@ Source: vlc
Section: graphics
Priority: optional
Maintainer: Samuel Hocevar <sam@zoy.org>
Build-Depends: debhelper (>=2.2.0), xlibs-dev, libgnome-dev, libggi2-dev, libglide2-dev [i386], libesd0-dev, libsdl1.2-dev, libqt-dev, libasound2-dev [alpha i386 ia64 m68k powerpc]
Build-Depends: debhelper (>=2.2.0), xlibs-dev, libgnome-dev, libggi2-dev, libglide2-dev [i386], libesd0-dev, libsdl1.2-dev, libqt-dev, libasound2-dev [alpha i386 ia64 m68k powerpc] (>=0.9.0beta7)
Standards-Version: 3.0.1
Package: vlc
......
usr/lib
usr/share/doc/libdvdcss0
usr/share/doc/libdvdcss1
......@@ -94,8 +94,7 @@ install: build
# libdvdcss start
mv debian/vlc/usr/include/videolan/dvdcss.h \
debian/libdvdcss$(major)-dev/usr/include/videolan
rmdir debian/vlc/usr/include/videolan
rmdir debian/vlc/usr/include
rm -Rf debian/vlc/usr/include
mv debian/vlc/usr/lib/*.a debian/libdvdcss$(major)-dev/usr/lib
mv debian/vlc/usr/lib/*.so debian/libdvdcss$(major)-dev/usr/lib
mv debian/vlc/usr/lib/*.so.* debian/libdvdcss$(major)/usr/lib
......
......@@ -27,8 +27,8 @@ The input thread spawns the appropriate decoder modules from <filename>
src/input/input_dec.c</filename>. The <function>Dec_CreateThread</funcion>
function selects the more accurate decoder module. Each decoder module
looks at decoder_config.i_type and returns a score [ see the modules
section ]. It then launches <function> module.pf_RunThread()</function>,
with an <type>decoder_config_t</type>, described in <filename>
section ]. It then launches <function> module.pf_run()</function>,
with a <type>decoder_config_t</type>, described in <filename>
include/input_ext-dec.h</filename>.
</para>
......
......@@ -66,6 +66,9 @@ Set
.B vlc
verbosity. This command is cumulative, you can use "-vv" or "-vvvv" for increased verbosity.
.TP
.B \-\-memcpy <module>
Specify a module for performing heavy memory copies: "memcpy", "sse" for instance.
.TP
.B \-\-noaudio
Disable audio output.
.TP
......
......@@ -3,7 +3,7 @@
* Collection of useful common types and macros definitions
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: common.h,v 1.51 2001/11/28 15:08:04 massiot Exp $
* $Id: common.h,v 1.52 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@via.ecp.fr>
* Vincent Seguin <seguin@via.ecp.fr>
......@@ -237,6 +237,8 @@ struct decoder_fifo_s;
#define I64C(x) x##LL
/* Pointer to the fast memcpy plugin function */
extern void* ( * pf_fast_memcpy ) ( void *, const void *, size_t );
/* The win32 specific stuff was getting really big so it has been moved */
#if defined( WIN32 )
......@@ -282,6 +284,8 @@ typedef struct module_symbols_s
void ( * intf_PlaylistJumpto ) ( struct playlist_s *, int );
void ( * intf_UrlDecode ) ( char * );
void* ( * pf_fast_memcpy ) ( void *, const void *, size_t );
void ( * msleep ) ( mtime_t );
mtime_t ( * mdate ) ( void );
......
......@@ -90,6 +90,9 @@
* outputting an error message (in second) */
#define THREAD_COND_TIMEOUT 5
/* Environment variable containing the memcpy method */
#define MEMCPY_METHOD_VAR "vlc_memcpy"
/*
* Decoders FIFO configuration
*/
......@@ -326,16 +329,11 @@
/* Default dimensions for display window - these dimensions are enough for the
* standard width and height broadcasted MPEG-2 streams or DVDs */
#define VOUT_WIDTH_VAR "vlc_width"
#define VOUT_HEIGHT_VAR "vlc_height"
#define VOUT_WIDTH_DEFAULT 720
#define VOUT_HEIGHT_VAR "vlc_height"
#define VOUT_HEIGHT_DEFAULT 576
#define VOUT_DEPTH_VAR "vlc_depth"
#define VOUT_DEPTH_DEFAULT 15
#define VOUT_FULLSCREEN_VAR "vlc_fullscreen"
#define VOUT_FULLSCREEN_DEFAULT 0
#define VOUT_FULLSCREEN_DEPTH_VAR "vlc_fullscreen_depth"
#define VOUT_FULLSCREEN_DEPTH_DEFAULT 32
......
......@@ -97,9 +97,15 @@
/* Define if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define if you have the <gdk/gdk.h> header file. */
#undef HAVE_GDK_GDK_H
/* Define if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
/* Define if you have the <glib.h> header file. */
#undef HAVE_GLIB_H
/* Define if you have the <gnome.h> header file. */
#undef HAVE_GNOME_H
......@@ -203,16 +209,16 @@
#undef BOOLEAN_T_IN_CTHREADS_H
/* Define if $CC groks 3D Now! inline assembly. */
#undef HAVE_3DNOW
#undef CAN_COMPILE_3DNOW
/* Define if $CC groks SSE inline assembly. */
#undef HAVE_SSE
#undef CAN_COMPILE_SSE
/* Define if $CC groks ALTIVEC inline assembly. */
#undef HAVE_ALTIVEC
#undef CAN_COMPILE_ALTIVEC
/* Define if your compiler groks C altivec extensions. */
#undef HAVE_C_ALTIVEC
#undef CAN_COMPILE_C_ALTIVEC
/* Define if <sys/cdio.h> defines dvd_struct. */
#undef DVD_STRUCT_IN_SYS_CDIO_H
......
......@@ -2,7 +2,7 @@
* input_ext-dec.h: structures exported to the VideoLAN decoders
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_ext-dec.h,v 1.39 2001/11/15 17:39:12 sam Exp $
* $Id: input_ext-dec.h,v 1.40 2001/12/03 16:18:37 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Michel Kaempf <maxx@via.ecp.fr>
......@@ -479,14 +479,14 @@ static __inline__ void GetChunk( bit_stream_t * p_bit_stream,
if( (i_available = p_bit_stream->p_end - p_bit_stream->p_byte)
>= i_buf_len )
{
memcpy( p_buffer, p_bit_stream->p_byte, i_buf_len );
pf_fast_memcpy( p_buffer, p_bit_stream->p_byte, i_buf_len );
p_bit_stream->p_byte += i_buf_len;
}
else
{
do
{
memcpy( p_buffer, p_bit_stream->p_byte, i_available );
pf_fast_memcpy( p_buffer, p_bit_stream->p_byte, i_available );
p_bit_stream->p_byte = p_bit_stream->p_end;
p_buffer += i_available;
i_buf_len -= i_available;
......@@ -497,7 +497,7 @@ static __inline__ void GetChunk( bit_stream_t * p_bit_stream,
if( i_buf_len )
{
memcpy( p_buffer, p_bit_stream->p_byte, i_buf_len );
pf_fast_memcpy( p_buffer, p_bit_stream->p_byte, i_buf_len );
p_bit_stream->p_byte += i_buf_len;
}
}
......
......@@ -3,7 +3,7 @@
* Declaration and extern access to global program object.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: main.h,v 1.22 2001/10/01 16:18:48 massiot Exp $
* $Id: main.h,v 1.23 2001/12/03 16:18:37 sam Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
......@@ -50,6 +50,9 @@ typedef struct main_s
boolean_t b_video; /* is video output allowed ? */
boolean_t b_ac3;
/* memcpy plugin used */
struct module_s * p_memcpy_module;
/* Unique threads */
p_intf_thread_t p_intf; /* main interface thread */
......
......@@ -2,7 +2,7 @@
* modules.h : Module management functions.
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: modules.h,v 1.32 2001/11/13 18:10:38 sam Exp $
* $Id: modules.h,v 1.33 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
......@@ -67,6 +67,7 @@ typedef void * module_handle_t;
#define MODULE_CAPABILITY_YUV 1 << 9 /* YUV colorspace conversion */
#define MODULE_CAPABILITY_IMDCT 1 << 10 /* IMDCT transformation */
#define MODULE_CAPABILITY_DOWNMIX 1 << 11 /* AC3 downmix */
#define MODULE_CAPABILITY_MEMCPY 1 << 12 /* memcpy */
/* FIXME: kludge */
struct input_area_s;
......@@ -219,9 +220,15 @@ typedef struct function_list_s
/* Decoder plugins */
struct
{
int ( * pf_RunThread ) ( struct decoder_config_s * p_config );
int ( * pf_run ) ( struct decoder_config_s * p_config );
} dec;
/* memcpy plugins */
struct
{
void* ( * pf_fast_memcpy ) ( void *, const void *, size_t );
} memcpy;
} functions;
} function_list_t;
......@@ -241,6 +248,7 @@ typedef struct module_functions_s
function_list_t yuv;
function_list_t imdct;
function_list_t downmix;
function_list_t memcpy;
} module_functions_t;
......
......@@ -45,6 +45,7 @@
(p_symbols)->intf_PlaylistDestroy = intf_PlaylistDestroy; \
(p_symbols)->intf_PlaylistJumpto = intf_PlaylistJumpto; \
(p_symbols)->intf_UrlDecode = intf_UrlDecode; \
(p_symbols)->pf_fast_memcpy = pf_fast_memcpy; \
(p_symbols)->msleep = msleep; \
(p_symbols)->mdate = mdate; \
(p_symbols)->network_ChannelCreate = network_ChannelCreate; \
......@@ -149,6 +150,8 @@
# define intf_PlaylistJumpto(a,b) p_symbols->intf_PlaylistJumpto(a,b)
# define intf_UrlDecode(a) p_symbols->intf_UrlDecode(a)
# define pf_fast_memcpy p_symbols->pf_fast_memcpy
# define msleep(a) p_symbols->msleep(a)
# define mdate() p_symbols->mdate()
......
......@@ -2,7 +2,7 @@
* ac3_adec.c: ac3 decoder module main file
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: ac3_adec.c,v 1.4 2001/11/28 15:08:04 massiot Exp $
* $Id: ac3_adec.c,v 1.5 2001/12/03 16:18:37 sam Exp $
*
* Authors: Michel Lespinasse <walken@zoy.org>
*
......@@ -75,7 +75,7 @@ static void BitstreamCallback ( bit_stream_t *p_bit_stream,
void _M( adec_getfunctions )( function_list_t * p_function_list )
{
p_function_list->pf_probe = ac3_adec_Probe;
p_function_list->functions.dec.pf_RunThread = ac3_adec_Run;
p_function_list->functions.dec.pf_run = ac3_adec_Run;
}
/*****************************************************************************
......
......@@ -2,7 +2,7 @@
* ac3_spdif.c: ac3 pass-through to external decoder with enabled soundcard
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: ac3_spdif.c,v 1.4 2001/11/28 15:08:05 massiot Exp $
* $Id: ac3_spdif.c,v 1.5 2001/12/03 16:18:37 sam Exp $
*
* Authors: Stphane Borel <stef@via.ecp.fr>
* Juha Yrjola <jyrjola@cc.hut.fi>
......@@ -75,7 +75,7 @@ static void BitstreamCallback( bit_stream_t *, boolean_t );
void _M( adec_getfunctions )( function_list_t * p_function_list )
{
p_function_list->pf_probe = ac3_spdif_Probe;
p_function_list->functions.dec.pf_RunThread = ac3_spdif_Run;
p_function_list->functions.dec.pf_run = ac3_spdif_Run;
}
/*****************************************************************************
......
......@@ -2,7 +2,7 @@
* aout_alsa.c : Alsa functions library
*****************************************************************************
* Copyright (C) 2000-2001 VideoLAN
* $Id: aout_alsa.c,v 1.20 2001/11/28 15:08:05 massiot Exp $
* $Id: aout_alsa.c,v 1.21 2001/12/03 16:18:37 sam Exp $
*
* Authors: Henri Fallon <henri@videolan.org> - Original Author
* Jeffrey Baker <jwbaker@acm.org> - Port to ALSA 1.0 API
......@@ -36,7 +36,7 @@
#include <stdio.h> /* "intf_msg.h" */
#include <stdlib.h> /* calloc(), malloc(), free() */
#include <sys/asoundlib.h>
#include <alsa/asoundlib.h>
#include "config.h"
#include "common.h" /* boolean_t, byte_t */
......
......@@ -2,7 +2,7 @@
* gtk_open.c : functions to handle file/disc/network open widgets.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
* $Id: gtk_open.c,v 1.9 2001/11/28 15:08:05 massiot Exp $
* $Id: gtk_open.c,v 1.10 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stphane Borel <stef@via.ecp.fr>
......@@ -336,7 +336,7 @@ void GtkNetworkOpenOk( GtkButton *button, gpointer user_data )
if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
"network_ts" ) )->active )
{
psz_protocol = "ts";
psz_protocol = "udpstream";
}
else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
"network_rtp" ) )->active )
......
......@@ -2,7 +2,7 @@
* lpcm_decoder_thread.c: lpcm decoder thread
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: lpcm_adec.c,v 1.2 2001/11/28 15:08:05 massiot Exp $
* $Id: lpcm_adec.c,v 1.3 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Henri Fallon <henri@videolan.org>
......@@ -71,7 +71,7 @@ static void lpcm_adec_EndThread ( lpcmdec_thread_t * );
void _M( adec_getfunctions )( function_list_t * p_function_list )
{
p_function_list->pf_probe = lpcm_adec_Probe;
p_function_list->functions.dec.pf_RunThread = lpcm_adec_Run;
p_function_list->functions.dec.pf_run = lpcm_adec_Run;
}
/*****************************************************************************
......
###############################################################################
# vlc (VideoLAN Client) memcpy module makefile
# (c)2001 VideoLAN
###############################################################################
#
# Objects
#
PLUGIN_MEMCPY = memcpy.o
PLUGIN_MEMCPYMMX = memcpymmx.o
PLUGIN_MEMCPYMMXEXT = memcpymmxext.o
PLUGIN_MEMCPY3DN = memcpy3dn.o
BUILTIN_MEMCPY = $(PLUGIN_MEMCPY:%.o=BUILTIN_%.o)
BUILTIN_MEMCPYMMX = $(PLUGIN_MEMCPYMMX:%.o=BUILTIN_%.o)
BUILTIN_MEMCPYMMXEXT = $(PLUGIN_MEMCPYMMXEXT:%.o=BUILTIN_%.o)
BUILTIN_MEMCPY3DN = $(PLUGIN_MEMCPY3DN:%.o=BUILTIN_%.o)
PLUGIN_C = $(PLUGIN_MEMCPY) $(PLUGIN_MEMCPYMMX) $(PLUGIN_MEMCPYMMXEXT) $(PLUGIN_MEMCPY3DN)
BUILTIN_C = $(BUILTIN_MEMCPY) $(BUILTIN_MEMCPYMMX) $(BUILTIN_MEMCPYMMXEXT) $(BUILTIN_MEMCPY3DN)
ALL_OBJ = $(PLUGIN_C) $(BUILTIN_C)
#
# Virtual targets
#
include ../../Makefile.modules
#
# Real targets
#
../memcpy.so: $(PLUGIN_MEMCPY)
$(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS)
../memcpy.a: $(BUILTIN_MEMCPY)
ar r $@ $^
$(RANLIB) $@
../memcpymmx.so: $(PLUGIN_MEMCPYMMX)
$(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS)
../memcpymmx.a: $(BUILTIN_MEMCPYMMX)
ar r $@ $^
$(RANLIB) $@
../memcpymmxext.so: $(PLUGIN_MEMCPYMMXEXT)
$(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS)
../memcpymmxext.a: $(BUILTIN_MEMCPYMMXEXT)
ar r $@ $^
$(RANLIB) $@
../memcpy3dn.so: $(PLUGIN_MEMCPY3DN)
$(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS)
../memcpy3dn.a: $(BUILTIN_MEMCPY3DN)
ar r $@ $^
$(RANLIB) $@
/*****************************************************************************
* fastmemcpy.h : fast memcpy routines
*****************************************************************************
* $Id: fastmemcpy.h,v 1.1 2001/12/03 16:18:37 sam Exp $
*
* Authors: various Linux kernel hackers
* various MPlayer hackers
* Nick Kurshev <nickols_k@mail.ru>
*
* 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.
*****************************************************************************/
/*
aclib - advanced C library ;)
This file contains functions which improve and expand standard C-library
*/
#define BLOCK_SIZE 4096
#define CONFUSION_FACTOR 0
//Feel free to fine-tune the above 2, it might be possible to get some speedup with them :)
//#define STATISTICS
#ifndef HAVE_SSE2
/*
P3 processor has only one SSE decoder so can execute only 1 sse insn per
cpu clock, but it has 3 mmx decoders (include load/store unit)
and executes 3 mmx insns per cpu clock.
P4 processor has some chances, but after reading:
http://www.emulators.com/pentium4.htm
I have doubts. Anyway SSE2 version of this code can be written better.
*/
#undef HAVE_SSE
#endif
/*
This part of code was taken by me from Linux-2.4.3 and slightly modified
for MMX, MMX2, SSE instruction set. I have done it since linux uses page aligned
blocks but mplayer uses weakly ordered data and original sources can not
speedup them. Only using PREFETCHNTA and MOVNTQ together have effect!
>From IA-32 Intel Architecture Software Developer's Manual Volume 1,
Order Number 245470:
"10.4.6. Cacheability Control, Prefetch, and Memory Ordering Instructions"
Data referenced by a program can be temporal (data will be used again) or
non-temporal (data will be referenced once and not reused in the immediate
future). To make efficient use of the processor's caches, it is generally
desirable to cache temporal data and not cache non-temporal data. Overloading
the processor's caches with non-temporal data is sometimes referred to as
"polluting the caches".
The non-temporal data is written to memory with Write-Combining semantics.
The PREFETCHh instructions permits a program to load data into the processor
at a suggested cache level, so that it is closer to the processors load and
store unit when it is needed. If the data is already present in a level of
the cache hierarchy that is closer to the processor, the PREFETCHh instruction
will not result in any data movement.
But we should you PREFETCHNTA: Non-temporal data fetch data into location
close to the processor, minimizing cache pollution.
The MOVNTQ (store quadword using non-temporal hint) instruction stores
packed integer data from an MMX register to memory, using a non-temporal hint.
The MOVNTPS (store packed single-precision floating-point values using
non-temporal hint) instruction stores packed floating-point data from an
XMM register to memory, using a non-temporal hint.
The SFENCE (Store Fence) instruction controls write ordering by creating a
fence for memory store operations. This instruction guarantees that the results
of every store instruction that precedes the store fence in program order is
globally visible before any store instruction that follows the fence. The
SFENCE instruction provides an efficient way of ensuring ordering between
procedures that produce weakly-ordered data and procedures that consume that
data.
If you have questions please contact with me: Nick Kurshev: nickols_k@mail.ru.
*/
// 3dnow memcpy support from kernel 2.4.2
// by Pontscho/fresh!mindworkz
#if defined( HAVE_MMX2 ) || defined( HAVE_3DNOW ) || defined( HAVE_MMX )
#undef HAVE_MMX1
#if defined(HAVE_MMX) && !defined(HAVE_MMX2) && !defined(HAVE_3DNOW) && !defined(HAVE_SSE)
/* means: mmx v.1. Note: Since we added alignment of destinition it speedups
of memory copying on PentMMX, Celeron-1 and P2 upto 12% versus
standard (non MMX-optimized) version.
Note: on K6-2+ it speedups memory copying upto 25% and
on K7 and P3 about 500% (5 times). */
#define HAVE_MMX1
#endif
#undef HAVE_K6_2PLUS
#if !defined( HAVE_MMX2) && defined( HAVE_3DNOW)
#define HAVE_K6_2PLUS
#endif
/* for small memory blocks (<256 bytes) this version is faster */
#define small_memcpy(to,from,n)\
{\
register unsigned long int dummy;\
__asm__ __volatile__(\
"rep; movsb"\
:"=&D"(to), "=&S"(from), "=&c"(dummy)\
/* It's most portable way to notify compiler */\
/* that edi, esi and ecx are clobbered in asm block. */\
/* Thanks to A'rpi for hint!!! */\
:"0" (to), "1" (from),"2" (n)\
: "memory");\
}
#ifdef HAVE_SSE
#define MMREG_SIZE 16
#else
#define MMREG_SIZE 64 //8
#endif
/* Small defines (for readability only) ;) */
#ifdef HAVE_K6_2PLUS
#define PREFETCH "prefetch"
/* On K6 femms is faster of emms. On K7 femms is directly mapped on emms. */
#define EMMS "femms"
#else
#define PREFETCH "prefetchnta"
#define EMMS "emms"
#endif
#ifdef HAVE_MMX2
#define MOVNTQ "movntq"
#else
#define MOVNTQ "movq"
#endif
#ifdef HAVE_MMX1
#define MIN_LEN 0x800 /* 2K blocks */
#else
#define MIN_LEN 0x40 /* 64-byte blocks */
#endif
void * _M( fast_memcpy )(void * to, const void * from, size_t len)
{
void *retval;
size_t i;
retval = to;
#ifdef STATISTICS
{
static int freq[33];
static int t=0;
int i;
for(i=0; len>(1<<i); i++);
freq[i]++;
t++;
if(1024*1024*1024 % t == 0)
for(i=0; i<32; i++)
printf("freq < %8d %4d\n", 1<<i, freq[i]);
}
#endif
#ifndef HAVE_MMX1
/* PREFETCH has effect even for MOVSB instruction ;) */
__asm__ __volatile__ (
PREFETCH" (%0)\n"
PREFETCH" 64(%0)\n"
PREFETCH" 128(%0)\n"
PREFETCH" 192(%0)\n"
PREFETCH" 256(%0)\n"
: : "r" (from) );
#endif
if(len >= MIN_LEN)
{
register unsigned long int delta;
/* Align destinition to MMREG_SIZE -boundary */
delta = ((unsigned long int)to)&(MMREG_SIZE-1);
if(delta)
{
delta=MMREG_SIZE-delta;
len -= delta;
small_memcpy(to, from, delta);
}
i = len >> 6; /* len/64 */
len&=63;
/*
This algorithm is top effective when the code consequently
reads and writes blocks which have size of cache line.
Size of cache line is processor-dependent.
It will, however, be a minimum of 32 bytes on any processors.
It would be better to have a number of instructions which
perform reading and writing to be multiple to a number of
processor's decoders, but it's not always possible.
*/
#ifdef HAVE_SSE /* Only P3 (may be Cyrix3) */
if(((unsigned long)from) & 15)
/* if SRC is misaligned */
for(; i>0; i--)
{
__asm__ __volatile__ (
PREFETCH" 320(%0)\n"
"movups (%0), %%xmm0\n"
"movups 16(%0), %%xmm1\n"
"movups 32(%0), %%xmm2\n"
"movups 48(%0), %%xmm3\n"
"movntps %%xmm0, (%1)\n"
"movntps %%xmm1, 16(%1)\n"
"movntps %%xmm2, 32(%1)\n"
"movntps %%xmm3, 48(%1)\n"
:: "r" (from), "r" (to) : "memory");
((const unsigned char *)from)+=64;
((unsigned char *)to)+=64;
}
else
/*
Only if SRC is aligned on 16-byte boundary.
It allows to use movaps instead of movups, which required data
to be aligned or a general-protection exception (#GP) is generated.
*/
for(; i>0; i--)
{
__asm__ __volatile__ (
PREFETCH" 320(%0)\n"
"movaps (%0), %%xmm0\n"
"movaps 16(%0), %%xmm1\n"
"movaps 32(%0), %%xmm2\n"
"movaps 48(%0), %%xmm3\n"
"movntps %%xmm0, (%1)\n"
"movntps %%xmm1, 16(%1)\n"
"movntps %%xmm2, 32(%1)\n"
"movntps %%xmm3, 48(%1)\n"
:: "r" (from), "r" (to) : "memory");
((const unsigned char *)from)+=64;
((unsigned char *)to)+=64;
}
#else
// Align destination at BLOCK_SIZE boundary
for(; ((int)to & (BLOCK_SIZE-1)) && i>0; i--)
{
__asm__ __volatile__ (
#ifndef HAVE_MMX1
PREFETCH" 320(%0)\n"
#endif
"movq (%0), %%mm0\n"
"movq 8(%0), %%mm1\n"
"movq 16(%0), %%mm2\n"
"movq 24(%0), %%mm3\n"
"movq 32(%0), %%mm4\n"
"movq 40(%0), %%mm5\n"
"movq 48(%0), %%mm6\n"
"movq 56(%0), %%mm7\n"
MOVNTQ" %%mm0, (%1)\n"
MOVNTQ" %%mm1, 8(%1)\n"
MOVNTQ" %%mm2, 16(%1)\n"
MOVNTQ" %%mm3, 24(%1)\n"
MOVNTQ" %%mm4, 32(%1)\n"
MOVNTQ" %%mm5, 40(%1)\n"
MOVNTQ" %%mm6, 48(%1)\n"
MOVNTQ" %%mm7, 56(%1)\n"
:: "r" (from), "r" (to) : "memory");
((const unsigned char *)from)+=64;
((unsigned char *)to)+=64;
}
// printf(" %d %d\n", (int)from&1023, (int)to&1023);
// Pure Assembly cuz gcc is a bit unpredictable ;)
if(i>=BLOCK_SIZE/64)
asm volatile(
"xorl %%eax, %%eax \n\t"
".balign 16 \n\t"
"1: \n\t"
"movl (%0, %%eax), %%ebx \n\t"
"movl 32(%0, %%eax), %%ebx \n\t"
"movl 64(%0, %%eax), %%ebx \n\t"
"movl 96(%0, %%eax), %%ebx \n\t"
"addl $128, %%eax \n\t"
"cmpl %3, %%eax \n\t"
" jb 1b \n\t"
"xorl %%eax, %%eax \n\t"
".balign 16 \n\t"
"2: \n\t"
"movq (%0, %%eax), %%mm0\n"
"movq 8(%0, %%eax), %%mm1\n"
"movq 16(%0, %%eax), %%mm2\n"
"movq 24(%0, %%eax), %%mm3\n"
"movq 32(%0, %%eax), %%mm4\n"
"movq 40(%0, %%eax), %%mm5\n"
"movq 48(%0, %%eax), %%mm6\n"
"movq 56(%0, %%eax), %%mm7\n"
MOVNTQ" %%mm0, (%1, %%eax)\n"
MOVNTQ" %%mm1, 8(%1, %%eax)\n"
MOVNTQ" %%mm2, 16(%1, %%eax)\n"
MOVNTQ" %%mm3, 24(%1, %%eax)\n"
MOVNTQ" %%mm4, 32(%1, %%eax)\n"
MOVNTQ" %%mm5, 40(%1, %%eax)\n"
MOVNTQ" %%mm6, 48(%1, %%eax)\n"
MOVNTQ" %%mm7, 56(%1, %%eax)\n"
"addl $64, %%eax \n\t"
"cmpl %3, %%eax \n\t"
"jb 2b \n\t"
#if CONFUSION_FACTOR > 0
// a few percent speedup on out of order executing CPUs
"movl %5, %%eax \n\t"
"2: \n\t"
"movl (%0), %%ebx \n\t"
"movl (%0), %%ebx \n\t"
"movl (%0), %%ebx \n\t"
"movl (%0), %%ebx \n\t"
"decl %%eax \n\t"
" jnz 2b \n\t"
#endif
"xorl %%eax, %%eax \n\t"
"addl %3, %0 \n\t"
"addl %3, %1 \n\t"
"subl %4, %2 \n\t"
"cmpl %4, %2 \n\t"
" jae 1b \n\t"
: "+r" (from), "+r" (to), "+r" (i)
: "r" (BLOCK_SIZE), "i" (BLOCK_SIZE/64), "i" (CONFUSION_FACTOR)
: "%eax", "%ebx"
);
for(; i>0; i--)
{
__asm__ __volatile__ (
#ifndef HAVE_MMX1
PREFETCH" 320(%0)\n"
#endif
"movq (%0), %%mm0\n"
"movq 8(%0), %%mm1\n"
"movq 16(%0), %%mm2\n"
"movq 24(%0), %%mm3\n"
"movq 32(%0), %%mm4\n"
"movq 40(%0), %%mm5\n"
"movq 48(%0), %%mm6\n"
"movq 56(%0), %%mm7\n"
MOVNTQ" %%mm0, (%1)\n"
MOVNTQ" %%mm1, 8(%1)\n"
MOVNTQ" %%mm2, 16(%1)\n"
MOVNTQ" %%mm3, 24(%1)\n"
MOVNTQ" %%mm4, 32(%1)\n"
MOVNTQ" %%mm5, 40(%1)\n"
MOVNTQ" %%mm6, 48(%1)\n"
MOVNTQ" %%mm7, 56(%1)\n"
:: "r" (from), "r" (to) : "memory");
((const unsigned char *)from)+=64;
((unsigned char *)to)+=64;
}
#endif /* Have SSE */
#ifdef HAVE_MMX2
/* since movntq is weakly-ordered, a "sfence"
* is needed to become ordered again. */
__asm__ __volatile__ ("sfence":::"memory");
#endif
#ifndef HAVE_SSE
/* enables to use FPU */
__asm__ __volatile__ (EMMS:::"memory");
#endif
}
/*
* Now do the tail of the block
*/
if(len) small_memcpy(to, from, len);
return retval;
}
#endif /* #if defined( HAVE_MMX2 ) || defined( HAVE_3DNOW ) || defined( HAVE_MMX ) */
/*****************************************************************************
* memcpy.c : classic memcpy module
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: memcpy.c,v 1.1 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.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.
*****************************************************************************/
#define MODULE_NAME memcpy
#include "modules_inner.h"
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "defs.h"
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "common.h"
#include "intf_msg.h"
#include "threads.h"
#include "mtime.h"
#include "tests.h"
#include "modules.h"
#include "modules_export.h"
/*****************************************************************************
* Local and extern prototypes.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list );
static int memcpy_Probe ( probedata_t *p_data );
/*****************************************************************************
* Build configuration tree.
*****************************************************************************/
MODULE_CONFIG_START
ADD_WINDOW( "Configuration for C memcpy module" )
ADD_COMMENT( "Ha, ha -- nothing to configure yet" )
MODULE_CONFIG_STOP
MODULE_INIT_START
p_module->i_capabilities = MODULE_CAPABILITY_NULL
| MODULE_CAPABILITY_MEMCPY;
p_module->psz_longname = "libc memcpy module";
MODULE_INIT_STOP
MODULE_ACTIVATE_START
memcpy_getfunctions( &p_module->p_functions->memcpy );
MODULE_ACTIVATE_STOP
MODULE_DEACTIVATE_START
MODULE_DEACTIVATE_STOP
/* Following functions are local */
/*****************************************************************************
* Functions exported as capabilities. They are declared as static so that
* we don't pollute the namespace too much.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list )
{
p_function_list->pf_probe = memcpy_Probe;
#define F p_function_list->functions.memcpy
F.pf_fast_memcpy = memcpy;
#undef F
}
/*****************************************************************************
* memcpy_Probe: returns a preference score
*****************************************************************************/
static int memcpy_Probe( probedata_t *p_data )
{
if( TestMethod( MEMCPY_METHOD_VAR, "memcpy" )
|| TestMethod( MEMCPY_METHOD_VAR, "c" ) )
{
return( 999 );
}
/* This plugin always works */
return( 50 );
}
/*****************************************************************************
* memcpy3dn.c : 3D Now! memcpy module
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: memcpy3dn.c,v 1.1 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.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.
*****************************************************************************/
#define MODULE_NAME memcpy3dn
#include "modules_inner.h"
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "defs.h"
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "common.h"
#include "intf_msg.h"
#include "threads.h"
#include "mtime.h"
#include "tests.h"
#include "modules.h"
#include "modules_export.h"
/*****************************************************************************
* Local and extern prototypes.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list );
static int memcpy_Probe ( probedata_t *p_data );
void * _M( fast_memcpy ) ( void * to, const void * from, size_t len );
#undef HAVE_MMX
#undef HAVE_MMX2
#undef HAVE_SSE
#undef HAVE_SSE2
#define HAVE_3DNOW
#include "fastmemcpy.h"
/*****************************************************************************
* Build configuration tree.
*****************************************************************************/
MODULE_CONFIG_START
ADD_WINDOW( "Configuration for 3D Now! memcpy module" )
ADD_COMMENT( "Ha, ha -- nothing to configure yet" )
MODULE_CONFIG_STOP
MODULE_INIT_START
p_module->i_capabilities = MODULE_CAPABILITY_NULL
| MODULE_CAPABILITY_MEMCPY;
p_module->psz_longname = "3D Now! memcpy module";
MODULE_INIT_STOP
MODULE_ACTIVATE_START
memcpy_getfunctions( &p_module->p_functions->memcpy );
MODULE_ACTIVATE_STOP
MODULE_DEACTIVATE_START
MODULE_DEACTIVATE_STOP
/* Following functions are local */
/*****************************************************************************
* Functions exported as capabilities. They are declared as static so that
* we don't pollute the namespace too much.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list )
{
p_function_list->pf_probe = memcpy_Probe;
#define F p_function_list->functions.memcpy
F.pf_fast_memcpy = _M( fast_memcpy );
#undef F
}
/*****************************************************************************
* memcpy_Probe: returns a preference score
*****************************************************************************/
static int memcpy_Probe( probedata_t *p_data )
{
/* Test for 3D Now! support in the CPU */
if( !TestCPU( CPU_CAPABILITY_3DNOW ) )
{
return( 0 );
}
if( TestMethod( MEMCPY_METHOD_VAR, "memcpy3dn" )
|| TestMethod( MEMCPY_METHOD_VAR, "3dn" ) )
{
return( 999 );
}
/* This plugin always works */
return( 100 );
}
/*****************************************************************************
* memcpymmx.c : MMX memcpy module
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: memcpymmx.c,v 1.1 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.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.
*****************************************************************************/
#define MODULE_NAME memcpymmx
#include "modules_inner.h"
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "defs.h"
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "common.h"
#include "intf_msg.h"
#include "threads.h"
#include "mtime.h"
#include "tests.h"
#include "modules.h"
#include "modules_export.h"
/*****************************************************************************
* Local and extern prototypes.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list );
static int memcpy_Probe ( probedata_t *p_data );
void * _M( fast_memcpy ) ( void * to, const void * from, size_t len );
#define HAVE_MMX
#undef HAVE_MMX2
#undef HAVE_SSE
#undef HAVE_SSE2
#undef HAVE_3DNOW
#include "fastmemcpy.h"
/*****************************************************************************
* Build configuration tree.
*****************************************************************************/
MODULE_CONFIG_START
ADD_WINDOW( "Configuration for MMX memcpy module" )
ADD_COMMENT( "Ha, ha -- nothing to configure yet" )
MODULE_CONFIG_STOP
MODULE_INIT_START
p_module->i_capabilities = MODULE_CAPABILITY_NULL
| MODULE_CAPABILITY_MEMCPY;
p_module->psz_longname = "MMX memcpy module";
MODULE_INIT_STOP
MODULE_ACTIVATE_START
memcpy_getfunctions( &p_module->p_functions->memcpy );
MODULE_ACTIVATE_STOP
MODULE_DEACTIVATE_START
MODULE_DEACTIVATE_STOP
/* Following functions are local */
/*****************************************************************************
* Functions exported as capabilities. They are declared as static so that
* we don't pollute the namespace too much.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list )
{
p_function_list->pf_probe = memcpy_Probe;
#define F p_function_list->functions.memcpy
F.pf_fast_memcpy = _M( fast_memcpy );
#undef F
}
/*****************************************************************************
* memcpy_Probe: returns a preference score
*****************************************************************************/
static int memcpy_Probe( probedata_t *p_data )
{
/* Test for MMX support in the CPU */
if( !TestCPU( CPU_CAPABILITY_MMX ) )
{
return( 0 );
}
if( TestMethod( MEMCPY_METHOD_VAR, "memcpymmx" )
|| TestMethod( MEMCPY_METHOD_VAR, "mmx" ) )
{
return( 999 );
}
/* This plugin always works */
return( 100 );
}
/*****************************************************************************
* memcpymmxext.c : MMX EXT memcpy module
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: memcpymmxext.c,v 1.1 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.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.
*****************************************************************************/
#define MODULE_NAME memcpymmxext
#include "modules_inner.h"
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "defs.h"
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "common.h"
#include "intf_msg.h"
#include "threads.h"
#include "mtime.h"
#include "tests.h"
#include "modules.h"
#include "modules_export.h"
/*****************************************************************************
* Local and extern prototypes.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list );
static int memcpy_Probe ( probedata_t *p_data );
void * _M( fast_memcpy ) ( void * to, const void * from, size_t len );
#undef HAVE_MMX
#define HAVE_MMX2
#undef HAVE_SSE
#undef HAVE_SSE2
#undef HAVE_3DNOW
#include "fastmemcpy.h"
/*****************************************************************************
* Build configuration tree.
*****************************************************************************/
MODULE_CONFIG_START
ADD_WINDOW( "Configuration for MMX EXT memcpy module" )
ADD_COMMENT( "Ha, ha -- nothing to configure yet" )
MODULE_CONFIG_STOP
MODULE_INIT_START
p_module->i_capabilities = MODULE_CAPABILITY_NULL
| MODULE_CAPABILITY_MEMCPY;
p_module->psz_longname = "MMX EXT memcpy module";
MODULE_INIT_STOP
MODULE_ACTIVATE_START
memcpy_getfunctions( &p_module->p_functions->memcpy );
MODULE_ACTIVATE_STOP
MODULE_DEACTIVATE_START
MODULE_DEACTIVATE_STOP
/* Following functions are local */
/*****************************************************************************
* Functions exported as capabilities. They are declared as static so that
* we don't pollute the namespace too much.
*****************************************************************************/
static void memcpy_getfunctions( function_list_t * p_function_list )
{
p_function_list->pf_probe = memcpy_Probe;
#define F p_function_list->functions.memcpy
F.pf_fast_memcpy = _M( fast_memcpy );
#undef F
}
/*****************************************************************************
* memcpy_Probe: returns a preference score
*****************************************************************************/
static int memcpy_Probe( probedata_t *p_data )
{
/* Test for MMX EXT support in the CPU */
if( !TestCPU( CPU_CAPABILITY_MMXEXT ) )
{
return( 0 );
}
if( TestMethod( MEMCPY_METHOD_VAR, "memcpymmxext" )
|| TestMethod( MEMCPY_METHOD_VAR, "mmxext" ) )
{
return( 999 );
}
/* This plugin always works */
return( 200 );
}
......@@ -2,7 +2,7 @@
* input_ts.h: structures of the input not exported to other modules
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_ts.h,v 1.10 2001/07/12 23:06:54 gbazin Exp $
* $Id: input_ts.h,v 1.11 2001/12/03 16:18:37 sam Exp $
*
* Authors: Henri Fallon <henri@via.ecp.fr>
* Boris Dors <babal@via.ecp.fr>
......@@ -71,7 +71,7 @@ static __inline__ int read_network( int i_fd, char * p_base,
i_bytes = p_sys->i_length - p_sys->i_offset;
}
memcpy( p_base, p_sys->p_buffer + p_sys->i_offset, i_bytes );
pf_fast_memcpy( p_base, p_sys->p_buffer + p_sys->i_offset, i_bytes );
p_sys->i_offset += i_bytes;
return i_bytes;
......
......@@ -2,7 +2,7 @@
* mpeg_adec.c: MPEG audio decoder thread
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: mpeg_adec.c,v 1.3 2001/11/28 15:08:05 massiot Exp $
* $Id: mpeg_adec.c,v 1.4 2001/12/03 16:18:37 sam Exp $
*
* Authors: Michel Kaempf <maxx@via.ecp.fr>
* Michel Lespinasse <walken@via.ecp.fr>
......@@ -69,7 +69,7 @@ static void adec_Decode( adec_thread_t * );
void _M( adec_getfunctions )( function_list_t * p_function_list )
{
p_function_list->pf_probe = adec_Probe;
p_function_list->functions.dec.pf_RunThread = adec_RunThread;
p_function_list->functions.dec.pf_run = adec_RunThread;
}
/*****************************************************************************
......
......@@ -2,7 +2,7 @@
* video_parser.c : video parser thread
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: video_parser.c,v 1.4 2001/11/28 15:08:05 massiot Exp $
* $Id: video_parser.c,v 1.5 2001/12/03 16:18:37 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Samuel Hocevar <sam@via.ecp.fr>
......@@ -80,7 +80,7 @@ static void BitstreamCallback ( bit_stream_t *, boolean_t );
void _M( vdec_getfunctions )( function_list_t * p_function_list )
{
p_function_list->pf_probe = mpeg_vdec_Probe;
p_function_list->functions.dec.pf_RunThread = mpeg_vdec_Run;
p_function_list->functions.dec.pf_run = mpeg_vdec_Run;
}
/*****************************************************************************
......
......@@ -2,7 +2,7 @@
* vout_sdl.c: SDL video output display method
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: vout_sdl.c,v 1.65 2001/11/28 15:08:05 massiot Exp $
* $Id: vout_sdl.c,v 1.66 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Pierre Baillet <oct@zoy.org>
......@@ -594,20 +594,20 @@ static void vout_Display( vout_thread_t *p_vout )
SDL_LockYUVOverlay( p_vout->p_sys->p_overlay );
/* copy the data into video buffers */
/* Y first */
memcpy( p_vout->p_sys->p_overlay->pixels[0],
p_vout->p_rendered_pic->p_y,
p_vout->p_sys->p_overlay->h *
p_vout->p_sys->p_overlay->pitches[0] );
pf_fast_memcpy( p_vout->p_sys->p_overlay->pixels[0],
p_vout->p_rendered_pic->p_y,
p_vout->p_sys->p_overlay->h *
p_vout->p_sys->p_overlay->pitches[0] );
/* then V */
memcpy( p_vout->p_sys->p_overlay->pixels[1],
p_vout->p_rendered_pic->p_v,
p_vout->p_sys->p_overlay->h *
p_vout->p_sys->p_overlay->pitches[1] / 2 );
pf_fast_memcpy( p_vout->p_sys->p_overlay->pixels[1],
p_vout->p_rendered_pic->p_v,
p_vout->p_sys->p_overlay->h *
p_vout->p_sys->p_overlay->pitches[1] / 2 );
/* and U */
memcpy( p_vout->p_sys->p_overlay->pixels[2],
p_vout->p_rendered_pic->p_u,
p_vout->p_sys->p_overlay->h *
p_vout->p_sys->p_overlay->pitches[2] / 2 );
pf_fast_memcpy( p_vout->p_sys->p_overlay->pixels[2],
p_vout->p_rendered_pic->p_u,
p_vout->p_sys->p_overlay->h *
p_vout->p_sys->p_overlay->pitches[2] / 2 );
OutputCoords( p_vout->p_rendered_pic, 1,
p_vout->p_sys->i_width,
......
......@@ -2,7 +2,7 @@
* spu_decoder.c : spu decoder thread
*****************************************************************************
* Copyright (C) 2000-2001 VideoLAN
* $Id: spu_decoder.c,v 1.4 2001/11/28 15:08:06 massiot Exp $
* $Id: spu_decoder.c,v 1.5 2001/12/03 16:18:37 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
......@@ -76,7 +76,7 @@ static int ParseRLE ( spudec_thread_t *, subpicture_t *, u8 * );
void _M( spu_dec_getfunctions )( function_list_t * p_function_list )
{
p_function_list->pf_probe = spu_dec_Probe;
p_function_list->functions.dec.pf_RunThread = spu_dec_Run;
p_function_list->functions.dec.pf_run = spu_dec_Run;
}
/*****************************************************************************
......
......@@ -585,8 +585,8 @@ static int VCDRead( input_thread_t * p_input,
if( U32_AT(p_buffer) != 0x1B9 )
{
memcpy( p_data->p_buffer, p_buffer + i_index,
6 + i_packet_size );
pf_fast_memcpy( p_data->p_buffer, p_buffer + i_index,
6 + i_packet_size );
i_index += ( 6 + i_packet_size );
}
......
......@@ -2,7 +2,7 @@
* vout_xvideo.c: Xvideo video output display method
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: vout_xvideo.c,v 1.33 2001/12/03 13:58:59 massiot Exp $
* $Id: vout_xvideo.c,v 1.34 2001/12/03 16:18:37 sam Exp $
*
* Authors: Shane Harper <shanegh@optusnet.com.au>
* Vincent Seguin <seguin@via.ecp.fr>
......@@ -677,12 +677,12 @@ static void vout_Display( vout_thread_t *p_vout )
break;
case YUV_420_PICTURE:
memcpy( p_vout->p_sys->p_xvimage->data,
p_vout->p_rendered_pic->p_y, i_size );
memcpy( p_vout->p_sys->p_xvimage->data + ( i_size ),
p_vout->p_rendered_pic->p_v, i_size / 4 );
memcpy( p_vout->p_sys->p_xvimage->data + ( i_size ) + ( i_size / 4 ),
p_vout->p_rendered_pic->p_u, i_size / 4 );
pf_fast_memcpy( p_vout->p_sys->p_xvimage->data,
p_vout->p_rendered_pic->p_y, i_size );
pf_fast_memcpy( p_vout->p_sys->p_xvimage->data + ( i_size ),
p_vout->p_rendered_pic->p_v, i_size / 4 );
pf_fast_memcpy( p_vout->p_sys->p_xvimage->data + ( i_size ) + ( i_size / 4 ),
p_vout->p_rendered_pic->p_u, i_size / 4 );
break;
}
......
......@@ -2,7 +2,7 @@
* input_dec.c: Functions for the management of decoders
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: input_dec.c,v 1.18 2001/11/30 22:52:40 gbazin Exp $
* $Id: input_dec.c,v 1.19 2001/12/03 16:18:37 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -80,7 +80,7 @@ vlc_thread_t input_RunDecoder( input_thread_t * p_input,
/* Spawn the decoder thread */
if ( vlc_thread_create( &thread_id, "decoder",
(vlc_thread_func_t)p_es->p_module->
p_functions->dec.functions.dec.pf_RunThread,
p_functions->dec.functions.dec.pf_run,
(void *)p_es->p_config) )
{
intf_ErrMsg( "input error: can't spawn decoder thread \"%s\"",
......
......@@ -4,7 +4,7 @@
* and spawn threads.
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: main.c,v 1.127 2001/11/28 15:08:06 massiot Exp $
* $Id: main.c,v 1.128 2001/12/03 16:18:37 sam Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
......@@ -135,8 +135,9 @@
#define OPT_YUV 183
#define OPT_DOWNMIX 184
#define OPT_IMDCT 185
#define OPT_DVDCSS_METHOD 186
#define OPT_DVDCSS_VERBOSE 187
#define OPT_MEMCPY 186
#define OPT_DVDCSS_METHOD 187
#define OPT_DVDCSS_VERBOSE 188
#define OPT_SYNCHRO 190
#define OPT_WARNING 191
......@@ -216,8 +217,9 @@ static const struct option longopts[] =
{ "channels", 0, 0, OPT_CHANNELS },
{ "channelserver", 1, 0, OPT_CHANNELSERVER },
/* Synchro options */
/* Misc options */
{ "synchro", 1, 0, OPT_SYNCHRO },
{ "memcpy", 1, 0, OPT_MEMCPY },
{ 0, 0, 0, 0 }
};
......@@ -225,13 +227,13 @@ static const struct option longopts[] =
static const char *psz_shortopts = "hHvgt:T:u:a:s:c:I:A:V:";
/*****************************************************************************
* Global variable program_data - these are the only ones, see main.h and
* modules.h
* Global variables - these are the only ones, see main.h and modules.h
*****************************************************************************/
main_t *p_main;
module_bank_t *p_module_bank;
aout_bank_t *p_aout_bank;
vout_bank_t *p_vout_bank;
void* ( *pf_fast_memcpy ) ( void *, const void *, size_t );
/*****************************************************************************
* Local prototypes
......@@ -375,6 +377,24 @@ int main( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
aout_InitBank();
vout_InitBank();
/*
* Choose the best memcpy module
*/
p_main->p_memcpy_module = module_Need( MODULE_CAPABILITY_MEMCPY, NULL );
if( p_main->p_memcpy_module == NULL )
{
intf_ErrMsg( "intf error: no suitable memcpy module, "
"using libc default" );
pf_fast_memcpy = memcpy;
}
else
{
#define f p_main->p_memcpy_module->p_functions->memcpy.functions.memcpy
pf_fast_memcpy = f.pf_fast_memcpy;
#undef f
}
/*
* Initialize shared resources and libraries
*/
......@@ -423,6 +443,11 @@ int main( int i_argc, char *ppsz_argv[], char *ppsz_env[] )
}
}
/*
* Free memcpy module
*/
module_Unneed( p_main->p_memcpy_module );
/*
* Free module, aout and vout banks
*/
......@@ -790,10 +815,13 @@ static int GetConfiguration( int *pi_argc, char *ppsz_argv[], char *ppsz_env[] )
main_PutPszVariable( INPUT_CHANNEL_SERVER_VAR, optarg );
break;
/* Synchro options */
/* Misc options */
case OPT_SYNCHRO:
main_PutPszVariable( VPAR_SYNCHRO_VAR, optarg );
break;
case OPT_MEMCPY:
main_PutPszVariable( MEMCPY_METHOD_VAR, optarg );
break;
/* Internal error: unknown option */
case '?':
......@@ -867,6 +895,7 @@ static void Usage( int i_fashion )
"\n -I, --intf <module> \tinterface method"
"\n -v, --verbose \tverbose mode (cumulative)"
"\n --stdout <filename> \tredirect console stdout"
"\n --memcpy <module> \tmemcpy method"
"\n"
"\n --noaudio \tdisable audio"
"\n -A, --aout <module> \taudio output method"
......@@ -916,7 +945,8 @@ static void Usage( int i_fashion )
"\n " INTF_METHOD_VAR "=<method name> \tinterface method"
"\n " INTF_INIT_SCRIPT_VAR "=<filename> \tinitialization script"
"\n " INTF_CHANNELS_VAR "=<filename> \tchannels list"
"\n " INTF_STDOUT_VAR "=<filename> \tredirect console stdout" );
"\n " INTF_STDOUT_VAR "=<filename> \tredirect console stdout"
"\n " MEMCPY_METHOD_VAR "=<method name> \tmemcpy method" );
/* Audio parameters */
intf_MsgImm( "\nAudio parameters:"
......@@ -1164,7 +1194,7 @@ static int CPUCapabilities( void )
{
i_capabilities |= CPU_CAPABILITY_MMXEXT;
#ifdef HAVE_SSE
#ifdef CAN_COMPILE_SSE
/* We test if OS support the SSE instructions */
i_illegal = 0;
if( setjmp( env ) == 0 )
......@@ -1201,7 +1231,7 @@ static int CPUCapabilities( void )
/* list these additional capabilities */
cpuid( 0x80000001 );
#ifdef HAVE_3DNOW
#ifdef CAN_COMPILE_3DNOW
if( i_edx & 0x80000000 )
{
i_illegal = 0;
......@@ -1231,7 +1261,7 @@ static int CPUCapabilities( void )
/* Test for Altivec */
signal( SIGILL, InstructionSignalHandler );
#ifdef HAVE_ALTIVEC
#ifdef CAN_COMPILE_ALTIVEC
i_illegal = 0;
if( setjmp( env ) == 0 )
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment