Commit graph

6194 commits

Author SHA1 Message Date
Wim Taymans
221f59e8fd win32/common/libgstaudio.def: Add new symbols.
Original commit message from CVS:
* win32/common/libgstaudio.def:
Add new symbols.
2008-10-27 14:57:34 +00:00
Wim Taymans
d9c2015fe1 ext/vorbis/vorbisdec.c: Attempt to make obfuscated code clearer.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
Attempt to make obfuscated code clearer.
2008-10-23 09:57:06 +00:00
Sebastian Dröge
4d7ebf29d9 Move float endianness conversion macros to core. Second part of bug ##555196.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/floatcast/floatcast.h:
Move float endianness conversion macros to core. Second part of
bug ##555196.
2008-10-23 07:11:23 +00:00
Stefan Kost
2aaf298543 sys/: Don't mark as gtk-doc docs as they aren't public.
Original commit message from CVS:
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.h:
Don't mark as gtk-doc docs as they aren't public.
2008-10-22 12:29:30 +00:00
Stefan Kost
6b3c69fa01 Allow setting colorkey if possible. Implement property probe interface for optional X features (autopaint-colorkey, d...
Original commit message from CVS:
* sys/xvimage/xvimagesink.c:
* sys/xvimage/xvimagesink.h:
* tests/icles/Makefile.am:
* tests/icles/test-colorkey.c:
Allow setting colorkey if possible. Implement property probe interface
for optional X features (autopaint-colorkey, double-buffer and
colorkey). Fixes #554533
2008-10-22 12:25:02 +00:00
Sebastian Dröge
4177ce6727 gst-libs/gst/tag/tags.c: Remove useless buffer size assignment. It already has this value.
Original commit message from CVS:
* gst-libs/gst/tag/tags.c: (gst_tag_image_data_to_image_buffer):
Remove useless buffer size assignment. It already has this value.
2008-10-22 12:01:32 +00:00
Wim Taymans
6eed8ca285 gst-libs/gst/audio/gstaudiosink.c: Implement a separate activate functions to start monitoring the segments or, in pu...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c:
(gst_audioringbuffer_class_init), (gst_audioringbuffer_acquire),
(gst_audioringbuffer_activate), (gst_audioringbuffer_release),
(gst_audioringbuffer_stop):
Implement a separate activate functions to start monitoring the segments
or, in pull mode, pulling in data.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_init), (gst_base_audio_sink_dispose),
(gst_base_audio_sink_query_pad), (gst_base_audio_sink_query),
(gst_base_audio_sink_setcaps), (gst_base_audio_sink_callback),
(gst_base_audio_sink_activate_pull),
(gst_base_audio_sink_async_play),
(gst_base_audio_sink_change_state):
Implement pad and element convert query function.
Activate the ringbuffer.
Use the segment last_stop value as the offset to pull.
Use new basesink _do_preroll() method to preroll in the pulling thread.
Take appropriate locking in the pulling thread.
* gst-libs/gst/audio/gstringbuffer.h:
Update some docs.
2008-10-20 15:35:37 +00:00
Sebastian Dröge
e4e86b0bad gst/typefind/gsttypefindfunctions.c: Improve MXF typefinding a bit by searching for a header partition pack instead o...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mxf_type_find):
Improve MXF typefinding a bit by searching for a header partition
pack instead of just a general partition pack and checking more
bytes for valid values.
2008-10-20 14:08:52 +00:00
Wim Taymans
4c2f85f96c tests/icles/.cvsignore: update ignore file.
Original commit message from CVS:
* tests/icles/.cvsignore:
update ignore file.
* tests/icles/Makefile.am:
* tests/icles/test-box.c: (make_pipeline), (main):
Add another interactive command line experimentation suite for
dynamically boxing/cropping/saling an input video.
2008-10-20 13:45:55 +00:00
Wim Taymans
a6b78893c0 Add methods to more accuratly control the pulling thread of a ringbuffer.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_convert),
(gst_ring_buffer_activate), (gst_ring_buffer_is_active):
* gst-libs/gst/audio/gstringbuffer.h:
Add methods to more accuratly control the pulling thread of a
ringbuffer.
Add format conversion helper code to the ringbuffer.
API: GstRingBuffer:gst_ring_buffer_activate()
API: GstRingBuffer:gst_ring_buffer_is_active()
API: GstRingBuffer:gst_ring_buffer_convert()
2008-10-17 13:19:05 +00:00
Wim Taymans
927999603a gst-libs/gst/audio/gstaudiosink.c: Signal thread startup earlier so that we can immediatly go into pull mode when we ...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func),
(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
(gst_audioringbuffer_stop):
Signal thread startup earlier so that we can immediatly go into pull
mode when we have to and block on preroll.
2008-10-16 15:44:37 +00:00
Wim Taymans
7bd29abb9d gst-libs/gst/audio/gstringbuffer.c: In pull mode we want the callback to prepull a buffer we can preroll on even when...
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_prepare_read):
In pull mode we want the callback to prepull a buffer we can preroll on
even when we are not yet playing.
2008-10-16 15:38:50 +00:00
Stefan Kost
2cd4c7e2b9 Don't install static libs for plugins. Fixes #550851 for base.
Original commit message from CVS:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gio/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/pango/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/audiotestsrc/Makefile.am:
* gst/ffmpegcolorspace/Makefile.am:
* gst/gdp/Makefile.am:
* gst/playback/Makefile.am:
* gst/subparse/Makefile.am:
* gst/tcp/Makefile.am:
* gst/typefind/Makefile.am:
* gst/videorate/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/videotestsrc/Makefile.am:
* gst/volume/Makefile.am:
* sys/v4l/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for base.
2008-10-16 15:07:00 +00:00
Wim Taymans
5ad1ebcf4c gst/audiotestsrc/gstaudiotestsrc.c: Set the default blocksize to -1 because we will then use the configured samplespe...
Original commit message from CVS:
* gst/audiotestsrc/gstaudiotestsrc.c: (gst_audio_test_src_init):
Set the default blocksize to -1 because we will then use the configured
samplesperbuffer to create our output buffer.
2008-10-16 13:50:00 +00:00
Edward Hervey
2d1806931d gst-libs/gst/riff/riff-media.c: Add mappping for the KMVC (Karl Morton's Video) Codec.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_video_template_caps):
Add mappping for the KMVC (Karl Morton's Video) Codec.
2008-10-15 15:28:41 +00:00
Edward Hervey
e68dbb884d gst/typefind/gsttypefindfunctions.c: Don't forget to advance the offset of what we're matching against, else we end u...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (flac_type_find):
Don't forget to advance the offset of what we're matching against, else
we end up in a forever loop.
2008-10-15 14:25:50 +00:00
Sebastian Dröge
e86d1dd432 gst/subparse/gstsubparse.c: Improve typefinding a bit. If we don't have a Unicode charset try GST_SUBTITLE_ENCODING a...
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (gst_subparse_type_find):
Improve typefinding a bit. If we don't have a Unicode charset
try GST_SUBTITLE_ENCODING and otherwise try ISO-8859-15.
2008-10-15 11:25:09 +00:00
Edward Hervey
a0e3174c88 ext/theora/theoradec.c: Fix build on macosx.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_decode_buffer):
Fix build on macosx.
2008-10-14 11:13:59 +00:00
Robin Stocker
cf5c8e426d ext/theora/: Parse input caps and make the PAR override the encoded PAR when specified by a container. Fixes #555699.
Original commit message from CVS:
Based on patch by: Robin Stocker <robin at nibor dot org>
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(theora_dec_setcaps), (theora_handle_type_packet),
(theora_dec_decode_buffer), (theora_dec_change_state):
Parse input caps and make the PAR override the encoded PAR when
specified by a container. Fixes #555699.
2008-10-13 11:36:13 +00:00
Wim Taymans
4ae82906ab gst-libs/gst/rtp/gstbasertpdepayload.*: Add some more G_LIKELY
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_set_gst_timestamp),
(gst_base_rtp_depayload_change_state):
* gst-libs/gst/rtp/gstbasertpdepayload.h:
Add some more G_LIKELY
Fail when the setcaps function was not called.
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_set_outcaps):
Propagate return value of setcaps.
2008-10-13 09:16:59 +00:00
Sebastian Dröge
e7b42af896 gst/subparse/: Add support for UTF16/UTF32 subtitles as long as the first bytes of the first buffer contain the BOM. ...
Original commit message from CVS:
* gst/subparse/Makefile.am:
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(gst_sub_parse_class_init), (gst_sub_parse_init),
(gst_convert_to_utf8), (detect_encoding), (convert_encoding),
(get_next_line), (gst_sub_parse_data_format_autodetect),
(feed_textbuf), (handle_buffer), (gst_sub_parse_change_state),
(gst_subparse_type_find):
* gst/subparse/gstsubparse.h:
Add support for UTF16/UTF32 subtitles as long as the first bytes of
the first buffer contain the BOM. This also adds support for other
encodings that allow NUL bytes via the encoding property.
Fixes bugs #552237 and #456788.
2008-10-13 08:58:29 +00:00
Sebastian Dröge
796fdbdf17 gst-libs/gst/tag/tags.c: Don't drop the last byte of image tags if they're not an URI list.
Original commit message from CVS:
* gst-libs/gst/tag/tags.c: (gst_tag_image_data_to_image_buffer):
Don't drop the last byte of image tags if they're not an URI list.
Fixes bug #556066.
2008-10-13 08:15:13 +00:00
Sebastian Dröge
d0d588ff6f gst/typefind/gsttypefindfunctions.c: For looking at the 4th byte we have to get 4 bytes of course and not 3.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (flac_type_find):
For looking at the 4th byte we have to get 4 bytes of course
and not 3.
2008-10-13 08:00:55 +00:00
Sebastian Dröge
862fd1d50f gst/typefind/gsttypefindfunctions.c: Improve FLAC-without-headers typefinding by looking at most of the frame header ...
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (flac_type_find):
Improve FLAC-without-headers typefinding by looking at most of the
frame header and checking if invalid values are used. Should prevent
quite some false positives compared to the old version which only
check if the first 14 bits are set.
2008-10-13 07:52:41 +00:00
Stefan Kost
13759bcbff sys/xvimage/xvimagesink.c: Don't assert on caps==NULL.
Original commit message from CVS:
* sys/xvimage/xvimagesink.c:
Don't assert on caps==NULL.
2008-10-11 16:27:28 +00:00
Sebastian Dröge
60bf63486b Add support for subtitle files with UTF-8 BOM at the beginning by simple stripping it from the first line before pass...
Original commit message from CVS:
* gst/subparse/gstsubparse.c:
(gst_sub_parse_data_format_autodetect), (handle_buffer),
(gst_sub_parse_change_state):
* gst/subparse/gstsubparse.h:
* tests/check/elements/subparse.c: (GST_START_TEST):
Add support for subtitle files with UTF-8 BOM at the beginning
by simple stripping it from the first line before passing it
to any parsing code. Fixes bug #555257 and playback of files
created by Gnome Subtitles.
2008-10-10 17:13:40 +00:00
Wim Taymans
81f5117fa9 gst/audiotestsrc/gstaudiotestsrc.*: Define the default property values in the usual place.
Original commit message from CVS:
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init), (gst_audio_test_src_init),
(gst_audio_test_src_src_fixate), (gst_audio_test_src_setcaps),
(gst_audio_test_src_start), (gst_audio_test_src_stop),
(gst_audio_test_src_do_seek), (gst_audio_test_src_check_get_range),
(gst_audio_test_src_create):
* gst/audiotestsrc/gstaudiotestsrc.h:
Define the default property values in the usual place.
Implement start/stop to reset values correctly.
Calculate the sample size only once when we negotiate.
Rename some values to make more sense.
Keep track of our byte range.
Add support for pull based scheduling. Disabled for now until we have
the whole stack working.
Set the BUFFER_OFFSET correctly.
2008-10-10 15:45:15 +00:00
Sebastian Dröge
b735321f58 Make the detection of the used subtitle a bit less strict for srt subtitles. Fixes bug #555607.
Original commit message from CVS:
Based on a patch by: xavierb at gmail dot com
* gst/subparse/gstsubparse.c:
(gst_sub_parse_data_format_autodetect):
* tests/check/elements/subparse.c: (GST_START_TEST):
Make the detection of the used subtitle a bit less strict
for srt subtitles. Fixes bug #555607.
2008-10-10 15:32:10 +00:00
Sebastian Dröge
0d43cf2474 ext/vorbis/vorbisenc.c: Fix discontinuity detection which was broken by last commit.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c:
(gst_vorbis_enc_buffer_check_discontinuous):
Fix discontinuity detection which was broken by last commit.
2008-10-10 15:21:38 +00:00
Tim-Philipp Müller
36427ba880 configure.ac: Require core CVS for ghostpad API additions used by decodebin2.
Original commit message from CVS:
* configure.ac::
Require core CVS for ghostpad API additions used by decodebin2.
2008-10-09 11:18:09 +00:00
Edward Hervey
57b0f5bef6 gst-libs/gst/audio/gstbaseaudiosrc.c: Fix debug statements (space between '%' and actual format).
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Fix debug statements (space between '%' and actual format).
2008-10-08 15:30:33 +00:00
Wim Taymans
fbeec41546 gst/playback/gstdecodebin2.c: Remove bogus assert, the decodepad could have been created inside an already existing g...
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_pad_activate):
Remove bogus assert, the decodepad could have been created inside an
already existing group.
2008-10-08 14:44:04 +00:00
Andy Wingo
a3887a915a changelog
Original commit message from CVS:
changelog
2008-10-08 14:01:42 +00:00
Andy Wingo
3329abde33 gst/playback/gstdecodebin2.c (expose_pad): Fix typo: unset target instead of setting it.
Original commit message from CVS:
2008-10-08  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstdecodebin2.c (expose_pad): Fix typo: unset
target instead of setting it.
(gst_decode_pad_activate, gst_decode_pad_unblock): This is now the
API for a decode pad. The bugfix is that we set the group in
activate(), not when the pad was created because it might be NULL
then.
(gst_decode_group_control_source_pad, gst_decode_group_expose):
Update to use the API.
2008-10-08 14:00:07 +00:00
Andy Wingo
6c7e1c8a9b gst/playback/gstdecodebin2.c (struct _GstDecodePad): Change to be a subclass of GstGhostPad.
Original commit message from CVS:
2008-10-08  Andy Wingo  <wingo@pobox.com>

* gst/playback/gstdecodebin2.c (struct _GstDecodePad): Change to
be a subclass of GstGhostPad.
(analyze_new_pad): So, when emitting the signals that determine
how we do autoplugging, already create the ghost pad and use it as
the pad in the signal arguments. This allows applications to make
a connection between the pad passed in e.g. autoplug-continue, and
the pad passed in new-decoded-pad.
(connect_pad, expose_pad): Update to receive the ghosted decode
pad in the args, retargetting it as necessary if we have to plug
the target pad through a multiqueue.
(gst_decode_group_control_source_pad): Adapt to receive an
already-ghosted pad that just needs activation, blocking, and
drain notification.
(sort_end_pads): Adapt for decode pads actually being pads.
(gst_decode_group_expose): Adapt for decode pads actually being
pads. Rewrite the decode pad names so they appear in order. Adds a
new error case if we couldn't set the name.
(gst_decode_group_free, gst_decode_group_hide): Adapt cleanup
logic.
(gst_decode_pad_set_blocked, gst_decode_pad_add_drained_check):
New API for the decode pad, needed because we shouldn't do these
things inside gst_decode_pad_new(), but after.
(gst_decode_pad_new): Change to actually make the real pad, and
delay the blocking/drainage bits.
2008-10-08 12:49:40 +00:00
Daniel Drake
43e1dcbd18 ext/ogg/gstoggmux.c: Unref all buffers when clearing collectpads. Fixes bug #546955.
Original commit message from CVS:
Patch by: Daniel Drake <dsd at laptop dot org>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear_collectpads):
Unref all buffers when clearing collectpads. Fixes bug #546955.
2008-10-08 12:12:01 +00:00
Klaas
93f2eaa98c ext/vorbis/vorbisenc.*: Keep track of the upstream segments and use the running time on that segment instead of the b...
Original commit message from CVS:
Based on a patch by: Klaas <klaas at rivercrew dot net>
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_sink_event),
(gst_vorbis_enc_buffer_check_discontinuous),
(gst_vorbis_enc_chain), (gst_vorbis_enc_change_state):
* ext/vorbis/vorbisenc.h:
Keep track of the upstream segments and use the running time on that
segment instead of the buffer timestamp everywhere. Fixes bug #525807.
2008-10-08 12:08:01 +00:00
Sebastian Dröge
c915582c17 gst/audioconvert/audioconvert.c: Prevent overflows with big buffer when calculating the size of the intermediate buff...
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (audio_convert_convert):
Prevent overflows with big buffer when calculating the size of
the intermediate buffer by using gst_util_uint64_scale() instead of
plain arithmetics. Fixes bug #552801.
2008-10-08 11:50:50 +00:00
Pavel Zeldin
947ecd72c4 ext/pango/gstclockoverlay.*: API: Add ability to specify format for date/time display by adding a "time-format" prope...
Original commit message from CVS:
Patch by: Pavel Zeldin <pzeldin at gmail dot com>
* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time),
(gst_clock_overlay_class_init), (gst_clock_overlay_finalize),
(gst_clock_overlay_init), (gst_clock_overlay_set_property),
(gst_clock_overlay_get_property):
* ext/pango/gstclockoverlay.h:
API: Add ability to specify format for date/time display by
adding a "time-format" property.
Fixes bug #554879.
2008-10-08 10:49:15 +00:00
Jan Gerber
76b6a56acb gst-libs/gst/riff/riff-media.c: Add FFV1 fourcc to support playback of FFMPEG lossless video in AVI. Fixes bug #555319.
Original commit message from CVS:
Patch by: Jan Gerber <j at oil21 dot org>
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_video_template_caps):
Add FFV1 fourcc to support playback of FFMPEG lossless video
in AVI. Fixes bug #555319.
2008-10-08 09:22:26 +00:00
Håvard Graff
11086cf6f8 gst-libs/gst/audio/gstbaseaudiosrc.c: Implement skew clock slaving. Fixes #552559.
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Implement skew clock slaving. Fixes #552559.
2008-10-08 09:12:36 +00:00
Wim Taymans
dd01a1e56a gst-libs/gst/audio/: Fix include of config.h
Original commit message from CVS:
* gst-libs/gst/audio/multichannel.c:
* gst-libs/gst/audio/testchannels.c:
Fix include of config.h
2008-10-08 09:10:23 +00:00
Tero Saarni
2f96504ff9 gst-libs/gst/sdp/gstsdpmessage.c: Fix parsing of the c= field containing multicast addresses.
Original commit message from CVS:
Based on Patch by: Tero Saarni <tero dot saarni at gmail dot com>
* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_parse_line),
(print_media), (gst_sdp_message_dump):
Fix parsing of the c= field containing multicast addresses.
Fixes #552199.
Add the connection info to the session or streams.
Fix parsing of the bandwidth.
Add debugging for the connections and bandwidths for a media.
Add debugging for the bandwidth of the session.
2008-10-06 16:36:20 +00:00
Wim Taymans
a2eb053641 gst-libs/gst/rtp/gstbasertppayload.c: Configure the next seqnum and timestamp in the state change so that they can be...
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_change_state):
Configure the next seqnum and timestamp in the state change so that they
can be queried soon after.
2008-10-06 16:31:27 +00:00
Wim Taymans
b86ef2dcf2 gst-libs/gst/rtp/gstbasertpdepayload.c: Improve debugging of the rtptime.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain):
Improve debugging of the rtptime.
2008-10-06 16:29:33 +00:00
Jan Schmidt
a013a6864b configure.ac: Back to development -> 0.10.21.1
Original commit message from CVS:
* configure.ac:
Back to development -> 0.10.21.1
2008-10-05 11:33:47 +00:00
Sebastian Dröge
c0b1a37a34 ChangeLog surgery
Original commit message from CVS:
ChangeLog surgery
2008-10-05 08:18:31 +00:00
Sebastian Dröge
44143f1dcc gst/typefind/gsttypefindfunctions.c: Add typefinder for MXF.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mxf_type_find),
(plugin_init):
Add typefinder for MXF.
2008-10-05 08:11:53 +00:00
Sebastian Dröge
d3edbe7745 gst/typefind/gsttypefindfunctions.c: Add typefinder for MXF.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mxf_type_find),
(plugin_init):
Add typefinder for MXF.
2008-10-05 08:10:09 +00:00
Jan Schmidt
c3dfad8ff8 tests/icles/Makefile.am: Only build test-colorkey if GTK+ is available.
Original commit message from CVS:
* tests/icles/Makefile.am:
Only build test-colorkey if GTK+ is available.
2008-10-03 15:19:40 +00:00