Commit graph

4973 commits

Author SHA1 Message Date
Michael Smith 4bba74f13f tests/check/pipelines/vorbisenc.c: Move a g_cond_signal to earlier to avoid sometimes deadlocking (commonly happens w...
Original commit message from CVS:
* tests/check/pipelines/vorbisenc.c: (stop_pipeline):
Move a g_cond_signal to earlier to avoid sometimes deadlocking
(commonly happens when running this test under valgrind) when trying
to remove the buffer probe.
2006-07-14 14:12:40 +00:00
Thomas Vander Stichele edbebc34ef build as a plugin, not a lib
Original commit message from CVS:
build as a plugin, not a lib
2006-07-14 10:34:36 +00:00
Jan Schmidt a4dd5b37ba sys/xvimage/xvimagesink.c: Fix missing g_unlock from the previous commit
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new):
Fix missing g_unlock from the previous commit
2006-07-13 16:43:22 +00:00
Jan Schmidt e9a7a5e612 sys/: Implement a locking order to ensure we always take the object lock before the x_lock and never vice-versa.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new),
(gst_ximagesink_change_state):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_change_state):
Implement a locking order to ensure we always take the object lock
before the x_lock and never vice-versa.
2006-07-13 16:34:04 +00:00
Thomas Vander Stichele 0ead6859ae docs/plugins/: add more plugins and elements to docs
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
add more plugins and elements to docs
* gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain):
fix segfaults due to wrong g_free
add example
* gst/gdp/gstgdppay.c:
add example
2006-07-13 15:25:58 +00:00
Jan Schmidt 435fd24556 gst/playback/gstdecodebin.c: Fix a caps leak when linking (#347304)
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (find_compatibles):
Fix a caps leak when linking (#347304)
* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
(gst_ximagesink_ximage_destroy), (gst_ximagesink_xcontext_clear),
(gst_ximagesink_change_state):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimage_buffer_finalize), (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_xcontext_clear), (gst_xvimagesink_change_state):
Don't leak shared memory resources. Use the object lock to protect
against the xcontext disappearing while returning a buffer from the
pipeline. (#347304)
2006-07-13 14:38:15 +00:00
Edward Hervey 31ce9d42b0 ext/vorbis/vorbisdec.c: gst_tag_list_merge() returns a new object. Take that into account when using it. This avoids ...
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_finalize),
(vorbis_handle_comment_packet):
gst_tag_list_merge() returns a new object. Take that into account when
using it. This avoids memleak.
Revert previous commit which is not needed.
2006-07-12 14:20:43 +00:00
Edward Hervey 8642c1dc9d ext/vorbis/vorbisdec.c: Reset the decoder in finalize so that all fields get cleared.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_finalize):
Reset the decoder in finalize so that all fields get cleared.
2006-07-12 13:30:20 +00:00
Wim Taymans a0354a5b96 gst-libs/gst/audio/gstbaseaudiosrc.c: Don't try to post an error message when setting the clock fails as this can hap...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_set_clock),
(gst_base_audio_src_check_get_range), (gst_base_audio_src_create):
Don't try to post an error message when setting the clock fails
as this can happen when adding an element to a bin which will then
deadlock. Fixes #347296.
2006-07-12 13:24:19 +00:00
Edward Hervey 7a10838cd8 ext/vorbis/vorbisdec.c: Post tag messages on the bus even if we're not initialized.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
(vorbis_handle_type_packet):
Post tag messages on the bus even if we're not initialized.
If we're not initialized, we still postpone the event pushing of tags.
2006-07-12 13:04:15 +00:00
Wim Taymans ccee48bb85 Revert last two changes that broke the freeze.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_prepare):
* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
(gst_ring_buffer_debug_spec_caps), (gst_ring_buffer_parse_caps):
Revert last two changes that broke the freeze.
2006-07-12 11:28:37 +00:00
Wim Taymans ebc88d77c4 ext/alsa/gstalsasink.c: basesink calculates silence sample correctly for us.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_prepare):
basesink calculates silence sample correctly for us.
2006-07-12 10:59:55 +00:00
Wim Taymans 46d86d8005 gst-libs/gst/audio/gstringbuffer.c: Calculate correct silence samples so we don't fill our ringbuffer with noise.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (build_linear_format),
(gst_ring_buffer_debug_spec_caps), (gst_ring_buffer_parse_caps):
Calculate correct silence samples so we don't fill our ringbuffer
with noise.
2006-07-12 10:58:42 +00:00
Edward Hervey 7b88e03196 ext/vorbis/vorbisdec.*: Delay sending events (newsegment, tags) until the decoder is properly initialized.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
(gst_vorbis_dec_reset), (vorbis_dec_sink_event),
(vorbis_handle_comment_packet), (vorbis_handle_type_packet):
* ext/vorbis/vorbisdec.h:
Delay sending events (newsegment, tags) until the decoder is properly
initialized.
Fixes #347295
2006-07-12 10:37:18 +00:00
Jan Schmidt 03f7f5af20 Update .po files
Original commit message from CVS:
Update .po files
2006-07-11 22:40:13 +00:00
Jan Schmidt 184b20fb23 tests/check/elements/audioconvert.c: Patch from #347221 adding a test for audioconvert channel remappings.
Original commit message from CVS:
* tests/check/elements/audioconvert.c: (get_float_mc_caps),
(get_int_mc_caps), (GST_START_TEST), (audioconvert_suite):
Patch from #347221 adding a test for audioconvert
channel remappings.
2006-07-11 21:04:16 +00:00
Tim-Philipp Müller 391da1fccc gst/subparse/gstssaparse.c: Don't include the terminating NUL in the buffer size, it's only there for extra paranoia ...
Original commit message from CVS:
* gst/subparse/gstssaparse.c: (gst_ssa_parse_base_init),
(gst_ssa_parse_parse_line):
Don't include the terminating NUL in the buffer size,
it's only there for extra paranoia (would add random
'*' characters at the end of each subtitle since the
terminator itself is not valid UTF-8 technically).
Also fix indenting after boilerplate macro.
2006-07-11 12:03:25 +00:00
Tim-Philipp Müller 089a7c7262 gst/playback/gstdecodebin.c: Also emit 'unknown-type' signal (which should really be called unhandled-type) if we fou...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (close_pad_link):
Also emit 'unknown-type' signal (which should really be
called unhandled-type) if we found potential decoders/demuxers
in the registry but none of them worked in the end (as in the
case where the plugins don't exist any longer but are still
listed in the registry). Fixes #329798.
2006-07-10 14:59:03 +00:00
Andy Wingo a295acae0e theoraparse.c (theora_parse_push_buffer)
Original commit message from CVS:
2006-07-08  Andy Wingo  <wingo@pobox.com>

* theoraparse.c (theora_parse_push_buffer)
(theora_parse_drain_queue_prematurely, theora_parse_drain_queue):
Add some more debugging. Fix granulepos reconstruction in the face
of discontinuities.
2006-07-08 13:48:58 +00:00
Wim Taymans fa5dacc998 gst-libs/gst/audio/gstbaseaudiosink.c: Use gobject_class instead of G_OBJECT_CLASS (klass)
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init),
(gst_base_audio_sink_provide_clock):
Use gobject_class instead of G_OBJECT_CLASS (klass)
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init), (gst_base_audio_src_init),
(gst_base_audio_src_set_clock), (gst_base_audio_src_provide_clock),
(gst_base_audio_src_get_time),
(gst_base_audio_src_check_get_range), (gst_base_audio_src_create),
(gst_base_audio_src_create_ringbuffer):
Fix latency and buffer-time constants and properties ala basesink.
Implement pull based scheduling. Fixes #346527.
Set default blocksize in GstBaseSrc to 0, we default to pushing out
one segment.
Refuse slaving to another clock instead of silently not working.
Only provide a clock when we are actually able to do so.
Various small cleanups and compiler hints.
2006-07-06 15:54:50 +00:00
Lutz Mueller 9585862055 gst/typefind/gsttypefindfunctions.c: Add typefinding for text/html (#346581).
Original commit message from CVS:
Patch by: Lutz Mueller <lutz at topfrose de>
* gst/typefind/gsttypefindfunctions.c: (html_type_find),
(plugin_init):
Add typefinding for text/html (#346581).
2006-07-06 13:23:07 +00:00
Tim-Philipp Müller 5cec49ed90 gst/typefind/gsttypefindfunctions.c: Fix SMIL typefinding, make xml_check_first_element() more useful.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (utf8_type_find),
(xml_check_first_element), (xml_type_find), (smil_type_find):
Fix SMIL typefinding, make xml_check_first_element() more
useful.
2006-07-06 13:12:02 +00:00
Tim-Philipp Müller f1318291ed gst/playback/gstplaybasebin.*: Protect list of elements with a subtitle-encoding property and the subtitle encoding m...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_init),
(gst_play_base_bin_finalize), (decodebin_element_added_cb),
(decodebin_element_removed_cb), (gst_play_base_bin_set_property):
* gst/playback/gstplaybasebin.h:
Protect list of elements with a subtitle-encoding property and
the subtitle encoding member itself with a lock of their own
instead of using the object lock. This prevents a dead-lock in
the element-remove callback in some circumstances when shutting
down playbin.
2006-07-06 13:04:24 +00:00
Sébastien Moutte 8f89dbc65e win32/common/libgsttag.def: Export some new functions.
Original commit message from CVS:
* win32/common/libgsttag.def:
Export some new functions.
* win32/vs6/libgstogg.dsp:
Add a link to libgsttag-0.10.lib.
2006-07-05 20:11:13 +00:00
Tim-Philipp Müller a03727fb1b ext/alsa/gstalsamixertrack.c: Some const-ification.
Original commit message from CVS:
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
Some const-ification.
2006-07-04 16:50:21 +00:00
Wim Taymans 361979b83b gst/playback/gstplaybasebin.c: Improve checking if we are dealing with a stream. Added some more uris that need buffe...
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (is_stream), (gen_source_element):
Improve checking if we are dealing with a stream. Added some
more uris that need buffering.
2006-07-04 14:06:03 +00:00
Edward Hervey 2760f8c58e ext/vorbis/vorbisdec.c: Remove unused variable.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_do_clip):
Remove unused variable.
2006-07-03 10:43:31 +00:00
Thomas Vander Stichele da2fd7f3a6 Makefile.am: include lcov.mak
Original commit message from CVS:
* Makefile.am:
include lcov.mak
* configure.ac:
add GCOV_LIBS to GST_LIBS
2006-07-02 21:48:51 +00:00
Michael Sheldon 1df142aa5e ext/alsa/gstalsasrc.c: Add 32 bps to template caps and increase channels range from [1,2] to [1,MAX]. See #346326.
Original commit message from CVS:
Patch by: Michael Sheldon  <webmaster at mikeasoft com>
* ext/alsa/gstalsasrc.c:
Add 32 bps to template caps and increase channels range
from [1,2] to [1,MAX]. See #346326.
2006-07-02 11:08:58 +00:00
Tim-Philipp Müller 31667522ec gst-libs/gst/riff/riff-media.c: Recognise 'WMVA' video codec fourcc (#345879).
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
Recognise 'WMVA' video codec fourcc (#345879).
2006-06-30 12:04:51 +00:00
Philippe Kalaf 7e52276a83 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Fixed nasty memory leak
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
Fixed nasty memory leak
2006-06-29 12:21:06 +00:00
Thomas Vander Stichele 2d27a4238e gst/tcp/gsttcp.c: fix logging
Original commit message from CVS:
* gst/tcp/gsttcp.c: (gst_tcp_read_buffer),
(gst_tcp_gdp_read_buffer), (gst_tcp_gdp_read_caps):
fix logging
2006-06-26 13:19:33 +00:00
Jan Schmidt 91ee7188d7 gst/playback/gstdecodebin.c: Protect remove_fakesink using a mutex, so that we don't try and remove the fakesink simu...
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_class_init),
(gst_decode_bin_init), (gst_decode_bin_finalize), (add_fakesink),
(remove_fakesink), (pad_probe), (gst_decode_bin_change_state):
Protect remove_fakesink using a mutex, so that we don't try and
remove the fakesink simultaneously from multiple threads.
When going from READY to PAUSED, restore the fakesink, so that
it is there when decodebin gets reused.
2006-06-23 16:45:50 +00:00
Tim-Philipp Müller 114a273f27 Use GST_DEBUG_CATEGORY_STATIC where possible (#342503).
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
* gst-libs/gst/rtp/gstbasertppayload.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpclientsink.c:
* gst/tcp/gsttcpclientsrc.c:
* gst/tcp/gsttcpserversink.c:
* gst/tcp/gsttcpserversrc.c:
* gst/videorate/gstvideorate.c:
* gst/videotestsrc/gstvideotestsrc.c:
* sys/v4l/gstv4ljpegsrc.c:
* sys/v4l/gstv4lmjpegsink.c:
* sys/v4l/gstv4lsrc.c:
* tests/examples/seek/scrubby.c:
* tests/examples/seek/seek.c:
Use GST_DEBUG_CATEGORY_STATIC where possible (#342503).
2006-06-23 09:53:09 +00:00
Tim-Philipp Müller c555fc4d0b Use GST_DEBUG_CATEGORY_STATIC where possible (#342503) and fix one GObject boilerplate macro.
Original commit message from CVS:
* ext/directfb/dfbvideosink.c:
* ext/gsm/gstgsmdec.c:
* ext/gsm/gstgsmenc.c:
* ext/libmms/gstmms.c:
* ext/neon/gstneonhttpsrc.c:
* ext/theora/theoradec.c:
* gst/freeze/gstfreeze.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* sys/glsink/glimagesink.c:
Use GST_DEBUG_CATEGORY_STATIC where possible (#342503)
and fix one GObject boilerplate macro.
2006-06-23 09:09:44 +00:00
Tim-Philipp Müller 96331d17e5 gst-libs/gst/tag/tags.c: Second field in GEnumValue shouldn't be a description, but a stringified version of the enum...
Original commit message from CVS:
* gst-libs/gst/tag/tags.c: (register_tag_image_type_enum):
Second field in GEnumValue shouldn't be a description,
but a stringified version of the enum value.
2006-06-22 12:13:31 +00:00
Wim Taymans 261f55dd2a sys/ximage/ximagesink.c: Avoid type checking in buffer casts.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
(gst_ximage_buffer_free), (gst_ximagesink_ximage_put),
(gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc):
Avoid type checking in buffer casts.
Avoid caps copy in buffer_alloc when we can.
Use pad_peer_accept.
2006-06-22 12:03:14 +00:00
Tim-Philipp Müller 96326bff9d gst-libs/gst/tag/tag.h: Oops, make that 'Since: 0.10.9'.
Original commit message from CVS:
* gst-libs/gst/tag/tag.h:
Oops, make that 'Since: 0.10.9'.
2006-06-22 11:01:41 +00:00
Tim-Philipp Müller f8f78cb023 API: add GstTagImageType enum to describe images contained in image tags (#345641).
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/tag/tag.h:
* gst-libs/gst/tag/tags.c: (register_tag_image_type_enum),
(gst_tag_image_type_get_type):
API: add GstTagImageType enum to describe images contained
in image tags (#345641).
2006-06-22 10:55:05 +00:00
Tim-Philipp Müller 0ffac4cd56 gst/tcp/gstmultifdsink.c: Fix warnings with gst-inspect: "buffers-min" property should be of G_TYPE_INT and not G_TYP...
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
Fix warnings with gst-inspect: "buffers-min" property
should be of G_TYPE_INT and not G_TYPE_INT64. Also fix
typo in property description.
2006-06-22 10:31:22 +00:00
Cody Russell c10584ed40 gst/: Avoid unnecessary class cast check in class_init functions (#337747).
Original commit message from CVS:
Patch by: Cody Russell <bratsche at gnome org>
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/playback/gststreamselector.c:
(gst_stream_selector_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
Avoid unnecessary class cast check in class_init
functions (#337747).
2006-06-22 10:10:51 +00:00
Tim-Philipp Müller 1b54509cf0 ext/pango/gsttextoverlay.c: g_markup_escape_text() REALLY doesn't like non-UTF8 input and doesn't validate its input ...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_make_utf8),
(gst_text_overlay_video_chain):
g_markup_escape_text() REALLY doesn't like non-UTF8 input
and doesn't validate its input either (and neither did
textoverlay it seems). Let's do that then and fix #345206.
2006-06-21 18:39:07 +00:00
Wim Taymans 702d5980d3 gst/tcp/gstmultifdsink.*: Added shiny new burst-on-connect methods.
Original commit message from CVS:
* gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type),
(gst_unit_type_get_type), (gst_multi_fd_sink_class_init),
(gst_multi_fd_sink_init), (gst_multi_fd_sink_add_full),
(gst_multi_fd_sink_add), (gst_multi_fd_sink_handle_client_read),
(find_syncframe), (find_limits), (assign_value),
(count_burst_unit), (gst_multi_fd_sink_new_client),
(gst_multi_fd_sink_handle_client_write),
(gst_multi_fd_sink_queue_buffer), (gst_multi_fd_sink_render),
(gst_multi_fd_sink_set_property), (gst_multi_fd_sink_get_property),
(gst_multi_fd_sink_change_state):
* gst/tcp/gstmultifdsink.h:
Added shiny new burst-on-connect methods.
Add properties to control the minimal amount of data queued.
Small cleanups.
API: bytes-min property
API: time-min property
API: buffers-min property
API: burst-unit property
API: burst-value property
API: add-full signal
* gst/tcp/gsttcp-marshal.list:
Added new marshaller code for the new signal.
* tests/check/elements/multifdsink.c: (GST_START_TEST),
(multifdsink_suite):
Added testcases for new burst methods.
2006-06-19 17:12:57 +00:00
Christian Schaller 7623b0d79a update for latest changes
Original commit message from CVS:
update for latest changes
2006-06-19 11:35:47 +00:00
Edward Hervey 9dbfbfde27 ext/theora/theoradec.c: Implement clipping for accurate seeking.
Original commit message from CVS:
* ext/theora/theoradec.c: (clip_buffer), (theora_dec_push):
Implement clipping for accurate seeking.
Closes #345225
2006-06-19 09:57:50 +00:00
Philip Jaegenstedt f68c41710a gst/videoscale/gstvideoscale.c: Make videoscale support RGBA, ARGB, BGRA and ABGR. Fixes #345131
Original commit message from CVS:
Patch by: Philip Jaegenstedt <philip at lysator dot liu dot se>
* gst/videoscale/gstvideoscale.c: (gst_video_scale_prepare_size),
(gst_video_scale_transform):
Make videoscale support RGBA, ARGB, BGRA and ABGR. Fixes #345131
2006-06-19 09:08:05 +00:00
Tim-Philipp Müller d24f2c1ffd ChangeLog surgery
Original commit message from CVS:
ChangeLog surgery
2006-06-17 14:18:41 +00:00
Tim-Philipp Müller 3945316409 configure.ac: Fix --disable-extern (can't set conditionals conditionally, #343602).
Original commit message from CVS:
* configure.ac:
Fix --disable-extern (can't set conditionals conditionally,
#343602).
2006-06-17 14:13:03 +00:00
Tim-Philipp Müller 1cd8db6a92 tests/check/elements/audioresample.c: Add test case for bug #342789 fixed below.
Original commit message from CVS:
* tests/check/elements/audioresample.c: (test_reuse),
(audioresample_suite):
Add test case for bug #342789 fixed below.
2006-06-16 15:43:23 +00:00
Tim-Philipp Müller 767ac56e4e gst/audioresample/gstaudioresample.c: Implement GstBaseTransform::start and ::stop so that audioresample can clear it...
Original commit message from CVS:
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init), (gst_audioresample_init),
(audioresample_start), (audioresample_stop),
(gst_audioresample_set_property), (gst_audioresample_get_property):
Implement GstBaseTransform::start and ::stop so that audioresample
can clear its internal state properly and be reused insted of
causing non-negotiated errors with playbin under some circumstances
(#342789).
* tests/check/elements/audioresample.c: (setup_audioresample),
(cleanup_audioresample):
Need to set element state here so that ::start and ::stop are
called.
2006-06-16 15:17:44 +00:00