Commit graph

2676 commits

Author SHA1 Message Date
Tim-Philipp Müller
7735292ec2 gst/matroska/matroska-mux.c: The "signed" field in audio caps is of boolean type, trying to use gst_structure_get_int...
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_audio_pad_setcaps):
The "signed" field in audio caps is of boolean type, trying to use
gst_structure_get_int() to extract it will fail. Fixing this makes
matroskamux accept raw audio input (#387121) (use at your own risk
though, due to the matroska spec being not entirely useful in this
respect).
Also fix up raw audio structures in template caps so that they
represent what our setcaps function will actually accept, so that
converters know what to convert to.
Finally, don't fail if there isn't an "endianness" field in 8-bit
PCM caps.
2006-12-24 11:24:59 +00:00
Stefan Kost
351399aef6 tests/check/elements/: reapply consistent pad (de)activation
Original commit message from CVS:
* tests/check/elements/audiopanorama.c: (cleanup_panorama):
* tests/check/elements/avimux.c: (setup_avimux), (cleanup_avimux):
* tests/check/elements/cmmldec.c: (setup_cmmldec),
(teardown_cmmldec):
* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
(teardown_cmmlenc):
* tests/check/elements/level.c: (setup_level), (cleanup_level):
reapply consistent pad (de)activation
2006-12-22 10:15:23 +00:00
Jan Schmidt
3234460376 configure.ac: Back to CVS
Original commit message from CVS:
* configure.ac:
Back to CVS
* gst-plugins-good.doap:
Add 0.10.5 doap entry
2006-12-21 17:03:39 +00:00
Jan Schmidt
f19ab77fd8 configure.ac: releasing 0.10.5, "The Path of Thorns"
Original commit message from CVS:
=== release 0.10.5 ===

2006-12-21  Jan Schmidt <thaytan@mad.scientist.com>

* configure.ac:
releasing 0.10.5, "The Path of Thorns"
2006-12-21 15:40:55 +00:00
Stefan Kost
72200b5b24 tests/check/elements/: revert my freeze breakage
Original commit message from CVS:
* tests/check/elements/audiopanorama.c: (cleanup_panorama):
* tests/check/elements/avimux.c: (setup_avimux), (cleanup_avimux):
* tests/check/elements/cmmldec.c: (setup_cmmldec),
(teardown_cmmldec):
* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
(teardown_cmmlenc):
* tests/check/elements/level.c: (setup_level), (cleanup_level):
revert my freeze breakage
2006-12-21 12:48:32 +00:00
Stefan Kost
4b7d466ad9 tests/check/elements/: consistent pad (de)activation
Original commit message from CVS:
* tests/check/elements/audiopanorama.c: (cleanup_panorama):
* tests/check/elements/avimux.c: (setup_avimux), (cleanup_avimux):
* tests/check/elements/cmmldec.c: (setup_cmmldec),
(teardown_cmmldec):
* tests/check/elements/cmmlenc.c: (setup_cmmlenc),
(teardown_cmmlenc):
* tests/check/elements/level.c: (setup_level), (cleanup_level):
consistent pad (de)activation
2006-12-21 08:15:23 +00:00
Jan Schmidt
0cd3a072c1 Disable LADPSA, as it has moved to the -bad module for the duration.
Original commit message from CVS:
* configure.ac:
* ext/Makefile.am:
Disable LADPSA, as it has moved to the -bad module for the duration.
2006-12-18 16:46:17 +00:00
Wim Taymans
3abb0f8d67 ext/ladspa/gstsignalprocessor.c: Reset flow_state back to _OK after a flush stop so that we exit our error state afte...
Original commit message from CVS:
* ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps),
(gst_signal_processor_event):
Reset flow_state back to _OK after a flush stop so that we exit our
error state after the flush. Fixes #374213
2006-12-18 15:51:54 +00:00
Jan Schmidt
5c63981e41 ChangeLog surgery on one of Stefan's commits from August:
Original commit message from CVS:
ChangeLog surgery on one of Stefan's commits from August:

* ext/Makefile.am:
Quietly (accidentally) enable LADSPA for building by default,
despite the fact that it doesn't meet the plugin checklist.
-- Added by Jan Schmidt 18 Dec 2006
2006-12-18 15:49:08 +00:00
David Schleef
be93655578 sys/osxvideo/osxvideosink.*: Decent effort at porting to 0.10. Needs cleanup on OS/X.
Original commit message from CVS:
* sys/osxvideo/osxvideosink.h:
* sys/osxvideo/osxvideosink.m:
Decent effort at porting to 0.10.  Needs cleanup on OS/X.
2006-12-17 06:11:39 +00:00
Vijay Santhanam
aae6bd4e95 sys/osxvideo/: Preliminary patch for porting osxvideosink
Original commit message from CVS:
Patch by: Vijay Santhanam <vijay santhanam gmail com>
* sys/osxvideo/Makefile.am:
* sys/osxvideo/osxvideosink.h:
* sys/osxvideo/osxvideosink.m:
Preliminary patch for porting osxvideosink
2006-12-17 05:07:07 +00:00
Sjoerd Simons
e2f1b66fb2 gst/videomixer/videomixer.c: Introduce some locking around the videomixer state so that it does not crash when adding...
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* gst/videomixer/videomixer.c: (gst_videomixer_pad_set_property),
(gst_videomixer_set_master_geometry),
(gst_videomixer_pad_sink_setcaps), (gst_videomixer_collect_free),
(gst_videomixer_reset), (gst_videomixer_init),
(gst_videomixer_finalize), (gst_videomixer_request_new_pad),
(gst_videomixer_release_pad), (gst_videomixer_collected),
(gst_videomixer_change_state):
Introduce some locking around the videomixer state so that it does not
crash when adding/removing pads. Fixes #383043.
2006-12-16 16:21:26 +00:00
Tim-Philipp Müller
ad5dfb5739 configure.ac: Make sure libcaca can actually be used instead of just checking for /usr/bin/caca-config, so we don't w...
Original commit message from CVS:
* configure.ac:
Make sure libcaca can actually be used instead of just checking for
/usr/bin/caca-config, so we don't wrongly try to build cacasink when
cross-compiling (fixes #384587).
2006-12-16 11:42:56 +00:00
Thomas Vander Stichele
a5fa8eaf4d adding doap file
Original commit message from CVS:
* Makefile.am:
* gst-plugins-good.doap:
* gst-plugins-good.spec.in:
adding doap file
2006-12-15 10:54:28 +00:00
Tim-Philipp Müller
32394b3c96 configure.ac: libflac-1.1.3 changed API again, but we can't build against it yet, so make sure our check doesn't use ...
Original commit message from CVS:
* configure.ac:
libflac-1.1.3 changed API again, but we can't build against it yet,
so make sure our check doesn't use libflac-1.1.3 and add a comment
to this effect.
2006-12-14 16:20:15 +00:00
Tim-Philipp Müller
59c1122481 gst/effectv/gstquark.c: Add some NULL pointer checks (possibly related to #385623).
Original commit message from CVS:
* gst/effectv/gstquark.c: (gst_quarktv_transform),
(gst_quarktv_planetable_clear):
Add some NULL pointer checks (possibly related to #385623).
2006-12-14 14:25:17 +00:00
Tim-Philipp Müller
173ee367e4 gst/: In streaming mode, if the first buffer we get doesn't have an offset, fix it up to be 0, otherwise trimming won...
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain_parse_tag),
(gst_tag_demux_chain):
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
In streaming mode, if the first buffer we get doesn't have an
offset, fix it up to be 0, otherwise trimming won't work later on
and we'll be typefinding application/x-id3, which may result in
decodebin plugging an endless number of id3demux elements as a
consequence. Fixes #385031.
2006-12-12 18:45:58 +00:00
Jan Schmidt
b61aef839f sys/sunaudio/gstsunaudiosink.c: Ignore the buffer_time the sound device reports. Turns out it is sometimes completely...
Original commit message from CVS:
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_prepare):
Ignore the buffer_time the sound device reports. Turns out it is
sometimes completely bogus and we're better off without it.
2006-12-11 21:21:16 +00:00
Tim-Philipp Müller
0d3b023699 gst/matroska/: Try harder to extract the framerate for video tracks correctly and save it directly instead of convert...
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_video_caps):
* gst/matroska/matroska-ids.c:
(gst_matroska_track_init_video_context):
* gst/matroska/matroska-ids.h:
Try harder to extract the framerate for video tracks correctly and
save it directly instead of converting it back and forth a few
times. Mostly makes a difference for very small framerates (<1).
Fixes #380199.
2006-12-11 13:59:33 +00:00
Tim-Philipp Müller
2f992c783e ext/gconf/gstgconfaudiosrc.*: Remove gconf notify hook when the gconfaudiosrc element is destroyed, otherwise the cal...
Original commit message from CVS:
* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_init),
(gst_gconf_audio_src_dispose), (do_toggle_element):
* ext/gconf/gstgconfaudiosrc.h:
Remove gconf notify hook when the gconfaudiosrc element is
destroyed, otherwise the callback may be called on an
already-destroyed instance and bad things happen. Should fix
#378184.
Also ignore gconf key changes when the source is already running.
2006-12-11 11:41:18 +00:00
Sebastian Dröge
14999998d4 gst/apetag/gstapedemux.c: We need to be able to read and parse any possible floating point string format ("1,234" or ...
Original commit message from CVS:
Patch by: Sebastian Dröge  <mail at slomosnail de>
* gst/apetag/gstapedemux.c: (ape_demux_parse_tags):
We need to be able to read and parse any possible floating point string
format ("1,234" or "1.234") irrespective of the current locale. g_strod()
will parse the former only in certain locales though, so we really need
to canonicalise the separator to '.' and then use g_ascii_strtod() to
make sure we can parse either version at all times.
Fixes #382982 for real.
2006-12-09 19:27:28 +00:00
Jan Schmidt
6e9ee0d19a sys/sunaudio/: Use the sunaudio debug category.
Original commit message from CVS:
* sys/sunaudio/gstsunaudiomixerctrl.c:
* sys/sunaudio/gstsunaudiosrc.c:
Use the sunaudio debug category.
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_finalize),
(gst_sunaudiosink_class_init), (gst_sunaudiosink_init),
(gst_sunaudiosink_set_property), (gst_sunaudiosink_get_property),
(gst_sunaudiosink_open), (gst_sunaudiosink_close),
(gst_sunaudiosink_prepare), (gst_sunaudio_sink_do_delay),
(gst_sunaudiosink_write), (gst_sunaudiosink_delay),
(gst_sunaudiosink_reset):
* sys/sunaudio/gstsunaudiosink.h:
Uses the sunaudio debug category for all debug output
Implements the _delay() callback to synchronise video playback better
Change the segtotal and segsize values back to the parent class
defaults (taken from buffer_time and latency_times of 200ms and 10ms
respectively)
Measure the samples written to the device vs. played.
Keep track of segments in the device by writing empty eof frames, and
sleep using a GCond when we get too far ahead and risk overrunning the
sink's ringbuffer.
Fixes: #360673
2006-12-09 16:17:33 +00:00
Jan Schmidt
f3bdb64971 Correct the attribution of the previous commit. The patch in question was written by Brian Cameron.
Original commit message from CVS:
Correct the attribution of the previous commit. The patch in
question was written by Brian Cameron.
2006-12-08 21:12:47 +00:00
Sebastian Dröge
6a016876c8 gst/audiofx/audiopanorama.*: Fix audiopanorame with float samples. Fixes #383726.
Original commit message from CVS:
Patch by: Sebastian Dröge  <mail at slomosnail de >
* gst/audiofx/audiopanorama.c: (gst_audio_panorama_init),
(gst_audio_panorama_set_caps), (gst_audio_panorama_transform):
* gst/audiofx/audiopanorama.h:
Fix audiopanorame with float samples. Fixes #383726.
2006-12-08 16:38:18 +00:00
Padraig O'Briain
a3b5d523d8 sys/sunaudio/: Implement reset functions to unblock the src/sink more quickly on state change requests.
Original commit message from CVS:
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_reset):
* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open),
(gst_sunaudiosrc_reset):
Implement reset functions to unblock the src/sink more quickly on
state change requests.
Patch by: Padraig O'Briain <padraig dot obriain at sun dot com>
2006-12-08 15:12:01 +00:00
Jerry Tan
f3df7a85e4 sys/sunaudio/gstsunaudiomixer.c: Construct the correct mixer device name when the AUDIODEV env var is set.
Original commit message from CVS:
* sys/sunaudio/gstsunaudiomixer.c:
(gst_sunaudiomixer_change_state):
Construct the correct mixer device name when the AUDIODEV env var
is set.
Patch by: Jerry Tan <jerry.tan at sun dot com>
Fixes: #383596
2006-12-08 14:42:42 +00:00
Jerry Tan
6c58a6baea sys/sunaudio/gstsunaudiosrc.c: Apply patch to open the mixer control and set the MULTIPLE_OPEN ioctl. On solaris, the...
Original commit message from CVS:
* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open):
Apply patch to open the mixer control and set the MULTIPLE_OPEN
ioctl. On solaris, the mixer device doesn't need opening non-blocking
- it can be opened by multiple processes by default, but needs the ioctl 	for multiple opens within 1 process.
Patch by: Jerry Tan <jerry.tan at sun dot com>
Fixes: #349015
2006-12-08 14:32:51 +00:00
Wim Taymans
6b01538bca gst/smpte/: Port to 0.10 some more.
Original commit message from CVS:
* gst/smpte/gstmask.h:
* gst/smpte/gstsmpte.c: (gst_smpte_class_init),
(gst_smpte_setcaps), (gst_smpte_init), (gst_smpte_reset),
(gst_smpte_collected), (gst_smpte_set_property),
(gst_smpte_get_property), (gst_smpte_change_state), (plugin_init):
* gst/smpte/gstsmpte.h:
Port to 0.10 some more.
Added duration property to specify the duration of the transition.
Make framerate a fraction.
Deprecate fps property, we only use negotiated fps.
Added docs.
Fix collectpad usage.
Reset state in READY.
Send NEWSEGMENT event.
Fix racy updates of object properties.
Added debug category.
Fixes #383323.
2006-12-07 17:30:03 +00:00
Sjoerd Simons
fd47c4fbf1 gst/videomixer/videomixer.c: Don't reset xpos and ypos in the setcaps function because causes unexpected behaviour.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* gst/videomixer/videomixer.c:
(gst_videomixer_set_master_geometry),
(gst_videomixer_pad_sink_setcaps), (gst_videomixer_collect_free):
Don't reset xpos and ypos in the setcaps function because causes
unexpected behaviour.
Fixes #382179.
2006-12-06 15:06:04 +00:00
Wim Taymans
1444040b98 gst/multipart/multipartmux.c: Keep track of the buffer timestamp in the collectdata member instead of modifying the b...
Original commit message from CVS:
* gst/multipart/multipartmux.c: (gst_multipart_mux_compare_pads),
(gst_multipart_mux_queue_pads), (gst_multipart_mux_collected):
Keep track of the buffer timestamp in the collectdata member instead
of modifying the buffer without making the metadata writable first.
Fixes #382277.
2006-12-06 14:45:30 +00:00
Rob Taylor
21c9ac41a9 gst/udp/gstudpsrc.c: If using multicast in udpsrc, bind to the multicast address rather than
Original commit message from CVS:
Patch by: Rob Taylor <robtaylor at floopily dot org>
* gst/udp/gstudpsrc.c: (gst_udpsrc_start):
If using multicast in udpsrc, bind to the multicast address rather than
IN_ADDR_ANY.
This allows the simultanous use of multiple udpsrcs listening on
different multicat addresses. Without this all udpsrcs will receive all
packets from all subscribed multicast addresses.
Fixes #383001.
2006-12-06 14:33:54 +00:00
Jonathan Matthew
93663539f7 ext/taglib/gstid3v2mux.cc: Don't attempt to write a NULL frame into the ID3 tag set when the createFrame method retur...
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Don't attempt to write a NULL frame into the ID3 tag set when the
createFrame method returned NULL.
Fixes: #381857
Patch by: Jonathan Matthew <jonathan at 0kaolin wh9 net >
2006-12-06 13:35:52 +00:00
Sebastian Dröge
4f799e000f gst/apetag/gstapedemux.c: Use g_strtod() instead of sscanf to parse doubles, so that it will try parsing in the C loc...
Original commit message from CVS:
* gst/apetag/gstapedemux.c: (ape_demux_parse_tags):
Use g_strtod() instead of sscanf to parse doubles, so that it will
try parsing in the C locale if the current locale fails.
Fixes: #382982
Patch by: Sebastian Dröge  <mail at slomosnail de >
2006-12-06 13:16:59 +00:00
Sergey Scobich
1fd0727d5f win32/MANIFEST: Fix compilation on win32 under VS8
Original commit message from CVS:
* win32/MANIFEST:
Fix compilation on win32 under VS8
Patch by: Sergey Scobich <sergey dot scobich at gmail dot com>
Partially fixes #381175
2006-12-01 10:31:46 +00:00
Stefan Kost
541a13d0e2 gst/avi/gstavimux.c: accept all mpegversions,fixes #380825 spotted by: Jerome Alet
Original commit message from CVS:
* gst/avi/gstavimux.c:
accept all mpegversions,fixes #380825
spotted by: Jerome Alet
2006-11-30 16:48:51 +00:00
Stefan Kost
d5ce2baebb sys/v4l2/v4l2src_calls.c: cleanup the error message a bit more
Original commit message from CVS:
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
(gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame),
(gst_v4l2src_get_capture), (gst_v4l2src_set_capture),
(gst_v4l2src_capture_init), (gst_v4l2src_buffer_finalize):
cleanup the error message a bit more
2006-11-30 16:46:13 +00:00
Wim Taymans
3244d5cb8a ext/libcaca/gstcacasink.c: Fix width and height properties.
Original commit message from CVS:
* ext/libcaca/gstcacasink.c: (gst_cacasink_class_init):
Fix width and height properties.
* ext/libcaca/gstcacasink.h:
Fix compilation on newer libcaca that require us to include a new
header. Fixes #379918.
2006-11-28 12:30:10 +00:00
Wim Taymans
f249d639f8 gst/rtsp/: Add method so that extensions can choose to disable the setup of a stream.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspext.h:
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_configure_stream),
(rtsp_ext_wms_get_context):
Add method so that extensions can choose to disable the setup of
a stream.
Make the WMS extension skip setup of x-wms-rtx streams. Fixes #377792.
2006-11-28 11:52:27 +00:00
Wim Taymans
f1be9bd688 mention bug fix
Original commit message from CVS:
mention bug fix
2006-11-27 16:30:49 +00:00
Jonas Holmberg
6d91770165 gst/multipart/multipartmux.c: Push header in a separate buffer instead of memcpy:ing all data
Original commit message from CVS:
Patch by: Jonas Holmberg <jonas dot holmberg at axis dot com>
* gst/multipart/multipartmux.c: (gst_multipart_mux_collected):
Push header in a separate buffer instead of memcpy:ing all data
Change LF => CRLF in headers
Move trailing LF to header
2006-11-27 16:29:07 +00:00
Wim Taymans
9e782fdc7e gst/rtp/gstrtpmpadepay.c: Small buffer overflow fix and improve debugging.
Original commit message from CVS:
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_chain):
Small buffer overflow fix and improve debugging.
2006-11-27 16:26:50 +00:00
Stefan Kost
13ee276c8d ext/esd/: remove obsolete _factory_init protos
Original commit message from CVS:
* ext/esd/esdmon.h:
* ext/esd/esdsink.h:
remove obsolete _factory_init protos
2006-11-24 08:58:53 +00:00
Stefan Kost
90431d788e gst/avi/gstavidemux.c: remove dead code, tweak debugs statements, add comments, use _uint64_scale instead _uint64_sca...
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_index_entry_for_time),
(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query),
(gst_avi_demux_peek_chunk), (gst_avi_demux_parse_subindex),
(gst_avi_demux_read_subindexes_push),
(gst_avi_demux_read_subindexes_pull), (gst_avi_demux_parse_stream),
(gst_avi_demux_parse_index), (gst_avi_demux_stream_index),
(gst_avi_demux_sync), (gst_avi_demux_next_data_buffer),
(gst_avi_demux_massage_index),
(gst_avi_demux_calculate_durations_from_index),
(gst_avi_demux_stream_header_pull), (gst_avi_demux_do_seek),
(gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry),
(gst_avi_demux_stream_data), (gst_avi_demux_loop):
remove dead code, tweak debugs statements, add comments, use
_uint64_scale instead _uint64_scale_int when using guint64 values,
small optimizations, reflow some error handling
2006-11-24 07:46:54 +00:00
Edward Hervey
466a76bd9d po/.cvsignore: We never put .pot files in cvs. Let's ignore them all.
Original commit message from CVS:
* po/.cvsignore:
We never put .pot files in cvs. Let's ignore them all.
2006-11-22 17:39:13 +00:00
Tim-Philipp Müller
75beed75b0 po/POTFILES.in: ... but better exclude files that aren't disted.
Original commit message from CVS:
* po/POTFILES.in:
... but better exclude files that aren't disted.
2006-11-19 18:46:03 +00:00
Tim-Philipp Müller
afeaf4c8a4 po/POTFILES.in: Add v4l2 source files to list of files with translations, so the strings are actually extracted (howe...
Original commit message from CVS:
* po/POTFILES.in:
Add v4l2 source files to list of files with translations, so the
strings are actually extracted (however bad they still may be).
2006-11-19 16:32:49 +00:00
Tim-Philipp Müller
f41376624b gst/videobox/gstvideobox.c: Minor clean-ups: const-ify static array, remove trailing comma from use GST_DEBUG_FUNCPTR.
Original commit message from CVS:
* gst/videobox/gstvideobox.c: (gst_video_box_class_init):
Minor clean-ups: const-ify static array, remove trailing comma from
last enum (gcc-2.9x trips over that), use GST_DEBUG_FUNCPTR.
2006-11-19 16:30:19 +00:00
René Stadler
3b4c2b054a gst/id3demux/id3v2frames.c: Make sure that g_free always gets called on the same pointer that was returned by g_mallo...
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
Make sure that g_free always gets called on the same pointer that was
returned by g_malloc.  Fixes #376594.
Do not leak memory if decompressed size is wrong.
Remove unneeded check of return value of g_malloc.
Patch by: René Stadler <mail@renestadler.de>
2006-11-19 13:41:53 +00:00
Tim-Philipp Müller
8c7f729c07 sys/v4l2/v4l2src_calls.c: Add missing curly brackets.
Original commit message from CVS:
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_deinit):
Add missing curly brackets.
2006-11-18 18:14:34 +00:00
Edgard Lima
c729cbdbee Fix capture_deinit.
Original commit message from CVS:
Fix capture_deinit.
2006-11-17 14:54:01 +00:00