1
mirror of https://code.videolan.org/videolan/vlc synced 2024-07-21 07:24:15 +02:00
Commit Graph

77 Commits

Author SHA1 Message Date
Sigmund Augdal Helberg
894c4adc59 doxygen documented my code 2002-08-18 13:16:51 +00:00
Christophe Massiot
8d5c85f26f * Fixed a variable overflow bug in the audio output.
* Prepared for some advances in the aout3 clock management.
* Added the first stone of the forthcoming stream output.
2002-08-12 22:12:51 +00:00
Sam Hocevar
66c62b4386 * ./modules/demux/mpeg/system.c: added a helper plugin for MPEG-related
demux plugins (ps, ts, but also dvd*).
  * ./src/input/mpeg_system.c: removed MPEG-related stuff from the vlc core.
  * ./src/misc/modules.c: max recursion level is now 5.
  * ./modules/access/dvdplay/es.c: fixed a buffer overflow.
2002-08-07 00:29:37 +00:00
Sam Hocevar
19ea8feb6d * ./modules/*: moved plugins to the new tree. Yet untested builds include
waveout, directx, qnx, beos, win32, macosx, and the AltiVec modules.
  * ALL: removed mention of AC3 in favour of A52.
  * ./configure.in, ./Makefile*: modules can now be built deeper than 1
    directory. As a consequence, the build is even slower (but I'm fixing
    this) and make clean doesn't work anymore.
2002-08-04 17:23:44 +00:00
Sam Hocevar
976dfc3eb4 * ALL: new module API. Makes a few things a lot simpler, and we gain
about 2000 lines of code.

    I could not test everything on every architecture, so please report
    any module breakage (especially on BeOS, OSX and QNX).
2002-07-31 20:56:53 +00:00
Sam Hocevar
64d33dc9bc * ALL: decoders now use a fourcc as a probe value.
* include/input_ext-intf.h: killed p_es->b_audio, since i_cat already fills
    its purpose.
  * include/input_ext-intf.h: killed p_es->i_type in favour of p_es->i_fourcc.
  * include/video.h: killed p_pic->p_plane->b_margin; now i_visible_pitch is
    always valid.

  * ./src/libvlc.h: replaced --mpeg-adec and --ac3-adec with --codec; see
    vlc --help for more information.

  * include/video.h: removed fourcc values which should _not_ be global
    (thanks fenrir for convincing me).
  * ALL: video output plugins use the VLC_FOURCC macro to build their fourccs.
  * ./plugins/beos/InterfaceWindow.cpp: removed the last remaining call to
    input_ChangeES.

   Things I'm not sure about and need comments:
    - I used "mpga" and "mpgv" for MPEG (1+2) audio and video fourcc values.
    - I also introduced "spu ", "lpcm" and "ac3 ".
    - I removed for instance "MP4_GetCodec" because it wasn't really
      used except for the description string. I hope this change did not
      break anything really important.
    - fenrir, I must have broken a lot of things you wrote. Sorry in advance.
2002-07-23 00:39:17 +00:00
Sigmund Augdal Helberg
49b3f18a94 * all: these didn't get along in my last commit 2002-07-21 19:26:13 +00:00
Sam Hocevar
bf9b62a4ea * ALL: changed "struct foo_s" into "struct foo_t" to make greppers happy.
* ./src/libvlc.c, ./include/vlc/vlc.h: created reentrant versions of the
    libvlc API.
  * ./src/vlc.c: vlc uses the non-reentrant libvlc functions.
  * ./mozilla/vlcplugin.c: the mozilla plugin uses the reentrant functions.
  * ./debian/*: created packages for libvlc0-dev.
2002-07-20 18:01:43 +00:00
Sam Hocevar
b73f6722b1 (new in MAIN)
* ./src/playlist/playlist.c, src/input/input.c: added safety checks to
    prevent crashes on next file.
(ported from 0_4_1_branch)
  * ./plugins/gtk/gtk_display.c, ./plugins/win32/mainframe.cpp: we deactivate
    popup menus when no stream is being played, even in network mode.
  * ./src/input/mpeg_system.c: removed unnecessarily verbose message.
2002-06-02 11:59:46 +00:00
Sam Hocevar
71ec135b95 * ALL: got rid of p_object->p_this which is now useless. 2002-06-01 18:04:49 +00:00
Sam Hocevar
9e3ab283c2 * ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
  do what remains to be fixed during the weekend.

   Changes in vlc:
   ===============

  * vlc is now a very small program (20 lines) which uses the libvlc API;
   it is quite simple for the moment but can be extended in the future.

  * interfaces, decoders, video outputs, etc. are now almost the same
   objects (yes, I know, this is C++ redone in C) and are structured in
   a tree. More about this later, but basically it allows the following
   nice features:
    - several interfaces
    - several playlists with several outputs
    - input plugins spawning helper interfaces (will be used for DVD menus)
    - anything spawning anything; I swear there are useful uses for this!

  * libvlc can be used in other programs; I'm currently writing a Mozilla
   plugin for my employer.

   Things currently broken:
   ========================

  * most interfaces, most ports
  * the playlist handling (almost finished rewriting this though). This means
   no file can be played from the GUI, you need to use the commandline. This
   also means it segfaults at EOF, when exiting the program, and it sometimes
   refuses to open a file when asked to.
2002-06-01 12:32:02 +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
Sam Hocevar
a6bccb1c29 * ./src/interface/main.c: tidied the help output code.
* ALL: removed underscores from option names and made a few options more
    self-explanatory, for instance --input_channel becomes --audio-channel;
    run vlc -H to see what has changed.
  * ALL: replaced many occurences of "plugin" with the word "module".
  * ./src/interface/main.c: moved all satellite-specific configuration options
    to the satellite plugin.
  * ./po/*: updated translations.
2002-04-23 14:16:21 +00:00
Johan Bilien
6d7c226153 *** empty log message *** 2002-03-21 02:27:04 +00:00
Stéphane Borel
ba9c75bf53 * Dvd angle is now handled through a program structure, so that the interface
needs nothing specific to change angle.

* Fixed a bug in clock management where ES without a program couldn't get
timestamped.

*Fixed program management in gnome/gtk. Program now also appears in popup.

*In interface, only display ES associated with the selected program, or with
no program at all.
2002-03-05 17:46:33 +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
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
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
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
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
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
Christophe Massiot
afc467090d * Changed pf_read prototype and minor changes. 2001-12-27 03:47:09 +00:00
Christophe Massiot
2b75de8f4e Next Generation Buffer Manager, for TS plug-in. Please test in-ten-si-vely ! 2001-12-12 13:48:09 +00:00
Sam Hocevar
003c2ab300 * Removed unused code (intf_channels.c, keystrokes.h).
* Put common_win32.h back into common.h -- it wasn't that big and we
    should not multiply header files.
  * Added gettext support by Thomas Graf <reeler@reeler.org>, may be
    broken on other platforms but we'll only see it when I'm finished
    with vout 4 :-)
  * Fixed a segfault on exit when no fast_memcpy module was found.
2001-12-10 04:53:11 +00:00
Johan Bilien
7917d2ef3f * added functions in inputs to change the current program (most of
them do nothing)

All inputs should now have a pf_setprogram function. A default one is
provided in input_programs.c.
2001-12-07 16:47:47 +00:00
Johan Bilien
dbbc910fbb * Added 2 fields, p_selected_program and p_new_program, to the
input_thread_t structure, so that we may support multi programs
  streams.
* Modified inputs to take account of this change.
* Modified input_clock.c so that it doesn't refer to pp_programs[0]
  any more.

Now we should not refer to the first program, but to the selected
program. Functions to change the current program are coming.
2001-12-05 03:31:04 +00:00
Gildas Bazin
b618828621 * Big clean-up to allow compiling every module as plugins.
* Added bytes_swap.h to provide ntoh() and htol() on Win32. With this
     change we don't have to link winsock2 with every plugin anymore. This
     should also give us a slight speed increase.
 * Added #define WIN32_LEAN_AND_MEAN in threads.h to speed-up compilation
     on Win32.
 * Modified ac_downmix_3dn and sse so they compile with the latest gcc for
     Win32.

(PS: the dvdread plugin doesn't compile yet on Win32)
2001-11-25 22:52:21 +00:00
Sam Hocevar
4a0dae0183 * Fixed a few crashes due to race conditions in the decoder spawning.
* Removed unused code here and there.
2001-11-15 17:39:13 +00:00
Henri Fallon
49a0736e1c All decoders (audio, video, subtitles) are now modules.
- mpeg_vdec, mpeg_adec and ac3_adec are builtins by default
- ac3_spdif, spu_dec and lpcm_dec are plugins by default
2001-11-13 12:09:18 +00:00
Sam Hocevar
4865e312de * Fixed compilation (and quite probably runtime) issues under IA64
due to mixed int/void* casts.
2001-11-11 18:15:42 +00:00
Stéphane Borel
eb1815f046 -kludge to have less discontinuity after a zero scr in DVD.
Maybe we should try to predict the date instead of taking the last one but
it seems quite hard.
2001-11-08 14:45:44 +00:00
Christophe Massiot
ce0e4dd13e * Cleaned up sam's mess with input's pf_open and pf_close (not completely) ;
* With -vvv modules now show up their scores ;

This afternoon I have been a little bored, so the feature of the day is :
* HTTP input support.

You can test it with :
./vlc http://mysite.com:80/mystream.mpg
It doesn't implement any kind of buffering, so make sure you have enough
bandwidth, otherwise you'll just get nothing.

It is compatible with HTTP proxy, just set http_proxy :
export http_proxy="http://proxy.mycompany.com:3128/"

Enjoy !
2001-10-02 16:46:59 +00:00
Christophe Massiot
6cd676bcf9 * Removed -march=pentiumpro ; should now work on pentium-class machines ;
* Removed --enable-stats configuration directive. Stats are now activated
at runtime with --stats ;
* New intf_StatMsg() call ;
* Vout picture heap is now 8 pictures instead of 5 (better synchro) ;
* Tremendous enhancements in statistics display ;
* Better capabilities handling.
2001-10-01 16:18:49 +00:00
Christophe Massiot
b3b880766e * Altivec IDCT and motion compensation, based on Paul Mackerras's mpeg2dec
(untested !) ;
* Local minor optimizations in IDCT ;
* Removed a hopeless kludge in input_clock.c
2001-09-05 16:07:50 +00:00
Christophe Massiot
d0c9b47957 * Rewrote the video decoder to take advantage of several processors (SMP mode) ;
* Fixed a bug in the video decoder initialization :-p ;
* Added --smp option and several hooks in src/input/input_ext-intf.c ;
* Grayscale mode now turns off chroma IDCT.
2001-07-18 14:21:00 +00:00
Christophe Massiot
2fbc01b909 Elementary Stream input plugin (use it with --input es). Only works with
video streams at the moment.
2001-06-27 09:53:57 +00:00
Stéphane Borel
7b5259e012 *Fixed a bug in synchro reinitialisation: we no longer have a shift each
time we restart the synchro (for scr discontinuity for instance)

*In DVD mode, we reinit the synchro only if the scr are not continuous
(instead of each cell)

*Try to improve ac3 spdif to prevent from desynchronization.
2001-06-09 17:01:22 +00:00
Sam Hocevar
440f9992ee * Fixed the BeOS compile typo.
* The ALSA plugin is back.
  * A gift for Gildas: plugins don't rely on backlinking any more. The
    drawback is the dirty magic in include/modules_export.h which has to
    be included whenever a module needs one of the functions in it. But
     a) we should less and less rely on those functions
     b) no plugin code modification was needed

   The BeOS and MacOS X modules may be broken when compiled as plugins,
   I'll check this later when I can reboot under BeOS.
2001-05-30 17:03:13 +00:00
Stéphane Borel
ab1d602499 *More cleanification in gtk interface: now to change the
title/chapter/audio/spu/angle, we tell the input to do intead of doing
it inside the interface. It results in fewer locks during the changes.

*The dvd plugin reads again blocks of 32 sectors to gain speed since
there are no more lock-ups during stream change. I've also created a new
file that contain function to described video and audio streams with ifo
datas.

The changes are made only for gtk. We should update the other interfaces
soon (beos at least).

There is a memory corruption somewhere that make the vlc crash. I've no
idea where to search.
2001-05-19 00:39:30 +00:00
Sam Hocevar
543556379d * Fixed a segfault in the SPU decoder initialization. 2001-05-01 12:22:18 +00:00
Sam Hocevar
a70f8bb371 * Mandatory step for video output IV and the audio output quality
fix: the output threads are now spawned when a decoder needs one,
    so it can decide the audio frequency or the video window size. Still
    under heavy construction, so don't get too excited at finding bugs
    in it yet.

    Note: this change broke the XVideo module, so I made its score much
    lower than before. I suspect xvideo.so had a bug before which only
    appears now. Other video output plugins may be broken as well, but
    again this might be due to old existing bugs showing their ugly head.

  * Fixed a few buffer overflows in the Gnome interface.
  * The module bank is now a global variable. The video output bank and
    the audio output bank might follow (when they exist).
  * Coding style and organization fixes to the spdif decoder.
  * autoconf and Makefile changes by Arnaud Gomes-do-Vale
    <arnaud@carrosse.frmug.org>.
2001-05-01 04:18:18 +00:00
Stéphane Borel
b2e1b231bc -corrected some bugs in gnome interface: language menu are now
synchronized ; and menus have less chances to be changed when they're opened.

-added basic angle support ; this is a first try. It works with my 2
test-DVDs, but I'd like that people having DVDs with repeated scenes to
test it. We can choose angle with command line option -u (don't ask me
why :)

-a cosmetic change in css decryption.

Since config.h.in has changed, you have to re-run ./configure.
2001-04-20 05:40:03 +00:00
Stéphane Borel
f11b9a96dd *Added udf fix by Billy Biggs
*Added checks in dvd_ifo

*Cleanings in gnome interface : the interface should be dependant on the
input method.
2001-04-13 05:36:12 +00:00
Stéphane Borel
7f66cfcadf -added a field to p_input->stream to inform the interface of a stream
change (useful in network mode)
2001-04-12 03:26:53 +00:00
Stéphane Borel
b3d7d241c5 -Fixed the lock segfault bug with some compilers
-Quick kludge in ifo to avoid a bug with optims. The real fix is coming.
2001-04-10 17:47:05 +00:00
Stéphane Borel
72ca053968 -changes in gnome interface
-bugfix in input dvd
2001-04-08 07:24:47 +00:00
Stéphane Borel
f6c80a75e2 -Various bug fixes in dvd_netlist. Some bugs seem to remain though.
-New function input_ToggleES for interaction with interface.
-Changes in gnome interface : navigation menus are now splited, there
are radio item in menus and the code should be better.
-First step for dvd_ifo rewritting. Now allocation/disallocation is
being done as it has to be.
-Fixed a bug in title management that make dvd like Seven work.
2001-04-01 07:31:38 +00:00
Stéphane Borel
ec126885b8 -Working menus for run-time audio/spu/title/chapter selection with gtk
interface.

It is a bit buggy yet, and some pieces of code need to change,
especially to handle better menus change when title change but it
eventually works.
2001-03-07 10:31:10 +00:00