]> git.sesse.net Git - vlc/commitdiff
* Updated version number to 0.2.71 (release today).
authorSam Hocevar <sam@videolan.org>
Fri, 13 Apr 2001 06:20:23 +0000 (06:20 +0000)
committerSam Hocevar <sam@videolan.org>
Fri, 13 Apr 2001 06:20:23 +0000 (06:20 +0000)
  * Merged 6 months of CVS logs to the ChangeLog file.
    The vlc changelog can now be viewed here:
       http://www.videolan.org/vlc/changelog.html

  * Fixed a lintian error in debian/rules.
  * XVideo resize patch by Shane Harper <shanegh@optusnet.com.au>.

ChangeLog
configure
configure.in
debian/changelog
debian/changelog-css
debian/rules
plugins/x11/vout_xvideo.c
vlc.spec

index 5e8a494877b27561180197380fa84a7847399c20..d5dee6afe33d2988e0a5213cd52039dbeb37d6f1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,60 @@
-ChangeLog for vlc
-=================
+ChangeLog for vlc
+=================
 
-0.2.70:
+HEAD
+
+  * Nothing yet.
+
+0.2.71
+Fri, 13 Apr 2001 08:13:26 +0200
+
+  * Merged 6 months of CVS logs to the ChangeLog file.
+  * Fixed a lintian error in debian/rules.
+  * XVideo resize patch by Shane Harper <shanegh@optusnet.com.au>.
+  * Added udf fix by Billy Biggs.
+  * Added checks in dvd_ifo.
+  * Cleanings in gnome interface : the interface should depend on the
+    input method.
+  * Intf: TS streams in menu
+  * TS input: only one audio & spu ES selected at a time
+  * Removed the build of the vlc app from the install target.
+  * Added an icon to the MacOS X vlc.
+  * "make vlc.app" now correctly updates vlc.app
+  * Fixed BeOS menu problem.
+  * Added a field to p_input->stream to inform the interface of a stream.
+    change (useful in network mode).
+  * Added error checks in dvd input.
+  * Changed the way ifo are read.
+  * Fixed a bug in area management.
+  * Fixed a warning in netutils.c.
+  * Created darwin_specific.c to store the program path at boot time.
+    (XXX: check that it didn't break the OS X port)
+  * Removed redefinition of NULL in src/audio_decoder/adec_layer?.c.
+  * Updated icons.
+  * BeOS icon and MIME resources courtesy of Wade Majors <guru@startrek.com>.
+  * Updated Makefile.in to make vlc.app by default on Mac OS X & Darwin, added
+    clean code for it as well.
+  * Hacked main.c to disregard argv[1] when compiled for OSX & run as a full
+    app (ie., double clicked and not launched from command line).
+  * Cleaned up debug spew left in modules.c and video_text.c.
+  * Created macosx_common.h in plugins/macosx/ to hold common stuff.
+  * Updated & cleaned up intf_macosx.c and vout_macosx.c - added Open menu
+    function support and a no-frills About box.
+  * Fixed icons location and Debian desktop menus.
+  * Fixed a memory leak in gtk_callbacks.c (thanks to Dae).
+  * Disabled message queue by default.
+  * A few other changes in the CSS code, the BeOS issues should be fixed.
+  * Corrected an awful typo in the version name.
+  * Removed deprecated stuff from config.h.
+  * Fixed the whitespace/tab issues in the Makefile.
+  * X and Xv output: added autohide cursor as in SDL.
+  * X and Xv: keys 1 to 0 change channel.
+  * SDL: keys F1 to F10 change channel.
+  * Ported the 0.2.0's channel changing functions.
+  * Fixed the lock segfault bug with some compilers.
+
+0.2.70
+Sat,  7 Apr 2001 05:52:00 +0200
 
   * Fixed headers for FreeBSD compilation.
   * Fixed debian/rules for non-x86 packages (Closes: Debian bug #88583).
@@ -102,14 +155,670 @@ ChangeLog for vlc
   * Playlist now refreshes when a file is opened.
   * XVideo plugin background is now black instead of white.
 
-0.2.63:
+0.2.63
+Mon,  5 Mar 2001 00:41:16 +0100
+
+  * Got rid of the CONTRIBUTORS list, and switched AUTHORS to a
+    linux-kernel like author list.
+  * Updated TODO list.
+  * Fixed a segfault in the BeOS interface when --noaudio was specified.
+  * Title and Chapter selection in the Gnome and Gtk+ interfaces.
+  * Fixed a bug in audio selection
+  * Tried to fix an issue in size computing.
+  * Commited BeOS changes by Richard Shepherd and Tony Castley.
+  * Added boolean_t b_YCbr to vout_thread_s structure to flag YUV-YCbCr
+    decoding needed instead of YUV-RGB
+  * Will be removed later when video_output.c rewritten
+  * vout_CreateThread() initialises b_YCbr to zero
+  * New BeOS video plugin that supports hardware overlays and new
+    MediaPlayer compatible interface
+  * Added YUV-YCbCr transforms
+  * Fixed bugs in title/chapter handling once more, especially for size
+    detection and location of main movie.
+  * Support for multitrack DVD : now the stream is given to input as it has
+    to be ; however, all the tracks are displayed one after the other ; I
+    think we need to decode navigation ES to choose the track
+  * Fixed behaviour at end of device.
+  * Added DVD/VCD button and menu for quick DVD device selection to the
+    Gnome and Gtk+ interfaces, so that vlc can play a DVD even when
+    launched from a GUI.
+  * Added debian/* files to help generating CSS-enabled non-US packages,
+    and changed plugins/dvd/* to reflect this change.
+  * Added .xpm icons (fixes lintian warnings).
+  * --help output and manpage are now in sync (Closes Debian bug #87478).
+  * Fixed Build-dpends entry in debian/control (Closes Debian bug #83707).
+  * Completely changed title and chapter initialization. Now we have real
+    title units.
+  * Fixed size for a majority of DVD.
+  * More consistency in the p_input->stream management. 
+  * Made input_SelectES() and input_UnselectES() not block the input thread
+    for a long time.
+  * Changed debian/control to fix Debian bug #83707
+  * Added a --disable-css configure option
+  * Moved some code here and there in the DVD plugin to make it easier
+    for me to build the Debian CSS-free packages.
+  * Fixed miscellaneous alignment problems (alpha/sparc ports) ;
+  * Added a fps display when toggling 'i' ;
+  * Fixed a bug in the video parser where one picture buffer was not
+    released at quit time ;
+  * Broke the mux_rate calculation, but hey guys ! it was already broken and
+    nobody noticed it.
+  * New function for DVD reading, that is able to read multiple blocks
+    (I've chosen 32 now), that doesn't use any memcpy anymore and is also much
+    faster. It is ready now for cell positioning in multi-angle DVD (to come  
+    soon).
+  * DVD specific netlist adapted to 2048 bytes long blocks that contain
+    several data_packets.
+  * Modification in mpeg_system.c to use p_payload_start instead of
+    p_buffer (necessary for DVD plugin). It does not break other plugins
+    since they set p_payload_start to p_buffer
+  * New field i_read_once in input_thread_s to be able to read more than
+    the TS related 7 packets ; i_read_once is set to INPUT_READ_ONCE by
+    defaults but plugins can change it during initialisation.
+  * Bug fix with frequential downmix
+  * Additional optimizations to the subtitle decoder
+  * The GGI video output should now be faster. Also, right-mouse-clicking
+    works in GGI mode as well.
+  * Optimizations done to the SPU decoder. Now the RLE is expanded at
+    decoding time, not rendering time. The main loop in vout_RenderSPU
+    is now 20 lines long.
+  * The Gtk+ interface is now built as a Debian package as well. The Gnome
+    package depends on it because of the icon and menu entry.
+  * Added an intf_WarnHexDump() function to do raw hexadecimal dumps of
+    memory areas. For debugging purposes or for real men, as you wish.
+  * Lots of tidying in dvd_ioctl.c, a few comments added.
+  * Better error handling in the subpicture decoder.
+  * Tidied video_spu.c. More to come later.
+  * Fixed subtitle displaying. Will soon work in overlay mode as well.
+  * Disabled slice-level resynchro since it's probably buggy.
+  * Fixed a structural major bug in the macroblock structure management.
+  * Added debug messages.
+  * Fixed a compile problem in debug mode.
+  * Added functions and hooks to display dates instead of off_t.
+  * Added a 'd' keystroke to dump the stream contents (for debugging
+    purposes).
+  * New ES detection based on .ifo for DVD module. It might fail (I have
+    found one DVD for which ifo seems false).
+  * Title and chapter selection on the command line (see -t and -T options)
+    It will allow to watch some DVD that went through menus by default.
+  * Beginning of menus in gnome interface.
+  * Fix bug in ac3dec for mono streams
+  * BeOS: bew video output method, the vlc now uses BBitmap instead of
+    BDirectWindow (better performances)
+  * BeOS: added resizing
+  * BeOS: added beta support for overlay
+  * Added a plain Gtk+ port of the Gnome interface, for the gnome-impaired
+    people. Gtk+ is now compiled by default, while Gnome isn't (you will
+    have to add --enable-gnome when running configure)
+  * Replaced -lcurses with -lncurses in configure.in.
+  * Added DemuxPSI, DecodePAT and DecodePMT. Never tested which streams
+    where PAT or PMT are splitted in more than one section.
+
+0.2.62
+Fri,  2 Mar 2001 17:32:24 +0100
+
+  * DVD plugin is still non-functional when you don't have DVD ioctls,
+    but at least it compiles under BeOS as well.
+  * Minor cosmetic changes here and there.
+  * Added the BeOS code for vlc_mutex_destroy() and vlc_cond_destroy()
+  * Minor optimizations in the video decoder.
+  * Move ac3 globals variables into structures
+  * Fixed a bash-ism in configure.in
+  * Fixed a segfault in input.c when no input plugin was found for
+    a given file.
+  * Fixed a deadlock in the Gnome interface. Next time I'll initialize
+    my mutexes, I promise.
+  * Added Oct to the authors list in intf_gnome.glade :)
+  * Second step in area management ; everything is in place now to have
+    title handling; it is coming :)
+  * 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.
+  * First serie of changes in DVD module for the forthcoming interface menus.
+    There is a new capability in input type modules for setting the
+    attributes of a new area. It is set to NULL for PS and TS plugins.
+    It should be called for every title change, chapter change,
+    audio mode change or spu channel change.
+  * Kludge of the kludge, removing an oddity in YUV initialisation, and
+    activating YUV overlay on startup whenever hardware acceleration is
+    available. Thanks for bearing with us, stay tuned.
+  * mux_rate parsing.
+  * Changed video decoder's error messages into warnings.
+  * Add dither fix
+  * Drag and drop support under BeOS.
+  * Change in the code to detect beginning of movie. It is much better now
+    but still fails with some DVD for which the movie is not the first
+    Program.
+  * Beginning of ideas to handle chapters and ES selection
+  * configure.in and Makefile.in patches for better SDL support and
+    support for $(bindir) $(datadir) and $(libdir) stuff, courtesy
+    of Arkadiusz Miskiewicz <misiek@pld.ORG.PL>
+  * Ported ggi.so to the new modules API. As for the other modules, only
+    the "q" key works. Moreover, VLC doesn't exit cleanly if you close the
+    GGI window.
+  * Deactivated non-working widgets in the Gnome interface.
+  * Added CONTRIBUTORS file.
+  * Ported the framebuffer plugin to the new module API. As for most of the
+    other video output modules, keyboard doesn't work. Except ^C to quit.
+  * UDF filesystem support so that we know the location of the first video
+    related file with 100% reliability (great change that should make DVDs
+    with binaries and extra stuff work with vlc).
+  * Correction of a bug in ifo reading that falsified the adress of
+    video titles.
+  * Changed the method for selecting title at start. It is _not_ reliable
+    though, but it is better than the preceding one.
+  * Tried to fix the BeOS interface and video output. Any BeOS developers
+    listening ? I can't even test that code, it probably wants additional
+    fixing.
+  * Added a workaround in modules.c for broken libc's which happen to truncate
+    filenames in dentry structures when using 64bits offsets. The kind of
+    stuff you only see in RedHats <g>.
+  * Made the SDL error messages a bit more useful.
+  * The Gnome menu is now created when mouse is released, not when it
+    is pressed. It may sound stupid, but it really makes a difference.
 
-### THIS CHANGELOG HASN'T BEEN UPDATED FOR UNSTABLE ###
+0.2.61
+Fri, 16 Feb 2001 08:09:59 +0100
+
+  * Fixed package building (both RPMs and .debs).
+  * Fixed `make snapshot' rule.
+  * Added some magic to filename detection. To read a DVD you now just   
+    need to run 'vlc dvd:/dev/hdc' for instance. Same for file:// URIs.
+  * Fixed a segfault in the slider when no stream was playing.
+  * Made the slider go from 0 to 100 (instead of 99 :)
+  * The vlc now doesn't exit when finished playing. As a side effect of
+    the playlist code being very recent, it continuously loops.
+  * 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).
+  * New more recent css authentication code.
+  * Beginning of udf support (not in Makefile)
+  * Removed useless includes in intf_gnome.c
+  * Made the vout_sdl.c functions static 
+  * Ported vout_x11.c to the modules API; code isn't very nice yet though
+  * X11 output works again. It's just the output, but it works; I now need
+    to clean the code and add event handling.
+  * Should have fixed the dependency generater for some plugins.
+
+0.2.60
+Wed, 14 Feb 2001 08:33:46 +0100
+
+  * Started porting the X11 vout (still disabled)
+  * A few unnoticeable changes in the Gnome intf
+  * Changes in the way stream size in DVD mode is calculated. It is no
+    longer such an ugly kludge and is much more accurate.
+  * Changes in DVDSeek so that the interface slider is in 0 when we are at
+    the beginning of the strem.
+  * Try to detect the beginning of the movie in the middle of the title. It
+    works for most of the DVDs but will begin in the middle of the movie
+    with some others.
+  * Calculate only the first title key in css mode because it might take a
+    long time with some title. The search stops now when we have a key once
+    whereas it did stop only when we had it twice before. It should not
+    cause problems.
+  * Really fixed MC segfault bug.
+  * Adaptation of DVD module to navigation slider. The seek has to be
+    done on a multiple of 2048, and shopuld take care of the offset to the
+    beginning of the stream. It works with most of my DVDs by fails to
+    detect size of some streams.
+  * Change of the order of call to ifo and css functions in input_dvd.c,
+    because we can't read ifo files before authentification on some DVDs.
+  * Changed location of some css tables.
+  * We read ifo date and decrypt css keys for all titles now. It takes quite a
+    long time to initialize with some DVDs (if you have 42 titles for
+    instance). The key decryption might give a false value if the title is
+    less than 10 Mb ; I'm working on that :)
+  * Quick patch to avoid a segfault when arbitrarily seeking the stream.
+  * Added --intf option to vlc
+  * Started cleaning vout_sdl.c
+  * The dummy plugin works again
+  * Added a slider to the Gnome interface so that we can browse through streams
+  * Removed enhancement because of an incompatibility with slow motion.
+  * We can now seek at position 0 :p ;
+  * Tried to enhance picture dating on timebase discontinuities.
+  * Fixed pause bug.
+  * Much cleaning in css code. It should work fine now.
+  * Fixed my old stupid bug that disabled sound after having played the
+    first playlist item.
+  * Added `Prev' and `Next' buttons to the interface, with the beginning of
+    a playlist window (still empty).
+  * Added `Slow' and `Fast' buttons to the interface and popup menu.
+  * Removed tests against i_rate and i_new_rate calculation from the
+    plugins and hid this complexity into input_ext-intf.c 
+  * The pure Gnome part of the Gnome interface has been rewritten from
+    scratch, and the .glade file included as well. You can edit it by
+    installing glade-gnome and doing `glade plugins/gnome/intf_gnome.glade',
+    or directly by hand if you grok XML.
+  * Files can now be loaded into vlc using the `Open' buttons. But for the
+    moment you still have to launch vlc with at least one file, because it
+    quits when the end of the playlist is reached.
+  * Idle screen was disabled because it eats a lot of CPU and is mostly
+    useless for the moment. And it gets activated when pause lasts for too
+    long.
+  * Plugins have completely disappeared, we now only use the new module API.
+  * All intf and vout modules are now independant. So far, only the Gnome
+    intf module and the SDL vout module have been ported. configure.in has
+    been modified to reflect the changes (x11 and dummy aren't compiled by
+    default anymore, while SDL and Gnome are).
+  * Right-clicking on the SDL video output window brings the Gnome menu.
+  * Pause, Play, Exit, About work from the menu or from the interface window.
+  * The old SDL keys still work.
+  * Fixed a bug in #define that prevented from using ioctls
+  * Some functions to prepare ifo commands utilisation to move in the
+    structures of DVDs
+  * Change in configure to avoid compiling css functions on BSD.
+  * Added comments to src/interface/intf_plst.c and include/intf_plst.h
+    so that people understand how the playlist works.
+  * Updated the TODO list (34 items to do, 41 done !)
+  * Portability : changed off64_t to off_t and activated appropriate
+    GNU/Linux options ;
+  * Changed fseek() to fseeko() for 64-bit offsets ;
+  * Reset frame predictors on a stream discontinuity.
+  * Implemented basic stream navigation function, and bound Jump forward
+    and jump Backward in the SDL intf. Enjoy !
+  * Pause function implemented ('p' key).
+  * Fixed a compile probleme on machine without a dvd player :ppppp
+  * Fixed two bugs in ifo and css that caused memory corruption and
+    segfault when using sdl in dvd mode.
+  * Moved the playlist handling from input/input.c to interface/interface.c
+  * Fixed a few warnings at compile-time.
+  * Fixed sound channel selection in playlist mode.
+  * Added a color message in the plugin bank because on peut bien déconner
+    cinq minutes, quand-même.
+  * We now spawn a new input thread for each file.
+  * Added a missing pf_close() because it's always cool to close files
+    after we read them.
+  * Solved bug with cssdescrambling. The vlc might segfault with dvd
+    plugins. I will fix that soon. 
+  * Minor modification in pluginification.
+  * Playlist works again (still the old wrong way like Meuuh doesn't
+    like, but this is going to change within a few hours)
+  * Input_ps, input_ts and input_dvd are now plugins, located in
+    plugins/mpeg/ and plugins/dvd/
+  * Fast/slow keys are now A/Z instead of A/S since S was already
+    linked to the scale/noscale toggle.
+  * `--dvd' doesn't work anymore, for the moment try to use :
+    vlc --input dvd /dev/dvd
+  * Module bank is now less verbose ; use `--warn 1' to turn back
+    verbosity on
+  * New method using netlist to read packets on DVD device by sectors of
+    2048 bytes.
+  * Some modifications in netlist to make it work with DVD.
+  * Fixed à bug in mpeg_system.c
+  * We can now choose the speed of forward (between 32/1 and 1/8)
+  * Functional fast forward and slow motion API ;
+  * Dirty hack in the SDL intf to bind "a" (fAst forward), "s" (Slow motion)
+    and "p" (Play).
+  * Centralized clock management, preparing for stream navigation ;
+  * Fixed a bug in the management of the first video PTS.
+  * Fixed a bug in period calculation for progressive sequences.
+  * Fixed a FIXME in SDL: p_vout->p_sys is no more used in intf_sdl.c
+  * Used instead p_vout->i_changes like in x11
+  * Disabled SDL parachute to let the vlc dump a core instead of staying stuck
+  * Patched 2 debian bugs
+    (see http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=vlc)
+  * Improved the snapshot generation
+  * Mouse pointer hidden/shown with middle button in SDL output
+  * Removed obsolete video_yuv_mmx.S
+  * Updated the TODO list and wrote a small todo.pl parser to make it
+    easier to see which items remain to be done
+  * `make snapshot' now creates vlc-*.tar.gz and vlc-*-nocss.tar.gz
+
+0.2.50
+Wed, 31 Jan 2001 04:30:37 +0100
+
+  * Version 0.2.50 for the Linux Expo
+  * --overlay and --fulscreen options (only work with --vout sdl)
+  * The vlc exits after the end of the stream, which prevents from having
+    to kill it and relaunch it during a presentation.
+  * Not a very nice hack, but will probably spare us a few user complaints: if
+    no -a option is specified, the vlc will play the first audio type it finds,
+    so there is no need to specify "-a ac3" for a DVD anymore.
+  * CSS support kludged for current DVD input.
+    It is very slow now but will be more adapted to the forthcoming DVD
+    input.
+    It should read the first title of many DVDs but has been tested with few.
+  * Beginning of ifo commands to implement DVD navigation.
+  * Fix for field pictures.
+  * Hooks for fast forward and slow motion support.
+  * Fixed backwards moves.
+  * Tuned up optimizations.
+  * Completely removed BIZARRE_OPTIMS.
+  * Check for the needed headers for DVD ioctls
+  * Some cleaning in the dvd authentification code
+  * Various miscellaneous minor optimizations of the video parser.
+  * Beginning of support for encrypted DVDs.
+  * It only tests encryption and authenticates disc.
+  * Really fixed GetChunk now.
+  * 32-bit aligned bitstream (not that fast).
+  * The motion compensation routines are now modules as well ; choose your
+    implementation with `--motion motion', `--motion motionmmx' or
+    `--motion motionmmxext'. Of course, the best implementation is chosen
+    if you don't ask for any. There doesn't seem to be any performance hit
+    due to the move to shared libs, which is a good thing. Please test
+    actively if you have time, though.
+  * Updated --help result, manpage, INSTALL document, and a few files.
+  * Borrowed LiViD's MMX and MMX EXT IDCT. This might break things. Expect
+    a performance increase.
+  * Removed a few useless malloc() and unused variables in the audio SDL stuff
+  * Prepared the work for built-in modules (not yet finished)
+  * Small tweak in the copy handling, reduce CPU usage.
+  * --aout sdl now works
+  * Added SDL sound support. Sounds a bit laggy sometimes but my streams
+    are ill.  please try.
+  * Modified configure.in and all that stuff. Re-run configure
+  * SDL audio, video and interface are all part of the same .so now.
+  * Removed YUV old files :->
+  * Reverted something that wasn't supposed to go into the cvs :p
+  * Removed -fargument-noalias-global which causes problems with as (???).
+  * Borrowed livid's latest libmmx and MMXEXT MC. Not in the Makefile => to
+    test it, replace vdec_motion_inner_mmx.c by vdec_motion_inner_mmxext.c.
+  * A few changes in the CPU extensions detection code, borrowed from the
+    kernel and from mpeg2dec. I still don't know how to detect if code
+    compiled with -mcpu=pentiumpro will run, since the cpuid arcanes are
+    quite obtuse to me. Perhaps we should also have a way not to load modules
+    if they have been compiled with a different CPU to avoid segfaults.
+  * Add check for MMX EXT extensions, which doesn't work, which is a good
+    thing since there is no MMX EXT IDCT yet :)
+  * Change for the forthcoming fast forward and slow motion support.
+  * Fixed the --aout, --idct and --yuv flags
+  * Updated manpage and --(long)help output to reflect that change
+  * Removed a few unneeded #includes here and there
+  * Cosmetic changes in error messages in input.c
+  * Now use of 64 bits offsets to parse the whole DVD. So we have all the
+    available information
+  * Fixed a bug in parsing of VTS attributes
+  * Fixed a bug in input.c that made input plugin initialize even though
+    no stream is reachable (thanks Sam)   
+  * Merged the YUV plugins in the same directory to avoid too much code
+    duplication
+  * YUV transformations now use the new module API ; now only the vout
+    and interface still depend on the old plugin API
+  * Changed TestMMX to TestCPU because we will be able to test for other
+    specific extensions (3DNow, SSE) for the forthcoming IDCT we'll
+    borrow to mpeg2dec (as usual :P)
+  * Don't show "hiding module" messages anymore except in debug mode
+  * Swapped C IDCT and Classic IDCT scores since the classic one seems
+    to be faster ; anyway you should use the MMX one
+  * Fixed a Makefile bug under BeOS
+  * Tried to fix the cpuid code so that it compiles under BeOS (Polux, can
+    you test it when you have time ?)
+  * Fixed a bug in the frame rate handling ;
+  * Fixed a bug in the DTS/PTS ordering. Our pts are _at last_ accurate.
+  * Finally fixed repeat_first_field and co. (pas encore tout compris...)
+  * Implemented video_parser bitstream callback for PTS/DTS.
+  * Fixed close button support in SDL
+  * Fixed --width and --height support in SDL
+  * Fixed the bug-that-made-the-vlc-segfault-on-exit, which means that
+    more than ever, « le client ne segfaulte pas ».
+  * There was still a problem upon quitting: sometimes the null packet
+    wasn't big enough to reach a decoder breakpoint, so I now create 10
+    of them (since I can't make it bigger) to be sure. Meuuh, what do
+    you think ?
+  * Fixed the Makefile to spare a few variables here and there.
+  * Reduced module hide delay, removed loading of the audio output
+    plugins since they are now modules. 
+  * Changed a few intf_Msg to intf_DbgMsg, and added "vout:", "intf:",
+    and so on in a few other messages.
+  * Removed unused includes in the idct modules.
+  * Correction of bugs in ifo parsing. Now the structures should be well
+    initialized. It remains some segfaults but it globally works.
+  * DVD mode is enabled with option --dvd. For the moment, it only read
+    the first vts and find the movie if it is at the beginning of the title
+    set.
+  * Beginning of dvd_input. Parsing of ifo file almost completed.
+  * The IDCT functions are now located in modules : the classic IDCT,
+    our optimized IDCT, and MMX IDCT.
+  * Cosmetic changes for modules (pf_* instead of p_*)
+  * Fixes to the BeOS and dummy modules 
+  * Changed default values :
+    INPUT_PTS_DELAY down to 200 ms ;
+    video heap down from 10 to 5 pictures ;
+    decoder fifo size from 1023 to 511 PES ;
+  * Fixed various bugs in 32 bit-versions of input_ext-dec.h ;
+  * Fixed a bug in GetChunk() ;
+  * Renamed GetByte, GetWord, ShowWord to _GetByte, _GetWord, _ShowWord ;
+  * Moved decoder_fifo-specific code from programs.c to dec.c ;
+  * Fixed bugs in program.c that prevented vlc to close all decoders ;
+  * Gave sam a lesson for the use of the bitstream in spu_decoder.c :ppp ;
+  * Made the video parser unlock the reference pictures before quitting
+    (still one left, yaknow why ?)
+  * Destroy fifo mutex and cond variables _after_ they are used for
+    the last time. henri, that'll be one binouze.
+  * Attempt to port the BeOS audio plugin to the new module API. Will
+    probably need a few fixes to work or even compile.
+  * Ported the alsa plugin to the news vlc module API
+  * Fixed 32 bits bitstream bugs.
+  * Moved the MPEG audio decoder to the new bitstream
+  * Cleaning in the SPU decoder.
+  * Moved swab32 from input_ext-dec.h to common.h. We probably won't need
+    it anymore really soon, since ntohl() and htonl() seem to be properly
+    optimized when gcc is passed the right optimization flags.
+  * Fixed GetBits32 and RemoveBits32. I know the #ifdefs are useless since
+    we only support u32 words, but it's a safe reminder. Comments appreciated
+    on this fix since I may have b0rked something -- it runs well here though.
+  * Changed code for handling b_die in bitstream ;
+  * Moved input_ext-dec.h to input.h ;
+  * New input_NullPacket function ;
+  * Fixed init bugs in input and vpar ;
+  * Placed a callback to the decoder in the bitstream structure ;
+  * Fixed a purify bug in input_ps.c ;
+  * Added -mcpu=pentiumpro in the Makefile.
+  * Complete commenting of modules_core.h and small modifications
+  * Separated MODULE_CONFIG_START and ADD_WINDOW (Henri, beware)
+  * Fixed a very, very old bug that caused namespace collision between
+    plugins (Henri, beware: call your aout_getplugin function like this,
+    not alsa_aout_getplugin)
+  * Removed the Debian specific clean rules from the Makefile, since they
+    are already handled by the debian/rules script.
+  * Tidied a few compilation rules (-lfoo should always be at the end)
+  * Added 8bits palette SDL support.
+  * Fixed a warning under FreeBSD (dlerror() is a const char*, not a char*).
+  * Made configure script look for the bswap assembly instruction (using
+    AC_TRY_COMPILE makes sure the compiler will really accept it).
+  * Fixed colors' bug (TODO: write a function in vout that recalculate colors
+    from RGB masks);
+  * Cleaning of the fullscreen switch, still sucks but the surface is not
+    reallocated and that's good (thanks to the magic function
+    SDL_WM_ToggleFullScreen provided by sdl library :).
+  * Added a missing mutex_unlock in video_output.c
+  * Moved a mutex_destroy after the thread cancellation to prevent
+    possible problems
+  * Added a missing #ifdef in intf_msg.c which prevented compilation
+    with --enable-debug
+  * Fixed a bug in the input that prevented to quit properly in certain
+    cases (some ES were not deleted because their index was skipped when
+    the former one was deleted, well Meuuh should know what I mean)
+  * Cleaning of SDL Lock/Unlock Surface.
+  * All plugins now compile with -fPIC.  
+  * Made the audio_output API a bit simpler.
+  * Got rid of modules_config.h.
+  * Fixed `make install' rule. 
+  * Fixed warnings in the MMX YUV compilation.
+  * Probably fixed a bug in the input : pp_foo structures were free()d at
+    the end, but this was useless since the last call to realloc() is
+    equivalent to free(), and two consecutive calls to free() aren't a
+    goo idea.   
+  * We check that the version number match and that we don't already have
+    a module by that name when loading a new module.
+  * All public module_* functions now properly lock the module bank.
+  * The audio_output now uses the new module API ; EsounD and DSP modules
+    have been ported, which should be enough for Henri to port the ALSA one.
+  * Added vlc_mutex_destroy and vlc_cond_destroy function, for pthreads.
+    Used them before quitting, every lock and cond is destroyed
+  * Checked the return value of malloc and realloc in input_programs
+  * Fixed compilation pb under solaris 2.6
+  * Should compile & run on Solaris with ./configure --disable-dsp
+    (tested on puma)
+  * Removed most SYS_SOLARIS #ifdef's in favour of more generic tests
+  * Updated example ./configure line in INSTALL file
+  * Now we only load modules that end with ".so"
+  * null module is compiled by default
+  * Fixed initialization of payload_start and payload_end
+  * --enable-sdl and some others are now --with-sdl[=name] to supply an
+    optional library name ;
+  * Deleted all unnecessary #include <sys/uio.h> ;
+  * /usr/include is now searched when looking for libraries and headers.
+  * src/misc/modules.c is in a workable state now.
+  * Splitted modules.h into modules.h and modules_core.h to enable
+    clean compilation of the Null Module.
+  * Added the Null Module, the module that does nothing but that is going
+    to be of great help for debugging my module code.
+  * Plugins are now called modules, because we will be able to compile
+    them either as a dynamic plugin, or within the program. And, more
+    important, I can commit this without having to break the vlc :)
+  * Fixed pitch bug;
+  * video_output.c : compute picture size even if b_need_render == 0;
+  * Fixed a deadlock (the vout unlocked a mutex locked by another thread,
+    grrrr, I'll kill someone) ;
+  * Put config.h in front of others in audio_decoder.c.
+  * Better display of the fps.
+  * Removed i_iovec_start and i_iovec_end. Used i_data instead
+  * Fixed THX Cimmarron bug (it was _not_ a synchro bug).
+  * Fixed a bug in the DTS/PTS parsing ;
+  * Fixed a bug in vpar_headers.c synchro handling introduced before ;
+  * Enhanced synchro's handling of dates and frame structure changes.
+  * Fixed a bug in the PSM decoder.
+  * We now read the DTS (but we don't use it for the moment).
+    NB : b_has_pts has disappeared for brevity reasons, use i_pts != 0 instead.
+  * New synchro statistics and warnings.
+  * Avoid calling SafeRead() with a null packet size.
+  * Use of ptrdiff_t whenever necessary (IA-64 port) ;
+  * Changed behaviour of preparsing code, faster startup ;
+  * Fixed DecodePSM(), cannot test ;
+  * Cleaned up ParsePES(), fixed a bug which could reject very small but
+    valid PES packets ;
+  * Fixed cosmetic bugs in vpar_synchro frame_rate display.
+  * Changed subtitles palette.
+  * SPU decoder now uses Meuuh's GetChunk() code.
+  * Lots of cleaning in the SPU decoder.
+  * Message queue is flushed before we spawn input.
+  * Fixed so that it compiles with VDEC_SMP (no good sync yet though).
+  * Using i_id instead of i_stream_id whenever possible ;
+  * Fixed a bug in -c and -s options.
+  * Fixed a compile pbm in debug mode (f34r d4 1-line fix)
+  * Fixed AC3 and SPU PES reading (ph34r da one-byte patch)
+  * Some 79 char wrap.
+  * No need to add "\n" at the end of intf_*Msg() messages anymore.
+  * Moved input_DecodePES() to input_dec.c ;
+  * Fixed an segfault in input_programs.c ;
+  * Added -fomit-frame-pointer optimization.
+  * Fixed a *major* memory leak in the pre-parsing code. Hopefully it should
+    be the last one.
+  * New decoder spawning API input_dec.c ;
+  * Moved p_input->pp_es -> p_input->stream.pp_es and clean up of
+    input_programs.c & co ;
+  * Fixed memory leaks.
+  * Moved video_decoder's headers from include/ to src/video_decoder.
+  * Temporarily removed b&w kludge.
+  * Splitted up p_method_data/p_plugin_data ; 
+  * Cleaned up input_ts.c, added it into the Makefile.
+  * Fixed various memory leaks.
+  * Removed all arbitrary limits on the number of elementary streams.
+  * Removed b_die and b_error from all decoders (obsoleted by decoder_fifo_t).
+    All decoders should now exit cleanly (if it's not the case, it should be
+    referenced as a bug).
+  * Fixed a bug which prevented the input to exit normally (non-selected
+    ES in the pp_selected_es array).
+  * Added netlist support.
+  * Added U8_Mono audio output
+  * Fixed "-a [ mpeg | ac3 | lpcm | off ]" option
+  * Only pre-parse the first 32 MB of data.
+  * Added -a, -c and -s options. (-a doesn't work but I will let the people
+    who thought it would be cleaner to put config in environment variables
+    correct what's wrong in my code).
+  * Now we only try to open plugins which are existing files
+  * Big cleanup of the PS input plugin ;
+  * Fixed a bug in AC3 initialization ;
+  * PS streams are now pre-parsed (this can take a while) if possible ;
+  * Move #define from audio_output.h to config.h
+  * Change vlan_server_ip to vishnou's ip (but vlans not working yet)
+  * GetChunk() : reads n bytes from the elementary stream and places them
+    in a big buffer (a gift for Sam).
+  * Quantic start in fullscreen fixed.
+  * Input-II now correctly handles private stream 1 (AC3, DVDSPU).
+  * Split the audio decoder into adec_generic, adec_layer1 and adec_layer2
+    (no new code added)
+  * Added SDLYUV support,
+  * Fixed the ratio/position problem in YUV,
+  * We now display CPU usage statistics for each thread.
+  * Additional fix for Layer 1 mono
+  * Indentation fixes
+  * Fixed audio syncword detection for mpeg 1 streams (hopefully)
+  * Fixed Layer 2 Mono decoding.
+  * Hardware YUV overlay (SDL) with real colors ;p It may suck for non
+    4:2:0 streams.
+  * Removed vout code found in intf file to support fullscreen switching.
+    Now only vout_SDL updates SDL data and intf only switch flags such as
+    b_reopen_display and b_fullscreen in p_vout->p_sys.
+  * Fixed a var name typo in input_programs.c which prevents vlc from
+    compiling with --enable-debug option. (i_es_pid -> i_es_id :)
+  * Autodetection of Overlay support
+  * Fixed support for broken MPEG-1 files.  
+  * Cleaned up program and ES management by using input_programs.c whenever
+    necessary.
+  * Cleaned up decoder spawning.
+  * Enhanced handling of stream discontinuities.
+  * Fixed two typos in the Makefile (sam you owe me at least one beer)
+  * Moved b_discontinuity to pgrm_descriptor_t, cleaned up CRDecode
+    (needs some more cleaning for discontinuities)
+  * Added pf_new_pes in plugins
+  * Fix in the SCR parser for high values.
+  * Fixed a bug with DVD's SCR (too close from the PTS).
+  * Generation d'un makefile presque correct pour les vieilles versions de make
+    Nettoyage: gestion des dependances pour les plugins, suppressions de pas
+    mal de redondances, options de compilations coherentes, etc...
+  * Code to manage es_descriptors and program_descriptors, from benny's
+    input_psi.c
+  * VLAN support modified.
+  * We now correctly parse MPEG-1 SCR and there is no need to kludge to read
+    the stream at the right pace.
+  * Fixed a bug in the synchro with non-P5/B1 streams.
+  * Support for MPEG-1 .mpg files.
+  * Fixed a bug in the synchro with non-P5/B1 streams.
+  * The input-II.
 
-0.1.99j:
+0.2.0
+Wed, 31 Jan 2001 04:30:37 +0100
 
+  * Version 0.2.0 pour la Linux Expo
+  * Backport of the sdl plugin (minor correction in video_output as I made
+    in unstable)
+  * Ajout des options --fullscreen et --overlay
   * Added hardware YUV overlay support (SDL). Huge performance
     increase.
+  * Fixed MPEG audio decoding for streams without b_data_alignment flags.
+  * Fixed a bug in the SPU decoder which caused a segfault.
+  * Support for 8bit soundcards.
+  * YUV support for SDL.
+  * We now open /dev/dsp in non-blocking mode.
+  * Frame dropping enhancements for very slow machines.
+  * Fixed a buffer overflow under BeOS.
+  * Miscellaneous framebuffer fixes.
+  * Miscellaneous SDL fixes.
+  * MMX Y4Gray16 colorspace transformation.
+  * Optimized grayscale mode.
+  * Fixed volume control.
+  * Splash screen.
   * Minor changes in the Debian files.
   * Fixed fps display.
   * Fixed MPEG1 video decoding. We don't read MPEG 1 PS files for the
@@ -134,8 +843,8 @@ ChangeLog for vlc
     video_decoder thread is now niced).
   * Added intf_WarnMsg(), and made use of it in the most needed places.
 
+0.1.99i
 Mon, 28 Aug 2000 02:34:18 +0200
-0.1.99i :
 
   * fixed the support for field pictures, which involved a few dozens
     bugs in the video parser and video decoder.
@@ -152,8 +861,8 @@ Mon, 28 Aug 2000 02:34:18 +0200
   * cleaned Octplane's crappy indentation.
   * fixed the --server option which didn't work if a ~/.vlcrc existed.
 
+0.1.99h
 Tue, 22 Aug 2000 01:31:58 +0200
-0.1.99h :
 
   * fixed the sound issue under beos.
   * fixed a bug that was making the crash randomly under beos.
@@ -175,8 +884,8 @@ Tue, 22 Aug 2000 01:31:58 +0200
   * added notice in debian/control about unencrypted DVDs.
   * fixed PowerPC .deb build.
  
+0.1.99g
 Wed, 16 Aug 2000 01:07:14 +0200
-0.1.99g :
 
   * removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked.
   * new --synchro flag which lets you force which images are decoded.
@@ -194,8 +903,8 @@ Wed, 16 Aug 2000 01:07:14 +0200
   * added request for ALSA support in the TODO list.
   * changed "pentiumpro" to "ppro" in the ./configure, it was misleading.
 
+0.1.99f
 Tue,  8 Aug 2000 11:24:01 +0200
-0.1.99f :
 
   * plugin detection now works
   * "gvlc", "fbvlc", "ggivlc" aliases now work
@@ -206,15 +915,15 @@ Tue,  8 Aug 2000 11:24:01 +0200
   * borrowed linuxvideo's MMX motion compensation
   * fixed an undefined symbol in the MMX YUV plugin
 
+0.1.99e
 Thu, 20 Jul 2000 15:14:06 +0200
-0.1.99e :
 
   * new bitstream syntax and slight performance increase
   * BeOS build fix
   * removed the sample code from the reference decoder
 
+0.1.99d
 Wed, 12 Jul 2000 01:24:40 +0200
-0.1.99d :
 
   * fixed RPM build
   * .deb is now more lintian-friendly
@@ -236,8 +945,8 @@ Wed, 12 Jul 2000 01:24:40 +0200
   * fixed an endianness problem which occured on iMacs
   * fixed the build for the Mandrake distribution
 
+0.1.99c
 Sun, 18 Jun 2000 18:54:48 +0200
-0.1.99c :
 
   * fixed Makefile.in for debug version
   * caught Delete Window event in Gnome and X11 modes
@@ -249,15 +958,15 @@ Sun, 18 Jun 2000 18:54:48 +0200
   * fixed a warning in ac3_exponent.c
   * automatic support for .rpm and .deb building
 
+0.1.99b
 Sat, 17 Jun 2000 03:35:02 +0200
-0.1.99b :
 
   * fixed a bug preventing to quit when run with no arguments
   * new VLAN changing code
   * created the ChangeLog file :)
 
+0.1.99a
 Thu, 15 Jun 2000 20:48:54 +0200
-0.1.99a :
 
   * first public release
 
index 8b39ee6f93fd960b7b8a5a6afc5be318ebab9a9d..0ad539ecedef9a17e23263156a9fde1ecd5f2708 100755 (executable)
--- a/configure
+++ b/configure
@@ -620,7 +620,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 
-VLC_VERSION=0.2.70
+VLC_VERSION=0.2.71
 
 VLC_CODENAME=Ourumov
 
index b59e7a7669ce0ecd95a8c009c2c5496b06cc4320..ce6f16e5ea9266f04068999dfe67ee0f50c66e68 100644 (file)
@@ -4,7 +4,7 @@ AC_CONFIG_HEADER(include/defs.h)
 
 AC_CANONICAL_HOST
 
-VLC_VERSION=0.2.70
+VLC_VERSION=0.2.71
 AC_SUBST(VLC_VERSION)
 VLC_CODENAME=Ourumov
 AC_SUBST(VLC_CODENAME)
index f176dbac2c9722649b3f14975a44a28e55426dda..80e06560681ebd78f149529eff0162c35eeb462d 100644 (file)
@@ -1,3 +1,9 @@
+vlc (0.2.71-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org>  Fri, 13 Apr 2001 08:13:26 +0200
+
 vlc (0.2.70-1) unstable; urgency=low
 
   * New upstream release.
index ca6afeac32223cc763586f48a521c4fc88ed1488..a09238a1a341686eaca87c7b190819b748b5e021 100644 (file)
@@ -1,4 +1,10 @@
-vlc (0.2.70-1) unstable; urgency=low
+vlc-css (0.2.71-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org>  Fri, 13 Apr 2001 08:13:26 +0200
+
+vlc-css (0.2.70-1) unstable; urgency=low
 
   * New upstream release.
 
index f439290e871d60dbf9e04584af077af6540964d9..4a165b45d7c3f24f6e28214b0105367707f1cff7 100755 (executable)
@@ -98,7 +98,7 @@ install: build
                debian/vlc-qt/usr/share/pixmaps/
 
        mkdir -p debian/vlc/usr/share/man/man1/
-       gzip < doc/vlc.1 >| debian/vlc/usr/share/man/man1/vlc.1.gz
+       gzip -9 < doc/vlc.1 >| debian/vlc/usr/share/man/man1/vlc.1.gz
        mkdir -p debian/vlc-gtk/usr/share/man/man1/
        ln -s vlc.1.gz debian/vlc-gtk/usr/share/man/man1/gvlc.1.gz
        mkdir -p debian/vlc-gnome/usr/share/man/man1/
index 86d2a0755a6cf5fe101c9a8a9e6ad55869bc6d53..d1816f61305e45f468d1ed99bd2b88d4eb8e690d 100644 (file)
@@ -2,7 +2,7 @@
  * vout_xvideo.c: Xvideo video output display method
  *****************************************************************************
  * Copyright (C) 1998, 1999, 2000, 2001 VideoLAN
- * $Id: vout_xvideo.c,v 1.5 2001/04/11 02:01:24 henri Exp $
+ * $Id: vout_xvideo.c,v 1.6 2001/04/13 06:20:23 sam Exp $
  *
  * Authors: Shane Harper <shanegh@optusnet.com.au>
  *          Vincent Seguin <seguin@via.ecp.fr>
@@ -71,9 +71,7 @@
  * vout_sys_t: video output X11 method descriptor
  *****************************************************************************
  * This structure is part of the video output thread descriptor.
- * It describes the X11 specific properties of an output thread. X11 video
- * output is performed through regular resizable windows. Windows can be
- * dynamically resized to adapt to the size of the streams.
+ * It describes the XVideo specific properties of an output thread.
  *****************************************************************************/
 typedef struct vout_sys_s
 {
@@ -91,16 +89,23 @@ typedef struct vout_sys_s
     int                 xv_port;
 
     /* Display buffers and shared memory information */
-    /* Note: only 1 buffer (I don't know why the X11 plugin had 2.) */
+    /* Note: only 1 buffer... Xv ext does double buffering. */
     XvImage *           p_xvimage;
+    int                 i_image_width;
+    int                 i_image_height;
+                                /* i_image_width & i_image_height reflect the
+                                 * size of the XvImage. They are used by
+                                 * vout_Display() to check if the image to be
+                                 * displayed can use the current XvImage. */
     XShmSegmentInfo     shm_info;       /* shared memory zone information */
 
     /* X11 generic properties */
     Atom                wm_protocols;
     Atom                wm_delete_window;
 
-    int                 i_width;                     /* width of main window */
-    int                 i_height;                   /* height of main window */
+    int                 i_window_width;              /* width of main window */
+    int                 i_window_height;            /* height of main window */
+
 
     /* Screen saver properties */
     int                 i_ss_timeout;                             /* timeout */
@@ -129,14 +134,17 @@ static void vout_Display   ( vout_thread_t * );
 static void vout_SetPalette( vout_thread_t *, u16 *, u16 *, u16 *, u16 * );
 
 static int  XVideoCreateWindow       ( vout_thread_t * );
-static int  XVideoCreateShmImage     ( vout_thread_t *, XvImage **,
-                                       XShmSegmentInfo *p_shm_info );
+static int  XVideoUpdateImgSizeIfRequired( vout_thread_t *p_vout );
+static int  XVideoCreateShmImage     ( Display* dpy, int xv_port,
+                                       XvImage **pp_xvimage,
+                                       XShmSegmentInfo *p_shm_info,
+                                       int i_width, int i_height );
 static void XVideoDestroyShmImage    ( vout_thread_t *, XvImage *,
                                        XShmSegmentInfo * );
 static void XVideoTogglePointer      ( vout_thread_t * );
 static void XVideoEnableScreenSaver  ( vout_thread_t * );
 static void XVideoDisableScreenSaver ( vout_thread_t * );
-static void XVideoSetAttribute       ( vout_thread_t *, char *, float );
+/*static void XVideoSetAttribute       ( vout_thread_t *, char *, float );*/
 
 static int  XVideoCheckForXv         ( Display * );
 static int  XVideoGetPort            ( Display * );
@@ -179,9 +187,9 @@ static int vout_Probe( probedata_t *p_data )
 /*****************************************************************************
  * vout_Create: allocate XVideo video thread output method
  *****************************************************************************
- * This function allocate and initialize a X11 vout method. It uses some of the
- * vout properties to choose the window size, and change them according to the
- * actual properties of the display.
+ * This function allocate and initialize a XVideo vout method. It uses some of
+ * the vout properties to choose the window size, and change them according to
+ * the actual properties of the display.
  *****************************************************************************/
 static int vout_Create( vout_thread_t *p_vout )
 {
@@ -228,10 +236,12 @@ static int vout_Create( vout_thread_t *p_vout )
     if( (p_vout->p_sys->xv_port = XVideoGetPort( p_vout->p_sys->p_display ))<0 )
         return 1;
 
+#if 0
     /* XXX The brightness and contrast values should be read from environment
      * XXX variables... */
     XVideoSetAttribute( p_vout, "XV_BRIGHTNESS", 0.5 );
     XVideoSetAttribute( p_vout, "XV_CONTRAST",   0.5 );
+#endif
 
     p_vout->p_sys->b_mouse = 1;
 
@@ -243,56 +253,24 @@ static int vout_Create( vout_thread_t *p_vout )
 
 /*****************************************************************************
  * vout_Init: initialize XVideo video thread output method
- *****************************************************************************
- * This function creates the XvImage needed by the output thread. It is called
- * at the beginning of the thread, but also each time the window is resized.
  *****************************************************************************/
 static int vout_Init( vout_thread_t *p_vout )
 {
-    int i_err;
-
 #ifdef SYS_DARWIN1_3
     /* FIXME : As of 2001-03-16, XFree4 for MacOS X does not support Xshm. */
     p_vout->p_sys->b_shm = 0;
 #endif
-
-    /* Create XvImage using XShm extension */
-    i_err = XVideoCreateShmImage( p_vout, &p_vout->p_sys->p_xvimage,
-                                  &p_vout->p_sys->shm_info );
-    if( i_err )
-    {
-        intf_Msg( "vout: XShm video extension unavailable" );
-        /* p_vout->p_sys->b_shm = 0; */
-    }
     p_vout->b_need_render = 0;
+    p_vout->p_sys->i_image_width = p_vout->p_sys->i_image_height = 0;
 
-    /* Set bytes per line and initialize buffers */
-    p_vout->i_bytes_per_line =
-        (p_vout->p_sys->p_xvimage->data_size) /
-        (p_vout->p_sys->p_xvimage->height);
-
-    /* vout_SetBuffers( p_vout, p_vout->p_sys->p_xvimage[0]->data,
-     *                          p_vout->p_sys->p_xvimage[1]->data ); */
-    p_vout->p_buffer[0].i_pic_x =         0;
-    p_vout->p_buffer[0].i_pic_y =         0;
-    p_vout->p_buffer[0].i_pic_width =     0;
-    p_vout->p_buffer[0].i_pic_height =    0;
-
-    /* The first area covers all the screen */
-    p_vout->p_buffer[0].i_areas =           1;
-    p_vout->p_buffer[0].pi_area_begin[0] =  0;
-    p_vout->p_buffer[0].pi_area_end[0] =    p_vout->i_height - 1;
-
-    /* Set addresses */
-    p_vout->p_buffer[0].p_data = p_vout->p_sys->p_xvimage->data;
     return( 0 );
 }
 
 /*****************************************************************************
  * vout_End: terminate XVideo video thread output method
  *****************************************************************************
- * Destroy the XVideo xImages created by vout_Init. It is called at the end of
- * the thread, but also each time the window is resized.
+ * Destroy the XvImage. It is called at the end of the thread, but also each
+ * time the image is resized.
  *****************************************************************************/
 static void vout_End( vout_thread_t *p_vout )
 {
@@ -334,7 +312,6 @@ static void vout_Destroy( vout_thread_t *p_vout )
 static int vout_Manage( vout_thread_t *p_vout )
 {
     XEvent      xevent;                                         /* X11 event */
-    boolean_t   b_resized;                        /* window has been resized */
     char        i_key;                                    /* ISO Latin-1 key */
     KeySym      x_key_symbol;
 
@@ -342,7 +319,6 @@ static int vout_Manage( vout_thread_t *p_vout )
      * output window's size changed, MapNotify and UnmapNotify to know if the
      * window is mapped (and if the display is useful), and ClientMessages
      * to intercept window destruction requests */
-    b_resized = 0;
     while( XCheckWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
                               StructureNotifyMask | KeyPressMask |
                               ButtonPressMask | ButtonReleaseMask | 
@@ -351,15 +327,12 @@ static int vout_Manage( vout_thread_t *p_vout )
     {
         /* ConfigureNotify event: prepare  */
         if( (xevent.type == ConfigureNotify)
-            && ((xevent.xconfigure.width != p_vout->p_sys->i_width)
-                || (xevent.xconfigure.height != p_vout->p_sys->i_height)) )
+            /*&& ((xevent.xconfigure.width != p_vout->p_sys->i_window_width)
+                || (xevent.xconfigure.height != p_vout->p_sys->i_window_height))*/ )
         {
             /* Update dimensions */
-/* XXX XXX
-            b_resized = 1;
-            p_vout->p_sys->i_width = xevent.xconfigure.width;
-            p_vout->p_sys->i_height = xevent.xconfigure.height;
-   XXX XXX */
+            p_vout->p_sys->i_window_width = xevent.xconfigure.width;
+            p_vout->p_sys->i_window_height = xevent.xconfigure.height;
         }
         /* MapNotify event: change window status and disable screen saver */
         else if( xevent.type == MapNotify)
@@ -401,7 +374,6 @@ static int vout_Manage( vout_thread_t *p_vout )
 
                     if( XLookupString( &xevent.xkey, &i_key, 1, NULL, NULL ) )
                     {
-                        /* FIXME: handle stuff here */
                         switch( i_key )
                         {
                         case 'q':
@@ -510,17 +482,6 @@ static int vout_Manage( vout_thread_t *p_vout )
         }
     }
 
-    if( (p_vout->i_width  != p_vout->p_sys->i_width) ||
-             (p_vout->i_height != p_vout->p_sys->i_height) )
-    {
-        /* If video output size has changed, change interface window size */
-        intf_DbgMsg( "resizing output window" );
-        p_vout->p_sys->i_width =    p_vout->i_width;
-        p_vout->p_sys->i_height =   p_vout->i_height;
-        XResizeWindow( p_vout->p_sys->p_display, p_vout->p_sys->window,
-                       p_vout->p_sys->i_width, p_vout->p_sys->i_height );
-    }
-
     if( (p_vout->i_changes & VOUT_GRAYSCALE_CHANGE))
     {
         /* FIXME: clear flags ?? */
@@ -533,49 +494,81 @@ static int vout_Manage( vout_thread_t *p_vout )
     {
         intf_DbgMsg( "vout: resizing window" );
         p_vout->i_changes &= ~VOUT_SIZE_CHANGE;
-
-        /* Resize window */
-        XResizeWindow( p_vout->p_sys->p_display, p_vout->p_sys->window,
-                       p_vout->i_width, p_vout->i_height );
-
-        /* Destroy XImages to change their size */
-        vout_End( p_vout );
-
-        /* Recreate XImages. If SysInit failed, the thread cannot go on. */
-        if( vout_Init( p_vout ) )
-        {
-            intf_ErrMsg( "vout error: cannot resize display" );
-            return( 1 );
-       }
-
+        /* Noting to do here...
+         * vout_Display() detects size changes of the image to be displayed and
+         * re-creates the XvImage.*/
         intf_Msg( "vout: video display resized (%dx%d)",
                   p_vout->i_width, p_vout->i_height );
     }
 
-    /* Autohide Cursour */
-    if( mdate() - p_vout->p_sys->i_lastmoved > 2000000 )
-    {
-        /* Hide the mouse automatically */
-        if( p_vout->p_sys->b_mouse )
-        {
+    /* Autohide Cursor */
+    if( p_vout->p_sys->b_mouse &&
+        mdate() - p_vout->p_sys->i_lastmoved > 2000000 )
             XVideoTogglePointer( p_vout ); 
-        }
-    }
     
     return 0;
 }
 
+/*****************************************************************************
+ * XVideoUpdateImgSizeIfRequired 
+ *****************************************************************************
+ * This function checks to see if the image to be displayed is of a different
+ * size to the last image displayed. If so, the old shm block must be
+ * destroyed and a new one created.
+ * Note: the "image size" is the size of the image to be passed to the Xv
+ * extension (which is probably different to the size of the output window).
+ *****************************************************************************/
+static int XVideoUpdateImgSizeIfRequired( vout_thread_t *p_vout )
+{
+    int i_img_width         = p_vout->p_rendered_pic->i_width;
+    int i_img_height        = p_vout->p_rendered_pic->i_height;
+
+    if( p_vout->p_sys->i_image_width != i_img_width
+            || p_vout->p_sys->i_image_height != i_img_height )
+    {
+        p_vout->p_sys->i_image_width  = i_img_width;
+        p_vout->p_sys->i_image_height = i_img_height;
+
+        /* Destroy XvImage to change its size */
+        vout_End( p_vout );
+            /* Note: vout_End does nothing if no XvImage to destroy. */
+
+        /* Create XvImage using XShm extension */
+        if( XVideoCreateShmImage( p_vout->p_sys->p_display,
+                                  p_vout->p_sys->xv_port,
+                                  &p_vout->p_sys->p_xvimage,
+                                  &p_vout->p_sys->shm_info,
+                                  i_img_width, i_img_height ) )
+        {
+            intf_Msg( "vout: failed to create xvimage." );
+            p_vout->p_sys->i_image_width = 0;
+            return( 1 );
+        }
+
+        /* Set bytes per line and initialize buffers */
+        p_vout->i_bytes_per_line =
+            (p_vout->p_sys->p_xvimage->data_size) /
+            (p_vout->p_sys->p_xvimage->height);
+
+        /* vout_SetBuffers( p_vout, p_vout->p_sys->p_xvimage->data ); */
+    }
+    return( 0 );
+}
 
 /*****************************************************************************
  * vout_Display: displays previously rendered output
  *****************************************************************************
- * This function send the currently rendered image to X11 server, wait until
- * it is displayed and switch the two rendering buffer, preparing next frame.
+ * This function sends the currently rendered image to X11 server.
+ * (The Xv extension takes care of "double-buffering".)
  *****************************************************************************/
 static void vout_Display( vout_thread_t *p_vout )
 {
     boolean_t b_draw = 1;
-    const int i_size = p_vout->i_width * p_vout->i_height;
+    int i_size = p_vout->p_rendered_pic->i_width *
+                   p_vout->p_rendered_pic->i_height;
+
+    if( XVideoUpdateImgSizeIfRequired( p_vout ) )
+        return;
 
     switch( p_vout->p_rendered_pic->i_type )
     {
@@ -601,18 +594,24 @@ static void vout_Display( vout_thread_t *p_vout )
 
     if( b_draw )
     {
-        int     i_dummy, i_src_width, i_src_height,
+        int     i_dummy,
+                i_window_width = p_vout->p_sys->i_window_width,
+                i_window_height = p_vout->p_sys->i_window_height,
                 i_dest_width, i_dest_height, i_dest_x, i_dest_y;
         Window  window;
 
-        /* Could use p_vout->p_sys->i_width and p_vout->p_sys->i_height
-         *instead of calling XGetGeometry? */
+#if 1
+        /* If I change the line above to "#if 0" I find on resizing the window
+         * that blue rectangles (used to specify where part of the YUV overlay
+         * used to be drawn) may remain around the edge of the video output. */
         XGetGeometry( p_vout->p_sys->p_display, p_vout->p_sys->window,
                       &window, &i_dummy, &i_dummy,
-                      &i_src_width, &i_src_height, &i_dummy, &i_dummy );
+                      &i_window_width, &i_window_height, &i_dummy, &i_dummy );
+#endif
 
         XVideoOutputCoords( p_vout->p_rendered_pic, p_vout->b_scale,
-                            i_src_width, i_src_height, &i_dest_x, &i_dest_y,
+                            i_window_width, i_window_height,
+                            &i_dest_x, &i_dest_y,
                             &i_dest_width, &i_dest_height);
   
         XvShmPutImage( p_vout->p_sys->p_display, p_vout->p_sys->xv_port,
@@ -674,14 +673,14 @@ static int XVideoCreateWindow( vout_thread_t *p_vout )
     boolean_t               b_map_notify;
 
     /* Set main window's size */
-    p_vout->p_sys->i_width =  main_GetIntVariable( VOUT_WIDTH_VAR,
+    p_vout->p_sys->i_window_width =  main_GetIntVariable( VOUT_WIDTH_VAR,
                                                    VOUT_WIDTH_DEFAULT );
-    p_vout->p_sys->i_height = main_GetIntVariable( VOUT_HEIGHT_VAR,
+    p_vout->p_sys->i_window_height = main_GetIntVariable( VOUT_HEIGHT_VAR,
                                                    VOUT_HEIGHT_DEFAULT );
 
     /* Prepare window manager hints and properties */
-    xsize_hints.base_width          = p_vout->p_sys->i_width;
-    xsize_hints.base_height         = p_vout->p_sys->i_height;
+    xsize_hints.base_width          = p_vout->p_sys->i_window_width;
+    xsize_hints.base_height         = p_vout->p_sys->i_window_height;
     xsize_hints.flags               = PSize;
     p_vout->p_sys->wm_protocols     = XInternAtom( p_vout->p_sys->p_display,
                                                    "WM_PROTOCOLS", True );
@@ -701,7 +700,8 @@ static int XVideoCreateWindow( vout_thread_t *p_vout )
             XCreateWindow( p_vout->p_sys->p_display,
                            DefaultRootWindow( p_vout->p_sys->p_display ),
                            0, 0,
-                           p_vout->p_sys->i_width, p_vout->p_sys->i_height, 1,
+                           p_vout->p_sys->i_window_width,
+                           p_vout->p_sys->i_window_height, 1,
                            0, InputOutput, 0,
                            CWBackingStore | CWBackPixel | CWEventMask,
                            &xwindow_attributes );
@@ -757,8 +757,8 @@ static int XVideoCreateWindow( vout_thread_t *p_vout )
                  && (xevent.xconfigure.window == p_vout->p_sys->window) )
         {
             b_configure_notify = 1;
-            p_vout->p_sys->i_width = xevent.xconfigure.width;
-            p_vout->p_sys->i_height = xevent.xconfigure.height;
+            p_vout->p_sys->i_window_width = xevent.xconfigure.width;
+            p_vout->p_sys->i_window_height = xevent.xconfigure.height;
         }
     } while( !( b_expose && b_configure_notify && b_map_notify ) );
 
@@ -780,15 +780,16 @@ static int XVideoCreateWindow( vout_thread_t *p_vout )
  * document by J.Corbet and K.Packard. Most of the parameters were copied from
  * there.
  *****************************************************************************/
-static int XVideoCreateShmImage( vout_thread_t *p_vout, XvImage **pp_xvimage,
-                                 XShmSegmentInfo *p_shm_info)
+static int XVideoCreateShmImage( Display* dpy, int xv_port,
+                                    XvImage **pp_xvimage,
+                                    XShmSegmentInfo *p_shm_info,
+                                    int i_width, int i_height )
 {
     #define GUID_YUV12_PLANAR 0x32315659
 
-    *pp_xvimage = XvShmCreateImage( p_vout->p_sys->p_display,
-                                    p_vout->p_sys->xv_port,
+    *pp_xvimage = XvShmCreateImage( dpy, xv_port,
                                     GUID_YUV12_PLANAR, 0,
-                                    p_vout->i_width, p_vout->i_height,
+                                    i_width, i_height,
                                     p_shm_info );
 
     p_shm_info->shmid    = shmget( IPC_PRIVATE, (*pp_xvimage)->data_size,
@@ -799,7 +800,7 @@ static int XVideoCreateShmImage( vout_thread_t *p_vout, XvImage **pp_xvimage,
 
     shmctl( p_shm_info->shmid, IPC_RMID, 0 ); /* XXX */
 
-    if( !XShmAttach(p_vout->p_sys->p_display, p_shm_info) )
+    if( !XShmAttach( dpy, p_shm_info ) )
     {
         intf_ErrMsg( "vout error: XShmAttach failed" );
         return( -1 );
@@ -807,7 +808,7 @@ static int XVideoCreateShmImage( vout_thread_t *p_vout, XvImage **pp_xvimage,
 
     /* Send image to X server. This instruction is required, since having
      * built a Shm XImage and not using it causes an error on XCloseDisplay */
-    XFlush( p_vout->p_sys->p_display );
+    XFlush( dpy );
 
     return( 0 );
 }
@@ -830,9 +831,7 @@ static void XVideoDestroyShmImage( vout_thread_t *p_vout, XvImage *p_xvimage,
 
     XShmDetach( p_vout->p_sys->p_display, p_shm_info );/* detach from server */
 #if 0
-    XDestroyImage( p_ximage );
-#else
-/*    XvDestroyImage( p_xvimage ); XXX */
+    XDestroyImage( p_ximage ); /* XXX */
 #endif
 
     if( shmdt( p_shm_info->shmaddr ) )  /* detach shared memory from process */
@@ -1008,6 +1007,7 @@ static int XVideoGetPort( Display *dpy )
 }
 
 
+#if 0
 /*****************************************************************************
  * XVideoSetAttribute
  *****************************************************************************
@@ -1028,7 +1028,7 @@ static void XVideoSetAttribute( vout_thread_t *p_vout,
     {
         i_attrib--;
 
-        if( !strcmp( p_attrib[ i_attrib ].name, attr_name ) )
+        if( i_attrib >= 0 && !strcmp( p_attrib[ i_attrib ].name, attr_name ) )
         {
             int i_sv = f_value * ( p_attrib[ i_attrib ].max_value
                                     - p_attrib[ i_attrib ].min_value + 1 )
@@ -1041,4 +1041,4 @@ static void XVideoSetAttribute( vout_thread_t *p_vout,
 
     } while( i_attrib > 0 );
 }
-
+#endif
index d69c88c68e95c5167657d338eea1dfe39faca49d..a50a5c13b745d63dd0efaa1a455a848ec6a1ff31 100644 (file)
--- a/vlc.spec
+++ b/vlc.spec
@@ -1,16 +1,19 @@
 Name: vlc
-Version: 0.2.70
+Version: 0.2.71
 Release: 1
 Copyright: GPL
 Url: http://www.videolan.org/
 Group: X11/Applications/Graphics
-Source0: http://www.videolan.org/packages/0.2.70/vlc-0.2.70.tar.gz
+Source0: http://www.videolan.org/packages/0.2.71/vlc-0.2.71.tar.gz
 Packager: Samuel Hocevar <sam@zoy.org>
 
 Buildroot: /tmp/vlc-build
 Summary: VideoLAN Client.
 
 %changelog
+* Fri Apr 13 2001 Samuel Hocevar <sam@zoy.org>
+New upstream release (0.2.71)
+
 * Sun Apr 8 2001 Christophe Massiot <massiot@via.ecp.fr>
 New upstream release (0.2.70)