Commit graph

165 commits

Author SHA1 Message Date
Thomas Vander Stichele
3f9cd6434f use new error signal and classification
Original commit message from CVS:
use new error signal and classification
2004-01-18 21:46:52 +00:00
David Schleef
df75119488 ext/ffmpeg/gstffmpegenc.c: Fix use of already-freed caps.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect): Fix use of
already-freed caps.
2004-01-16 19:54:16 +00:00
Ronald S. Bultje
8a6c344dc7 ext/ffmpeg/gstffmpegenc.c: Link with right caps (else, it segfaults).
Original commit message from CVS:
2004-01-16  Ronald Bultje  <rbultje@ronald.bitfreak.net>

* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect):
Link with right caps (else, it segfaults).
* ext/mplex/gstmplexjob.cc:
Fix for slight API change in 1.6.1.93 release of mjpegtools.
2004-01-16 14:10:44 +00:00
David Schleef
2b03152605 Make sure everybody wraps #include "config.h" in #ifdef HAVE_CONFIG_H
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c:
* ext/ffmpeg/gstffmpegcodecmap.c:
* ext/ffmpeg/gstffmpegdec.c:
* ext/ffmpeg/gstffmpegenc.c:
* ext/ffmpeg/gstffmpegprotocol.c:
* ext/gdk_pixbuf/gstgdkanimation.c:
* ext/jpeg/gstjpeg.c:
* ext/libpng/gstpng.c:
* ext/mpeg2dec/perftest.c:
* ext/speex/gstspeex.c:
* gst-libs/gst/resample/dtos.c:
* gst/intfloat/gstintfloatconvert.c:
* gst/oneton/gstoneton.c:
* gst/rtjpeg/RTjpeg.c:
* gst/rtp/gstrtp.c:
* sys/dxr3/dxr3init.c:
* sys/glsink/gstgl_nvimage.c:
* sys/glsink/gstgl_pdrimage.c:
* sys/glsink/gstglsink.c:
* testsuite/gst-lint:
Make sure everybody wraps #include "config.h" in #ifdef HAVE_CONFIG_H
2004-01-12 04:15:46 +00:00
Julien Moutte
ad60e7cb34 ext/ffmpeg/gstffmpegcolorspace.c: Fixing the pad_alloc_buffer implementation to use ->srcpad
Original commit message from CVS:
2004-01-11  Julien MOUTTE  <julien@moutte.net>

* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain): Fixing the
pad_alloc_buffer implementation to use ->srcpad
* ext/hermes/gstcolorspace.c: (gst_colorspace_chain): Fixing the
pad_alloc_buffer implementation to use ->srcpad
* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):  Fixing the
pad_alloc_buffer implementation to use ->srcpad
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
(gst_ximagesink_chain), (gst_ximagesink_buffer_free),
(gst_ximagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep
a reference to everything we need.
* sys/ximage/ximagesink.h: adding a reference to the sink in the image.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_chain), (gst_xvimagesink_buffer_free),
(gst_xvimagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep
a reference to everything we need.
* sys/xvimage/xvimagesink.h: adding a reference to the sink in the image
2004-01-11 22:52:28 +00:00
Benjamin Otte
11f45f94a1 ext/ffmpeg/gstffmpegcodecmap.c: fix SVQ3 caps
Original commit message from CVS:
2004-01-11  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
fix SVQ3 caps
2004-01-11 04:51:47 +00:00
Julien Moutte
217e2b3e3e ext/ffmpeg/gstffmpegcolorspace.c: Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain):
Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
* gst-libs/gst/xoverlay/xoverlay.c:
(gst_x_overlay_got_desired_size): Updating doc for the xid being 0.
* gst/videoscale/gstvideoscale.c: (gst_videoscale_chain):
Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
Implementing gst_pad_alloc_buffer to use optimized buffer allocation.
* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc),
(gst_ximagesink_set_xwindow_id), (gst_ximagesink_init): Implementing
the bufferalloc_function to replace bufferpools, fixing the XOverlay
interface implementation to handle xid being 0 and fix some bugs
triggered by Benjamin's testcase.
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc),
(gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init): Implementing
the bufferalloc_function to replace bufferpools, fixing the XOverlay
interface implementation to handle xid being 0 and fix some bugs
triggered by Benjamin's testcase.
2004-01-09 18:05:56 +00:00
David Schleef
2e20e4ccdf ext/ffmpeg/gstffmpegenc.c: Fix pad_link function to handle formats that ffmpeg returns as multiple caps structures.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect):
Fix pad_link function to handle formats that ffmpeg returns
as multiple caps structures.
* gst/videofilter/gstvideofilter.c: (gst_videofilter_chain):
Only complain if source buffer is _smaller_ than expected.
* gst/videoscale/gstvideoscale.c: (gst_videoscale_init),
(gst_videoscale_handle_src_event): Resize navigation events
when passing them upstream.
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Rewrite many of the buffer painting functions to handle odd
sizes (for many formats, size%4!=0 or size%8!=0).  Most have
been verified to work with my video card.
* testsuite/gst-lint:  Add check for elements calling
gst_pad_get_caps() instead of gst_pad_get_allowed_caps().
2004-01-09 01:53:31 +00:00
David Schleef
e83494a26f fix compiler warning
Original commit message from CVS:
fix compiler warning
2004-01-02 23:42:14 +00:00
David Schleef
87e0627bfb ext/ffmpeg/gstffmpegenc.c: Negotiation fixes.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_init),
(gst_ffmpegenc_connect):  Negotiation fixes.
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
Remove inappropriate gst_caps_free().
* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
Reenable Ronald's internal resize code, since the core handles
it correctly now.
2004-01-02 23:11:41 +00:00
David Schleef
fa2f874ba7 Remove random stupidities from my last checkin. Doesn't specifically attempt to negotiate passthru.
Original commit message from CVS:
Remove random stupidities from my last checkin.  Doesn't specifically
attempt to negotiate passthru.
2004-01-02 23:06:49 +00:00
David Schleef
4231dbd872 Convert elements to use gst_pad_use_explicit_caps() where appropriate.
Original commit message from CVS:
Convert elements to use gst_pad_use_explicit_caps() where appropriate.
2004-01-02 07:09:20 +00:00
Ronald S. Bultje
e1c922ecac configure.ac: Fix configure check for mpeg2enc. We need 1.6.1.93 instead of 1.6.1.92, since the pkg-config file of 1....
Original commit message from CVS:
2004-01-01  Ronald Bultje  <rbultje@ronald.bitfreak.net>

* configure.ac:
Fix configure check for mpeg2enc. We need 1.6.1.93 instead of
1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and
it therefore uses the wrong include paths. Too bad... Note
that 1.6.1.93 is not release yet. ;).
Also add a check for mplex, which is now using the lib'ified
mplex from mjpegtools, too.
* ext/ffmpeg/gstffmpegcodecmap.c:
Add codec_tag for 3ivx/xvid. For xvid, this should fix playback
issues. I don't think ffmpeg handles 3ivx correctly, so this
probably won't work. But it won't hurt either.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect),
(gst_ffmpegdec_chain):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect),
(gst_ffmpegenc_chain_audio):
Fix memleak in audio encoding. Close codec if open fails, this
calls the cleanup routines so we can re-use the context.
* ext/mpeg2enc/gstmpeg2enc.cc:
Fix pad template names/types, fix memory issue with getcaps().
* ext/mpeg2enc/gstmpeg2encoder.cc:
* ext/mpeg2enc/gstmpeg2encoder.hh:
Fix compile issue with new caps system (const thingy).
* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
We read a first frame right on initing, so that we have a caps
when we init the output. This caps is cached in padprivate and
read as first frame.
* ext/mplex/Makefile.am:
* ext/mplex/gstmplex.cc:
* ext/mplex/gstmplex.h:
* ext/mplex/gstmplex.hh:
* ext/mplex/gstmplexibitstream.cc:
* ext/mplex/gstmplexibitstream.hh:
* ext/mplex/gstmplexjob.cc:
* ext/mplex/gstmplexjob.hh:
* ext/mplex/gstmplexoutputstream.cc:
* ext/mplex/gstmplexoutputstream.hh:
We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin
had issues, didn't do capsnego, supported only a subset of the
mplex features and required a mplex fork in our local CVS. Plus
that it worked agaist a very old mplex version. Rewriting was
faster than updating it.
* gst-libs/ext/Makefile.am:
* gst-libs/ext/mplex/INSTRUCT:
* gst-libs/ext/mplex/Makefile.am:
* gst-libs/ext/mplex/README:
* gst-libs/ext/mplex/TODO:
* gst-libs/ext/mplex/ac3strm_in.cc:
* gst-libs/ext/mplex/audiostrm.hh:
* gst-libs/ext/mplex/audiostrm_out.cc:
* gst-libs/ext/mplex/aunit.hh:
* gst-libs/ext/mplex/bits.cc:
* gst-libs/ext/mplex/bits.hh:
* gst-libs/ext/mplex/buffer.cc:
* gst-libs/ext/mplex/buffer.hh:
* gst-libs/ext/mplex/fastintfns.h:
* gst-libs/ext/mplex/format_codes.h:
* gst-libs/ext/mplex/inputstrm.cc:
* gst-libs/ext/mplex/inputstrm.hh:
* gst-libs/ext/mplex/lpcmstrm_in.cc:
* gst-libs/ext/mplex/mjpeg_logging.cc:
* gst-libs/ext/mplex/mjpeg_logging.h:
* gst-libs/ext/mplex/mjpeg_types.h:
* gst-libs/ext/mplex/mpastrm_in.cc:
* gst-libs/ext/mplex/mpegconsts.cc:
* gst-libs/ext/mplex/mpegconsts.h:
* gst-libs/ext/mplex/mplexconsts.hh:
* gst-libs/ext/mplex/multplex.cc:
* gst-libs/ext/mplex/outputstream.hh:
* gst-libs/ext/mplex/padstrm.cc:
* gst-libs/ext/mplex/padstrm.hh:
* gst-libs/ext/mplex/stillsstream.cc:
* gst-libs/ext/mplex/stillsstream.hh:
* gst-libs/ext/mplex/systems.cc:
* gst-libs/ext/mplex/systems.hh:
* gst-libs/ext/mplex/vector.cc:
* gst-libs/ext/mplex/vector.hh:
* gst-libs/ext/mplex/videostrm.hh:
* gst-libs/ext/mplex/videostrm_in.cc:
* gst-libs/ext/mplex/videostrm_out.cc:
* gst-libs/ext/mplex/yuv4mpeg.cc:
* gst-libs/ext/mplex/yuv4mpeg.h:
* gst-libs/ext/mplex/yuv4mpeg_intern.h:
* gst-libs/ext/mplex/yuv4mpeg_ratio.cc:
We don't fork mjpegtools' mplex in our CVS anymore.
* gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps),
(gst_avi_demux_add_stream):
* gst/avi/gstavidemux.h:
Add getcaps() function for proper caps nego. This makes some
parts of AVI playback/reading work.
* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
Resize window on new capsnego. This is probably wrong, but
I'm still committing it because with current capsnego, the
first successfull capsnego is auto-fixated, therefore rounded
down to the lowest values in the caps. this results in a 16x16
XWindow that is not reized when real capsnego finishes.
Dave, I see more cases of this, do you know a proper solution?
* tools/gst-launch-ext.in:
Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline.
2004-01-01 22:45:56 +00:00
David Schleef
8fae63a424 Negotiation fixes.
Original commit message from CVS:
Negotiation fixes.
2003-12-31 08:02:04 +00:00
Ronald S. Bultje
2a754af351 ext/ffmpeg/: fix typo in RGB masks, and move back to "old" colorspace capsnego code until whoever wrote this new crap...
Original commit message from CVS:
2003-12-24  Ronald Bultje  <rbultje@ronald.bitfreak.net>

* ext/ffmpeg/gstffmpegcodecmap.c:
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_getcaps),
(gst_ffmpegcsp_srcconnect_func), (gst_ffmpegcsp_sinkconnect),
(gst_ffmpegcsp_srcconnect), (gst_ffmpegcsp_get_type),
(gst_ffmpegcsp_base_init), (gst_ffmpegcsp_class_init),
(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain),
(gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property),
(gst_ffmpegcsp_get_property), (gst_ffmpegcsp_register):
fix typo in RGB masks, and move back to "old" colorspace
capsnego code until whoever wrote this new crap has actually
tested it so that it works.
And yes, this works, keep it that way please.
2003-12-24 00:12:16 +00:00
David Schleef
5153d56e2c Merge CAPS branch
Original commit message from CVS:
Merge CAPS branch
2003-12-22 01:46:58 +00:00
Ronald S. Bultje
4ee3b353e9 Sorry Dave... Add mpegversion=1 to mp3 caps everywhere so that the autoplugger uses mad and not faad for mp3 decoding...
Original commit message from CVS:
Sorry Dave... Add mpegversion=1 to mp3 caps everywhere so that the autoplugger uses mad and not faad for mp3 decoding. This should fix mp3 playback.
2003-12-18 09:31:48 +00:00
Ronald S. Bultje
75c76000f1 Well, hack to get this RGB thing truely right
Original commit message from CVS:
Well, hack to get this RGB thing truely right
2003-12-18 09:27:58 +00:00
Ronald S. Bultje
3dc2cc00e1 Fix small typo in RGB32LE red-mask check
Original commit message from CVS:
Fix small typo in RGB32LE red-mask check
2003-12-17 22:38:22 +00:00
Ronald S. Bultje
c1486cd0a7 Re-enable SVQ3, and also add a workaround for the fact that it writes to (read-only) buffers. This effectively makes ...
Original commit message from CVS:
Re-enable SVQ3, and also add a workaround for the fact that it writes to (read-only) buffers. This effectively makes svq3 work
2003-12-12 15:40:59 +00:00
Thomas Vander Stichele
e8affca9f7 tweaks 'n' docs
Original commit message from CVS:
tweaks 'n' docs
2003-12-09 17:29:20 +00:00
Thomas Vander Stichele
21f40a9a2f sandbox to get ffmpeg to play nicely in all cases
Original commit message from CVS:
sandbox to get ffmpeg to play nicely in all cases
2003-12-09 15:59:48 +00:00
Thomas Vander Stichele
d7bdecd09f fix compilation
Original commit message from CVS:
fix compilation
2003-12-05 16:01:23 +00:00
Ronald S. Bultje
d0b4ac409e Fix RGB better
Original commit message from CVS:
Fix RGB better
2003-11-28 20:06:18 +00:00
David Schleef
4c2868ef36 Change everyone to video/x-msvideo
Original commit message from CVS:
Change everyone to video/x-msvideo
2003-11-27 21:48:39 +00:00
Benjamin Otte
767092cb06 oops, got the RGB32 codecs wrong
Original commit message from CVS:
oops, got the RGB32 codecs wrong
2003-11-25 04:57:43 +00:00
Benjamin Otte
982d1612b2 make ffcolorspace work
Original commit message from CVS:
make ffcolorspace work
2003-11-25 04:48:31 +00:00
Benjamin Otte
2d2624fe49 - disable svq3 as it still crashes and spider tries to use it.
Original commit message from CVS:
- disable svq3 as it still crashes and spider tries to use it.
- copy buffers if necessary before sending them for decode in SVQ1 case. The decoder writes to the data.
2003-11-25 02:18:12 +00:00
Leif Johnson
579ca39de7 + checking in plugin category changes
Original commit message from CVS:
+ checking in plugin category changes
2003-11-16 22:01:30 +00:00
Ronald S. Bultje
ebbae798e3 Oops, some pretty bad memleaks
Original commit message from CVS:
Oops, some pretty bad memleaks
2003-11-12 11:27:40 +00:00
Ronald S. Bultje
199e7f14f2 Several encoding changes: for video, double check the pix_fmt after opening the AVCodec. The pix_fmt will be changed ...
Original commit message from CVS:
Several encoding changes:
* for video, double check the pix_fmt after opening the AVCodec. The pix_fmt
will be changed to the preferred pix_fmt instead of that opening the
codec fails. We fail when it has changed (then, ffmpeg doesn't like it).
* for video, set the correct timestamp.
* for audio, do *not* set the frame_size: most codecs don't like it. Instead,
keep a cache of buffers and always give data of size "frame_size". Maybe
I should have used bytestream here, I'm not sure. This works, though.
I can now create mpeg1 video, mp2 and ac3 audio. I didn't test any others yet.
I also didn't start working on integration with any of the muxers yet, that's
all one big TODO. One thing at a time, please. :).
2003-11-12 10:42:36 +00:00
Benjamin Otte
d26aa5ad0b some fixes:
Original commit message from CVS:
some fixes:
- put back a fix to make generic audio caps fixed.
- read out all of the flags when constructing wma extradata
2003-11-10 14:15:38 +00:00
Jeremy Simon
7ffbef83dd Add a function that build the context extradata from caps property
Original commit message from CVS:
Add a function that build the context extradata from caps property
2003-11-07 19:59:28 +00:00
Jeremy Simon
f1d5413b05 Use caps properties to set additional data to ffmpeg context (for wma)
Original commit message from CVS:
Use caps properties to set additional data to ffmpeg context (for wma)
2003-11-05 23:19:38 +00:00
Benjamin Otte
fcdd84f558 fix GST_FF_AUD_CAPS_NEW to not include channels and rate in unfixed caps and make audio caps use them again. This ens...
Original commit message from CVS:
fix GST_FF_AUD_CAPS_NEW to not include channels and rate in unfixed caps and make audio caps use them again. This ensures that audio encoders set these properties when setting fixed caps and audio decoders can advertise fixed caps, too.  This should work in all cases. If not, change it back and ffdec_mp3 is broken again ;)
2003-11-05 03:06:10 +00:00
Benjamin Otte
4e9bb8eb6c random fixes to ffmpeg: decoding of mp3 now works, call parent_class->dispose
Original commit message from CVS:
random fixes to ffmpeg: decoding of mp3 now works, call parent_class->dispose
2003-11-04 22:31:05 +00:00
Benjamin Otte
7e8b50efaa fix ffmpeg by using an ugly hack (put data as GType 0 when there is no type available yet)
Original commit message from CVS:
fix ffmpeg by using an ugly hack (put data as GType 0 when there is no type available yet)
2003-11-02 19:07:41 +00:00
Ronald S. Bultje
28ba793266 Bla
Original commit message from CVS:
Bla
2003-11-02 13:12:14 +00:00
David Schleef
815423e05e Fix compile problem on gcc-2.95. Fixes #125635.
Original commit message from CVS:
Fix compile problem on gcc-2.95.  Fixes #125635.
2003-10-31 03:43:25 +00:00
David Schleef
454bcb58ac change gst/bytestream.h to gst/bytestream/bytestream.h
Original commit message from CVS:
change gst/bytestream.h to gst/bytestream/bytestream.h
2003-10-29 03:15:50 +00:00
Benjamin Otte
98063f8cd3 merge TYPEFIND branch. Major changes:
Original commit message from CVS:
merge TYPEFIND branch. Major changes:
- totally reworked type(find) system
- all typefind functions are in gst/typefind now
- more typefind functions then before
- some plugins might fail to compile now because I don't have them installed and they
a) require bytestream or
b) haven't had their typefind fixed.
Please fix those plugins and put the typefind functions into gst/typefind if they don't have dependencies
2003-10-28 20:52:31 +00:00
Ronald S. Bultje
c92678bb20 Re-enable realaudio codecs, improve decoder naming and add mpeg2aac decoder... Now to find out why it still doesn't l...
Original commit message from CVS:
Re-enable realaudio codecs, improve decoder naming and add mpeg2aac decoder... Now to find out why it still doesn't list itself after gst-register'ing...
2003-10-26 12:10:01 +00:00
Ronald S. Bultje
b34d003bfe < <-> > confusion
Original commit message from CVS:
< <-> > confusion
2003-10-26 12:00:25 +00:00
Ronald S. Bultje
8358d67b73 Make it compile against latest CVS of FFMPEG:
Original commit message from CVS:
Make it compile against latest CVS of FFMPEG:
* Put gst/gst.h above avcodec.h because it needs some types defined in glib.h
* Remove HQ (removed from lavc) property

Also add some functions to make SVQ1 decoding work:
* Add YUV9 colorspace
* Let lavc do its own buffer allocation and copy from there instead of using
our own buffer allocation functions. Somehow, that breaks. I don't know
why.
2003-10-26 11:30:18 +00:00
Ronald S. Bultje
5b255e085e FFMPEG-based colorspace conversion plugin
Original commit message from CVS:
FFMPEG-based colorspace conversion plugin
2003-10-25 16:29:13 +00:00
Ronald S. Bultje
86288171cb Fix stupid typo
Original commit message from CVS:
Fix stupid typo
2003-10-22 10:17:15 +00:00
Ronald S. Bultje
601a18b167 and small improvement in naming of the FFMPEG encoders. This makes their naming look slightly better in apps using el...
Original commit message from CVS:
Typo (> instead of <) in codec selection (we don't want raw audio to raw audio encoders), and small improvement in naming of the FFMPEG encoders. This makes their naming look slightly better in apps using element_factory->details->longname.
2003-10-20 08:24:39 +00:00
David Schleef
feed1dcd9c includes are in top_srcdir
Original commit message from CVS:
includes are in top_srcdir
2003-10-16 05:04:20 +00:00
David Schleef
33bc78bfe5 Trivial fixes for GstBuffer->GstData migration
Original commit message from CVS:
Trivial fixes for GstBuffer->GstData migration
2003-10-09 02:23:00 +00:00
Andy Wingo
8603e03fd5 /GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488.
Original commit message from CVS:
/GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes #113488.
2003-10-08 16:07:38 +00:00