Commit Graph

106 Commits

Author SHA1 Message Date
Marc Ariberti
f4012b9fed On sam's advice I added the input_FDNetworkClose() function to be called
when closing a  networking stream instead of input_FDClose().  It is due
to WIN32  because we have  to call  closesocket() instead of  close() to
close the socket. The problem was  : windows did not leave the multicast
group when closing the socket.

  * input_ext-plugins.c : where is located the function
  * *.h : function declaration
  * udp.c, http.c : these modules now call input_FDNetworkClose()
2002-05-15 13:07:18 +00:00
Arnaud de Bossoreille de Ribou
fbf46423b3 * src/misc/iso-639.def, include/iso_lang.h, src/misc/iso_lang.c: iso-839-[12] tools.
* include/common.h, src/misc/modules_plugin.h: export the 3 new functions.
  * plugins/dvd/dvd_es.c, plugins/dvd/dvd_summary.c, plugins/dvdread/input_dvdread.c: adapted DecodeLanguage calls to the new behaviour.
  * plugins/mpeg_system/mpeg_ts.c: ISO-639-2 descriptors handling.
2002-05-14 19:33:54 +00:00
Laurent Aimar
94bda0d1bf * include/common.h and input_ext-plugins.h, src/misc/modules_plugin.h : export input_ClockGetTS for plugins.
* plugins/mpeg_system/mpeg_audio.c : a demux for mpeg audio stream (file, web radio ...)
    * Makefile configure.in : to compile it
2002-05-10 02:04:17 +00:00
Sam Hocevar
71865b9708 * ./include/modules_inner.h, ./src/misc/configuration.c: support for config
options callbacks.

    They don't take any argument for the moment, but this will change when
    I'm finished with my other vlc changes. There is a little problem: the
    Gtk+ interface keeps calling Put***Variable each time we click on "Apply"
    or "Save". I think it should only call it once. Is there a way to fix
    this? Gildas? lool? :-)
2002-05-03 20:49:30 +00:00
Gildas Bazin
9d6920b9ea * moved the function definitions from threads.h into threads_funcs.h. This
allows us to move p_main_sys into p_main (p_main->p_sys).
* fixed the --with-gtk-config-path and --with-sdl-config-path options in
   configure.in
2002-04-27 22:11:22 +00:00
Jon Lech Johansen
62d636ba6c * Fixed my fix for the fix for vlc_memalign. Sorry O:-) 2002-04-26 18:12:28 +00:00
Jon Lech Johansen
7ae0024ea2 * ./include/common.h: Fixed vlc_memalign. 2002-04-26 17:07:14 +00:00
Sam Hocevar
eb1ec4a42c * ./src/misc/modules_plugin.h: exported input_ClockManageRef for fenrir.
* ./include/video.h: moved vout_CopyPicture out of the way, an inline
    function did not make sense here.
  * ./include/video.h: moved vout_ChromaCmp out of the way.
  * ./plugins/avi/fourcc.h, ./include/video.h: merged these two files into
    video.h.
  * ./include/os_specific.h: this file is now always included.
  * ./include/debug.h: removed this file which was almost useless, and moved
    ASSERT to common.h.
  * ./include/common.h: fixed vlc_memalign and changed its prototype to
    follow posix_memalign's.
2002-04-25 21:52:42 +00:00
Johan Bilien
5a70322c5f * Moved Program Specific Information decoder to the ts demux module
* Added a mpeg_ts_dvbpsi module tha uses libdvbpsi to decode PSIs. It is
  used by default if the lib is found. It shares much code with mpeg_ts
2002-04-25 02:10:33 +00:00
Sam Hocevar
08999a39bc * ./src/interface/main.c: we no longer segfault if argc == 0.
* ALL: renamed PLUGINS to __PLUGINS__ to avoid conflicts with libraries
    defining it. Grmbl.
  * ./src/input/input_ext-plugins.c: cosmetic change.
2002-04-24 00:36:24 +00:00
Gildas Bazin
ce25f1e87e * added config_GetFloatVariable() and config_PutFloatVariable() to the config
module.
* added a --zoom <float> config option.
* added a call to RestoreCPUState() in InitIDCT() in idct_sparse.h so that the
  FPU is still available after a call to InitIDCT().
* deactivate stream buffering when logging to a file.
2002-04-21 11:23:03 +00:00
Sam Hocevar
4f6c862b02 * ALL: internationalized all configuration strings.
* ./src/interface/main.c: we now set LC_CTYPE to get the right charset.
  * ./src/misc/configuration.c: lots of simplifications in the code.
  * ./po/vlc/pot: updated translations.
2002-04-19 13:56:12 +00:00
Sam Hocevar
db10e796ee * ./AUTHORS: added people locations, just for fun.
* ./configure.in: disabled SSE plugins when using mingw32.
  * ./src/misc/configuration.c: disabled the AltiVec warning message on the
    PowerPC platform because it was misleading.
2002-04-17 11:43:31 +00:00
Sam Hocevar
e98aae28c0 * ./plugins/win32/intfwin.bpr: we now build intfwin.so at the right place.
* ./plugins/win32/Makefile: intfwin.so can be built using commandline.
  * ./configure.in, ./include/threads.h, ./include/common.h: a custom defs.h
    file isn't needed for the intfwin plugin anymore.
  * ./INSTALL.win32: updated compilation instructions for the intfwin plugin.
2002-04-05 03:27:27 +00:00
Gildas Bazin
cf5b3832dc * introduced a memalign wrapper that will align the memory manually if
memalign doesn't exist.

  void *vlc_memalign( size_t align, size_t size, void **pp_orig )
  where the return value is the aligned pointer and *pp_orig is the pointer
  that has to be freed afterwards.

  the arithmetic I'm doing on the pointer to align it is not portable to
  64bits architectures. If someone knows how to something portable, please
  tell me ( and no I don't want to do if(sizeof(void *) == blabla) ).

  Other little problem, I was planning to use posix_memalign by default in
  the wrapper implementation but it doesn't work (someone can tell me what
  I'm doing wrong ?)

* re-enabled the sse plugins on win32 as we don't have anymore alignment
  issues.

* fixed typo in vout_directx.c
2002-04-05 01:05:22 +00:00
Gildas Bazin
4f08a70d21 * New pthread implementation for WinNT/2K/XP. This implementation shouldn't
be subject to race conditions as it is using SignalObjectAndWait() from the
  Win32 API.
  As this should be somehow slower than the old method (still used on Win9x),
  you can specify that you want to use the old method with the "fast_pthread"
  config option.

* Added a new p_main_sys global variable. This variable is a pointer to an
  OS specific structure which is defined in *_specific.h. This structure can
  be filled by the already existing System_Init() function and is a nice
  way to avoid too many #ifdefs.
2002-04-02 23:43:57 +00:00
Gildas Bazin
f8cad0ac0f * Fixes for the Win32_msvc build 2002-04-01 21:54:26 +00:00
Olivier Teulière
8092e418ac * Added a win32 interface plugin, developed with Borland C++ Builder.
To build the plugin, follow the instructions in INSTALL-win32.txt

 * Known bugs:
        - subtitles don't work
        - a crash occurs when the user exits by pressing 'q' in the vout
        - when moving the slider, position in the stream updates even if
          the slider isn't released yet

 * TODO list:
        - clean code in menu.cpp
        - adapt lool's enhancements of the Gtk+ preferences box
        - write drag-and-drop stuff
        - and of course, fix known bugs :)

 * For those of you who can't wait till the next release to test the win32
   interface, binary files are available here:
   http://www.via.ecp.fr/~ipkiss/intfwin/vlc.zip
   Enjoy!
2002-03-25 23:36:57 +00:00
Olivier Teulière
e1634f8268 * ./include/common.h: fixed the compilation fix for Borland C++ :) 2002-03-19 04:22:02 +00:00
Sam Hocevar
1994728499 * ./include/common.h: compilation fix for Borland C++. 2002-03-19 03:42:31 +00:00
Gildas Bazin
278bc72e03 * This the last piece of the new configuration module. You can now save your
configuration options (only from the gtk/gnome interface for now). The config
file will be saved as ~/.VideoLan/vlc

It's not quite yet finished (well there are a few small details to sort out),
but I'm going away for the week-end and I wanted to commit this before so you
can all have a play with it :)
2002-03-16 01:40:58 +00:00
Gildas Bazin
7f583e0549 * New GTK configuration interface. This interface is generated dynamically
at run-time from the configuration data contained in each plugin.
* config_PutPszVariable and config_GetPszVariable are now thread safe.
* Few modifications/optimizations to the config module.
* Got rid of all the _VAR macros in config.h

This is the first version of the GTK configuration interface. There are still
a few raw corners and a fews things left to do, but it basically does what
I wanted.
Constructive comments like it sucks or it smells rotten fish are of course
very welcome. And if there are GTK gurus out there, please don't hesitate to
add your touch.

I also started to add usefull comments to the configuration options but I'm not
really good at this kind of thing so if people want to help, they can finish
the job. For this look at all the *_LONGTEXT macros at the top of main.c

(PS: Translations will also be appreciated but not right now as the interface
will likely change again in the few coming days)
2002-03-11 07:23:10 +00:00
Christophe Massiot
5658c1d960 * IPv6 network module, courtesy of Alexis Guillard <alexis.guillard@bt.com>,
for BT ;
* --6 and --4 options to force IPv6 or IPv4 (FIXME: it should be -6 and
-4 but I don't know how to do it with the new configuration module) ;
* Channel manager now uses a socket from the network plug-in and is more
portable (and probably broken, too :) ;
* input_ReadPS and input_ReadTS are now in mpeg_system.c to be more
easily reused by plug-ins other than mpeg_ps and mpeg_ts.

That's all for tonight.
2002-03-04 23:56:38 +00:00
Sam Hocevar
69ff2d310d * Got rid of int_types.h and did a few changes Ipkiss will need. Hope I
did not break other platforms.
2002-03-03 04:37:29 +00:00
Gildas Bazin
5402d8832d * fixed compilation problem related to ssize_t 2002-03-02 09:34:23 +00:00
Xavier Marchesini
e28bab1219 * Various Win32 compilation fixes.
* DVD compiles, but doesn't work yet.
 * Fixed some typos in my previous Win32 multicast commit
2002-03-02 03:53:55 +00:00
Christophe Massiot
d0bf23fa73 Input III (Episode 1).
- Major rewrite of the buffer core functions
- Modularity of access plugins (file, udp, http)
- Modularity of network stack (ipv4, soon ipv6)
- Autodetection of the type of stream

And a new killing feature : HTTP streams are now seekable.

Please note that dvd, dvdread and vcd plug-ins are broken and thus disabled.
2002-03-01 00:33:18 +00:00
Sam Hocevar
07a8286a1a * ./include/common.h: BeOS compile fixes.
* ./plugins/beos/vout_beos.cpp: fixed BeOS video output.
2002-02-27 03:47:56 +00:00
Sam Hocevar
d4243d5979 * Fixed a quite old bug in the audio output which made the sound stutter
when wrapping around the audio output fifo.
  * Lots of simplifications in the audio output, got rid of b_stereo.
2002-02-24 22:06:50 +00:00
Johan Bilien
0b16341623 Added a menu in the GTK and gnome interfaces to change the current program
in multi-program streams (such as ones provided by a DVB-S card).
2002-02-24 21:36:20 +00:00
Gildas Bazin
c40571df60 This is the first part of the new configuration architecture for vlc.
Two other parts will follow soon:
- config file implementation
- gtk configuration interface.

This part won't change much for end-users as these changes are mostly
internal, you will however notice that the command line interface has
changed. It will maybe be less user-friendly as I almost removed the
short options but it shouldn't a big problem when the config file is
implemented.

What as changed is that it is really easy now to add configuration
options to vlc. Plugins can also implement configuration options. All
you have to do is to declare a MODULE_CONFIG section in your plugin.
If you want to know more about this look at configuration.h and for some
example: main.c, dsp.c or xvideo.c

It would be nice if every developper could now start using configuration
options in there plugins and also enhance old plugins.

That's it, now let's hope I didn't break too many things ;-)
2002-02-24 20:51:10 +00:00
Sam Hocevar
8cc8d9579d * ./configure.in: removed a bashism.
* ./plugins/x11/xcommon.c: support for systems without shm.h.
  * QNX compilation fixes here and there; the qnx plugin still doesn't work.
2002-02-20 23:23:53 +00:00
Sam Hocevar
730cc399c5 * Got rid of TRACE and intf_DbgMsg which were seldom used anyway.
* All intf_*Msg functions now write to stderr.
   * Implemented a message queue interface plugins can subscribe to.
   * Wrote the logger interface plugin. Usage:
      vlc -I logger:filename.log
   * Lots of fixes in the SPU renderer.
2002-02-19 00:50:20 +00:00
Sam Hocevar
48cbd8f360 * ALL: got rid of *_Probe functions because most of them were duplicates
of the real _Init or _Create functions. That's 1000 lines of code gained.
  * ./src/misc/modules.c: we try not to keep the global lock in module_Need,
    which should speed up output spawning.
  * ./plugins/dummy/input_dummy.c: fixed vlc:quit command.
  * ./plugins/gtk/gtk_playlist.c: compilation fix.
  * ./plugins/macosx/*: preliminary fixes for the vout4 port.

   Notes on the *_Probe eradication:
  o I probably broke the DirectX video output, because of the "must init and
    run in the same thread" issue. I'll fix this ASAP.
  o Subtitles are broken (or at least, pretty ugly) in RGB mode.
  o The input plugins still have *_Probe functions. This will disappear when
    meuuh is finished with the access plugins.
  o The decoder plugins still have *_Probe functions. This is probably not
    going to change, it looks OK to me.
2002-02-15 13:32:54 +00:00
Sam Hocevar
46a1caf287 * Grmbl. Forgot to commit those Win32 fixes last time, and they were
stuck on VTHR. Sorry xav, this probably explains why I couldn't
    find the commit log :-)
2002-02-14 23:29:17 +00:00
Gildas Bazin
ee87a69135 * Added mstrtime() to module_symbols_t so we can compile the mpeg_vdec
plugin with TRACE mode enabled.
2002-01-29 20:11:18 +00:00
Christophe Massiot
d970994cc0 * Decoders do not necessarily use bit stream (see mad plug-in)
* mad PTS should finally be accurate
* Some configure changes.
2002-01-21 23:57:46 +00:00
Christophe Massiot
7de4e1a38b * More precise way to retrieve a PTS from the bit stream.
* Fixed issues in the PTS handling of the mad plug-in (incomplete).
2002-01-14 23:46:35 +00:00
Gildas Bazin
f84729fcb9 * A few fixes for the Win32 build. 2002-01-13 18:13:07 +00:00
Sam Hocevar
c7b1c474c6 * ./include/modules_inner.h: replaced _X with __VLC_SYMBOL because _X was
already a system macro under MacOS X.
  * ./plugins/dummy/dummy.c: fixed vlc:loop, vlc:quit, etc. entries.
  * ./plugins/glide/glide.c: activated double buffering.
  * ./plugins/mga/xmga.c: started writing an xmga plugin; doesn't work yet.
  * ./src/input/input.c: fixed the input memory leak, and the insane thread
    spawning we got with vlc:loop.
  * ./src/misc/intf_eject.c: disc ejection routine courtesy of Julien Blache,
    currently Linux-only.
2002-01-09 02:01:14 +00:00
Sam Hocevar
1e053ea0ed * ./plugins/mga/mga.c: removed the mgammx module and put the code in
the chroma_i420_ymga module instead. This introduces a slight
    performance issue as we now need to memcpy() the Y plane, but I have
    some vout4 enhancements on their way which make this point moot.
  * ./debian/changelog: imported official Debian changelog.
  * ./debian/control: activated the vlc-mad and vlc-arts packages; package
    builds should now work again.
  * ./plugins/dvd/dvd.c: solved a symbol resolution issue when vlc was
    compiled without libdvdcss which overflowed the return stack.
  * ./plugins/ggi/ggi.c: ported the GGI plugin to vout4.
  * ./plugins/glide/glide.c: ported the Glide plugin to vout4 (untested).
  * ./src/input/input.c: prepared everything for multi-input mode; since
    no interface is yet prepared to handle this, I changed them so that
    they just use the first available input for now. This may break other
    things, but I promise I'll eventually repair everything :-)
2002-01-07 02:12:30 +00:00
Sam Hocevar
aea6698deb * ./include/common.h: hton64 is now an inline function.
* ./src/video_output/vout_pictures.c et al.: vout4 now automatically
    detects when two chroma formats are the same, such as UYVY/Y422, or
    roughly equivalent, such as I420/YV12. Plugins need not worry about
    conversion anymore.
2002-01-05 02:22:03 +00:00
Sam Hocevar
53b978f865 * ./BUGS: added a list of known bugs. Please add your findings!
* ./MODULES: added a short description of each module. Maybe we should
    add more details to make this file really useful.
  * ./doc/bugreport-howto.txt: wishful thinking...
  * ./Makefile: added a workaround for the fact that .c files don't depend
    on <videolan/vlc.h>.
  * ./plugins/memcpy/memcpy.c: all memcpy modules are now built from the same
    single file.
  * ./src/interface/main.c: added the --nommx, --no3dnow, --nommxext, --nosse
    and --noaltivec options to vlc.
  * ./configure.in: removed the --disable-mmx option, now useless because
    of the vlc --no* options.
  * ./src/interface/main.c: fixed a crash caused by the memcpy module
    being released too early.
  * ./include/video.h: more vout4 changes, including margin support, more
    FOURCC formats recognized, transparent support of identical or almost
    identical FOURCC formats.
  * ./include/video_output.h: added a vout_Render function to video output
    modules which is to be executed before vout_Display.
  * ./include/common.h: this header is back.
  * ./plugins/chroma/i420_rgb.c: planar YUV 4:2:0 to packed RGB conversion
    functions, mostly taken from vout3's yuv functions, but heavily modified
    to use FAST_MEMCPY and to handle image dimensions which are not multiples
    of 16. Not all functions have been written yet, though.
  * ./plugins/chroma/i420_yuy2.c: planar YUV 4:2:0 to packed YUV conversion
    functions, various targets such as 4:2:2 YUYV, YVYU, UYVY, or 2:1:1 YUYV,
    with accelerated MMX versions.
  * ./plugins/chroma/i422_yuy2.c: same as i420_yuy2.c but takes planar YUV
    4:2:2 pictures in input. With accelerated MMX versions as well. This plugin
    makes it possible to display 4:2:2 files on most video cards without the
    quality loss of 4:2:0 downsampling.
  * ./plugins/filter/*: thanks to the vout_Render function, all filters now
    output their data perfectly in sync.
  * ./plugins/dvdread/Makefile: fix to prevent unnecessary target rebuilds.
  * ./plugins/sdl/vout_sdl.c: support for YV12, UYVY, YUY2 and YVYU overlays.
  * ./plugins/x11/xcommon.c: support for I420, YV12, YUY2 and Y211 overlays.
2002-01-04 14:01:35 +00:00
Sam Hocevar
cc0f0bb6fd Some heavy changes today:
* Removed duplicate function checks from configure.in.
  * Added extra magic to Makefile.modules so that the module Makefiles
    are now ridiculously simple. And I mean *simple*. Check it! This will
    make a possible switch to full autoconf/automake a lot easier.
  * Added the vlc version name to the plugin symbols, to be sure we only load
    plugins with the same version number. A nasty consequence is that you
    need to rebuild your tree after midnight if you are using a CVS tree :-)
  * Got rid of modules_export.h by #defining exported functions in the same
    header as their prototype.
  * Added modules_inner.h and other commonly used .h files to common.h so
    there are less and less files to include, and renamed common.h to
    <videolan/vlc.h>.
  * First modifications to the module handling system towards my ultimate
    goal to get rid of the *_Probe functions. Got rid of TestMethod and
    TestCPU, as well as src/misc/tests.c.
  * Wrote the chroma plugin handling functions. No YUV functions have been
    ported yet because it'ls a lot of work, but the core system works, I
    tried it with a naive yv12->rgb16 plugin (which will disappear when the
    real functions are ready).
  * Made a lot of functions in dvd_summary.c one-liners to avoid wasting
    too many output lines.
  * Fixed a segfault in input_dvd.c:DVDInit.
  * Added a fixfiles.sh script in plugins/gtk to be run after Glade has
    generated its C files.
  * Did some work on the KDE interface to make it suck a bit less. It still
    segfaults, but at least it runs and it looks less ugly.
  * RGB SDL rendering works again, though in 16bpp only.
  * Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
    so that it'll be easily put in a library. Maybe libdvdcss?
  * Fixed VCD date display.
  * Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
  * Wrote non-Shm XVideo output.
  * Made X11 output work again. Still pretty unstable, only works for 16bpp.
  * Additional french translation in po/fr.po. Any taker for the rest?
  * Fixed a segfault in video_output.c when the allocated pictures were
    not direct buffers.
  * If $DISPLAY isn't set, don't try to run the Gtk+ interface.
  * Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
    (Closes Debian bug #126939).
  * Removed the automatic ./configure launch when running `make all' for
    the first time.

Stuff currently more broken than it ought to be:
  * The wall filter. Being fixed.
  * x11 and sdl plugins for depth != 16bpp.
  * Software YUV.
  * gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
2001-12-30 07:09:56 +00:00
Sam Hocevar
fafbe100b1 * Put ErrorThread() in input_ext-dec.h because it was the same function
in all decoders. Called it DecoderError() instead.
  * All decoders enter DecoderError() in case of error, even if they
    haven't allocated all their data. This prevents the input from getting
    stuck if a decoder has failed its initialization.
  * Namespace fixes through the decoder files.
2001-12-30 05:38:44 +00:00
Christophe Massiot
abde4bbfb7 * Changed the way decoder_fifo_t works ;
* Minor optimizations in the Next Generation Buffer Manager.
2001-12-27 01:49:34 +00:00
Sam Hocevar
2d90188b73 * Initialize SDL before opening the SDL audio output.
* Prevent two SDL video outputs or audio outputs to be spawned at the
    same time to avoid ugly crashes.
  * The SDL plugin now says whether we are using software or hardware YUV
    in its window title.
  * We now stop at the first ':' when looking for a module name, to easily
    pass information to the modules. Possible example: --vout sdl:software,
    implementation of such an option is left as an exercise.
  * Merged filter_bob and filter_bob422 into filter_bob. Use --filter bob
    to deinterlace 422 into 420 as well.
  * Factorized code common to most filters and the video output, optimized
    a few filters by aligning data and reading 64 bits at a time.
  * Two new absolutely useless, CPU-eating, resource-wasting, but fun
    filters: enjoy `transform', which performs flips and 90� rotations, and
    `distort', which performs animated image effects (currently only a naive
    sine wave is implemented). Usage examples:
       --filter transform:hflip
       --filter transform:vflip
       --filter transform:90
       --filter transform:180
       --filter transform:270
       --filter distort:wave
2001-12-19 03:50:22 +00:00
Sam Hocevar
14047fa106 * Filter plugins. Not very polished (please don't look at how the dates are
calculated!), but worth a try. Use the following flags:
     "--filter invert" for inverse video
     "--filter bob" for BOB deinterlacing
  * Fixed a potential segfault if the subtitle stream was encountered
    before the video stream.
  * Misc vout4 fixes.
2001-12-16 16:18:36 +00:00
Sam Hocevar
d8e44fce75 * Fixed aspect ratio handling.
* Fixed potential compilation issues under eg. BSD/OS.
2001-12-13 12:47:17 +00:00
Sam Hocevar
279f805ab1 * Additional fixes for OSes with no gettext (thanks to ej0).
* Fixed a potential BeOS linking issue.
  * Fixed a minor bug in input.c.
2001-12-12 02:13:50 +00:00