Commit graph

163 commits

Author SHA1 Message Date
Wim Taymans
1bb09c4352 ext/alsa/: Use alsa trigger_tstamp to get the timestamp of the first sample in the buffer for more precise sync. Some...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_start), (gst_alsa_xrun_recovery):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
(gst_alsa_src_update_avail), (gst_alsa_src_loop):
Use alsa trigger_tstamp to get the timestamp of the first
sample in the buffer for more precise sync. Some cleanups.
2004-06-24 12:53:17 +00:00
Wim Taymans
e56c174f8d ext/alsa/: Add clock to alsasrc. Take new capture timestamp when restarting after an overrun. Split up some functions...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start),
(gst_alsa_xrun_recovery):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event),
(gst_alsa_sink_loop), (gst_alsa_sink_get_time):
* ext/alsa/gstalsasrc.c: (gst_alsa_src_init),
(gst_alsa_src_get_time), (gst_alsa_src_update_avail),
(gst_alsa_src_loop):
Add clock to alsasrc. Take new capture timestamp when
restarting after an overrun. Split up some functions between
alsasrc ans alsasink.
2004-06-23 18:08:26 +00:00
Thomas Vander Stichele
96c2a15318 merge back from release
Original commit message from CVS:
merge back from release
2004-06-23 16:57:16 +00:00
Wim Taymans
148c90439a ext/alsa/: Cleanups, take queued samples into account when reporting the time.
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_get_time), (gst_alsa_clock_update),
(gst_alsa_change_state), (gst_alsa_update_avail),
(gst_alsa_xrun_recovery):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
Cleanups, take queued samples into account when reporting
the time.
2004-06-22 12:01:33 +00:00
Wim Taymans
a48818210d ext/alsa/: Make the xrun code timestamp and offset the buffers correctly. moved the clock to the base class, use alsa...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose),
(gst_alsa_get_time), (gst_alsa_xrun_recovery):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type):
* ext/alsa/gstalsasrc.c: (gst_alsa_src_init), (gst_alsa_src_loop),
(gst_alsa_src_change_state):
* ext/alsa/gstalsasrc.h:
Make the xrun code timestamp and offset the buffers correctly.
moved the clock to the base class, use alsa methods to get time.
Do correct timestamping on outgoing buffers.
2004-06-17 14:10:21 +00:00
Christophe Fergeau
0c022b2b33 ext/alsa/gstalsa.c: Use snd_pcm_hw_params_set_rate _near instead of snd_pcm_hw_params_set_rate since the latter fail...
Original commit message from CVS:
2004-06-14  Benjamin Otte  <otte@gnome.org>

* ext/alsa/gstalsa.c: Use snd_pcm_hw_params_set_rate _near instead of
snd_pcm_hw_params_set_rate  since the latter fails for no good
reason on some setups.<
2004-06-14 20:30:36 +00:00
Thomas Vander Stichele
0bf06aa33b better debug
Original commit message from CVS:
better debug
2004-06-11 16:53:26 +00:00
Benjamin Otte
851ad864d0 ext/alsa/gstalsa.c: handle min <= max correctly
Original commit message from CVS:
* ext/alsa/gstalsa.c: (add_channels):
handle min <= max correctly
* ext/alsa/gstalsa.c: (gst_alsa_fixate_to_mimetype),
(gst_alsa_fixate_field_nearest_int), (gst_alsa_fixate):
add fixation functions so we fixate correctly. No preferring of alaw
anymore because it's the first structure.
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsa.c: (gst_alsa_sw_params_dump),
(gst_alsa_hw_params_dump):
add functions to ease debugging in alsalib
* ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params),
(gst_alsa_set_hw_params), (gst_alsa_set_sw_params),
(gst_alsa_start_audio):
only specify hw params if we really setup a format (fixes #134007 -
or at least works around it)
2004-06-09 17:06:40 +00:00
Benjamin Otte
278e55e65c ext/alsa/gstalsasink.c: handle discont events if they happen before caps nego
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
handle discont events if they happen before caps nego
2004-06-07 20:44:55 +00:00
Benjamin Otte
b0d718fcc3 ext/alsa/gstalsa.c: cast to GstClockTime to get higher granularity
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_samples_to_timestamp):
cast to GstClockTime to get higher granularity
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
use gst_element_set_time_delay to get the exact time
* ext/mad/gstmad.c: (gst_mad_chain):
use the negotiated rate instead of the current frame's rate which
might be wrong because of bit errors. This avoids emitting totally
bogus timestamps and screwing sync.
(fixes #143454)
2004-06-07 01:41:37 +00:00
Benjamin Otte
f157024ae8 ext/alsa/gstalsa.c: - don't call set_periods_integer anymore, it breaks the configuration randomly
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params),
(gst_alsa_set_hw_params), (gst_alsa_set_sw_params),
(gst_alsa_start_audio):
- don't call set_periods_integer anymore, it breaks the
configuration randomly
- call snd_pcm_hw_params_set_access directly instead of using masks
- don't fail if the sw_params can't be set, just use the default
params and hope it works. Alsalib has weird issues when you touch
sw_params and does no proper error reporting about what failed.
* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
(gst_alsa_close_audio):
make our alsa debugging go via gst debugging and not conditionally
defined
* ext/alsa/gstalsa.h:
add ALSA_DEBUG_FLUSH macro
* ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper),
(plugin_init):
wrap alsa errors to be printed via the gst debugging system and not
spammed to stderr
2004-06-06 17:26:54 +00:00
Thomas Vander Stichele
0c922cc90d check error code correctly
Original commit message from CVS:
check error code correctly
2004-06-02 17:20:13 +00:00
Thomas Vander Stichele
571a5cd7a6 use ssize_t over size_t avoid segfault in alsa
Original commit message from CVS:

use ssize_t over size_t
avoid segfault in alsa
2004-06-02 16:50:50 +00:00
Thomas Vander Stichele
4c039c6dc7 improve _open error messages
Original commit message from CVS:
improve _open error messages
2004-06-01 15:14:09 +00:00
Ronald S. Bultje
9f076da7e6 ext/alsa/gstalsamixer.c: Select first track as master track. Not sure how else to handle that...
Original commit message from CVS:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
Select first track as master track. Not sure how else to handle
that...
* ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer):
Discard discont events. Should fix #142962.
2004-05-27 12:15:04 +00:00
Ronald S. Bultje
8f88f9280d ext/alsa/: Add enumerations (as GstMixerOptions). Make correct distinction between input/output tracks. Add capture/p...
Original commit message from CVS:
* ext/alsa/Makefile.am:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init),
(gst_alsa_mixer_build_list), (gst_alsa_mixer_get_volume),
(gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute),
(gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option),
(gst_alsa_mixer_get_option):
* ext/alsa/gstalsamixer.h:
* ext/alsa/gstalsamixeroptions.c:
(gst_alsa_mixer_options_get_type),
(gst_alsa_mixer_options_class_init), (gst_alsa_mixer_options_init),
(gst_alsa_mixer_options_new):
* ext/alsa/gstalsamixeroptions.h:
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
* ext/alsa/gstalsamixertrack.h:
Add enumerations (as GstMixerOptions). Make correct distinction
between input/output tracks. Add capture/playback private flag.
Use flag to decide on whether to set capture or playback volumes
or switches. Use playback and record switches.
* gst-libs/gst/mixer/Makefile.am:
* gst-libs/gst/mixer/mixer-marshal.list:
* gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init),
(gst_mixer_set_option), (gst_mixer_get_option),
(gst_mixer_mute_toggled), (gst_mixer_record_toggled),
(gst_mixer_volume_changed), (gst_mixer_option_changed):
* gst-libs/gst/mixer/mixer.h:
* gst-libs/gst/mixer/mixeroptions.c: (gst_mixer_options_get_type),
(gst_mixer_options_class_init), (gst_mixer_options_init),
(gst_mixer_options_dispose):
* gst-libs/gst/mixer/mixeroptions.h:
Add GstMixerOptions.
* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
Rename Audio Mixer to OSS Mixer (similar to Alsa Mixer). Fix
broken device detection on computers with multiple OSS sound
cards.
2004-05-27 03:36:17 +00:00
Stéphane Loeuillet
f335187a9e second batch : remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc (in ...
Original commit message from CVS:
second batch :
remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc
(in gst-plugins/ext/ this time)
2004-05-21 23:28:57 +00:00
Benjamin Otte
2dec34c12a I suck
Original commit message from CVS:
I suck
2004-05-16 23:33:40 +00:00
Benjamin Otte
f9c5d22fbe ext/alsa/gstalsasink.c: use correct variable when determining amount of data to skip so we don't skip into the void a...
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
use correct variable when determining amount of data to skip so we
don't skip into the void and segfault
2004-05-16 23:30:00 +00:00
Ronald S. Bultje
35aff63385 ext/alsa/gstalsamixer.c: Fix for cases where we fail to attach to a mixer.
Original commit message from CVS:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open),
(gst_alsa_mixer_close), (gst_alsa_mixer_supported),
(gst_alsa_mixer_build_list), (gst_alsa_mixer_free_list),
(gst_alsa_mixer_change_state), (gst_alsa_mixer_list_tracks),
(gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume),
(gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record):
Fix for cases where we fail to attach to a mixer.
2004-05-16 20:46:12 +00:00
Benjamin Otte
534c0cbca6 ext/alsa/gstalsa.c: simplify caps
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_caps), (gst_alsa_get_caps):
simplify caps
2004-05-16 16:41:15 +00:00
Benjamin Otte
fe680690c1 ext/alsa/gstalsasink.c: compute correct expected timestamps after seek (broken since last commit)
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
compute correct expected timestamps after seek (broken since
last commit)
* ext/gdk_pixbuf/pixbufscale.c: (pixbufscale_init):
rename element and debugging category to gdkpixbufscale
2004-05-16 16:06:42 +00:00
Benjamin Otte
e4e511cc39 ext/alsa/gstalsasink.c: add error checking to snd_pcm_delay and remove duplicate call to snd_pcm_delay that caused is...
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
add error checking to snd_pcm_delay and remove duplicate call to
snd_pcm_delay that caused issues (see inline code comments)
* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time):
make more readable and fix return value when snd_pcm_delay fails
2004-05-16 02:51:29 +00:00
Benjamin Otte
f1479afe49 ext/alsa/gstalsasrc.c: don't use a fixed buffer size when writing variable length data to it. Fixes memory corruption...
Original commit message from CVS:
* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
don't use a fixed buffer size when writing variable length data to
it. Fixes memory corruption and makes alsasrc work
2004-05-09 17:25:16 +00:00
Ronald S. Bultje
94d9342dc9 ext/alsa/: Fix alsa oddness in mixer after the combination of using mixer in source/sink elements and using hw:x,y in...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (device_list),
(gst_alsa_class_probe_devices):
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open):
Fix alsa oddness in mixer after the combination of using mixer
in source/sink elements and using hw:x,y instead of just hw:x.
2004-05-09 00:30:06 +00:00
Benjamin Otte
12ca207b30 ext/alsa/gstalsasink.c: allow discont events before caps nego
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
allow discont events before caps nego
2004-05-09 00:02:26 +00:00
Ronald S. Bultje
7fa3cd3b18 ext/alsa/: Make alsasink/src a subclass of alsamixer so that mixer stuff shows up in gst-rec. Needs some finetuning.
Original commit message from CVS:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list):
* ext/alsa/gstalsasink.c: (gst_alsa_sink_get_type),
(gst_alsa_sink_class_init):
* ext/alsa/gstalsasink.h:
* ext/alsa/gstalsasrc.c: (gst_alsa_src_get_type),
(gst_alsa_src_class_init):
* ext/alsa/gstalsasrc.h:
Make alsasink/src a subclass of alsamixer so that mixer stuff
shows up in gst-rec. Needs some finetuning.
2004-05-07 04:56:56 +00:00
Colin Walters
d0d062e9ae plug a memleak
Original commit message from CVS:
plug a memleak
2004-04-30 20:57:48 +00:00
Stéphane Loeuillet
a8192d32b3 change alsa pcm device discovery to find more than 1 device per card.
Original commit message from CVS:
change alsa pcm device discovery to find more than 1 device per card.
code review by Ronald.
2004-04-30 01:20:54 +00:00
Ronald S. Bultje
df0008971f ext/alsa/gstalsa.c: Don't probe for playback device if we're a source element. Fixes #139658.
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):
Don't probe for playback device if we're a source element. Fixes
#139658.
2004-04-29 00:40:14 +00:00
Benjamin Otte
f49d8faa28 ext/alsa/gstalsa.c: handle case better where a soundcard can't pause
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_change_state),
(gst_alsa_close_audio):
handle case better where a soundcard can't pause
* ext/ogg/gstoggdemux.c:
don't crash when we get events but don't have pads yet
2004-04-01 16:34:14 +00:00
David Schleef
8f34965681 ext/alsa/gstalsa.c: Don't fixate fields that aren't in the caps.
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_fixate): Don't fixate fields that
aren't in the caps.
* gst/sine/gstsinesrc.c: change rate caps to [1,MAX]
* gst/videocrop/gstvideocrop.c: (plugin_init): Change rank to NONE.
2004-03-30 06:51:31 +00:00
Benjamin Otte
4ae33d8a98 add experimental kiosrc plugin
Original commit message from CVS:
* configure.ac:
* ext/Makefile.am:
* ext/kio/Makefile.am:
* ext/kio/kioreceiver.cpp:
* ext/kio/kioreceiver.h:
* ext/kio/kiosrc.cpp:
* ext/kio/kiosrc.h:
add experimental kiosrc plugin
* ext/alsa/gstalsaplugin.c: (plugin_init):
initialize debugging category only when we're sure registering the
plugins worked.
2004-03-30 02:53:00 +00:00
Benjamin Otte
cb6dd8dbed ext/alsa/gstalsa.*: debugging output fixes
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
(gst_alsa_probe_hw_params):
* ext/alsa/gstalsa.h:
debugging output fixes
2004-03-24 18:48:55 +00:00
Ronald S. Bultje
41182271ed ext/alsa/gstalsa.h: Remove unused entry.
Original commit message from CVS:
* ext/alsa/gstalsa.h:
Remove unused entry.
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
Add cinepak.
* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
(gst_videodrop_link), (gst_videodrop_chain):
Fix, sort of. Was horribly broken with new capsnego. Bah...
2004-03-24 02:12:30 +00:00
Thomas Vander Stichele
f83cb187de don't mix tabs and spaces
Original commit message from CVS:
don't mix tabs and spaces
2004-03-15 19:32:28 +00:00
Johan Dahlin
1d7bcc7a73 Re-add cardname
Original commit message from CVS:
Re-add cardname
2004-03-15 16:34:26 +00:00
Johan Dahlin
bf07c7cc9b *.h: Revert indenting
Original commit message from CVS:
* *.h: Revert indenting
2004-03-15 16:32:55 +00:00
Thomas Vander Stichele
2622996a82 bad bad ronald, here's the struct member
Original commit message from CVS:
bad bad ronald, here's the struct member
2004-03-15 10:52:49 +00:00
Ronald S. Bultje
e291418a8a ext/alsa/: Don't open the device if we're a mixer (= padless).
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_get_property),
(gst_alsa_open_audio), (gst_alsa_close_audio):
* ext/alsa/gstalsa.c:
Don't open the device if we're a mixer (= padless).
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_class_init),
(gst_alsa_mixer_init), (gst_alsa_mixer_open),
(gst_alsa_mixer_close), (gst_alsa_mixer_change_state):
Open mixer during state change rather than during object
initialization. Also, get a device name. Currently in a somewhat
hackish fashion, but I didn't really find something better.
2004-03-15 06:34:44 +00:00
Thomas Vander Stichele
4df3f18839 gst-indent
Original commit message from CVS:
gst-indent
2004-03-14 22:34:34 +00:00
Jan Schmidt
578c7544fc Only close the device on probe if it succeeded in opening it.
Original commit message from CVS:
Only close the device on probe if it succeeded in opening it.
2004-03-13 06:47:25 +00:00
Ronald S. Bultje
7b7b337d12 ext/alsa/: Fix ancient leftovers... MixerTrack is a GObject.
Original commit message from CVS:
* ext/alsa/gstalsamixer.c: (gst_alsa_mixer_free_list):
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_class_init),
(gst_alsa_mixer_track_new):
* ext/alsa/gstalsamixertrack.h:
Fix ancient leftovers... MixerTrack is a GObject.
2004-03-13 05:52:26 +00:00
Ronald S. Bultje
f71358e5bd Don't block during probing...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices):
* sys/oss/gstosselement.c: (gst_osselement_class_probe_devices):
Don't block during probing...
2004-03-13 05:38:13 +00:00
Ronald S. Bultje
1be2b9f2bd Remove debug
Original commit message from CVS:
Remove debug
2004-03-13 04:52:26 +00:00
Ronald S. Bultje
23d142d276 ext/alsa/gstalsa.*: Add propertyprobe interface implementation, add some device-name property, all this so that it lo...
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_get_type), (gst_alsa_class_init),
(gst_alsa_get_property), (gst_alsa_probe_get_properties),
(gst_alsa_class_probe_devices), (gst_alsa_class_list_devices),
(gst_alsa_probe_probe_property), (gst_alsa_probe_needs_probe),
(gst_alsa_probe_get_values), (gst_alsa_probe_interface_init),
(gst_alsa_open_audio), (gst_alsa_close_audio):
* ext/alsa/gstalsa.h:
Add propertyprobe interface implementation, add some device-name
property, all this so that it looks good in gnome-volume-control.
2004-03-13 04:44:50 +00:00
David Schleef
ad83c4a0d5 ext/alsa/gstalsa.c: Add fixate function. (bug #135719)
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_request_new_pad),
(gst_alsa_fixate): Add fixate function.  (bug #135719)
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsasink.c: (gst_alsa_sink_init):
2004-03-09 21:29:56 +00:00
Julien Moutte
614d7e3d7d ext/alsa/gstalsa.c: Alsa should trigger an error if it failed opening the audio device.
Original commit message from CVS:
2004-02-16  Julien MOUTTE <julien@moutte.net>

* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
(gst_alsa_timestamp_to_bytes): Alsa should trigger an error if it
failed opening the audio device.
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
(gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put),
(gst_ximagesink_xwindow_new), (gst_ximagesink_xwindow_destroy),
(gst_ximagesink_xwindow_resize), (gst_ximagesink_xwindow_clear),
(gst_ximagesink_renegotiate_size), (gst_ximagesink_handle_xevents),
(gst_ximagesink_xcontext_get), (gst_ximagesink_xcontext_clear),
(gst_ximagesink_change_state), (gst_ximagesink_chain),
(gst_ximagesink_set_xwindow_id): Clearing window in READY TO PAUSED.
Removing some useless g_return_if_fail like wingo suggested.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_xvimage_destroy), (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_xwindow_new), (gst_xvimagesink_xwindow_destroy),
(gst_xvimagesink_xwindow_resize), (gst_xvimagesink_xwindow_clear),
(gst_xvimagesink_update_colorbalance),
(gst_xvimagesink_handle_xevents), (gst_xvimagesink_xcontext_get),
(gst_xvimagesink_xcontext_clear),
(gst_xvimagesink_get_fourcc_from_caps),
(gst_xvimagesink_change_state), (gst_xvimagesink_chain),
(gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_colorbalance_list_channels),
(gst_xvimagesink_colorbalance_set_value),
(gst_xvimagesink_colorbalance_get_value): Clearing window in READY TO
PAUSED. Removing some useless g_return_if_fail like wingo suggested.
2004-02-16 16:24:51 +00:00
Benjamin Otte
73a071b77a ext/alsa/gstalsa.*: try xrun recovery when wait failed. Make xrun recovery function return TRUE/FALSE to indicate suc...
Original commit message from CVS:
2004-02-14  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* ext/alsa/gstalsa.c: (gst_alsa_pcm_wait),
(gst_alsa_xrun_recovery):
* ext/alsa/gstalsa.h:
try xrun recovery when wait failed. Make xrun recovery function
return TRUE/FALSE to indicate success. (might fix #134354)
2004-02-14 09:06:06 +00:00
David Schleef
909cd2b667 try getting it right yet again
Original commit message from CVS:
try getting it right yet again
2004-02-11 23:06:48 +00:00