* modules/LIST: Updated all modules
authorClément Stenac <zorglub@videolan.org>
Sun, 10 Aug 2003 12:45:52 +0000 (12:45 +0000)
committerClément Stenac <zorglub@videolan.org>
Sun, 10 Aug 2003 12:45:52 +0000 (12:45 +0000)
* modules/list.sh: piggy list consistency checker
 (should probably be added to toolbox or trashed)

* modules/access/slp.c : Fixed service detection
(findsrvtypes returns a comma-separated list of services)

modules/LIST
modules/access/slp.c
modules/list.sh [new file with mode: 0755]

index 2bff799..537eece 100644 (file)
@@ -1,39 +1,99 @@
-List of vlc plugins
-$Id: LIST,v 1.9 2003/08/05 11:54:11 jpsaman Exp $
+List of vlc plugins (221)
+$Id: LIST,v 1.10 2003/08/10 12:45:52 zorglub Exp $
 
- * a52_system: input module for A52 decapsulation.
+ * a52: A/52 basic parser
 
- * ac3_adec: software AC3 decoder.
+ * a52old: Old A/52 decoder
+ * a52sys: A/52 decapsulation demuxer.
 
- * ac3_spdif: AC3 decoder using SPDIF pass-through.
+ * a52tofloat32: A/52 audio converter & decoder plugin, using liba52
+
+ * a52tospdif: Audio converter module to encapsulate A/52 into S/PDIF
+
+ * aa: Ascii art video output
+
+ * aac: AAC stream demuxer
+ * access_directory: Access module to read files in a directory
+
+ * access_file: File access module
+
+ * access_ftp: FTP Network access module
+
+ * access_http: HTTP Network access module
+
+ * access_mms: MMS over TCP, UDP and HTTP access module
+
+ * access_output_dummy: dummy access_output module
+
+ * access_output_file: File access_output module
+
+ * access_output_http: HTTP Network access module
+
+ * access_output_udp: UDP Network access_output module
+
+ * access_udp: UDP Network access module 
+
+ * adjust: Contrast/Hue/saturation/Brightness adjust module
+ * adpcm: ADPCM audio decoder
 
  * alsa: audio output module using the ALSA API.
 
+ * aout_directx: audio output module using the DirectX API.
+
+ * aout_file: Audio output to write to a file
+
+ * aout_sdl: audio output module using the SDL library.
+ * araw: Pseudo audio decoder for raw PCM
+
  * arts: audio output module using the aRts sound daemon.
 
- * beos: audio output, video output, and interface module for BeOS.
+ * asf: ASF demuxer
+ * au: AU file demuxer
+
+ * avi: AVI File stream demuxer
 
- * chroma_i420_rgb: planar YUV to packed RGB conversion functions.
+ * bandlimited_resampler: Badnlimited interpolation audio resampler
 
- * chroma_i420_rgb_mmx: MMX accelerated version of chroma_i420_rgb.
+ * beos: Audio output, video output and interface module for BeOS.
 
- * chroma_i420_yuy2: planar 4:2:0 YUV to packed YUV conversion functions.
+ * cdda: input module to read audio CDs
 
- * chroma_i420_yuy2_mmx: MMX accelerated version of chroma_i420_yuy2.
+ * cinepak: Cinepack video decoder
 
- * chroma_i422_yuy2: planar 4:2:2 YUV to packed YUV conversion functions.
+ * clone: Clone video filter
 
- * chroma_i422_yuy2_mmx: MMX accelerated version of chroma_i422_yuy2.
+ * corba: CORBA control module
 
- * directx: audio output and video output module using the DirectX API.
+ * coreaudio: CoreAudio audio output
+
+ * coreaudio_resampler: Audio resampler based on CoreAudio's AudioConverter
+
+ * crop: Crop video filter
+
+ * deinterlace: naive deinterlacing filter.
+
+ * demuxdump: Pseudo-demuxer that dumps the stream
+
+ * demuxsub: Text subtitles demuxer
+
+ * directory : input module to read files in a directory
+
+ * distort: miscellaneous image effects filter.
+
+ * downmix3dn: 3D Now! accelerated version of downmix.
 
  * downmix: downmix module, used by the AC3 decoder.
 
  * downmixsse: SSE accelerated version of downmix.
 
- * downmix3dn: 3D Now! accelerated version of downmix.
+ * dts: DTS basic parser
 
- * dsp: audio output module using the OSS /dev/dsp interface.
+ * dtstospdif: Audio converter that encapsulates DTS into S/PDIF
 
  * dummy: dummy audio output, video output, interface and input modules.
 
@@ -41,119 +101,342 @@ $Id: LIST,v 1.9 2003/08/05 11:54:11 jpsaman Exp $
 
  * dvd: input module for accessing DVDs.
 
+ * dvdplay: access module for accessing DVDs using libdvdplay
+
  * dvdread: input module for accessing DVDs, uses libdvdread.
 
+ * dv: DV video decoder
+ * encoder_ffmpeg: Encoder using the ffmpeg library
+
+ * encoder_xvid: Encoder for the xvid codec using libxvidcore
+
  * esd: audio output module using the Esound sound daemon.
 
+ * es: input module for MPEG ES decapsulation.
+
+ * faad: AAC decoder using libfaad2
+
  * fb: video output module for the Linux framebuffer.
 
- * filter_deinterlace: naive deinterlacing filter.
+ * ffmpeg: Video decoder using the ffmpeg library
 
- * filter_transform: filter for horizontal and vertical image flips and
-                     90° rotations.
+ * fixed32tofloat32: Audio converter from fixed 32 bits to float 32 bits
+
+ * fixed32tos16: Fixed 32 bits to Signed 16 bits integer audio converter
 
- * filter_invert: inverse video filter.
+ * flac: A/52 demuxer
 
- * filter_distort: miscellaneous image effects filter.
+ * flacdec: Flac decoder using libflac
 
- * filter_wall: image wall filter.
+ * float32_mixer: Precise float32 audio mixer
+
+ * float32tos16: float32 to 16 bits signed integer audio converter
+
+ * float32tos8: float32 to 8 bits signed integer audio converter
+ * float32tou16: float32 to 16 bits unsigned integer audio converter
+
+ * float32tou8: float32 to 8 bits unsigned integer audio converter
+ * freetype: Utility to put text on video using freetype2
+
+ * ftp : FTP input module
+
+ * gestures: mouse gestures control plugin
 
  * ggi: video output module using the GGI API.
 
  * glide: video output module using the Glide API.
 
+ * gnome2: interface using the GNOME2 widget set
+ * gnome2_main: Gtk+ wrapper for gtk_main
+
  * gnome: interface using the GNOME widget set.
+ * gnome_main: Gtk+ wrapper for gtk_main
+
+ * gtk2: interface using the Gtk2 widget set.
+
+ * gtk2_main: Gtk+ wrapper for gtk_main
 
  * gtk: interface using the Gtk+ widget set.
 
- * headphone: headphone channel mixer with virtual spatialization effect.
+ * gtk_main: Gtk+ wrapper for gtk_main
+
+ * headphone_channel_mixer:
+        headphone channel mixer with virtual spatialization effect.
+
+ * httpd: HTTP server
+
+ * http: HTTP remote control interface
+
+ * i420_rgb_mmx: MMX accelerated version of i420_rgb.
+
+ * i420_rgb: planar YUV to packed RGB conversion functions.
+
+ * i420_ymga_mmx: MMX accelerated version of i420_ymga
+
+ * i420_ymga: YUV to YUC conversion functions
+
+ * i420_yuy2_mmx: MMX accelerated version of i420_yuy2.
+
+ * i420_yuy2: planar 4:2:0 YUV to packed YUV conversion functions.
 
- * idct: inverse DCT module, used by the video decoder.
+ * i422_yuy2_mmx: MMX accelerated version of i422_yuy2.
 
+ * i422_yuy2: planar 4:2:2 YUV to packed YUV conversion functions.
+
+ * id3: ID3 tag skipper
+ * id3tag: ID3 tag parser/skipper using libid3tag
+ * idctaltivec: AltiVec accelerated version of idct.
  * idctclassic: another version of idct.
 
- * idctmmx: MMX accelerated version of idct.
+ * idct: inverse DCT module, used by mpeg_video_old
 
  * idctmmxext: MMX EXT accelerated version of idct.
+ * idctmmx: MMX accelerated version of idct.
+ * imdct3dn: 3D Now! Accelerated A/52 DCT
 
- * idctaltivec: AltiVec accelerated version of idct.
+ * imdct: IMDCT module for the A/52 decoder
+
+ * imdctsse: SSE accelerated A/52 DCT
 
- * imdct: iMDCT module, used by the AC3 decoder.
+ * invert: inverse video filter.
 
- * imdct3dn: 3D Now! accelerated version of imdct.
+ * ipv4: IPv4 network abstraction layer
 
- * imdctsse: SSE accelerated version of imdct.
+ * ipv6: IPv6 network abstraction layer
+ * joystick: Linux joystick control module
 
  * kde: interface module using the KDE widget set.
 
- * lpcm_adec: LPCM audio decoder.
+ * libmpeg2: Mpeg2 video decoder using libmpeg2
+
+ * linear_resampler: linear audio resampler
+
+ * lirc: Linux infrared control module
 
- * macosx: audio output, video output and interface module for Mac OS X.
+ * logger: file logger plugin
 
- * mad: MPEG and MPEG2 audio decoder using the libmad library.
+ * logo: video filter to put a logo on the video
+ * lpcm: LPCM decoder
+ * m3u: PLS, M3U, ASX and B4S playlist parser
+
+ * m4v: MPEG-4 Video Stream demuxer
+
+ * macosx: Audio output, Video output, and nterface module for Mac OS X.
+
+ * memcpy3dn: 3D Now! accelerated version of memcpy.
+
+ * memcpyaltivec: Altivec accelerated version of memcpy.
 
  * memcpy: memory chunk copying module.
 
+ * memcpymmxext: MMX EXT accelerated version of memcpy.
+
  * memcpymmx: MMX accelerated version of memcpy.
 
- * memcpymmxext: MMX EXT accelerated version of memcpy.
+ * mga: video output module for Matrox cards using the Linux mga kernel driver.
 
- * memcpy3dn: 3D Now! accelerated version of memcpy.
+ * mkv: Matroska demuxer
 
- * mga: video output module for Matrox cards using the Linux mga kernel
-        driver.
+ * motion3dnow: 3D Now! accelerated version of motion.
+ * motionaltivec: AltiVec accelerated version of motion.
 
- * motion: motion compensation module, used by the video decoder.
+ * motionblur: Motion blur filter
 
+ * motionmmxext: MMX EXT accelerated version of motion.
  * motionmmx: MMX accelerated version of motion.
 
- * motionmmxext: MMX EXT accelerated version of motion.
+ * motion: motion compensation module for mpeg_video_old
 
- * motion3dnow: 3D Now! accelerated version of motion.
+ * mp4: MP4 file input module
 
- * motionaltivec: AltiVec accelerated version of motion.
+ * mpeg_audio: MPEG audio parser and packetizer
 
- * mpeg_es: input module for MPEG ES decapsulation.
+ * mpeg_system: helper module for TS, PS and PES management
 
- * mpeg_ps: input module for MPEG PS decapsulation.
+ * mpeg_video_old: MPEG and MPEG2 video decoder.
 
- * mpeg_ts: input module for MPEG TS decapsulation.
+ * mpga: MPEG-I/II Audio demuxer
 
- * mpeg_adec: MPEG and MPEG2 audio decoder.
+ * mpgatofixed32: MPEG-1 & 2 audio layer I,II,III audio decoder using MAD
 
- * mpeg_vdec: MPEG and MPEG2 video decoder.
+ * mux_avi: AVI muxer
 
- * ncurses: interface module using the ncurses library.
+ * mux_dummy: dummy muxer
+ * mux_mp4: MP4 muxer
+
+ * mux_ogg: OGG muxer
+ * mux_ps: MPEG program stream muxer
 
- * null: a module with no capabilities.
+ * mux_ts_dvbpsi: MPEG transport stream muxer using libdvbpsi
+
+ * mux_ts: MPEG transport stream muxer
+
+ * ncurses: interface module using the ncurses library.
 
  * ogg: input module for OGG decapsulation.
 
+ * oss: audio output module using the OSS /dev/dsp interface.
+ * packetizer_a52: A/52 audio packetizer
+
+ * packetizer_copy: Simple copy packetizer
+
+ * packetizer_mpeg4audio: MPEG4 audio packetizer
+ * packetizer_mpeg4video: MPEG4 video packetizer
+
+ * packetizer_mpegaudio: MPEG audio packetizer
+ * packetizer_mpegvideo: MPEG video packetizer
+ * packetizer_vorbis: Vorbis packetizer
+
  * pda: interface for iPaq using the Gtk2+ widget set.
 
- * qt: interface module using the Qt widget set.
+ * postprocessing_c: Video Postprocessing module
+
+ * postprocessing_mmxext: Video Postprocessing module using MMX_EXT 
+
+ * postprocessing_mmx: Video Postprocessing module using MMX
+
+ * ps: input module for MPEG PS decapsulation.
+
+ * pvr: input module to read from a PVR card
+
+ * qnx: QNX RTOS plugin
+
+ * qte_main: QT Embedded wrapper for gte_main
 
  * qte: video output module for Qt Embedded.
+ * qt: interface module using the Qt widget set.
+
+ * quicktime: Quicktime decoder that uses the QT library
+
+ * rawdv: Raw DV demuxer
+ * rawvideo: Pseudo audio-decoder for raw video
 
  * rc: interface module using stdio.
 
- * sdl: audio output and video output module using the SDL library.
+ * s16tofixed32: Signed 16 bits to fixed 32 bits audio converter
+
+ * s16tofloat32: Signed 16 bits to float 32 bits audio converter
+ * s16tofloat32swab: Signed 16 bits to float 32 bits audio converter with endianess change
+
+ * s8tofloat32: Signed 8 bits to float 32 bits audio converter
+
+ * sap: Interface module to read SAP/SDP announcments
+
+ * satellite: Satellite cards access module
+
+ * scope: Scope visualization plugin (broken)
+
+ * screensaver: screensaver disabling module
+
+ * skins: Skinnable interface
+
+ * slp: input module to access SLP registered sessions
+
+ * spdif_mixer: dummy audio mixer for the S/PDIF output
 
  * spudec: DVD subtitles decoder.
 
+ * stream_out_display: displays a stream output chain 
+
+ * stream_out_dummy: dummy stream out chain module
+
+ * stream_out_duplicate: duplicates a stream output chain
+
+ * stream_out_es: stream out module outputing ES
+
+ * stream_out_standard: standard stream output module
+ * stream_out_transcode: audio & video transcoder using ffmpeg
+
+ * subsdec: Another SPU decoder
+
+ * svgalib: SGVAlib output plugin
+
+ * tarkin: a tarkin video decoder using libtarkin
+
+ * test1: Empty C module
+
+ * test2: Empty C++ module
+
+ * test3: Empty Objective C module
+
+ * test4: Stress test module
+
  * theora: a theora video decoder using the libtheora library.
 
+ * transform: filter for horizontal and vertical image flips and
+                     90° rotations.
+
  * tremor: a vorbis audio decoder using the libvorbisidec (aka tremor) library.
 
+ * trivial_channel_mixer: Simple channel mixer plugin
+
+ * trivial_mixer: Trivial audio mixer plugin
+
+ * trivial_resampler: Simple audio resampler
+
+ * ts_dvbpsi: same as ts using libdvbpsi
+
+ * ts: input module for MPEG TS decapsulation.
+
+ * u8tofixed32: unsigned 8 bits to fixed 32 bits audio converter 
+
+ * u8tofloat32: unsigned 8 bits to float 32 bits audio converter 
+
+ * ugly_resampler: Ugly audio resampler
+
+ * v4l: Video 4 Linux input module
+
  * vcd: input module for accessing Video CDs.
 
  * vorbis: a vorbis audio decoder using the libvorbis library.
 
+ * vout_directx: video output module using the DirectX API.
+
+ * vout_encoder: Encoder plugin
+
+ * vout_sdl: video output module using the SDL library.
+
+ * wall: image wall filter.
+
  * waveout: simple audio output module for Windows.
 
+ * wav: Wav demuxer
+
+ * wingdi: WIN 32 / WIN CE GDI video output
+
  * wxwindows: interface module using the cross-platform wxWindows library.
 
  * x11: video output module using the X11 API.
 
- * xvideo: video output module using the XVideo API.
+ * xmga: X11 MGA video_output plugin
+ * xosd: X On Screen Display interface
 
+ * xvid: Decoder for the Xvid codec, using libxvidcore
+
+ * xvideo: video output module using the XVideo API.
index de05f1a..dd1281f 100644 (file)
@@ -2,7 +2,7 @@
  * slp.c: SLP access plugin
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: slp.c,v 1.13 2003/07/23 01:13:47 gbazin Exp $
+ * $Id: slp.c,v 1.14 2003/08/10 12:45:52 zorglub Exp $
  *
  * Authors: Loïc Minier <lool@videolan.org>
  *
@@ -145,6 +145,8 @@ static SLPBoolean SrvUrlCallback( SLPHandle slph_slp,
     {
         return SLP_TRUE;
     }
+    
+    msg_Dbg(p_input,"URL: %s",psz_srvurl);
 
     /* or there was a problem with getting the data we requested */
     if( (slpe_errcode != SLP_OK) )
@@ -247,12 +249,17 @@ static SLPBoolean SrvTypeCallback( SLPHandle slph_slp,
     input_thread_t * p_input = (input_thread_t  *)p_cookie;
     SLPError slpe_result;
     SLPHandle slph_slp2;
+    char *psz_eos;
+    char *psz_service;
 
+    msg_Dbg(p_input,"Services: %s",psz_srvurl);
     /* our callback was only called to tell us there's nothing more to read */
     if( slpe_errcode == SLP_LAST_CALL )
     {
         return SLP_TRUE;
     }
+    
+    msg_Dbg(p_input,"Services: %s",psz_srvurl);
 
     /* or there was a problem with getting the data we requested */
     if( slpe_errcode != SLP_OK )
@@ -270,23 +277,50 @@ static SLPBoolean SrvTypeCallback( SLPHandle slph_slp,
                  &slph_slp2 ) == SLP_OK )
     {
         /* search for services */
-        slpe_result = SLPFindSrvs( slph_slp2,
-                                   psz_srvurl,
+        while(1)
+        {
+            if( *psz_srvurl == '\0')  break;
+
+            if( !strncasecmp( psz_srvurl, "service:", 8 ) )
+            {
+                while(1)
+                {
+                    psz_eos = strchr( psz_srvurl, ',');
+                    if(!psz_eos) break;
+                    if(!strncasecmp(psz_eos+1,"service:",8)) break;
+                }
+        
+                if(psz_eos) 
+                    *psz_eos = '\0';
+
+                psz_service = strdup( psz_srvurl);
+               
+                msg_Dbg(p_input,"Getting details for %s",psz_service);
+                
+                slpe_result = SLPFindSrvs( slph_slp2,
+                                   psz_service,
                                    config_GetPsz( p_input, "slp-scopelist" ),
                                    config_GetPsz( p_input, "slp-filter" ),
                                    SrvUrlCallback,
                                    p_input );
 
-        SLPClose( slph_slp2 );
-
-        if( slpe_result != SLP_OK )
-        {
-            msg_Err( p_input,
-                     "SLPFindSrvs error %i finding servers of type %s",
-                     slpe_result,
-                     psz_srvurl );
+                if(psz_eos)
+                    psz_srvurl = psz_eos;
+                
+//                SLPClose( slph_slp2 );
+
+                if( slpe_result != SLP_OK )
+                {
+                   msg_Err( p_input,
+                           "SLPFindSrvs error %i finding servers of type %s",
+                           slpe_result,
+                           psz_service );
+                }
+            }
+            psz_srvurl++;
         }
     }
+                SLPClose( slph_slp2 );
 
     return SLP_TRUE;
 }
diff --git a/modules/list.sh b/modules/list.sh
new file mode 100755 (executable)
index 0000000..0ac02fa
--- /dev/null
@@ -0,0 +1,86 @@
+#! /bin/sh
+# Piggy list consistency checker
+
+TEMPFILE=/tmp/list.tmp
+LISTFILE=LIST
+LISTFILE2=/tmp/list2.tmp
+LISTFILE3=/tmp/list3.tmp
+
+
+rm -f $TEMPFILE
+touch $TEMPFILE
+
+echo "------------------------------------"
+echo "Checking that all modules are listed"
+echo "------------------------------------"
+
+i=0
+
+for modfile in `find . -name "Modules.am"`
+do
+ for module in `grep "SOURCES_" $modfile|awk '{print $1}'|awk 'BEGIN {FS="SOURCES_"};{print $2}'`
+ do
+  echo $module >> $TEMPFILE
+  if [ `grep " \* $module:" $LISTFILE |wc -l` == 0 ]
+  then
+   echo "$module exists in $modfile, but not listed"
+   i=1
+  fi
+ done
+done
+
+if [ $i == 0 ]
+then
+  echo "OK"
+fi
+
+i=0
+
+echo
+echo "--------------------------------------"
+echo "Checking that all listed modules exist"
+echo "--------------------------------------"
+
+for module in `grep " \* " $LISTFILE|awk '{print $2}'|sed s,':',,g `
+do
+ if [`grep $module $TEMPFILE|wc -l` == 0 ]
+ then
+  i=1
+  echo "$module is listed but does not exist"
+ fi
+done
+
+if [ $i == 0 ]
+then
+  echo "OK"
+fi
+
+echo
+echo "-------------------------------"
+echo "Checking for alphabetical order"
+echo "-------------------------------"
+
+rm -f $LISTFILE2
+touch $LISTFILE2
+rm -f $LISTFILE3
+touch $LISTFILE3
+
+grep " \* " $LISTFILE  >> $LISTFILE2
+
+sort -n $LISTFILE2 >> $LISTFILE3
+
+i=`diff $LISTFILE2 $LISTFILE3|wc -l`
+diff $LISTFILE2 $LISTFILE3
+
+if [ $i == 0 ]
+then 
+  echo "OK"
+fi
+
+
+echo ""
+echo "`cat $TEMPFILE| wc -l` modules listed in Modules.am files"
+
+rm -f $TEMPFILE
+rm -f $LISTFILE2
+rm -f $LISTFILE3