1. 23 Nov, 2002 1 commit
  2. 20 Nov, 2002 1 commit
    • gbazin's avatar
      · e3d6e004
      gbazin authored
      * modules/control/rc/rc.c: added commands to navigate between chapters and
         titles.
      e3d6e004
  3. 14 Nov, 2002 1 commit
    • Christophe Massiot's avatar
      Major change of the channels management. p_format->i_channels disappeares · 8928554e
      Christophe Massiot authored
      and is replaced by two members : i_physical_channels and i_original_channels.
      i_physical_channels describes the channels which are effectively present
      in the stream (at the current point of the aout pipeline), whereas
      i_original_channels represents the channels we used to constitute the
      stream. For instance a mono stream (FRONT_CENTER) may emanate from a
      FRONT_LEFT channel of a STEREO stream.
      
      Additionally, this contains hooks to dynamically select the audio device
      and the channels configuration. In order to do that, all aout plugins,
      and all interface plug-ins need to be adapted. Currently only SDL
      (partially OSS) and the rc interface have been adapted, please use them
      as a guide. Other aout plug-ins have been temporarily disabled.
      
      IMPORTANT : if you need a working sound output, DO NOT UPDATE YOUR TREE
      for several days until we fix that.
      
      * modules/misc/network/ipv4.c: Fixed a long-standing segfault when saving
        preferences and asking for multicast.
      8928554e
  4. 14 Oct, 2002 1 commit
    • Sam Hocevar's avatar
      * ./include/vlc/vlc.h, ./src/libvlc.c: added VLC_Error() to the libvlc API. · bf7985b7
      Sam Hocevar authored
        * ./include/main.h: removed p_vlc->i_status because it was not sufficient
          to represent all the possible states of p_vlc; each part should be tested
          separately upon destruction.
        * ./src/misc/objects.c: fixed a signed/unsigned bug that prevented creation
          of VLC_OBJECT_GENERIC objects.
      
        * ./src/misc/variables.c: added the VLC_VAR_COMMAND type which is simply a
          variable that stores a function pointer, and calls it when var_Get is
          called for it. The function argument is taken in val.psz_string.
        * ./src/misc/objects.c: vlc_dumpstructure and vlc_liststructure are no longer
          exported to the rest of the program; instead, they're VLC_VAR_COMMAND vars
          ("tree" and "list").
        * ./modules/control/rc/rc.c: moved a few commands to VLC_VAR_COMMAND vars.
      bf7985b7
  5. 11 Oct, 2002 1 commit
    • Sam Hocevar's avatar
      Changes to the libvlc API: · 464bd2e5
      Sam Hocevar authored
        * ./include/vlc/vlc.h: changed the naming conventions for libvlc. Now
          exported functions start with VLC_ instead of vlc_ to avoid conflicts.
        * ./include/vlc/vlc.h: removed the vlc_object_t, vlc_list_t, vlc_error_t
          and vlc_t types; they are now internal types only.
        * ./include/vlc/vlc.h: merged the reentrant and non-reentrant libvlc
          calls. In non-reentrant mode, we just use 0 as the first argument. In
          reentrant mode, we use an object's ID. (see below)
      
      Internal changes:
        * ./src/libvlc.c, ./src/misc/objects.c: instead of manipulating vlc_object_t
          pointers, we manipulate their i_object_id. When needed, an object is
          retrieved using vlc_object_get (I hope the lookup isn't too expensive,
          that's why I designed the pp_objects layout to allow log2(n) seeks).
        * ./src/misc/objects.c: activated the per-object variable storage. Unused
          yet, unless you want to try "getfoo" and "setfoo blablah" in vlc -I rc.
        * ./include/vlc_objects.h: moved the vlc_object_t and vlc_list_t definitions
          here.
      
      Misc:
        * ./src/vlc.c, ./mozilla/vlcshell.cpp: removed inclusion of config.h in
          code portions not part of libvlc; it was just required for the
          COPYRIGHT_MESSAGE string which is now available from VLC_Version().
      464bd2e5
  6. 03 Oct, 2002 2 commits
    • gbazin's avatar
      · 6dafa419
      gbazin authored
      * FAQ: updated FAQ with config file issues.
      * configure.ac.in: use -mms-bitfields instead of -fnative-struct for
         mingw32 gcc-3.x.
      * include/interface.h, modules/misc/dummy/interface.c, modules/misc/logger/logger.c,
         modules/control/rc/rc.c: Display message on Win32 explaining how to get
         back to the GUI mode.
      * src/misc/threads.c, include/vlc_threads_funcs.h: ignore the
         win9x-cv-method config option on WinNT when fast-mutex is not enabled.
      6dafa419
    • Sam Hocevar's avatar
      * ./src/libvlc.c, ./include/main.h: the root of all objects is now · 145b1961
      Sam Hocevar authored
          p_libvlc, and each p_vlc is a child of p_libvlc. Reasons for this are:
      
           o the module bank and the message bank only need to be initialized once,
             which gives faster loads when multiple instances of libvlc are used,
           o we allow the possibility of different p_vlc sharing objects, for
             instance the audio output,
           o the CPU detection is only done once.
      
          This patch is not polished yet, but I cannot do any intensive tests for
          the moment because of a bug somewhere that leaves audio output objects
          lying here and there which needs to be investigated first. The current
          major issue is that the module bank is no longer freed.
      145b1961
  7. 30 Sep, 2002 1 commit
  8. 20 Aug, 2002 1 commit
    • Sam Hocevar's avatar
      * ./modules/misc/gtk_main.c: created the gtk_main module, which simply runs · f0ec49da
      Sam Hocevar authored
          gtk_main() in its own thread, and does nothing on subsequent calls. This
          ensures that gtk_main is only running once.
        * ./modules/gui/familiar/*, modules/gui/gtk/*: the familiar, gtk and gnome
          modules are now fully reentrant thanks to their use of the gtk_main module.
        * ./src/libvlc.c: implemented vlc_set(), a wrapper for config_Put* available
          to external programs.
        * ./src/libvlc.c: removed vlc_stop() and vlc_end(), everything is now done
          by vlc_destroy().
        * ./modules/control/rc/rc.c: implemented a few new functions. For instance,
          run "vlc -I rc" and then type "intf gtk" or "intf gnome". You can even
          launch several of them. "segfault" works, too.
      f0ec49da
  9. 14 Aug, 2002 1 commit
  10. 13 Aug, 2002 1 commit
  11. 04 Aug, 2002 1 commit
    • Sam Hocevar's avatar
      * ./modules/*: moved plugins to the new tree. Yet untested builds include · 19ea8feb
      Sam Hocevar authored
          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.
      19ea8feb
  12. 31 Jul, 2002 1 commit
  13. 21 Jul, 2002 1 commit
  14. 20 Jul, 2002 1 commit
  15. 15 Jul, 2002 1 commit
  16. 27 Jun, 2002 1 commit
  17. 07 Jun, 2002 2 commits
    • Sam Hocevar's avatar
      * ./plugins/gtk/gtk_callbacks.c: some code cleaning. · 5c13c83c
      Sam Hocevar authored
        * ./plugins/text/rc.c: fixed the "a" command.
      5c13c83c
    • Sam Hocevar's avatar
      * ./src/playlist/playlist.c: lots of playlist behaviour enhancements. · b9e9cb42
      Sam Hocevar authored
        * ./src/misc/objects.c: we do not hang on attempt to destroy an object with
          a non-zero reference count, but we still complain.
        * ./plugins/gtk/gtk_control.c, plugins/gtk/gtk_playlist.c: most controls such
          as play, pause, stop, next, fast etc. work again.
        * ./plugins/gtk/gnome_*: got rid of lots of useless wrappers which were a
          workaround for a bug in Glade. Instead, bootstrap.sh does the Glade fixes.
        * ./plugins/ffmpeg/ffmpeg.c: if there is already a video output with the
          appropriate properties, we use it.
      b9e9cb42
  18. 02 Jun, 2002 1 commit
    • Sam Hocevar's avatar
      * ./src/video_output/video_output.c: fixed the "picture has invalid status" · 211d6bad
      Sam Hocevar authored
          bug which might have been the cause of crashes.
        * ./plugins/filter/crop.c: attempt at an automatic border cropping filter,
          using "--filter crop --autocrop".
        * ./vlc.spec: added missing filters to the RPM generation.
        * ./src/misc/objects.c: commented all functions.
        * ./src/misc/objects.c: implemented vlc_object_find( , , FIND_ANYWHERE).
        * ./src/misc/objects.c: renamed vlc_object_unlink to vlc_object_detach.
      211d6bad
  19. 01 Jun, 2002 2 commits
    • Sam Hocevar's avatar
    • Sam Hocevar's avatar
      * ALL: the first libvlc commit. · 9e3ab283
      Sam Hocevar authored
         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.
      9e3ab283
  20. 19 May, 2002 1 commit
    • gbazin's avatar
      · 2bb2d008
      gbazin authored
      * on win32 the rc plugin opens a new console.
      2bb2d008
  21. 18 May, 2002 1 commit
  22. 19 Apr, 2002 1 commit
    • Sam Hocevar's avatar
      · 4f6c862b
      Sam Hocevar authored
        * 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.
      4f6c862b
  23. 26 Mar, 2002 1 commit
    • gbazin's avatar
      · 5322a29b
      gbazin authored
      * various little portability fixes
      5322a29b
  24. 15 Feb, 2002 1 commit
    • Sam Hocevar's avatar
      · 48cbd8f3
      Sam Hocevar authored
        * 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.
      48cbd8f3
  25. 07 Jan, 2002 1 commit
    • Sam Hocevar's avatar
      · 1e053ea0
      Sam Hocevar authored
        * ./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 :-)
      1e053ea0
  26. 04 Jan, 2002 1 commit
    • Sam Hocevar's avatar
      · 53b978f8
      Sam Hocevar authored
        * ./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.
      53b978f8
  27. 30 Dec, 2001 1 commit
    • Sam Hocevar's avatar
      · cc0f0bb6
      Sam Hocevar authored
      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.
      cc0f0bb6
  28. 09 Dec, 2001 1 commit
    • Sam Hocevar's avatar
      · 2be07191
      Sam Hocevar authored
        * COMPLETE CVS BREAKAGE !! The MAIN branch is going to be a playground
          for my nevrotic and destructive pulsions during the next few hours!
      
        * If you want to test vlc, please use the v0_2_92_branch branch.
      
        * Stuff currently working:
           - direct to YUV buffer decoding
           - non-ugly subtitle blending
           - XVideo and SDL video output
      
        * Stuff currently utterly broken:
           - aspect ratio
           - software rendering (ie, all other video output plugins)
      
        * Additional misc changes:
           - Renamed spu_dec to spudec and mad_adec to mad to stay coherent with
             other plugins. Also, renamed mpeg to mpeg_system.
           - Added jobi to the AUTHORS file.
           - Factored code common to vout_x11.c and vout_xvideo.c.
      2be07191
  29. 28 Nov, 2001 1 commit
  30. 03 Jun, 2001 1 commit
    • Sam Hocevar's avatar
      · f42dc782
      Sam Hocevar authored
        * Various little fixes
         - BeOS interface compilation fix by Rene Gollent.
         - DirectX plugin compilation fix by Gildas Bazin.
         - removed %ebx spill in the iMDCT plugins.
      f42dc782
  31. 30 May, 2001 1 commit
    • Sam Hocevar's avatar
      · 440f9992
      Sam Hocevar authored
        * 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.
      440f9992
  32. 01 May, 2001 1 commit
    • Sam Hocevar's avatar
      · a70f8bb3
      Sam Hocevar authored
        * 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>.
      a70f8bb3
  33. 27 Apr, 2001 1 commit
    • Sam Hocevar's avatar
      · c0138ec5
      Sam Hocevar authored
        * Fixed the continuous 'seeking position' bug in network mode.
        * rc interface plugin for vlc control through /dev/stdin courtesy
          of Peter Surda <shurdeek@panorama.sth.ac.at>.
        * Support for `ts://foo:42' style input source:
           vlc ts://vls.via.ecp.fr:1234
           vlc ts://vls.via.ecp.fr
           vlc ts:vls
           vlc ts:vls:4321
          As a side effect, the Gnome and Gtk "network input" buttons work.
      c0138ec5
  34. 21 Mar, 2001 1 commit
    • Sam Hocevar's avatar
      · 4f551c2b
      Sam Hocevar authored
        * Header cleaning: filled all empty authors fields, added CVS $Id stuff.
        * Fixes to aout_darwin.c by Colin Delacroix <colin@zoy.org>.
        * Fixes to configure.in, Makefile.in and main.c (Altivec detection)
          by Eugenio Jarosiewicz <ej0@cise.ufl.edu>.
        * Added Colin and Eugenio to the AUTHORS file.
      4f551c2b
  35. 15 Mar, 2001 1 commit
    • Sam Hocevar's avatar
      · a0c1805b
      Sam Hocevar authored
        * Bug fixes and enhancements in the Gtk+/Gnome interfaces.
      
         o the slider should behave correctly and stop jumping here and
           there (this bug is _not_ related to Stef's similar bug)
         o added an "open network" menu (useless since the input doesn't
           handle it properly yet)
         o tried to reorganize gnome_callbacks.c and gtk_callbacks.c
         o stream date is now displayed instead of percentage
         o renamed gnome_sys.h to intf_gnome.h, and gtk_sys.h to intf_gtk.h
      
        * Changed documentation and package creation files.
      
         o added versioned conflicts/replaces to vlc-gtk (Closes Debian bug #88796)
         o removed useless or outdated documentation from doc/*
         o moved vlc.1 manpage from debian/vlc.1 to doc/vlc.1
      
        * Added basic Qt interface.
      
         o working features: slide bar, open file, toolbar, popup menu
         o added "qvlc" alias, equivalent to "vlc -I qt"
         o known issues : no "open disc" or "open network" menus yet
                          the IntfWindow class is never cleaned on destruction
                          the popup menu always pop at the middle of the screen
      
        * Misc fixes/updates.
      
         o renamed netutils.h functions from input_* to network_*
         o renamed *plst* files and functions to *playlist* (it was stupid
           from me to name them "plst")
         o made a few input error messages more meaningful
         o added -I, -A and -V short flags, corresponding to --intf, --audio
           and --video
      
          I got a lot of conflicts on this commit, lart me if I forgot a
        file or made old bugs reappear.
      a0c1805b
  36. 20 Feb, 2001 1 commit
    • Sam Hocevar's avatar
      · 583c6553
      Sam Hocevar authored
        * Ported Glide and MGA plugins to the new module API. MGA never worked,
          so this didn't make it work better.
        * Started thinking about built-in modules, and added some code to
          make it easier eventually.
        * Added Oct in the AUTHORS file.
        * Fixed a mistake in configure.in.
        * All your base are belong to us.
        * Fixed a bug in src/misc/modules which prevented loading modules
          when launched from the Tracker.
        * Fixed a similar bug in src/video_output/video_text.c.
        * BeOS CSS support, thanks to Markus Kuespert <ltlBeBoy@beosmail.com>
          who ported the Linux DVD ioctls. We can now read encrypted DVDs
          under BeOS ! Woohoo.
      583c6553
  37. 16 Feb, 2001 1 commit
    • Sam Hocevar's avatar
      · b2f56af9
      Sam Hocevar authored
       * Fixed a segfault in the input thread creation, as well as a possible
         deadlock. This happened mostly when opening non-existing files.
       * Created input_SetStatus to do input_SetRate's job. input_SetRate will
         be used to set an arbitrary rate, for people who want to read DVDs at
         1/2.71828 times the actual speed.
       * Stubs for the ncurses control interface. No working code yet, but the
         holes just need to be filled.
       * Improved X11 support. Still not as functional as before.
       * The output window now states the method name, so that people know whether
         they are using X11 or SDL.
       * The Gnome interface is now drag'n'drop aware, you can drop a file
         on it just like Xine does (or so I guess).
      b2f56af9