Commit graph

1920 commits

Author SHA1 Message Date
Wai-Ming Ho
2ad5efaf28 gst/rtp/gstrtph264pay.*: Use higher performance start-code searching.
Original commit message from CVS:
Patch by: Wai-Ming Ho <webregbox at yahoo dot co dot uk>
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_init),
(gst_rtp_h264_pay_finalize), (gst_rtp_h264_pay_setcaps),
(next_start_code), (is_nal_equal), (gst_rtp_h264_pay_decode_nal),
(encode_base64), (gst_rtp_h264_pay_parse_sps_pps),
(gst_rtp_h264_pay_handle_buffer):
* gst/rtp/gstrtph264pay.h:
Use higher performance start-code searching.
Parse NALs and store SPS, PPS and profile in the caps so that they can
be used in the SDP. Fixes #502814.
2007-12-11 16:31:49 +00:00
Wouter Cloetens
dbf28d28e7 gst/multipart/multipartdemux.c: Copy timestamp from input to output. Not very perfect yet but better than nothing. Fi...
Original commit message from CVS:
Patch by: Wouter Cloetens <wouter at mind dot be>
* gst/multipart/multipartdemux.c: (gst_multipart_demux_chain):
Copy timestamp from input to output. Not very perfect yet but better
than nothing. Fixes #503023.
2007-12-11 11:05:57 +00:00
Sebastian Dröge
ee1f115ef9 gst/equalizer/gstiirequalizer.c: Fix compilation.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer.c:
(gst_iir_equalizer_transform_ip):
Fix compilation.
2007-12-06 12:45:50 +00:00
Sebastian Dröge
e59f930d9a gst/equalizer/gstiirequalizer.c: Don't process buffers in passthrough mode.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer.c:
(gst_iir_equalizer_transform_ip):
Don't process buffers in passthrough mode.
2007-12-06 12:42:11 +00:00
Sebastian Dröge
1b6c70bf0b gst/filter/: The transform() methods are not called in passthrough mode so there's no need for checking if the elemen...
Original commit message from CVS:
* gst/filter/gstbpwsinc.c: (bpwsinc_transform):
* gst/filter/gstlpwsinc.c: (lpwsinc_transform):
The transform() methods are not called in passthrough mode so
there's no need for checking if the element is in passthrough mode.
2007-12-06 12:37:43 +00:00
Sebastian Dröge
eaa01e7c42 gst/filter/: Sync the GObject properties with the controller even in passthrough mode to get consistent property values.
Original commit message from CVS:
* gst/filter/gstbpwsinc.c: (bpwsinc_transform):
* gst/filter/gstlpwsinc.c: (lpwsinc_transform):
Sync the GObject properties with the controller even in passthrough
mode to get consistent property values.
2007-12-06 12:29:26 +00:00
Sebastian Dröge
ba36c8183b gst/audiofx/: The transform_ip() methods should do nothing if in passthrough mode.
Original commit message from CVS:
* gst/audiofx/audioamplify.c: (gst_audio_amplify_transform_ip):
* gst/audiofx/audiochebyshevfreqband.c:
(gst_audio_chebyshev_freq_band_transform_ip):
* gst/audiofx/audiochebyshevfreqlimit.c:
(gst_audio_chebyshev_freq_limit_transform_ip):
* gst/audiofx/audiodynamic.c: (gst_audio_dynamic_transform_ip):
* gst/audiofx/audioinvert.c: (gst_audio_invert_transform_ip):
The transform_ip() methods should do nothing if in passthrough mode.
It might get non-writable buffers in that case but the buffer might
as well be writable.
* gst/audiofx/audiopanorama.c: (gst_audio_panorama_transform):
The transform() methods won't be called in passthrough mode and
otherwise the buffer is always writable so don't check here.
2007-12-06 12:11:29 +00:00
Tim-Philipp Müller
919e906055 gst/wavparse/gstwavparse.c: Fix seeking in .wav files again (#501775). Some people seem to think they don't need to ...
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_srcpad_event):
Fix seeking in .wav files again (#501775).  Some people seem to think
they don't need to test their changes when they're just 'reflowing'
some code.
2007-12-06 11:46:22 +00:00
Wim Taymans
dc9c3f540c gst/autodetect/gstautovideosink.*: Fix docs.
Original commit message from CVS:
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_class_init), (gst_auto_video_sink_dispose),
(gst_auto_video_sink_init),
(gst_auto_video_sink_create_element_with_pretty_name),
(gst_auto_video_sink_find_best),
(gst_auto_video_sink_set_property),
(gst_auto_video_sink_get_property):
* gst/autodetect/gstautovideosink.h:
Fix docs.
Use same error reporting code as autoaudiosink.
Add property to filter sinks based on caps. Only select raw video sinks
by default for backwards compat.
API: GstAutoVideoSink::filter-caps
2007-12-05 16:04:47 +00:00
Tommi Myöhänen
619ee506cf gst/autodetect/gstautoaudiosink.*: Add property to filter sinks based on caps. Only select raw audio sinks by default...
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_class_init), (gst_auto_audio_sink_dispose),
(gst_auto_audio_sink_init), (gst_auto_audio_sink_find_best),
(gst_auto_audio_sink_set_property),
(gst_auto_audio_sink_get_property):
* gst/autodetect/gstautoaudiosink.h:
Add property to filter sinks based on caps. Only select raw audio sinks
by default for backwards compat.  Fixes #417420.
API: GstAutoAudioSink::filter-caps
2007-12-05 16:02:15 +00:00
Arek Korbik
3a005c9579 gst/videobox/gstvideobox.c: Initialise liboil in plugin_init()
Original commit message from CVS:
Patch by: Arek Korbik <arkadini@gmail.com>

* gst/videobox/gstvideobox.c: (plugin_init):
Initialise liboil in plugin_init()
2007-11-29 11:40:15 +00:00
Edward Hervey
f488ea9acb gst/rtp/gstrtph263depay.c: Code beautification.
Original commit message from CVS:
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_class_init),
(gst_rtp_h263_depay_process):
Code beautification.
Added debug statements.
Don't bit-shift everything, just do operations on last/first byte
instead.
2007-11-28 17:48:45 +00:00
Jayarama S. Santana
ae6cf31baf gst/rtp/gstrtpmp4adepay.c: Fix wrong comparison in overrun check. Fixes #499239 some more.
Original commit message from CVS:
Patch by: Jayarama S. Santana <sundarsantana at gmail dot com>
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_process):
Fix wrong comparison in overrun check. Fixes #499239 some more.
2007-11-27 11:11:08 +00:00
Edward Hervey
a7b160d8b1 gst/rtp/gstrtph263depay.*: Fix h263 depayloader so that ANY h263 decoder can handle the outgoing stream.
Original commit message from CVS:
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_init),
(gst_rtp_h263_depay_process):
* gst/rtp/gstrtph263depay.h:
Fix h263 depayloader so that ANY h263 decoder can handle the outgoing
stream.
2007-11-27 00:01:41 +00:00
Wim Taymans
28be655e11 gst/rtp/gstrtpmp4adepay.*: Fix depayloading when multiple frames are inside one RTP packet.
Original commit message from CVS:
Based on Path by: Jayarama S. Santana <sundarsantana at gmail dot com>
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
* gst/rtp/gstrtpmp4adepay.h:
Fix depayloading when multiple frames are inside one RTP packet.
Fixes #499239.
2007-11-26 19:17:10 +00:00
Stefan Kost
d37e93af90 gst/level/gstlevel.c: Add GAP-flag support.
Original commit message from CVS:
* gst/level/gstlevel.c:
Add GAP-flag support.
2007-11-26 12:26:20 +00:00
Edward Hervey
9f75afd5fd gst/rtp/gstrtph263depay.c: Read the I flag for Mode A h263 rtp stream and set the
Original commit message from CVS:
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_process):
Read the I flag for Mode A h263 rtp stream and set the
GST_BUFFER_FLAG_DELTA_UNIT accordingly.
Fixes #499383
2007-11-26 12:01:11 +00:00
Stefan Kost
48a4bc909a gst/spectrum/gstspectrum.c: Use dispose and finalize. Dispose can be called multiple times.
Original commit message from CVS:
* gst/spectrum/gstspectrum.c:
Use dispose and finalize. Dispose can be called multiple times.
2007-11-26 10:08:20 +00:00
Stefan Kost
15ebc39939 gst/level/gstlevel.c: Remove some dead code and do cleanups.
Original commit message from CVS:
* gst/level/gstlevel.c:
Remove some dead code and do cleanups.
2007-11-26 10:04:49 +00:00
Julien Moutte
848829798a gst/qtdemux/qtdemux.c: Implement reverse playback support.
Original commit message from CVS:
2007-11-24  Julien MOUTTE  <julien@moutte.net>

* gst/qtdemux/qtdemux.c: (gst_qtdemux_find_segment),
(gst_qtdemux_move_stream), (gst_qtdemux_do_seek),
(gst_qtdemux_seek_to_previous_keyframe),
(gst_qtdemux_activate_segment), (gst_qtdemux_advance_sample),
(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop): Implement
reverse playback support.
2007-11-24 14:55:04 +00:00
Sebastian Dröge
f04ee6e996 gst/filter/: Post a GST_MESSAGE_LATENCY if the latency changes.
Original commit message from CVS:
* gst/filter/gstbpwsinc.c: (bpwsinc_set_property):
* gst/filter/gstlpwsinc.c: (lpwsinc_set_property):
Post a GST_MESSAGE_LATENCY if the latency changes.
2007-11-21 09:56:54 +00:00
Stefan Kost
970893e591 gst/equalizer/: Remove preset iface again. We'll re-add this after its been released in -good.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer10bands.c:
* gst/equalizer/gstiirequalizer3bands.c:
Remove preset iface again. We'll re-add this after its been released
in -good.
2007-11-21 08:21:10 +00:00
Julien Moutte
1f0a03d320 Fix build on Mac OS X 10.5
Original commit message from CVS:
2007-11-20  Julien MOUTTE  <julien@moutte.net>

* ext/taglib/gsttaglibmux.c: (gst_tag_lib_mux_render_tag),
(gst_tag_lib_mux_adjust_event_offsets):
* gst/qtdemux/qtdemux.c: (qtdemux_parse_theora_extension):
* sys/osxaudio/Makefile.am:
* sys/osxvideo/cocoawindow.h:
* sys/osxvideo/cocoawindow.m: Fix build on Mac OS X 10.5
2007-11-20 11:41:13 +00:00
Stefan Kost
a759157746 gst/equalizer/: Activate preset iface and upload two presets here.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer10bands.c:
* gst/equalizer/gstiirequalizer3bands.c:
Activate preset iface and upload two presets here.
2007-11-19 20:30:19 +00:00
Jordi Jaen Pallares
ccf7a43e6f gst/rtp/gstrtpmp2tpay.*: Fill the MTU with as many packets as possible. Fixes #491323.
Original commit message from CVS:
Patch by: Jordi Jaen Pallares <jordijp at gmail dot com>
* gst/rtp/gstrtpmp2tpay.c: (gst_rtp_mp2t_pay_class_init),
(gst_rtp_mp2t_pay_init), (gst_rtp_mp2t_pay_finalize),
(gst_rtp_mp2t_pay_flush), (gst_rtp_mp2t_pay_handle_buffer):
* gst/rtp/gstrtpmp2tpay.h:
Fill the MTU with as many packets as possible. Fixes #491323.
2007-11-15 18:19:19 +00:00
Tommi Myöhänen
2a5f7c6acd gst/rtsp/gstrtspsrc.c: Fix some more leaks. Fixes #497007.
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams):
Fix some more leaks. Fixes #497007.
2007-11-15 17:47:43 +00:00
Tommi Myöhänen
624497b1c5 gst/rtsp/gstrtspsrc.c: Fix 3 pad leaks. Fixes #496983.
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_free),
(gst_rtspsrc_stream_configure_tcp):
Fix 3 pad leaks. Fixes #496983.
2007-11-15 17:35:18 +00:00
Tommi Myöhänen
b026306147 gst/rtp/gstrtph264depay.c: Fix small leak. Fixes #497017.
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps):
Fix small leak. Fixes #497017.
2007-11-15 17:01:32 +00:00
Wim Taymans
a4540bca1e gst/qtdemux/: Add suppport for theora in quicktime according to XiphQT.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(gst_qtdemux_prepare_current_sample),
(gst_qtdemux_loop_state_movie), (qtdemux_parse_theora_extension),
(qtdemux_parse_node), (qtdemux_parse_trak), (qtdemux_video_caps):
* gst/qtdemux/qtdemux_fourcc.h:
* gst/qtdemux/qtdemux_types.c:
Add suppport for theora in quicktime according to XiphQT.
2007-11-15 16:31:32 +00:00
Tim-Philipp Müller
62d8456eb7 gst/id3demux/: We don't want the same string multiple times in a tag list for the same tag ever, for any tag, not jus...
Original commit message from CVS:
* gst/id3demux/id3tags.c:
* gst/id3demux/id3tags.h:
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
We don't want the same string multiple times in a tag list for the
same tag ever, for any tag, not just for GST_TAG_GENRE, so make sure
this doesn't happen and remove special-case code for GST_TAG_GENRE.
2007-11-14 21:39:47 +00:00
Tim-Philipp Müller
092cb8cd57 gst/rtsp/gstrtspsrc.c: Don't leak sdp message contents (fixes #496773).
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
Don't leak sdp message contents (fixes #496773).
* gst/udp/gstudpsink.c: (gst_udpsink_finalize):
Don't leak URI string.
2007-11-14 20:34:24 +00:00
Tommi Myöhänen
e5b5743a96 gst/rtsp/gstrtspsrc.c: Don't leak event, don't leak range (fixes #496752).
Original commit message from CVS:
Patch by: Tommi Myöhänen  <ext-tommi dot myohanen at nokia dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_parse_range):
Don't leak event, don't leak range (fixes #496752).
2007-11-14 15:29:05 +00:00
Arek Korbik
d04c0bb4c4 gst/alpha/gstalphacolor.c: Detect RGBA/BGRA correctly on little endian systems.
Original commit message from CVS:
Patch by: Arek Korbik <arkadini@gmail.com>

* gst/alpha/gstalphacolor.c: (gst_alpha_color_set_caps):
Detect RGBA/BGRA correctly on little endian systems.
2007-11-14 10:22:41 +00:00
Mark Nauwelaerts
711afebc9f gst/matroska/: Extract palette data for dvd subpicture streams and send it downstream as custom gstreamer dvd event (...
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw skynet be>
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_push_dvd_clut_change_event),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_subtitle_caps):
* gst/matroska/matroska-ids.h:
Extract palette data for dvd subpicture streams and send it
downstream as custom gstreamer dvd event (fixes #453417).
2007-11-13 17:01:07 +00:00
Stefan Kost
561bfe0457 gst/: Return the result in _activate_pull(). Don't ref element there.
Original commit message from CVS:
* gst/avi/gstavidemux.c:
* gst/wavparse/gstwavparse.c:
Return the result in _activate_pull(). Don't ref element there.
2007-11-13 06:55:28 +00:00
Stefan Kost
34c221a52f gst/wavparse/gstwavparse.c: Ref the element when we should, but not when we its not needed. Reflow the event_handling...
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers),
(gst_wavparse_pad_convert), (gst_wavparse_pad_query),
(gst_wavparse_srcpad_event):
Ref the element when we should, but not when we its not needed. Reflow
the event_handling to not leak the event.
2007-11-13 06:23:51 +00:00
René Stadler
85ea09f143 gst/replaygain/rganalysis.c: Avoid slowdown from denormals when processing near-silence input data.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/replaygain/rganalysis.c: (yule_filter):
Avoid slowdown from denormals when processing near-silence input data.
Spotted by Gabriel Bouvigne. Fixes #494499.
2007-11-12 21:07:31 +00:00
Edward Hervey
7522192fab gst/qtdemux/qtdemux.c: Properly free QTDemuxSamples array.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(qtdemux_parse_samples):
Properly free QTDemuxSamples array.
Protect table write with a sensible check, some files apparently DO contain
stts values starting with 0 :(
2007-11-12 17:59:40 +00:00
Stefan Kost
8deb4fbd92 gst/: Drop EOS in _handle_src_event(). Fix the refcount in qtdemux that previous commit messed up.
Original commit message from CVS:
* gst/avi/gstavidemux.c:
* gst/qtdemux/qtdemux.c:
Drop EOS in _handle_src_event(). Fix the refcount in qtdemux that
previous commit messed up.
2007-11-12 17:21:59 +00:00
Stefan Kost
8ae866e5c6 gst/: Sync _handle_src_event() with oggdemux. In avidemux also ref the element when we should, but not when we its no...
Original commit message from CVS:
* gst/avi/gstavidemux.c:
* gst/qtdemux/qtdemux.c:
Sync _handle_src_event() with oggdemux. In avidemux also ref the
element when we should, but not when we its not needed.
2007-11-12 17:06:32 +00:00
Sebastian Dröge
546ec34716 gst/: Change the meaning of the magnitude values given in the
Original commit message from CVS:
* gst/equalizer/demo.c: (draw_spectrum):
* gst/spectrum/demo-audiotest.c: (draw_spectrum):
* gst/spectrum/demo-osssrc.c: (draw_spectrum):
* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init):
Change the meaning of the magnitude values given in the
GstMessages by spectrum to decibel instead of
decibel+threshold.
2007-11-11 21:12:10 +00:00
Sebastian Dröge
4f77b46494 gst/equalizer/: And continue to update docs. Also include some sample code for the n-band equalizer in the docs.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer10bands.c:
* gst/equalizer/gstiirequalizer3bands.c:
* gst/equalizer/gstiirequalizernbands.c:
And continue to update docs. Also include some sample code
for the n-band equalizer in the docs.
2007-11-11 13:55:27 +00:00
Sebastian Dröge
b687bf25e3 gst/equalizer/: Update docs and property ranges to the real values.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer10bands.c:
(gst_iir_equalizer_10bands_class_init):
* gst/equalizer/gstiirequalizer3bands.c:
(gst_iir_equalizer_3bands_class_init):
* gst/equalizer/gstiirequalizernbands.c:
Update docs and property ranges to the real values.
2007-11-11 12:54:31 +00:00
Sebastian Dröge
d4085d9387 gst/spectrum/gstspectrum.c: Now do the scaling right for real. Also initialize a previously uninitialized variable.
Original commit message from CVS:
* gst/spectrum/gstspectrum.c:
Now do the scaling right for real. Also initialize a previously
uninitialized variable.
2007-11-09 17:27:00 +00:00
Stefan Kost
55fe83f022 gst/wavparse/gstwavparse.c: Return FALSE if we can't handle a query instead of changing the format. Ignore fact when ...
Original commit message from CVS:
* gst/wavparse/gstwavparse.c:
Return FALSE if we can't handle a query instead of changing the
format. Ignore fact when dealing with mpeg audio.
2007-11-08 15:00:40 +00:00
Sebastian Dröge
f75f427ec1 gst/spectrum/demo-audiotest.c: Use autoaudiosink instead of alsasink and use a sine wave.
Original commit message from CVS:
* gst/spectrum/demo-audiotest.c: (main):
Use autoaudiosink instead of alsasink and use a sine wave.
* gst/spectrum/gstspectrum.c:
Fix the magnitude calculation.
2007-11-06 12:23:35 +00:00
Sebastian Dröge
6edf8c4326 gst/equalizer/: Allow setting 0 as bandwidth and handle this correctly.
Original commit message from CVS:
* gst/equalizer/demo.c: (main):
* gst/equalizer/gstiirequalizer.c:
(gst_iir_equalizer_band_class_init), (setup_filter):
Allow setting 0 as bandwidth and handle this correctly.
Also handle a bandwidth of rate/2 properly.
* gst/equalizer/gstiirequalizernbands.c:
(gst_iir_equalizer_nbands_class_init):
Make it possible to generate a N-band equalizer with 1 bands. The
previous limit of 2 was caused by a nowadays replaced calculation
doing a division by zero if number of bands was 1.
2007-11-03 19:50:11 +00:00
Ole André Vadla Ravnås
13a9765877 Fix includes for MSVC and GLib-2.14.0 (#492388).
Original commit message from CVS:
Patch by: Ole André Vadla Ravnås  <ole.andre.ravnas@tandberg.com>
* configure.ac:
* gst/udp/gstdynudpsink.c:
* gst/udp/gstdynudpsink.h:
* gst/udp/gstmultiudpsink.c:
* gst/udp/gstmultiudpsink.h:
* gst/udp/gstudpsink.c:
* gst/udp/gstudpsink.h:
Fix includes for MSVC and GLib-2.14.0 (#492388).
* gst/udp/gstudpsrc.c: (gst_udpsrc_start):
No more pipe define since GLib-2.14.0, need to use _pipe() directly.
2007-11-02 21:16:09 +00:00
Edward Hervey
7eeeca8c27 gst/law/mulaw-decode.*: Calculate outgoing buffer duration if incoming buffer didn't have a valid duration.
Original commit message from CVS:
* gst/law/mulaw-decode.c: (mulawdec_sink_setcaps),
(gst_mulawdec_chain):
* gst/law/mulaw-decode.h:
Calculate outgoing buffer duration if incoming buffer didn't have a
valid duration.
2007-11-02 17:23:43 +00:00
Sebastian Dröge
ceb068d0e9 gst/equalizer/: Add small demo application based on the spectrum demo applications that gets white noise as input, pu...
Original commit message from CVS:
* gst/equalizer/Makefile.am:
* gst/equalizer/demo.c: (on_window_destroy), (on_configure_event),
(on_gain_changed), (on_bandwidth_changed), (on_freq_changed),
(draw_spectrum), (message_handler), (main):
Add small demo application based on the spectrum demo applications
that gets white noise as input, pushes it through an equalizer and
paints the spectrum. For every equalizer band it's possible to set
gain, bandwidth and frequency.
* gst/equalizer/gstiirequalizer.c: (setup_filter):
Add some guarding against too large or too small frequencies and
bandwidths. Also improve debugging a bit.
2007-10-30 21:37:49 +00:00