From e73a02832a00ac93f14cef3ab1d4281f1ca465e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Stenac?= <zorglub@videolan.org> Date: Sun, 10 Aug 2003 12:45:52 +0000 Subject: [PATCH] * modules/LIST: Updated all modules * 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 | 381 +++++++++++++++++++++++++++++++++++++------ modules/access/slp.c | 56 +++++-- modules/list.sh | 86 ++++++++++ 3 files changed, 463 insertions(+), 60 deletions(-) create mode 100755 modules/list.sh diff --git a/modules/LIST b/modules/LIST index 2bff79979651..537eece51e9a 100644 --- a/modules/LIST +++ b/modules/LIST @@ -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. diff --git a/modules/access/slp.c b/modules/access/slp.c index de05f1abdfd0..dd1281ff25d2 100644 --- a/modules/access/slp.c +++ b/modules/access/slp.c @@ -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 index 000000000000..0ac02fac90e1 --- /dev/null +++ b/modules/list.sh @@ -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 -- GitLab