D: lirc plugin
D: norwegian translation
D: aalib plugin
+D: KDE plug-in
S: Norway
N: Pierre Baillet
D: documentation
S: France
+N: Loïc Minier
+E: lool@via.ecp.fr
+C: lool
+D: Gtk/gnome enhancements
+D: xosd interface plug-in
+S: France
+
N: Benjamin Mironer
E: bmironer@noos.fr
D: Mac OS X fixes
--- /dev/null
+# $Id: MAINTAINERS,v 1.1 2002/07/12 21:57:25 massiot Exp $
+#
+# VLC MAINTAINERS
+#
+# This file lists all modules of VLC, and presents who's responsible for
+# what. "Responsible" doesn't mean this person will be alone to improve
+# the code, it just means that she's probably the contributor with the
+# best knowledge of the code, so that questions and propositions of
+# contributions should be directed to her.
+
+* MISC VLC ARCHITECTURE
+
+ - Makefiles & autoconf : [sam] & [meuuh]
+ - configuration & command-line options : [gibalou]
+ - modules, detection, dynamic loading : [sam]
+ - objects support, libvlc : [sam]
+ - messages (errors, debug) : [sam]
+ - internationalization : [sam]
+ - MMX optimizations : [sam]
+ - Altivec optimizations : [meuuh] ([jlj])
+
+* PORTS
+
+ - Debian GNU/Linux : [sam]
+ - Mandrake Linux : Yves Duret
+ - BeOS : Tony Castley (Eric Petit)
+ - Windows : [gibalou]
+ - Mac OS X : [jlj] ([meuuh])
+ - QNX RTOS : [jlj]
+ - Solaris : [meuuh]
+ - *BSD : [meuuh]
+ - GNU/Hurd : [sam]
+ - iPAQ Familiar Linux : [saman] ([meuuh])
+ - BSD/OS : Steven M. Schultz
+
+* INTERFACE
+
+ - interface architecture : [sam]
+ - modules gtk, gnome : [sam] ([stef])
+ - modules lirc, dummy, rc, ncurses : [sam]
+ - modules qt, kde : [sigmund]
+ - module xosd : [lool]
+
+* VIDEO OUTPUT
+
+ - video output architecture : [sam]
+ - modules dummy, fb, ggi, glide, mga, sdl : [sam]
+ - output filters & chroma : [sam]
+ - modules x11, xvideo : [gibalou]
+ - module aa : [sigmund]
+
+* AUDIO OUTPUT
+
+ - audio output architecture : [sam] ([meuuh])
+ - module ALSA : [henri]
+ - module aRts : Emmanuel Blindauer
+ - modules dsp, dummy, esd : [sam] ([meuuh])
+ - output filters : [sam] ([meuuh])
+
+* INPUT
+
+ - input architecture : [meuuh]
+ - demux modules PS, ES, a52_system : [meuuh]
+ - access modules file, udp, http : [meuuh]
+ - demux modules TS, satellite : [jobi]
+ - network modules ipv4, ipv6 : [meuuh]
+ - demux module mpeg_audio (mp3), avi : [fenrir]
+ - DVD module : [stef]
+ - VCD module : [jobi] ([jlj])
+
+* DECODERS
+
+ - decoders architecture : [meuuh] ([henri])
+ - built-in MPEG audio : unmaintained (FIXME)
+ - built-in MPEG video & associated idct+motion : [meuuh]
+ - built-in AC3 & associated plug-ins : Renaud Dartus (soon-to-be scrapped)
+ - mad : [saman] ([meuuh])
+ - ffmpeg : [fenrir]
+ - AC3 SPDIF : [stef]
+ - A/52 : [gibalou] ([meuuh])
+ - SPU : [sam]
+ - Ogg/Vorbis : Xavier Maillard
+
+* DOCUMENTATION
+
+ - VLC HOWTO : [jobi]
+ - Developer documentation : [sam] ([meuuh])
+ - FAQ : [lool]
+
+
+[fenrir] = Laurent Aimar
+[gibalou] = Gildas Bazin
+[henri] = Henri Fallon
+[jlj] = Jon Lech Johansen
+[jobi] = Johan Bilien
+[lool] = Loïc Minier
+[meuuh] = Christophe Massiot
+[sam] = Samuel Hocevar
+[saman] = Jean-Paul Saman
+[sigmund] = Sigmund Augdal
+[stef] = Stéphane Borel
--- /dev/null
+# $Id: STATUS,v 1.1 2002/07/12 21:57:25 massiot Exp $
+#
+# VLC STATUS
+#
+# This file gathers all current contributors of VLC, and what they're
+# currently working on. PLEASE KEEP THIS FILE UP-TO-DATE. If you don't
+# have a CVS account and want to contribute, ask a committer to update
+# this file.
+
+Laurent Aimar <fenrir@via.ecp.fr> :
+ - MPEG-4 HTTP streaming
+ ETA : very soon
+
+Sigmund Augdal <sigmunau@idi.ntnu.no> :
+ - Id3 tags for MP3 files, creation of an attributes list in the input
+ ETA : soon
+ - RTP & RTSP support
+ ETA : long-term
+
+Gildas Bazin <gbazin@netcourrier.com> :
+ - wxWindows interface plug-in
+ ETA : starting in september
+
+Stéphane Borel <stef@via.ecp.fr> :
+ - DVD menus
+ ETA : soon
+ - Better deinterlacing support
+ ETA : summer
+
+Henri Fallon <henri@via.ecp.fr> :
+ - DXR2 & DXR3 support
+ ETA : soon
+ - Better deinterlacing support
+ ETA : summer
+
+Samuel Hocevar <sam@via.ecp.fr> :
+ - VLC objects, reentrancy, navigator plug-ins
+ ETA : soon
+ - Audio output 3
+ ETA : late summer
+
+Jon Lech Johansen <jon-vl@nanocrew.net> :
+ - Mac OS X interface : contextual menu, playlist, general enhancements
+ ETA : very soon
+
+Xavier Maillard <zedek@fxgsproject.org> :
+ - Xinerama fullscreen support
+ ETA : completed
+ - Ogg/Vorbis decoder plug-in
+ ETA : soon
+
+Christophe Massiot <massiot@via.ecp.fr> :
+ - Audio output 3
+ ETA : late summer
+ - Input 3 (multiple-file input, DivX subtitles, frame by frame,
+ rewind, better time handling)
+ ETA : end of 2002
+
<itemize>
<item> Linux (all distributions, including iPAQ Familiar Linux)
<item> Windows (all 32bit versions)
- <item> Mas OS X
+ <item> Mac OS X
<item> FreeBSD, NetBSD, OpenBSD, BSD/OS
<item> BeOS
<item> QNX RTOS
</itemize>
</p>
<p>
- Please note that the Linux, Windows and MacOS X are generally the most
- up-to-date versions.
+ Please note that the Linux, Windows and MacOS X versions are generally the most
+ up-to-date ones.
</p>
</sect2>
<sect2>
* thread, and destroy a previously opened video output thread.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: video_output.h,v 1.79 2002/06/11 09:44:21 gbazin Exp $
+ * $Id: video_output.h,v 1.80 2002/07/12 21:57:25 massiot Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
+ * Samuel Hocevar <sam@via.ecp.fr>
*
* 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
* Collection of useful common types and macros definitions
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vlc_common.h,v 1.8 2002/07/05 11:18:56 sam Exp $
+ * $Id: vlc_common.h,v 1.9 2002/07/12 21:57:25 massiot Exp $
*
* Authors: Samuel Hocevar <sam@via.ecp.fr>
* Vincent Seguin <seguin@via.ecp.fr>
#ifdef NTOHL_IN_SYS_PARAM_H
# include <sys/param.h>
-#elif defined(WIN32)
-/* Swap bytes in 16 bit value. */
-# define __bswap_constant_16(x) \
- ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
-
-# if defined __GNUC__ && __GNUC__ >= 2
-# define __bswap_16(x) \
- (__extension__ \
- ({ register unsigned short int __v; \
- if (__builtin_constant_p (x)) \
- __v = __bswap_constant_16 (x); \
- else \
- __asm__ __volatile__ ("rorw $8, %w0" \
- : "=r" (__v) \
- : "0" ((unsigned short int) (x)) \
- : "cc"); \
- __v; }))
-# else
-/* This is better than nothing. */
-# define __bswap_16(x) __bswap_constant_16 (x)
-# endif
-
-/* Swap bytes in 32 bit value. */
-# define __bswap_constant_32(x) \
- ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
- (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
-
-# if defined __GNUC__ && __GNUC__ >= 2
-/* To swap the bytes in a word the i486 processors and up provide the
- `bswap' opcode. On i386 we have to use three instructions. */
-# if !defined __i486__ && !defined __pentium__ && !defined __pentiumpro__
-# define __bswap_32(x) \
- (__extension__ \
- ({ register unsigned int __v; \
- if (__builtin_constant_p (x)) \
- __v = __bswap_constant_32 (x); \
- else \
- __asm__ __volatile__ ("rorw $8, %w0;" \
- "rorl $16, %0;" \
- "rorw $8, %w0" \
- : "=r" (__v) \
- : "0" ((unsigned int) (x)) \
- : "cc"); \
- __v; }))
-# else
-# define __bswap_32(x) \
- (__extension__ \
- ({ register unsigned int __v; \
- if (__builtin_constant_p (x)) \
- __v = __bswap_constant_32 (x); \
- else \
- __asm__ __volatile__ ("bswap %0" \
- : "=r" (__v) \
- : "0" ((unsigned int) (x))); \
- __v; }))
-# endif
-# else
-# define __bswap_32(x) __bswap_constant_32 (x)
-# endif
-
-# if defined __GNUC__ && __GNUC__ >= 2
-/* Swap bytes in 64 bit value. */
-# define __bswap_constant_64(x) \
- ((((x) & 0xff00000000000000ull) >> 56) \
- | (((x) & 0x00ff000000000000ull) >> 40) \
- | (((x) & 0x0000ff0000000000ull) >> 24) \
- | (((x) & 0x000000ff00000000ull) >> 8) \
- | (((x) & 0x00000000ff000000ull) << 8) \
- | (((x) & 0x0000000000ff0000ull) << 24) \
- | (((x) & 0x000000000000ff00ull) << 40) \
- | (((x) & 0x00000000000000ffull) << 56))
-
-# define __bswap_64(x) \
- (__extension__ \
- ({ union { __extension__ unsigned long long int __ll; \
- unsigned long int __l[2]; } __w, __r; \
- if (__builtin_constant_p (x)) \
- __r.__ll = __bswap_constant_64 (x); \
- else \
- { \
- __w.__ll = (x); \
- __r.__l[0] = __bswap_32 (__w.__l[1]); \
- __r.__l[1] = __bswap_32 (__w.__l[0]); \
- } \
- __r.__ll; }))
-# else
-# define __bswap_64(i) \
- (u64)((__bswap_32((i) & 0xffffffff) << 32) | \
- __bswap_32(((i) >> 32) & 0xffffffff ))
-# endif
-
-#else /* NTOHL_IN_SYS_PARAM_H || WIN32 */
+#elif !defined(WIN32) /* NTOHL_IN_SYS_PARAM_H || WIN32 */
# include <netinet/in.h>
#endif /* NTOHL_IN_SYS_PARAM_H || WIN32 */
/* MSB (big endian)/LSB (little endian) conversions - network order is always
* MSB, and should be used for both network communications and files. Note that
* byte orders other than little and big endians are not supported, but only
- * the VAX seems to have such exotic properties - note that these 'functions'
- * needs <netinet/in.h> or the local equivalent. */
-#if !defined( WIN32 )
+ * the VAX seems to have such exotic properties. */
+static inline u16 U16_AT( void * _p )
+{
+ u8 * p = (u8 *)_p;
+ return ( ((u16)p[0] << 8) | p[1] );
+}
+static inline u32 U32_AT( void * _p )
+{
+ u8 * p = (u8 *)_p;
+ return ( ((u32)p[0] << 24) | ((u32)p[1] << 16) | ((u32)p[2] << 8) | p[3] );
+}
+static inline u64 U64_AT( void * _p )
+{
+ u8 * p = (u8 *)_p;
+ return ( ((u64)p[0] << 56) | ((u64)p[1] << 48) | ((u64)p[2] << 40)
+ | ((u64)p[3] << 32) | ((u64)p[4] << 24) | ((u64)p[5] << 16)
+ | ((u64)p[6] << 8) | p[7] );
+}
#if WORDS_BIGENDIAN
-# define hton16 htons
-# define hton32 htonl
+# define hton16(i) ( i )
+# define hton32(i) ( i )
# define hton64(i) ( i )
-# define ntoh16 ntohs
-# define ntoh32 ntohl
+# define ntoh16(i) ( i )
+# define ntoh32(i) ( i )
# define ntoh64(i) ( i )
#else
-# define hton16 htons
-# define hton32 htonl
- static inline u64 __hton64( u64 i )
- {
- return ((u64)(htonl((i) & 0xffffffff)) << 32)
- | htonl(((i) >> 32) & 0xffffffff );
- }
-# define hton64(i) __hton64( i )
-# define ntoh16 ntohs
-# define ntoh32 ntohl
-# define ntoh64 hton64
+# define hton16(i) U16_AT(&i)
+# define hton32(i) U32_AT(&i)
+# define hton64(i) U64_AT(&i)
+# define ntoh16(i) U16_AT(&i)
+# define ntoh32(i) U32_AT(&i)
+# define ntoh64(i) U64_AT(&i)
#endif
-#endif /* !defined( WIN32 ) */
-
-/* Macros with automatic casts */
-#define U64_AT(p) ( ntoh64 ( *( (u64 *)(p) ) ) )
-#define U32_AT(p) ( ntoh32 ( *( (u32 *)(p) ) ) )
-#define U16_AT(p) ( ntoh16 ( *( (u16 *)(p) ) ) )
/* Alignment of critical static data structures */
#ifdef ATTRIBUTE_ALIGNED_MAX
#define I64C(x) x##LL
-
-#if defined( WIN32 )
-/* The ntoh* and hton* bytes swapping functions are provided by winsock
- * but for conveniency and speed reasons it is better to implement them
- * ourselves. ( several plugins use them and it is too much hassle to link
- * winsock with each of them ;-)
- */
-# ifdef WORDS_BIGENDIAN
-# define ntoh32(x) (x)
-# define ntoh16(x) (x)
-# define ntoh64(x) (x)
-# define hton32(x) (x)
-# define hton16(x) (x)
-# define hton64(x) (x)
-# else
-# define ntoh32(x) __bswap_32 (x)
-# define ntoh16(x) __bswap_16 (x)
-# define ntoh64(x) __bswap_32 (x)
-# define hton32(x) __bswap_32 (x)
-# define hton16(x) __bswap_16 (x)
-# define hton64(x) __bswap_64 (x)
-# endif
-
+#ifdef WIN32
/* win32, cl and icl support */
# if defined( _MSC_VER ) || !defined( __MINGW32__ )
# define __attribute__(x)
* Functions are prototyped in mtime.h.
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: mtime.c,v 1.32 2002/06/01 12:32:01 sam Exp $
+ * $Id: mtime.c,v 1.33 2002/07/12 21:57:25 massiot Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
}
/*****************************************************************************
- * mdate: return high precision date (inline function)
+ * mdate: return high precision date
*****************************************************************************
* Uses the gettimeofday() function when possible (1 MHz resolution) or the
* ftime() function (1 kHz resolution).
}
/*****************************************************************************
- * mwait: wait for a date (inline function)
+ * mwait: wait for a date
*****************************************************************************
* This function uses select() and an system date function to wake up at a
* precise date. It should be used for process synchronization. If current date
}
/*****************************************************************************
- * msleep: more precise sleep() (inline function) (ok ?)
+ * msleep: more precise sleep()
*****************************************************************************
* Portable usleep() function.
*****************************************************************************/