Commit graph

187 commits

Author SHA1 Message Date
Tim-Philipp Müller
f2e9c13e3f gst/playback/: Make sure the video frame buffer we return to apps via the "frame" property always has caps set on it....
Original commit message from CVS:
* gst/playback/gstplaybasebin.c:
* gst/playback/gstplaybin.c: (handoff):
Make sure the video frame buffer we return to apps via the
"frame" property always has caps set on it. Modify
_gst_gvalue_set_object() macro to handle NULL objects
gracefully too.
2005-12-15 09:48:19 +00:00
Tim-Philipp Müller
d0cc0e9082 gst/playback/: Work around refcount problem with g_value_set_object() that occur if the core has been compiled agains...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property):
* gst/playback/gstplaybin.c: (gst_play_bin_get_property):
Work around refcount problem with g_value_set_object() that occur
if the core has been compiled against GLib-2.6 (g_value_set_object()
will only g_object_ref() the element, but the caller will
gst_object_unref() it and bad things will happen due to the way
GstObjects are refcounted in the GLib-2.6 case). Fixes problems with
totem for people on FC4 using Thomas's 0.10 RPMs.
2005-12-07 18:51:35 +00:00
Thomas Vander Stichele
5f83aa7dfa expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:42:02 +00:00
Jan Schmidt
1874a9fc84 gst/playback/gststreamselector.c: 3rd time's the charm. Correct ref-counting for discarded buffers.
Original commit message from CVS:
* gst/playback/gststreamselector.c: (gst_stream_selector_chain):
3rd time's the charm. Correct ref-counting for discarded buffers.
2005-11-29 16:54:50 +00:00
Jan Schmidt
35905dcfb6 gst/playback/gststreamselector.c: Fix ref-counting
Original commit message from CVS:
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init),
(gst_stream_selector_set_property),
(gst_stream_selector_get_property),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
Fix ref-counting
2005-11-29 16:43:41 +00:00
Jan Schmidt
c14c78900f gst/playback/gststreamselector.*: Add the active-pad property for playbin to use shortly. Ignore buffers from any oth...
Original commit message from CVS:
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init), (gst_stream_selector_init),
(gst_stream_selector_dispose), (gst_stream_selector_set_property),
(gst_stream_selector_get_property),
(gst_stream_selector_get_linked_pad),
(gst_stream_selector_request_new_pad), (gst_stream_selector_chain):
* gst/playback/gststreamselector.h:
Add the active-pad property for playbin to use shortly. Ignore buffers
from any other pad, returning GST_FLOW_NOT_LINKED
2005-11-29 15:56:07 +00:00
Edward Hervey
4ab5321400 gst/playback/gstdecodebin.c: Better use of the queues. Start with a small size queue and only increase the size of th...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(try_to_link_1), (queue_filled_cb):
Better use of the queues. Start with a small size queue and only increase
the size of the queues when the other queues are empty.
2005-11-28 19:54:56 +00:00
Wim Taymans
078d7c5e8c gst/playback/gstplaybasebin.*: Prepare to handle errors betters.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit), (probe_triggered):
* gst/playback/gstplaybasebin.h:
Prepare to handle errors betters.

* gst/playback/gstplaybin.c: (add_sink), (setup_sinks):
Set sinks to PAUSED first before adding and linking them so that
we don't interrupt dataflow.
2005-11-28 15:56:03 +00:00
Edward Hervey
56c6518c55 gst/playback/gstdecodebin.c: Remove unused properties, and add queues between demuxers and decoders so that a lot mor...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (close_pad_link), (try_to_link_1):
Remove unused properties, and add queues between demuxers and decoders
so that a lot more files can preroll properly.
2005-11-27 17:57:54 +00:00
Thomas Vander Stichele
c0759093eb remove deprecated properties fix up enums to correctly have short lowercase dashed nicks
Original commit message from CVS:
remove deprecated properties
fix up enums to correctly have short lowercase dashed nicks
2005-11-22 17:39:29 +00:00
Andy Wingo
f3bafece36 gst/playback/gstplaybin.c (gen_audio_element)
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstplaybin.c (gen_audio_element)
(gen_video_element): Use the new MISSING_PLUGIN core error
category.
2005-11-21 18:44:02 +00:00
Andy Wingo
f405e12b4a *.*: Ran scripts/update-macros. Oh yes.
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

* *.h:
* *.c: Ran scripts/update-macros. Oh yes.
2005-11-21 16:35:24 +00:00
Jan Schmidt
569286d058 gst-libs/gst/tag/: Remove obsolete vorbistag element and debug category.
Original commit message from CVS:
* gst-libs/gst/tag/Makefile.am:
* gst-libs/gst/tag/gstvorbistag.c:
(gst_tag_list_to_vorbiscomment_buffer):
Remove obsolete vorbistag element and debug category.

* gst/playback/gstplaybasebin.c: (check_queue):
Don't divide by 0 when queue-threshold is 0.

* sys/ximage/ximagesink.c: (gst_ximagesink_set_property):
Don't modify an existing pixel-aspect-ratio if we fail to read
a new one.
2005-11-20 17:11:06 +00:00
Edward Hervey
8a955ff2c2 gst/playback/gstdecodebin.c: Unsetting IS_SINK flag from the fakesink, so decodebin never behaves as a sink.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Unsetting IS_SINK flag from the fakesink, so decodebin
never behaves as a sink.
2005-11-18 13:04:19 +00:00
Tim-Philipp Müller
726770239d gst/playback/gstplaybin.c: Use autoaudiosink, it tends to be more widely available than autoaudiiosink.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_audio_element):
Use autoaudiosink, it tends to be more widely available than
autoaudiiosink.
2005-11-14 18:26:21 +00:00
Andy Wingo
65480fcc2d gst/playback/gstplaybin.c (gen_audio_element): Use autoaudiosink as well if it is available. Fixes #316442.
Original commit message from CVS:
2005-11-14  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstplaybin.c (gen_audio_element): Use autoaudiosink
as well if it is available. Fixes #316442.
2005-11-14 17:44:40 +00:00
Andy Wingo
d6d7f17043 gst/playback/gstplaybasebin.c (prepare_output): Fix format string doober.
Original commit message from CVS:
2005-11-10  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstplaybasebin.c (prepare_output): Fix format
string doober.
2005-11-10 19:05:38 +00:00
Michael Smith
3b5568c1a4 gst/playback/gstplaybasebin.c: Unlock GROUP_LOCK in failure cases, so that we don't deadlock when trying to go to NUL...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_commit), (new_decoded_pad),
(setup_substreams), (set_active_source):
Unlock GROUP_LOCK in failure cases, so that we don't deadlock when
trying to go to NULL if we failed to read a file.
2005-11-10 17:29:48 +00:00
Tim-Philipp Müller
33fd9d677d gst/playback/gstplaybin.c: Set elements to NULL state before disposing of them.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_dispose):
Set elements to NULL state before disposing of them.
2005-11-09 16:09:52 +00:00
Wim Taymans
6e48aa490c gst/playback/gstdecodebin.c: Handle the case where a pad_block failed.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (free_dynamics), (remove_fakesink),
(pad_blocked), (close_pad_link), (new_pad), (no_more_pads):
Handle the case where a pad_block failed.
2005-11-03 12:32:09 +00:00
Thomas Vander Stichele
2d8a59b262 gst/playback/gstplaybin.c: first try autovideosink, then xvimagesink, then error out
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element):
first try autovideosink, then xvimagesink, then error out
* po/POTFILES.in:
add translatable file
* po/af.po:
* po/az.po:
* po/cs.po:
* po/en_GB.po:
* po/hu.po:
* po/it.po:
* po/nb.po:
* po/nl.po:
* po/or.po:
* po/sq.po:
* po/sr.po:
* po/sv.po:
* po/uk.po:
* po/vi.po:
update translations
2005-10-28 09:56:47 +00:00
Tim-Philipp Müller
b3399481e8 gst/playback/: Port these two tests as well.
Original commit message from CVS:
* gst/playback/.cvsignore:
* gst/playback/decodetest.c:
* gst/playback/test3.c:
Port these two tests as well.
2005-10-27 18:30:04 +00:00
Wim Taymans
c36509f8b8 gst/playback/gstdecodebin.c: Don't try to remove elements twice.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (free_dynamics), (pad_unblocked),
(pad_blocked), (close_pad_link), (new_pad):
Don't try to remove elements twice.
2005-10-21 16:40:08 +00:00
Tim-Philipp Müller
a04b000bf4 ext/vorbis/vorbisenc.c: Implement position and duration queries.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_query_types),
(gst_vorbisenc_src_query):
Implement position and duration queries.
* gst/playback/test3.c: (update_scale), (main):
Fix for async state changes and print nicer output.
2005-10-20 19:06:43 +00:00
Wim Taymans
42f0462534 gst/playback/: Fix tests again
Original commit message from CVS:
* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
(dump_element_stats), (main):
* gst/playback/test6.c: (main):
Fix tests again
2005-10-20 17:42:57 +00:00
Wim Taymans
d108bc0882 gst/playback/gstplaybasebin.c: Fix leak.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(gst_play_base_bin_change_state):
Fix leak.
Handle case where playbasebin is now ASYNC because
decodebin is.
2005-10-20 10:35:06 +00:00
Wim Taymans
f88e6c08fd Query API update.
Original commit message from CVS:
* examples/seeking/seek.c: (make_avi_msmpeg4v3_mp3_pipeline),
(query_positions_elems), (query_positions_pads), (update_scale),
(do_seek), (set_update_scale), (message_received), (main):
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_find_chains),
(gst_ogg_demux_loop):
* ext/ogg/gstogmparse.c: (gst_ogm_parse_sink_query):
* ext/theora/theoradec.c: (theora_dec_src_query),
(theora_dec_sink_event):
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
(vorbis_dec_sink_event), (vorbis_handle_data_packet):
* gst/adder/gstadder.c: (gst_adder_query):
* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audiotestsrc_src_query):
* gst/playback/test3.c: (update_scale):
* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
(dump_element_stats), (main):
* gst/playback/test6.c: (main):
* gst/sine/gstsinesrc.c: (gst_sinesrc_src_query):
Query API update.
2005-10-19 15:55:33 +00:00
Wim Taymans
cffa20bf51 gst/playback/: Make playbin async, it'll commit state to paused when all streams are detected.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(gst_decode_bin_dispose), (dynamic_create), (dynamic_free),
(free_dynamics), (pad_unblocked), (pad_blocked), (close_pad_link),
(try_to_link_1), (new_pad), (no_more_pads), (type_found),
(gst_decode_bin_change_state):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_send_event_to_sink):
* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
(dump_element_stats), (main):
* gst/playback/test6.c: (main):
Make playbin async, it'll commit state to paused when all streams
are detected.
Remove ugly hack.
Added test6.c to show async behaviour.
2005-10-18 17:13:56 +00:00
Andy Wingo
e716f44d69 gst/playback/gstdecodebin.c
Original commit message from CVS:
2005-10-16  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstdecodebin.c
(gst_element_set_state_like_a_crazy_man): New kraaaaaaazy
function!
(try_to_link_1): Increase kraziness level.
2005-10-16 15:08:46 +00:00
Thomas Vander Stichele
4f8f42b0b6 restructure configure.ac, use correct libtool LDFLAGS, fix up defines
Original commit message from CVS:
restructure configure.ac, use correct libtool LDFLAGS, fix up defines
2005-10-16 13:54:44 +00:00
Stefan Kost
43bc15fa94 renamed GST_FLAGS macros to GST_OBJECT_FLAGS moved bitshift from macro to enum definition
Original commit message from CVS:
* examples/indexing/indexmpeg.c: (main):
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_get),
(cdparanoia_open), (cdparanoia_close), (cdparanoia_event),
(cdparanoia_convert), (cdparanoia_query):
* ext/cdparanoia/gstcdparanoia.h:
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_init),
(gst_gnomevfssink_open_file), (gst_gnomevfssink_close_file),
(gst_gnomevfssink_chain), (gst_gnomevfssink_change_state):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_init):
* gst/audioscale/gstaudioscale.c: (gst_audioscale_init):
* gst/playback/gststreamselector.c: (gst_stream_selector_init):
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_init),
(gst_multifdsink_render), (gst_multifdsink_start),
(gst_multifdsink_stop):
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init),
(gst_tcpclientsink_render), (gst_tcpclientsink_start),
(gst_tcpclientsink_stop):
* gst/tcp/gsttcpclientsink.h:
* gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init),
(gst_tcpclientsrc_getcaps), (gst_tcpclientsrc_create),
(gst_tcpclientsrc_start), (gst_tcpclientsrc_stop):
* gst/tcp/gsttcpclientsrc.h:
* gst/tcp/gsttcpserversink.h:
* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init),
(gst_tcpserversrc_create), (gst_tcpserversrc_start),
(gst_tcpserversrc_stop):
* gst/tcp/gsttcpserversrc.h:
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_init):
renamed GST_FLAGS macros to GST_OBJECT_FLAGS
moved bitshift from macro to enum definition
2005-10-12 14:32:29 +00:00
Wim Taymans
1355459057 gst-libs/gst/audio/gstringbuffer.c: Don't assert on normal stuff.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit),
(gst_ring_buffer_read), (gst_ring_buffer_clear):
Don't assert on normal stuff.

* gst/playback/gstplaybin.c: (do_playbin_seek):
API fix.
2005-10-12 12:38:20 +00:00
Michael Smith
70b42a65cb gst/playback/gstplaybin.c: Override send_event differently, so that we can takes bits of functionality from GstPipeli...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_send_event_to_sink),
(do_playbin_seek), (gst_play_bin_send_event):
Override send_event differently, so that we can takes bits of
functionality from GstPipeline (special handling for seeks,
including pausing/resuming, and resetting stream time) and
still get
the appropriate behaviour of only forwarding event to a single
sink,
rather than all of them.
Unfortunately requires a lot of code duplication, but the
alternatives are equally ugly in the end.
2005-10-11 15:49:31 +00:00
Michael Smith
13331c4636 gst/playback/: Set state to NULL before removing from bin. Fix refcounting.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy),
(gen_preroll_element), (remove_groups), (setup_source):
* gst/playback/gstplaybin.c: (remove_sinks), (add_sink),
(setup_sinks), (gst_play_bin_send_event),
(gst_play_bin_change_state):
Set state to NULL before removing from bin. Fix refcounting.
2005-10-04 18:02:00 +00:00
Michael Smith
b0f967265a gst/playback/gstplaybin.c: Correct refcounting in send_event() function. Previously was wrong if the first sink was u...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_send_event):
Correct refcounting in send_event() function. Previously was wrong
if the first sink was unable to handle the event.
2005-10-04 13:51:17 +00:00
Andy Wingo
c1d25d47fa gst/playback/gstdecodebin.c (try_to_link_1) set element to NULL before removing it.
Original commit message from CVS:
2005-10-03  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstdecodebin.c (try_to_link_1)
(remove_element_chain): set element to NULL before removing it.
2005-10-02 23:11:41 +00:00
Wim Taymans
361eb99af9 g_debug build fix.
Original commit message from CVS:
g_debug build fix.
2005-09-29 14:14:40 +00:00
Wim Taymans
68a093a6ae ext/vorbis/vorbisdec.c: We use fixed caps.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init):
We use fixed caps.

* gst/playback/Makefile.am:
* gst/playback/test5.c: (new_pad), (no_more_pads), (start_finding),
(dump_element_stats), (main):
Added example stream introspection code.
2005-09-29 14:12:18 +00:00
Wim Taymans
7d29a33df8 gst/playback/gstplaybin.c: Only seek on one sink, the first one that succeeds.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init),
(gst_play_bin_send_event):
Only seek on one sink, the first one that succeeds.
2005-09-22 17:41:03 +00:00
Andy Wingo
997b3c4b78 gst/playback/gstplaybasebin.c: Attempt to fix up buffer probe thingies.
Original commit message from CVS:
2005-09-21  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstplaybasebin.c: Attempt to fix up buffer probe
thingies.

* gst/playback/gstdecodebin.c (gst_decode_bin_dispose): Dispose
can be called multiple times, dogs.
2005-09-21 12:58:35 +00:00
David Schleef
9e6bf1b940 gst/playback/gstdecodebin.c: free plugin list correctly
Original commit message from CVS:
* gst/playback/gstdecodebin.c: free plugin list correctly
* gst/playback/gstplaybin.c: emit warning if autovideosink
and autoaudiosink can't be found (instead of segfaulting)
2005-09-18 07:01:46 +00:00
David Schleef
cb8927cb92 Fixes for changes in registry API.
Original commit message from CVS:
* check/generic/states.c:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
* gst/playback/gstdecodebin.c: (gst_decode_bin_init):
Fixes for changes in registry API.
* configure.ac: Only export gst_plugins_desc.  Add -no-undefined
to GST_PLUGIN_LDFLAGS.
* ext/libvisual/visual.c: Make the library shut up.
* gst-libs/gst/audio/audio.c: Don't define a plugin in a library.
* gst-libs/gst/audio/gstaudiofilter.c: same
2005-09-15 06:59:36 +00:00
Tim-Philipp Müller
32f976bfea gst/audioconvert/Makefile.am: Audioconvert derives from GstBaseTransform and should link to the library with our base...
Original commit message from CVS:
* gst/audioconvert/Makefile.am:
Audioconvert derives from GstBaseTransform and should
link to the library with our base elements to avoid
unresolved symbols. Makes things work with MinGW (#316160)
* gst/playback/test4.c: (main):
Fix MinGW build problem and use g_usleep() instead of
sleep() (#316162)
2005-09-13 13:52:59 +00:00
Andy Wingo
6665c3084c All plugins updated for element state changes.
Original commit message from CVS:
2005-09-02  Andy Wingo  <wingo@pobox.com>

* All plugins updated for element state changes.
2005-09-02 15:43:18 +00:00
Jan Schmidt
2a13ddfd65 gst/playback/gstplaybasebin.c: Revert unpopular change for GST_MESSAGE_SRC to GObject.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (fill_buffer):
Revert unpopular change for GST_MESSAGE_SRC to GObject.
2005-08-25 10:50:44 +00:00
Thomas Vander Stichele
2136419a0a c/: add core's plugins to the mix so that playbin works
Original commit message from CVS:

* check/Makefile.am:
* configure.ac:
add core's plugins to the mix so that playbin works
* check/generic/states.c: (GST_START_TEST):
set a 0 timeout on pipelines, so they don't force the next
state change
* gst/playback/gstplaybasebin.c: (setup_source), (prepare_output),
(gst_play_base_bin_change_state):
remove the crappy error handling and do GST error handling
2005-08-24 18:03:12 +00:00
Jan Schmidt
80ad4cff17 check/Makefile.am: Add CHECK_CFLAGS and LDFLAGS
Original commit message from CVS:
* check/Makefile.am:
Add CHECK_CFLAGS and LDFLAGS

* gst/playback/gstplaybasebin.c: (fill_buffer):
GST_MESSAGE_SRC became a GObject
2005-08-24 11:56:08 +00:00
Ronald S. Bultje
c3c1f232c0 gst/playback/gstplaybin.c: Remove visualization from parent explicitely; works around some apparent refcount issue th...
Original commit message from CVS:
* gst/playback/gstplaybin.c: (remove_sinks):
Remove visualization from parent explicitely; works around some
apparent refcount issue that I haven't tracked down yet.
2005-08-08 12:16:54 +00:00
Thomas Vander Stichele
e571f069d1 renamed to actual element names, so much nicer to look at
Original commit message from CVS:

* common/gtk-doc-plugins.mak:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
renamed to actual element names, so much nicer to look at
* docs/plugins/tmpl/gstmultifdsink.sgml:
remove
* docs/plugins/tmpl/multifdsink.sgml:
* docs/plugins/tmpl/tcpserversink.sgml:
add
* ext/alsa/gstalsa.c:
* ext/cdparanoia/gstcdparanoia.c: (cdparanoia_get_property):
* ext/ogg/gstoggmux.c:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain):
* gst/playback/gstdecodebin.c:
* gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init):
* gst/tcp/gsttcpserversink.c:
various fixes and documentation additions
2005-08-05 18:51:29 +00:00
Ronald S. Bultje
70f589da21 gst/playback/gstplaybin.c: Enable videoscale.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_video_element):
Enable videoscale.
2005-08-05 15:53:25 +00:00