diff --git a/Makefile b/Makefile index d6bd343734..7c452856db 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ PLUGINS_TARGETS := alsa/alsa beos/beos darwin/darwin dsp/dsp dummy/dummy \ idct/idct idct/idctclassic idct/idctmmx idct/idctmmxext \ macosx/macosx mga/mga \ motion/motion motion/motionmmx motion/motionmmxext \ - mpeg/ps mpeg/ts null/null qt/qt sdl/sdl \ + mpeg/es mpeg/ps mpeg/ts null/null qt/qt sdl/sdl \ text/text x11/x11 x11/xvideo yuv/yuv yuv/yuvmmx # diff --git a/configure b/configure index 5b4ade1aa0..b6ff825db2 100755 --- a/configure +++ b/configure @@ -1377,7 +1377,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lsocket" + LIB="${LIB} -lsocket" else echo "$ac_t""no" 1>&6 fi @@ -1465,7 +1465,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lnsl" + LIB="${LIB} -lnsl" else echo "$ac_t""no" 1>&6 fi @@ -1553,7 +1553,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lrt" + LIB="${LIB} -lrt" else echo "$ac_t""no" 1>&6 echo $ac_n "checking for nanosleep in -lposix4""... $ac_c" 1>&6 @@ -1591,7 +1591,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lposix4" + LIB="${LIB} -lposix4" else echo "$ac_t""no" 1>&6 fi @@ -1736,7 +1736,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lresolv" + LIB="${LIB} -lresolv" else echo "$ac_t""no" 1>&6 fi @@ -1887,7 +1887,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then cat >> confdefs.h <<\EOF #define HAVE_GETOPT_LONG 1 EOF - LIB=${LIB}" -lgnugetopt" + LIB="${LIB} -lgnugetopt" else echo "$ac_t""no" 1>&6 GETOPT=1 @@ -2239,7 +2239,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -ldl" + LIB="${LIB} -ldl" else echo "$ac_t""no" 1>&6 fi @@ -2279,7 +2279,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB_YUV=${LIB_YUV}" -lm" + LIB_YUV="${LIB_YUV} -lm" else echo "$ac_t""no" 1>&6 fi @@ -2337,7 +2337,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lpthread" + LIB="${LIB} -lpthread" else echo "$ac_t""no" 1>&6 fi @@ -2380,7 +2380,7 @@ LIBS="$ac_save_LIBS" fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIB=${LIB}" -lthreads" + LIB="${LIB} -lthreads" else echo "$ac_t""no" 1>&6 fi @@ -2779,8 +2779,8 @@ fi rm -f conftest* CFLAGS="${CFLAGS} -rdynamic -Wall -Werror" -echo $ac_n "checking if \$CC accepts -rdynamic""... $ac_c" 1>&6 -echo "configure:2784: checking if \$CC accepts -rdynamic" >&5 +echo $ac_n "checking if \$CC groks -rdynamic without complaining too much""... $ac_c" 1>&6 +echo "configure:2784: checking if \$CC groks -rdynamic without complaining too much" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - LCFLAGS=${LCFLAGS}" -rdynamic" + LCFLAGS="${LCFLAGS} -rdynamic" echo "$ac_t""yes" 1>&6 else echo "configure: failed program was:" >&5 @@ -3104,29 +3104,28 @@ fi ARCH=${host_cpu} -#PLUGINS=${PLUGINS}"ps ts yuv idct idctclassic motion " -BUILTINS=${BUILTINS}"ps ts yuv idct idctclassic motion " +BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion" if test x$host_os = xbeos; then - ACCEL_PLUGINS="yuvmmx idctmmx motionmmx " + ACCEL_PLUGINS="yuvmmx idctmmx motionmmx" else - ACCEL_PLUGINS="yuvmmx idctmmx idctmmxext motionmmx motionmmxext " + ACCEL_PLUGINS="yuvmmx idctmmx idctmmxext motionmmx motionmmxext" fi 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:3120: checking for $ac_hdr" >&5 +echo "configure:3119: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3129: \"$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* @@ -3147,22 +3146,22 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then #define $ac_tr_hdr 1 EOF - BUILTINS=${BUILTINS}"dvd " + BUILTINS="${BUILTINS} dvd" for ac_hdr in linux/cdrom.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3156: checking for $ac_hdr" >&5 +echo "configure:3155: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3165: \"$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* @@ -3189,7 +3188,7 @@ fi done cat > conftest.$ac_ext < EOF @@ -3219,7 +3218,7 @@ if test "${enable_dummy+set}" = set; then fi if test x$enable_dummy != xno; then - BUILTINS=${BUILTINS}"dummy "; fi + BUILTINS="${BUILTINS} dummy"; fi # Check whether --enable-null or --disable-null was given. if test "${enable_null+set}" = set; then @@ -3228,38 +3227,38 @@ if test "${enable_null+set}" = set; then fi if test x$enable_null != xno; then - BUILTINS=${BUILTINS}"null "; fi + BUILTINS="${BUILTINS} null"; fi # Check whether --enable-ppro or --disable-ppro was given. if test "${enable_ppro+set}" = set; then enableval="$enable_ppro" - if test x$enableval = xyes; then ARCH=${ARCH}" ppro"; fi + if test x$enableval = xyes; then ARCH="${ARCH} ppro"; fi else - if test x${host_cpu} = xi686; then ARCH=${ARCH}" ppro"; fi + if test x${host_cpu} = xi686; then ARCH="${ARCH} ppro"; fi fi # Check whether --enable-mmx or --disable-mmx was given. if test "${enable_mmx+set}" = set; then enableval="$enable_mmx" - if test x$enableval = xyes; then ARCH=${ARCH}" mmx"; - BUILTINS=${BUILTINS}${ACCEL_PLUGINS}; fi + if test x$enableval = xyes; then ARCH="${ARCH} mmx"; + BUILTINS="${BUILTINS} ${ACCEL_PLUGINS}"; fi else - if test x${host_cpu} = xi686 -o x${host_cpu} = xi586 -o x${host_cpu} = xx86; then ARCH=${ARCH}" mmx"; - BUILTINS=${BUILTINS}${ACCEL_PLUGINS}; fi + if test x${host_cpu} = xi686 -o x${host_cpu} = xi586 -o x${host_cpu} = xx86; then ARCH="${ARCH} mmx"; + BUILTINS="${BUILTINS} ${ACCEL_PLUGINS}"; fi fi # Check whether --enable-altivec or --disable-altivec was given. if test "${enable_altivec+set}" = set; then enableval="$enable_altivec" - if test x$enableval = xyes; then ARCH=${ARCH}" altivec"; - BUILTINS=${BUILTINS}"idctaltivec " + if test x$enableval = xyes; then ARCH="${ARCH} altivec"; + BUILTINS="${BUILTINS} idctaltivec" LIB_IDCTALTIVEC="-framework vecLib" fi fi -#[ if test -d /System/Library/Frameworks/vecLib.framework; then ARCH=${ARCH}" altivec"; PLUGINS=${PLUGINS}"idctaltivec "; fi ]) +#[ if test -d /System/Library/Frameworks/vecLib.framework; then ARCH="${ARCH} altivec"; PLUGINS="${PLUGINS} idctaltivec"; fi ]) # Check whether --enable-css or --disable-css was given. if test "${enable_css+set}" = set; then @@ -3300,7 +3299,7 @@ fi SYS=${host_os} if test x$host_os = xbeos; then - BUILTINS=${BUILTINS}"beos " + BUILTINS="${BUILTINS} beos" LIB_BEOS="-lbe -lgame -lroot -ltracker" else @@ -3313,7 +3312,7 @@ fi if test x$enable_dsp != xno; then if test -c /dev/dsp; then - PLUGINS=${PLUGINS}"dsp " + PLUGINS="${PLUGINS} dsp" fi fi @@ -3324,7 +3323,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:3328: checking for $ac_word" >&5 +echo "configure:3327: 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 @@ -3358,7 +3357,7 @@ else fi if test x${ESD_CONFIG} != xno; then - PLUGINS=${PLUGINS}"esd " + PLUGINS="${PLUGINS} esd" LIB_ESD="`${ESD_CONFIG} --libs`" fi fi @@ -3369,7 +3368,7 @@ fi if test "${enable_darwin+set}" = set; then enableval="$enable_darwin" if test x$enable_darwin = xyes; then - PLUGINS=${PLUGINS}"darwin " + PLUGINS="${PLUGINS} darwin" LIB_DARWIN="-framework CoreAudio" fi fi @@ -3379,27 +3378,27 @@ fi if test "${enable_macosx+set}" = set; then enableval="$enable_macosx" if test x$enable_macosx = xyes; then - BUILTINS=${BUILTINS}"macosx " + BUILTINS="${BUILTINS} macosx" LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL" - LIB_TS=${LIB_TS}" -framework AGL -framework Carbon" - LIB_SDL=${LIB_SDL}" -framework AGL -framework Carbon" + LIB_TS="${LIB_TS} -framework AGL -framework Carbon" + LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon" fi else for ac_hdr in Carbon/Carbon.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3393: checking for $ac_hdr" >&5 +echo "configure:3392: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3403: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3402: \"$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* @@ -3419,10 +3418,10 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then cat >> confdefs.h <&6 @@ -3435,7 +3434,7 @@ fi # Check whether --enable-fb or --disable-fb was given. if test "${enable_fb+set}" = set; then enableval="$enable_fb" - if test x$enable_fb = xyes; then PLUGINS=${PLUGINS}"fb "; fi + if test x$enable_fb = xyes; then PLUGINS="${PLUGINS} fb"; fi fi @@ -3444,7 +3443,7 @@ if test "${with_ggi+set}" = set; then withval="$with_ggi" if test "x$withval" != "xno"; then - PLUGINS=${PLUGINS}"ggi "; + PLUGINS="${PLUGINS} ggi"; if test "x$withval" != "xyes"; then LIB_GGI="-l"$withval @@ -3460,27 +3459,27 @@ if test "${with_sdl+set}" = set; then withval="$with_sdl" if test "x$withval" != "xno"; then - PLUGINS=${PLUGINS}"sdl "; + PLUGINS="${PLUGINS} sdl"; if test "x$withval" != "xyes"; then - LIB_SDL=${LIB_SDL}" -L/usr/X11R6/lib -L"$withval"/lib -l"$withval - INCLUDE=${INCLUDE}" -I"$withval"/include" + LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -L"$withval"/lib -l"$withval + INCLUDE="${INCLUDE} -I"$withval"/include" else for ac_hdr in SDL/SDL.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3474: checking for $ac_hdr" >&5 +echo "configure:3473: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3484: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3483: \"$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* @@ -3507,7 +3506,7 @@ echo "Cannot find SDL headers !"; exit fi done - LIB_SDL=${LIB_SDL}" -L/usr/X11R6/lib -lSDL" + LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL" fi fi fi @@ -3518,17 +3517,17 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3522: checking for $ac_hdr" >&5 +echo "configure:3521: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3532: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3531: \"$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* @@ -3548,8 +3547,8 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then cat >> confdefs.h <&6 fi @@ -3562,7 +3561,7 @@ if test "${with_glide+set}" = set; then withval="$with_glide" if test "x$withval" != "xno"; then - PLUGINS=${PLUGINS}"glide "; + PLUGINS="${PLUGINS} glide"; if test "x$withval" != "xyes"; then LIB_GLIDE="-l"$withval @@ -3577,7 +3576,7 @@ fi if test "${enable_ncurses+set}" = set; then enableval="$enable_ncurses" if test x$enable_ncurses = xyes; then - PLUGINS=${PLUGINS}"ncurses " + PLUGINS="${PLUGINS} ncurses" LIB_NCURSES="-lncurses" fi fi @@ -3587,8 +3586,8 @@ fi if test "${enable_qt+set}" = set; then enableval="$enable_qt" if test x$enable_qt = xyes; then - PLUGINS=${PLUGINS}"qt " - ALIASES=${ALIASES}"qvlc " + PLUGINS="${PLUGINS} qt" + ALIASES="${ALIASES} qvlc" LIB_QT="-lqt -L${QTDIR}/lib" fi fi @@ -3597,7 +3596,7 @@ fi # Check whether --enable-kde or --disable-kde was given. if test "${enable_kde+set}" = set; then enableval="$enable_kde" - if test x$enable_kde = xyes; then PLUGINS=${PLUGINS}"kde "; ALIASES=${ALIASES}"kvlc "; fi + if test x$enable_kde = xyes; then PLUGINS="${PLUGINS} kde"; ALIASES="${ALIASES} kvlc"; fi fi @@ -3605,8 +3604,8 @@ fi if test "${enable_gnome+set}" = set; then enableval="$enable_gnome" if test x$enable_gnome = xyes; then - PLUGINS=${PLUGINS}"gnome " - ALIASES=${ALIASES}"gnome-vlc " + PLUGINS="${PLUGINS} gnome" + ALIASES="${ALIASES} gnome-vlc" LIB_GNOME="`gnome-config --libs gnomeui | sed 's,-rdynamic,,'`" fi fi @@ -3622,7 +3621,7 @@ if test x$enable_gtk != xno; then # 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:3626: checking for $ac_word" >&5 +echo "configure:3625: 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 @@ -3656,8 +3655,8 @@ else fi if test x${GTK_CONFIG} != xno; then - PLUGINS=${PLUGINS}"gtk " - ALIASES=${ALIASES}"gvlc " + PLUGINS="${PLUGINS} gtk" + ALIASES="${ALIASES} gvlc" CFLAGS_GTK="`${GTK_CONFIG} --cflags gtk`" LIB_GTK="`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`" fi @@ -3682,17 +3681,17 @@ if test x$enable_x11 != xno; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3686: checking for $ac_hdr" >&5 +echo "configure:3685: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3695: \"$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* @@ -3713,7 +3712,7 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then #define $ac_tr_hdr 1 EOF - PLUGINS=${PLUGINS}"x11 " + PLUGINS="${PLUGINS} x11" LIB_X11="-L$x_libraries -lX11 -lXext" CFLAGS_X11="-I$x_includes" @@ -3729,7 +3728,7 @@ fi if test "${enable_xvideo+set}" = set; then enableval="$enable_xvideo" if test x$enable_xvideo = xyes; then - PLUGINS=${PLUGINS}"xvideo " + PLUGINS="${PLUGINS} xvideo" LIB_XVIDEO="-L/usr/X11R6/lib -lX11 -lXext -lXv" fi fi @@ -3740,17 +3739,17 @@ 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:3744: checking for sys/asoundlib.h" >&5 +echo "configure:3743: checking for sys/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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3754: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3753: \"$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* @@ -3767,7 +3766,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:3771: checking for main in -lasound" >&5 +echo "configure:3770: 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 @@ -3775,14 +3774,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lasound $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3785: \"$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 @@ -3807,8 +3806,8 @@ else echo "$ac_t""no" 1>&6 have_alsa="false" fi - if test $have_alsa = true; then - PLUGINS=${PLUGINS}"alsa " + if test x$have_alsa = xtrue; then + PLUGINS="${PLUGINS} alsa" LIB_ALSA="-lasound" fi; fi fi diff --git a/configure.in b/configure.in index 5e89af02d3..a14389e413 100644 --- a/configure.in +++ b/configure.in @@ -24,24 +24,24 @@ AC_C_BIGENDIAN dnl Check for system libs needed AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol) AC_CHECK_FUNCS(setenv putenv) -AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect,LIB=${LIB}" -lsocket")]) -AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname,LIB=${LIB}" -lnsl")]) -AC_CHECK_FUNC(nanosleep,,[AC_CHECK_LIB(rt,nanosleep,LIB=${LIB}" -lrt",[AC_CHECK_LIB(posix4,nanosleep,LIB=${LIB}" -lposix4")])]) +AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect,LIB="${LIB} -lsocket")]) +AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname,LIB="${LIB} -lnsl")]) +AC_CHECK_FUNC(nanosleep,,[AC_CHECK_LIB(rt,nanosleep,LIB="${LIB} -lrt",[AC_CHECK_LIB(posix4,nanosleep,LIB="${LIB} -lposix4")])]) AC_CHECK_FUNCS(usleep) -AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton,LIB=${LIB}" -lresolv")]) +AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton,LIB="${LIB} -lresolv")]) AC_CHECK_FUNCS(vasprintf) AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)], [ # FreeBSD has a gnugetopt library for this: AC_CHECK_LIB([gnugetopt],[getopt_long], - [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB=${LIB}" -lgnugetopt"], + [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB="${LIB} -lgnugetopt"], [GETOPT=1])]) AC_SUBST(GETOPT) AC_FUNC_MMAP AC_TYPE_SIGNAL -AC_CHECK_LIB(dl,dlopen,LIB=${LIB}" -ldl") -AC_CHECK_LIB(m,pow,LIB_YUV=${LIB_YUV}" -lm") +AC_CHECK_LIB(dl,dlopen,LIB="${LIB} -ldl") +AC_CHECK_LIB(m,pow,LIB_YUV="${LIB_YUV} -lm") AC_MSG_CHECKING(for old style FreeBSD -pthread flag) AC_EGREP_CPP(yes, [#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version <= 500001 @@ -50,8 +50,8 @@ AC_EGREP_CPP(yes, ], AC_MSG_RESULT(yes) DEFINE="${DEFINE} -D_THREAD_SAFE" LIB="${LIB} -pthread", AC_MSG_RESULT(no) - AC_CHECK_LIB(pthread,pthread_create,LIB=${LIB}" -lpthread")) -AC_CHECK_LIB(threads,thread_create,LIB=${LIB}" -lthreads") + AC_CHECK_LIB(pthread,pthread_create,LIB="${LIB} -lpthread")) +AC_CHECK_LIB(threads,thread_create,LIB="${LIB} -lthreads") CPPFLAGS="${CPPFLAGS} -I/usr/local/include" AC_CHECK_HEADERS(stddef.h) @@ -79,9 +79,9 @@ void foo() { int meuh; ntohl(meuh); }],, dnl Check for -rdynamic flag CFLAGS="${CFLAGS} -rdynamic -Wall -Werror" -AC_MSG_CHECKING([if \$CC accepts -rdynamic]) +AC_MSG_CHECKING([if \$CC groks -rdynamic without complaining too much]) AC_TRY_COMPILE([],, - LCFLAGS=${LCFLAGS}" -rdynamic" + LCFLAGS="${LCFLAGS} -rdynamic" AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) dnl End of the bizarre compilation tests @@ -109,19 +109,18 @@ ARCH=${host_cpu} dnl dnl default modules dnl -#PLUGINS=${PLUGINS}"ps ts yuv idct idctclassic motion " -BUILTINS=${BUILTINS}"ps ts yuv idct idctclassic motion " +BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion" if test x$host_os = xbeos; then - ACCEL_PLUGINS="yuvmmx idctmmx motionmmx " + ACCEL_PLUGINS="yuvmmx idctmmx motionmmx" else - ACCEL_PLUGINS="yuvmmx idctmmx idctmmxext motionmmx motionmmxext " + ACCEL_PLUGINS="yuvmmx idctmmx idctmmxext motionmmx motionmmxext" fi dnl dnl DVD module: check for DVD ioctls dnl AC_CHECK_HEADERS(sys/ioctl.h,[ - BUILTINS=${BUILTINS}"dvd " + BUILTINS="${BUILTINS} dvd" AC_CHECK_HEADERS(linux/cdrom.h) AC_EGREP_HEADER(dvd,linux/cdrom.h,[ AC_DEFINE(LINUX_DVD,1, DVD support for linux) @@ -134,7 +133,7 @@ dnl AC_ARG_ENABLE(dummy, [ --disable-dummy dummy module (default enabled)]) if test x$enable_dummy != xno; then - BUILTINS=${BUILTINS}"dummy "; fi + BUILTINS="${BUILTINS} dummy"; fi dnl dnl null plugin @@ -142,36 +141,36 @@ dnl AC_ARG_ENABLE(null, [ --disable-null Null module (default enabled)]) if test x$enable_null != xno; then - BUILTINS=${BUILTINS}"null "; fi + BUILTINS="${BUILTINS} null"; fi dnl dnl PentiumPro acceleration dnl AC_ARG_ENABLE(ppro, [ --disable-ppro Disable PentiumPro optimizations (default enabled for x86)], -[ if test x$enableval = xyes; then ARCH=${ARCH}" ppro"; fi ], -[ if test x${host_cpu} = xi686; then ARCH=${ARCH}" ppro"; fi ]) +[ if test x$enableval = xyes; then ARCH="${ARCH} ppro"; fi ], +[ if test x${host_cpu} = xi686; then ARCH="${ARCH} ppro"; fi ]) dnl dnl MMX acceleration dnl AC_ARG_ENABLE(mmx, [ --disable-mmx Disable MMX optimizations (default enabled for x86)], -[ if test x$enableval = xyes; then ARCH=${ARCH}" mmx"; - BUILTINS=${BUILTINS}${ACCEL_PLUGINS}; fi ], -[ if test x${host_cpu} = xi686 -o x${host_cpu} = xi586 -o x${host_cpu} = xx86; then ARCH=${ARCH}" mmx"; - BUILTINS=${BUILTINS}${ACCEL_PLUGINS}; fi ]) +[ if test x$enableval = xyes; then ARCH="${ARCH} mmx"; + BUILTINS="${BUILTINS} ${ACCEL_PLUGINS}"; fi ], +[ if test x${host_cpu} = xi686 -o x${host_cpu} = xi586 -o x${host_cpu} = xx86; then ARCH="${ARCH} mmx"; + BUILTINS="${BUILTINS} ${ACCEL_PLUGINS}"; fi ]) dnl dnl AltiVec acceleration dnl AC_ARG_ENABLE(altivec, [ --enable-altivec Enable altivec optimizations (default disabled since it is broken)], -[ if test x$enableval = xyes; then ARCH=${ARCH}" altivec"; - BUILTINS=${BUILTINS}"idctaltivec " +[ if test x$enableval = xyes; then ARCH="${ARCH} altivec"; + BUILTINS="${BUILTINS} idctaltivec" LIB_IDCTALTIVEC="-framework vecLib" fi ]) -#[ if test -d /System/Library/Frameworks/vecLib.framework; then ARCH=${ARCH}" altivec"; PLUGINS=${PLUGINS}"idctaltivec "; fi ]) +#[ if test -d /System/Library/Frameworks/vecLib.framework; then ARCH="${ARCH} altivec"; PLUGINS="${PLUGINS} idctaltivec"; fi ]) dnl dnl CSS DVD decryption @@ -207,7 +206,7 @@ SYS=${host_os} dnl special case for BeOS if test x$host_os = xbeos; then - BUILTINS=${BUILTINS}"beos " + BUILTINS="${BUILTINS} beos" LIB_BEOS="-lbe -lgame -lroot -ltracker" dnl default case @@ -220,7 +219,7 @@ AC_ARG_ENABLE(dsp, [ --disable-dsp Linux /dev/dsp support (default enabled)]) if test x$enable_dsp != xno; then if test -c /dev/dsp; then - PLUGINS=${PLUGINS}"dsp " + PLUGINS="${PLUGINS} dsp" fi fi @@ -232,7 +231,7 @@ AC_ARG_ENABLE(esd, [if test x$enable_esd = xyes; then AC_PATH_PROG(ESD_CONFIG, esd-config, no) if test x${ESD_CONFIG} != xno; then - PLUGINS=${PLUGINS}"esd " + PLUGINS="${PLUGINS} esd" LIB_ESD="`${ESD_CONFIG} --libs`" fi fi]) @@ -243,7 +242,7 @@ dnl AC_ARG_ENABLE(darwin, [ --enable-darwin Darwin sound support (default disabled)], [if test x$enable_darwin = xyes; then - PLUGINS=${PLUGINS}"darwin " + PLUGINS="${PLUGINS} darwin" LIB_DARWIN="-framework CoreAudio" fi]) @@ -253,16 +252,16 @@ dnl AC_ARG_ENABLE(macosx, [ --enable-macosx Mac OS X interface support (default enabled in Mac OS X)], [if test x$enable_macosx = xyes; then - BUILTINS=${BUILTINS}"macosx " + BUILTINS="${BUILTINS} macosx" LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL" - LIB_TS=${LIB_TS}" -framework AGL -framework Carbon" - LIB_SDL=${LIB_SDL}" -framework AGL -framework Carbon" + LIB_TS="${LIB_TS} -framework AGL -framework Carbon" + LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon" fi], [AC_CHECK_HEADERS(Carbon/Carbon.h, - BUILTINS=${BUILTINS}"macosx " + BUILTINS="${BUILTINS} macosx" LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL" - LIB_TS=${LIB_TS}" -framework AGL -framework Carbon" - LIB_SDL=${LIB_SDL}" -framework AGL -framework Carbon" + LIB_TS="${LIB_TS} -framework AGL -framework Carbon" + LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon" )]) dnl @@ -270,7 +269,7 @@ dnl Linux framebuffer module dnl AC_ARG_ENABLE(fb, [ --enable-fb Linux framebuffer support (default disabled)], - [if test x$enable_fb = xyes; then PLUGINS=${PLUGINS}"fb "; fi]) + [if test x$enable_fb = xyes; then PLUGINS="${PLUGINS} fb"; fi]) dnl dnl GGI module @@ -279,7 +278,7 @@ AC_ARG_WITH(ggi, [ --with-ggi[=name] GGI support (default disabled)], [ if test "x$withval" != "xno"; then - PLUGINS=${PLUGINS}"ggi "; + PLUGINS="${PLUGINS} ggi"; if test "x$withval" != "xyes"; then LIB_GGI="-l"$withval @@ -295,21 +294,21 @@ AC_ARG_WITH(sdl, [ --with-sdl[=name] SDL support (default enabled)], [ if test "x$withval" != "xno"; then - PLUGINS=${PLUGINS}"sdl "; + PLUGINS="${PLUGINS} sdl"; if test "x$withval" != "xyes"; then - LIB_SDL=${LIB_SDL}" -L/usr/X11R6/lib -L"$withval"/lib -l"$withval - INCLUDE=${INCLUDE}" -I"$withval"/include" + LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -L"$withval"/lib -l"$withval + INCLUDE="${INCLUDE} -I"$withval"/include" else AC_CHECK_HEADERS(SDL/SDL.h, , [echo "Cannot find SDL headers !"; exit]) - LIB_SDL=${LIB_SDL}" -L/usr/X11R6/lib -lSDL" + LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL" fi fi ]) if test "x$withval" = "x"; then AC_CHECK_HEADERS(SDL/SDL.h, - [PLUGINS=${PLUGINS}"sdl " - LIB_SDL=${LIB_SDL}" -L/usr/X11R6/lib -lSDL"]) + [PLUGINS="${PLUGINS} sdl" + LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL"]) fi dnl @@ -319,7 +318,7 @@ AC_ARG_WITH(glide, [ --with-glide[=name] Glide (3dfx) support (default disabled)], [ if test "x$withval" != "xno"; then - PLUGINS=${PLUGINS}"glide "; + PLUGINS="${PLUGINS} glide"; if test "x$withval" != "xyes"; then LIB_GLIDE="-l"$withval @@ -334,7 +333,7 @@ dnl AC_ARG_ENABLE(ncurses, [ --enable-ncurses ncurses interface support (default disabled)], [if test x$enable_ncurses = xyes; then - PLUGINS=${PLUGINS}"ncurses " + PLUGINS="${PLUGINS} ncurses" LIB_NCURSES="-lncurses" fi]) @@ -344,8 +343,8 @@ dnl AC_ARG_ENABLE(qt, [ --enable-qt Qt interface support (default disabled)], [if test x$enable_qt = xyes; then - PLUGINS=${PLUGINS}"qt " - ALIASES=${ALIASES}"qvlc " + PLUGINS="${PLUGINS} qt" + ALIASES="${ALIASES} qvlc" LIB_QT="-lqt -L${QTDIR}/lib" fi]) @@ -354,7 +353,7 @@ dnl KDE module dnl AC_ARG_ENABLE(kde, [ --enable-kde KDE interface support (default disabled)], - [if test x$enable_kde = xyes; then PLUGINS=${PLUGINS}"kde "; ALIASES=${ALIASES}"kvlc "; fi]) + [if test x$enable_kde = xyes; then PLUGINS="${PLUGINS} kde"; ALIASES="${ALIASES} kvlc"; fi]) dnl dnl Gnome module @@ -362,8 +361,8 @@ dnl AC_ARG_ENABLE(gnome, [ --enable-gnome Gnome interface support (default disabled)], [if test x$enable_gnome = xyes; then - PLUGINS=${PLUGINS}"gnome " - ALIASES=${ALIASES}"gnome-vlc " + PLUGINS="${PLUGINS} gnome" + ALIASES="${ALIASES} gnome-vlc" LIB_GNOME="`gnome-config --libs gnomeui | sed 's,-rdynamic,,'`" fi]) @@ -375,8 +374,8 @@ AC_ARG_ENABLE(gtk, if test x$enable_gtk != xno; then AC_PATH_PROG(GTK_CONFIG, gtk-config, no) if test x${GTK_CONFIG} != xno; then - PLUGINS=${PLUGINS}"gtk " - ALIASES=${ALIASES}"gvlc " + PLUGINS="${PLUGINS} gtk" + ALIASES="${ALIASES} gvlc" CFLAGS_GTK="`${GTK_CONFIG} --cflags gtk`" LIB_GTK="`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`" fi @@ -397,7 +396,7 @@ if test x$enable_x11 != xno; then saved_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$x_includes" AC_CHECK_HEADERS(X11/Xlib.h, [ - PLUGINS=${PLUGINS}"x11 " + PLUGINS="${PLUGINS} x11" LIB_X11="-L$x_libraries -lX11 -lXext" CFLAGS_X11="-I$x_includes" ] @@ -410,7 +409,7 @@ dnl AC_ARG_ENABLE(xvideo, [ --enable-xvideo XVideo interface support (default disabled)], [if test x$enable_xvideo = xyes; then - PLUGINS=${PLUGINS}"xvideo " + PLUGINS="${PLUGINS} xvideo" LIB_XVIDEO="-L/usr/X11R6/lib -lX11 -lXext -lXv" fi]) @@ -419,8 +418,8 @@ dnl ALSA module dnl AC_ARG_ENABLE(alsa, [ --enable-alsa Alsa sound drivers support (Only for linux) (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") if test $have_alsa = true; then - PLUGINS=${PLUGINS}"alsa " + [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") if test x$have_alsa = xtrue; then + PLUGINS="${PLUGINS} alsa" LIB_ALSA="-lasound" fi; fi]) diff --git a/plugins/mpeg/Makefile b/plugins/mpeg/Makefile index fb5b71a1cd..281378158f 100644 --- a/plugins/mpeg/Makefile +++ b/plugins/mpeg/Makefile @@ -7,13 +7,15 @@ # Objects # +PLUGIN_ES = es.o input_es.o PLUGIN_PS = ps.o input_ps.o PLUGIN_TS = ts.o input_ts.o +BUILTIN_ES = $(PLUGIN_ES:%.o=BUILTIN_%.o) BUILTIN_PS = $(PLUGIN_PS:%.o=BUILTIN_%.o) BUILTIN_TS = $(PLUGIN_TS:%.o=BUILTIN_%.o) -PLUGIN_C = $(PLUGIN_PS) $(PLUGIN_TS) -BUILTIN_C = $(BUILTIN_PS) $(BUILTIN_TS) +PLUGIN_C = $(PLUGIN_ES) $(PLUGIN_PS) $(PLUGIN_TS) +BUILTIN_C = $(BUILTIN_ES) $(BUILTIN_PS) $(BUILTIN_TS) ALL_OBJ = $(PLUGIN_C) $(BUILTIN_C) # @@ -26,6 +28,12 @@ include ../../Makefile.modules # Real targets # +../../lib/es.so: $(PLUGIN_ES) + $(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS) + +../../lib/es.a: $(BUILTIN_ES) + ar r $@ $^ + ../../lib/ps.so: $(PLUGIN_PS) $(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS) diff --git a/plugins/mpeg/es.c b/plugins/mpeg/es.c new file mode 100644 index 0000000000..c26a08a475 --- /dev/null +++ b/plugins/mpeg/es.c @@ -0,0 +1,111 @@ +/***************************************************************************** + * es.c : Elementary Stream input module for vlc + ***************************************************************************** + * Copyright (C) 2001 VideoLAN + * $Id: es.c,v 1.1 2001/04/20 15:02:48 sam Exp $ + * + * Authors: + * + * 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 es +#include "modules_inner.h" + +/***************************************************************************** + * Preamble + *****************************************************************************/ +#include "defs.h" + +#include /* malloc(), free() */ +#include /* strdup() */ + +#include "config.h" +#include "common.h" /* boolean_t, byte_t */ +#include "threads.h" +#include "mtime.h" + +#include "modules.h" + +/***************************************************************************** + * Build configuration tree. + *****************************************************************************/ +MODULE_CONFIG_START +ADD_WINDOW( "Configuration for ES module" ) + ADD_COMMENT( "foobar !" ) +MODULE_CONFIG_END + +/***************************************************************************** + * Capabilities defined in the other files. + *****************************************************************************/ +void _M( input_getfunctions )( function_list_t * p_function_list ); + +/***************************************************************************** + * InitModule: get the module structure and configuration. + ***************************************************************************** + * We have to fill psz_name, psz_longname and psz_version. These variables + * will be strdup()ed later by the main application because the module can + * be unloaded later to save memory, and we want to be able to access this + * data even after the module has been unloaded. + *****************************************************************************/ +MODULE_INIT +{ + p_module->psz_name = MODULE_STRING; + p_module->psz_longname = "ISO 13818-1 MPEG Elementary Stream input module"; + p_module->psz_version = VERSION; + + p_module->i_capabilities = MODULE_CAPABILITY_NULL + | MODULE_CAPABILITY_INPUT; + + return( 0 ); +} + +/***************************************************************************** + * ActivateModule: set the module to an usable state. + ***************************************************************************** + * This function fills the capability functions and the configuration + * structure. Once ActivateModule() has been called, the i_usage can + * be set to 0 and calls to NeedModule() be made to increment it. To unload + * the module, one has to wait until i_usage == 0 and call DeactivateModule(). + *****************************************************************************/ +MODULE_ACTIVATE +{ + p_module->p_functions = malloc( sizeof( module_functions_t ) ); + if( p_module->p_functions == NULL ) + { + return( -1 ); + } + + _M( input_getfunctions )( &p_module->p_functions->input ); + + p_module->p_config = p_config; + + return( 0 ); +} + +/***************************************************************************** + * DeactivateModule: make sure the module can be unloaded. + ***************************************************************************** + * This function must only be called when i_usage == 0. If it successfully + * returns, i_usage can be set to -1 and the module unloaded. Be careful to + * lock usage_lock during the whole process. + *****************************************************************************/ +MODULE_DEACTIVATE +{ + free( p_module->p_functions ); + + return( 0 ); +} + diff --git a/plugins/mpeg/input_es.c b/plugins/mpeg/input_es.c new file mode 100644 index 0000000000..e971328350 --- /dev/null +++ b/plugins/mpeg/input_es.c @@ -0,0 +1,268 @@ +/***************************************************************************** + * input_es.c: Elementary Stream demux and packet management + ***************************************************************************** + * Copyright (C) 2001 VideoLAN + * $Id: input_es.c,v 1.1 2001/04/20 15:02:48 sam Exp $ + * + * Authors: + * + * 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 es +#include "modules_inner.h" + +/***************************************************************************** + * Preamble + *****************************************************************************/ +#include "defs.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include "config.h" +#include "common.h" +#include "threads.h" +#include "mtime.h" +#include "tests.h" + +#include "intf_msg.h" + +#include "main.h" + +#include "stream_control.h" +#include "input_ext-intf.h" +#include "input_ext-dec.h" + +#include "input.h" + +#include "input_es.h" +#include "mpeg_system.h" + +#include "debug.h" + +#include "modules.h" + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static int ESProbe ( probedata_t * ); +static int ESRead ( struct input_thread_s *, + data_packet_t * p_packets[INPUT_READ_ONCE] ); +static void ESInit ( struct input_thread_s * ); +static void ESEnd ( struct input_thread_s * ); +static void ESSeek ( struct input_thread_s *, off_t ); +static void ESDemux ( struct input_thread_s *, struct data_packet_s * ); +static struct pes_packet_s * NewPES ( void * ); +static struct data_packet_s * NewPacket ( void *, size_t ); +static void DeletePacket( void *, struct data_packet_s * ); +static void DeletePES ( void *, struct pes_packet_s * ); + +/***************************************************************************** + * Functions exported as capabilities. They are declared as static so that + * we don't pollute the namespace too much. + *****************************************************************************/ +void _M( input_getfunctions )( function_list_t * p_function_list ) +{ +#define input p_function_list->functions.input + p_function_list->pf_probe = ESProbe; + input.pf_init = ESInit; + input.pf_open = input_FileOpen; + input.pf_close = input_FileClose; + input.pf_end = ESEnd; + input.pf_set_area = NULL; + input.pf_read = ESRead; + input.pf_demux = ESDemux; + input.pf_new_packet = NewPacket; + input.pf_new_pes = NewPES; + input.pf_delete_packet = DeletePacket; + input.pf_delete_pes = DeletePES; + input.pf_rewind = NULL; + input.pf_seek = ESSeek; +#undef input +} + +/* + * Data reading functions + */ + +/***************************************************************************** + * ESProbe: verifies that the stream is a ES stream + *****************************************************************************/ +static int ESProbe( probedata_t *p_data ) +{ + input_thread_t * p_input = (input_thread_t *)p_data; + + char * psz_name = p_input->p_source; + int i_handle; + int i_score = 10; + + if( TestMethod( INPUT_METHOD_VAR, "es" ) ) + { + return( 999 ); + } + + i_handle = open( psz_name, 0 ); + if( i_handle == -1 ) + { + return( 0 ); + } + close( i_handle ); + + return( i_score ); +} + +/***************************************************************************** + * ESInit: initializes ES structures + *****************************************************************************/ +static void ESInit( input_thread_t * p_input ) +{ + thread_es_data_t * p_method; + + if( (p_method = + (thread_es_data_t *)malloc( sizeof(thread_es_data_t) )) == NULL ) + { + intf_ErrMsg( "Out of memory" ); + p_input->b_error = 1; + return; + } + p_input->p_plugin_data = (void *)p_method; + + /* XXX */ +} + +/***************************************************************************** + * ESEnd: frees unused data + *****************************************************************************/ +static void ESEnd( input_thread_t * p_input ) +{ + /* XXX */ + + free( p_input->p_plugin_data ); +} + +/***************************************************************************** + * SafeRead: reads a chunk of stream and correctly detects errors + *****************************************************************************/ +static __inline__ int SafeRead( input_thread_t * p_input, byte_t * p_buffer, + size_t i_len ) +{ + thread_es_data_t * p_method; + int i_error; + + p_method = (thread_es_data_t *)p_input->p_plugin_data; + while( fread( p_buffer, i_len, 1, p_method->stream ) != 1 ) + { + if( feof( p_method->stream ) ) + { + return( 1 ); + } + + if( (i_error = ferror( p_method->stream )) ) + { + intf_ErrMsg( "Read failed (%s)", strerror(i_error) ); + return( -1 ); + } + } + vlc_mutex_lock( &p_input->stream.stream_lock ); + p_input->stream.p_selected_area->i_tell += i_len; + vlc_mutex_unlock( &p_input->stream.stream_lock ); + + return( 0 ); +} + +/***************************************************************************** + * ESRead: reads data packets + ***************************************************************************** + * Returns -1 in case of error, 0 if everything went well, and 1 in case of + * EOF. + *****************************************************************************/ +static int ESRead( input_thread_t * p_input, + data_packet_t * pp_packets[INPUT_READ_ONCE] ) +{ + /* XXX */ + + return( 0 ); +} + +/***************************************************************************** + * ESSeek: changes the stream position indicator + *****************************************************************************/ +static void ESSeek( input_thread_t * p_input, off_t i_position ) +{ + thread_es_data_t * p_method; + + p_method = (thread_es_data_t *)p_input->p_plugin_data; + + /* A little bourrin but should work for a while --Meuuh */ + fseeko( p_method->stream, i_position, SEEK_SET ); + + p_input->stream.p_selected_area->i_tell = i_position; +} + +void ESDemux( input_thread_t * p_input, data_packet_t * p_data ) +{ + /* XXX */ +} + +/* + * Packet management utilities + */ + +/***************************************************************************** + * NewPacket: allocates a data packet + *****************************************************************************/ +static struct data_packet_s * NewPacket( void * p_packet_cache, + size_t l_size ) +{ + /* XXX */ + + return NULL; +} + + +/***************************************************************************** + * NewPES: allocates a pes packet + *****************************************************************************/ +static pes_packet_t * NewPES( void * p_packet_cache ) +{ + /* XXX */ + + return NULL; +} + +/***************************************************************************** + * DeletePacket: deletes a data packet + *****************************************************************************/ +static void DeletePacket( void * p_packet_cache, + data_packet_t * p_data ) +{ + /* XXX */ +} + +/***************************************************************************** + * DeletePES: deletes a PES packet and associated data packets + *****************************************************************************/ +static void DeletePES( void * p_packet_cache, pes_packet_t * p_pes ) +{ + /* XXX */ +} + diff --git a/plugins/mpeg/input_es.h b/plugins/mpeg/input_es.h new file mode 100644 index 0000000000..81f9ab7679 --- /dev/null +++ b/plugins/mpeg/input_es.h @@ -0,0 +1,32 @@ +/***************************************************************************** + * input_es.h: thread structure of the ES plugin + ***************************************************************************** + * Copyright (C) 2001 VideoLAN + * $Id: input_es.h,v 1.1 2001/04/20 15:02:48 sam Exp $ + * + * Authors: + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * thread_es_data_t: extension of input_thread_t + *****************************************************************************/ +typedef struct thread_es_data_s +{ + /* We're necessarily reading a file. */ + FILE * stream; +} thread_es_data_t; +