Alban Browaeys
71e39c0e84
playsink: do not abort if a property is not found.
...
If a property is not found (for example last-sample when
gst_debug_bin_to_dot_file is used while the pipeline is
slightly broken (thus no last-sample) the unref of the item
gvalue which is not refed fails. Only unref if it was found.
2012-05-15 09:22:44 +02:00
Alban Browaeys
7e054c9af0
playsink: missing guard around gst pad add probe
...
This miss prevent from switching from one track to the other.
Issue encountered with rhythmbox and totem ports.
2012-05-15 09:22:12 +02:00
Mark Nauwelaerts
4ce453de97
playbin2: default text element is now subtitleoverlay
...
... and not so much textoverlay, though the former also uses the latter.
2012-05-14 10:14:36 +02:00
Руслан Ижбулатов
d34b8023e9
playsink: fix printf arguments in debug message
2012-05-12 13:53:40 +01:00
Sebastian Dröge
cc717f1f62
playsink: Initialize variable to silence wrong compiler warning
2012-05-09 12:03:44 +02:00
Sebastian Dröge
d7371bc87c
playsink: Port changes to 0.11
2012-05-09 10:30:55 +02:00
Mark Nauwelaerts
e623bea6fa
playbin2: properly reconfigure upon subsequent no-more-pads
...
... such as during switch in chained ogg.
2012-05-09 10:28:35 +02:00
Wim Taymans
7736044d45
playsink: make playsink reusable
...
The sinkpads are unblocked when going from PAUSED->READY, we need to block them
again when going READY->PAUSED. The blocking of the pad previously only happened
when it was freshly obtained with _request_pad or when the caps changed. If we
don't release the pad when going to READY it was previously never blocked again
causing not-linked errors.
2012-05-01 12:19:11 +02:00
Wim Taymans
f21b7437e7
playsink: don't leak the colorbalance element
2012-05-01 12:09:31 +02:00
Sebastian Dröge
69b18ab09d
gst-libs: Remove interfaces libs and mixer/tuner interfaces
...
The navigation interface is now in the video library.
2012-04-13 13:14:13 +02:00
Tim-Philipp Müller
3c6a3ad629
Use new gst_element_class_set_static_metadata()
2012-04-10 00:45:16 +01:00
Thiago Santos
6eee006e82
Merge branch '0.10'
2012-04-04 13:56:17 -03:00
Thiago Santos
84abbe0d52
playsink: add send-event-mode property
...
Adds a property for playsink to define how it should handle
events sent in send_event function. The default is the same as
GstBin's, sending events to all internal sinks. There is also
mode-first, that will send to sinks until the one handles the
event successfully.
https://bugzilla.gnome.org/show_bug.cgi?id=673211
2012-04-04 11:38:29 -03:00
Sebastian Dröge
9e13d70b2c
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
gst-libs/gst/video/video-overlay-composition.c
tests/check/libs/video.c
2012-03-29 15:00:22 +02:00
Sebastian Dröge
4872c7bf75
playsink: Fix subtitle rendering if there's no video, no visualizations but a text-sink
2012-03-23 11:07:49 +01:00
Wim Taymans
32bd12dba9
Merge branch 'master' into 0.11
...
Conflicts:
.gitignore
common
configure.ac
ext/vorbis/gstvorbisdeclib.h
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/riff/riff-read.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkconvertbin.c
tests/check/libs/video.c
2012-03-22 11:35:13 +01:00
Vincent Penquerc'h
73605cb33d
playsink: send navigation event to the sink as a fallback
...
When the video sink is a fakesink, which does not implement the
navigation interface, playsink will drop the navigation command.
In this case, send to the video sink as a fallback. It breaks
the interface abstraction, but is better than just dropping the
navigation event.
2012-03-15 13:02:34 +00:00
Mark Nauwelaerts
9fc640b9e0
playsink: remove circular ref between bin and internal pad
...
... by not assigning an additional ref to an async blocked callback,
which should not be called anyway by the time the object is gone.
Fixes #672006 .
2012-03-14 17:32:10 +01:00
Tim-Philipp Müller
29c266ccff
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
common
docs/libs/gst-plugins-base-libs.types
ext/pango/gsttextoverlay.c
ext/vorbis/gstvorbisdec.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkconvertbin.c
sys/ximage/ximagesink.c
sys/xvimage/xvimagesink.c
2012-03-08 20:31:34 +00:00
Mark Nauwelaerts
b2a162ca77
playsink: audio convert bin need not be unconditionally present
...
... so avoid NULL manipulation when setting up chain again
(e.g. after having partially gone down to READY in native audio flag
configuration).
2012-03-08 17:58:17 +01:00
Sebastian Dröge
15091ad124
playsink: Chain up to the parent's GstBin::handle_message() for non-prepare-xoverlay element messages
2012-03-05 15:24:20 +01:00
Sebastian Dröge
006f8f8275
gst: Update for gstmarshal.[ch] removal
2012-03-02 11:15:02 +01:00
Sebastian Dröge
f7939bb43f
Merge branch 'master' into 0.11
...
Conflicts:
NEWS
RELEASE
configure.ac
docs/plugins/gst-plugins-base-plugins.args
docs/plugins/gst-plugins-base-plugins.hierarchy
docs/plugins/gst-plugins-base-plugins.interfaces
docs/plugins/inspect/plugin-adder.xml
docs/plugins/inspect/plugin-alsa.xml
docs/plugins/inspect/plugin-app.xml
docs/plugins/inspect/plugin-audioconvert.xml
docs/plugins/inspect/plugin-audiorate.xml
docs/plugins/inspect/plugin-audioresample.xml
docs/plugins/inspect/plugin-audiotestsrc.xml
docs/plugins/inspect/plugin-cdparanoia.xml
docs/plugins/inspect/plugin-encoding.xml
docs/plugins/inspect/plugin-ffmpegcolorspace.xml
docs/plugins/inspect/plugin-gdp.xml
docs/plugins/inspect/plugin-gio.xml
docs/plugins/inspect/plugin-gnomevfs.xml
docs/plugins/inspect/plugin-libvisual.xml
docs/plugins/inspect/plugin-ogg.xml
docs/plugins/inspect/plugin-pango.xml
docs/plugins/inspect/plugin-playback.xml
docs/plugins/inspect/plugin-subparse.xml
docs/plugins/inspect/plugin-tcp.xml
docs/plugins/inspect/plugin-theora.xml
docs/plugins/inspect/plugin-typefindfunctions.xml
docs/plugins/inspect/plugin-uridecodebin.xml
docs/plugins/inspect/plugin-videorate.xml
docs/plugins/inspect/plugin-videoscale.xml
docs/plugins/inspect/plugin-videotestsrc.xml
docs/plugins/inspect/plugin-volume.xml
docs/plugins/inspect/plugin-vorbis.xml
docs/plugins/inspect/plugin-ximagesink.xml
docs/plugins/inspect/plugin-xvimagesink.xml
gst-libs/gst/app/gstappsink.c
gst-libs/gst/audio/mixer.c
gst-libs/gst/audio/mixer.h
gst-libs/gst/tag/gstxmptag.c
gst-libs/gst/video/colorbalance.c
gst-libs/gst/video/colorbalance.h
gst/adder/gstadder.c
gst/playback/gstplaybasebin.c
gst/playback/gstplaybin2.c
gst/playback/gstplaysink.c
gst/videoscale/gstvideoscale.c
tests/check/elements/videoscale.c
tests/examples/seek/seek.c
tests/examples/v4l/probe.c
win32/common/_stdint.h
win32/common/audio-enumtypes.c
win32/common/config.h
2012-03-02 10:00:55 +01:00
Sebastian Dröge
361e1e2e98
playsink: Use g_signal_handlers_block_by_func()/unblock_by_func() instead of disconnecting and reconnecting
2012-02-23 13:41:25 +01:00
Sebastian Dröge
4289c0c899
playsink: Proxy colorbalance interface
2012-02-23 13:32:00 +01:00
Sebastian Dröge
d5779c96c4
playsink: Proxy navigation interface
2012-02-23 11:54:27 +01:00
Sebastian Dröge
993c6e006a
playsink: Proxy the XOverlay interface
2012-02-23 11:33:27 +01:00
Sebastian Dröge
b8343b4a14
playsink: Force the aspect ratio if the sink has such a property
2012-02-23 11:05:11 +01:00
Sebastian Dröge
2c565f72df
playsink: Only use the sink's colorbalance interface if it supports at least brightness/contrast/hue/saturation
2012-02-22 14:57:31 +01:00
Sebastian Dröge
68220a1893
playsink: Only really use software volume if requested
2012-02-22 12:08:35 +01:00
Sebastian Dröge
dfa508ffa1
playsink: Add a software color-balance element before the sink if the sink doesn't support changing the color-balance
2012-02-22 12:08:10 +01:00
Sebastian Dröge
018bb2ca6f
playsink: Implement GstStreamVolume interface
2012-02-22 10:23:26 +01:00
Wim Taymans
4370d42cb9
playback: find raw caps correctly
2012-02-20 15:21:37 +01:00
Sebastian Dröge
68c0790817
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/propertyprobe.c
sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Mark Nauwelaerts
be34d4c78e
playsink: verify linking to overlay element
2012-01-19 16:43:32 +01:00
Mark Nauwelaerts
e5f6675ea3
playsink: avoid finding sink in NULL bin in corner case
2012-01-19 16:43:30 +01:00
Wim Taymans
3d42f0f6ed
port to new glib thread API
2012-01-19 11:36:17 +01:00
Havard Graff
95be60de15
Fix various unlikely, but still potential memoryleaks in error code paths
...
https://bugzilla.gnome.org/show_bug.cgi?id=667311
2012-01-05 13:27:23 +00:00
Tim-Philipp Müller
fb6d09055a
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/playback/gstplaybasebin.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gsturidecodebin.c
sys/xvimage/xvimagesink.c
tests/examples/Makefile.am
win32/common/libgstvideo.def
Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller
5440ae3c18
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-04 20:50:25 +00:00
Tim-Philipp Müller
177525f89f
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst-libs/gst/netbuffer/gstnetbuffer.c
gst/ffmpegcolorspace/avcodec.h
gst/ffmpegcolorspace/gstffmpegcodecmap.c
gst/ffmpegcolorspace/imgconvert.c
gst/ffmpegcolorspace/imgconvert_template.h
gst/ffmpegcolorspace/mem.c
gst/playback/README
gst/playback/gstplaybasebin.c
gst/playback/gstplaybasebin.h
gst/playback/gstplaybin.c
sys/v4l/v4lmjpegsrc_calls.c
sys/v4l/videodev_mjpeg.h
tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik
14644457b0
various: typo fixes
...
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Wim Taymans
59113af604
Use the new GstSample for snapshots
...
Make appsink return a GstSample. Remove the pull_buffer_list method because it
is not very useful anymore.
Pass GstSample to the conversion function.
Update playbin2 and examples
2011-12-01 16:53:11 +01:00
Wim Taymans
b4cdf008dd
fix for element flag cleanups
2011-11-28 16:55:32 +01:00
Vincent Penquerc'h
96374054ac
various: fix pad template leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:02 +00:00
Wim Taymans
7402d3a3d2
update for _get_caps() -> _query_caps()
2011-11-15 18:04:17 +01:00
Wim Taymans
308f6301a8
update for pad probe api changes
2011-11-08 11:08:21 +01:00
Wim Taymans
616e9b706e
fix for new pad probe types
...
Restore the previous behaviour by only blocking downstream items and not
upstream events.
2011-11-07 17:10:48 +01:00
Wim Taymans
7ac25e9b26
Merge branch 'master' into 0.11
...
Conflicts:
common
configure.ac
gst-libs/gst/audio/gstbaseaudiosink.c
gst/playback/gstdecodebin2.c
gst/playback/gstplaysinkaudioconvert.c
gst/playback/gstplaysinkaudioconvert.h
gst/playback/gstplaysinkvideoconvert.c
gst/playback/gstplaysinkvideoconvert.h
2011-11-07 12:23:15 +01:00
Wim Taymans
cf8481b990
fix pad template names for request pads
2011-11-04 10:49:48 +01:00
Wim Taymans
57fe2addef
update for request pads change.
2011-11-03 17:58:57 +01:00
Vincent Penquerc'h
ae3ba53391
playsink: handle after-the-fact changes in converters/volume booleans
...
The playsink was nastily poking a boolean in the structure.
Make those booleans properties, so we are told when they change,
and rebuild the conversion bin when they do.
Some cleanup to go with it too.
https://bugzilla.gnome.org/show_bug.cgi?id=661262
2011-11-03 10:02:31 +01:00
Tim-Philipp Müller
b52c5819fb
Update for pad API changes
...
GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
2011-11-01 00:34:28 +00:00
Wim Taymans
73b894107a
Merge branch 'master' into 0.11
...
Conflicts:
ext/vorbis/gstvorbisdec.c
ext/vorbis/gstvorbisenc.c
ext/vorbis/gstvorbisenc.h
gst/audiotestsrc/gstaudiotestsrc.c
2011-10-08 10:19:06 +02:00
Robert Swain
ef4a4a0e94
playsink: Add audio- and text-sink props
2011-10-05 12:45:49 +02:00
Wim Taymans
a00927ad03
Merge branch 'master' into 0.11
2011-10-04 17:58:49 +02:00
Robert Swain
ddcda53714
playsink: Add video-sink property
...
The video-sink property allows manual specification via g_object_set ()
of the video sink element to be used.
2011-10-04 16:24:01 +02:00
Edward Hervey
17bfba09f1
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggdemux.c
ext/pango/gsttextoverlay.c
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudiosrc.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Josep Torra
8f8ad316ce
Revert "playsink: only add text overlay if vido sink also accepts raw caps"
...
This reverts commit a22faad18a
. Instead
of disabling subtitles completelly when video stream have custom caps,
just let the sutbtileoverlay cope with them as now it's able to.
2011-09-14 11:05:45 +02:00
Sebastian Dröge
0f654f3feb
Merge branch 'master' into 0.11
...
Conflicts:
docs/libs/Makefile.am
tests/check/elements/decodebin2.c
2011-09-08 14:42:00 +02:00
Josep Torra
a22faad18a
playsink: only add text overlay if vido sink also accepts raw caps
...
Fixes regression, pipeline fails with not negotiated, on media
containing subtitles when decoder/sink with custom caps is used.
2011-09-07 16:08:38 +02:00
Wim Taymans
7012e88090
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/audio/audio.h
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudiodecoder.h
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudioencoder.h
gst/playback/Makefile.am
gst/playback/gstplaybin.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkvideoconvert.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
gst/videoscale/gstvideoscale.c
win32/common/libgstaudio.def
2011-09-06 15:24:32 +02:00
Tim-Philipp Müller
b1c00adf31
Revert "playsink: Try include 'pitch', if no other sink is provided"
...
This reverts commit 105814e2c7
.
The general consensus seems to be that we should revert this for
now. If such behaviour is desired, we should probably enable it
via a flag. And maybe use the scaletempo plugin instead.
2011-09-05 14:44:27 +01:00
Sebastian Dröge
705ca1d55a
playsink: Don't leak the videochain ts-offset element
...
Also don't leak the audiochain ts-offset element if one is
found but the sink doesn't support volume settings.
2011-09-05 12:02:37 +02:00
Sebastian Dröge
89a899fd9d
playsink: Use gst_object_unref() instead of g_object_unref() for better debugging
2011-09-05 11:55:59 +02:00
David Schleef
924f743981
playback: Add define for colorspace element
...
Single point of change if you want to switch from ffmpegcolorspace
to colorspace.
2011-09-01 11:41:31 -07:00
Sebastian Dröge
49b301bcd6
playsink: Only unref ts_offset elements if they're not NULL
2011-08-31 14:45:08 +02:00
Jan Schmidt
105814e2c7
playsink: Try include 'pitch', if no other sink is provided
...
As a default, try the pipeline 'pitch ! audioconvert ! autoaudiosink'
before trying plain autoaudiosink
2011-08-30 18:21:31 +10:00
Wim Taymans
811a8961bf
playsink: fix ts_offset refcounting
2011-08-29 13:33:49 +02:00
Wim Taymans
e1287b97ab
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggmux.c
gst-libs/gst/audio/audio.c
gst-libs/gst/audio/audio.h
gst-libs/gst/audio/multichannel.h
gst-libs/gst/pbutils/Makefile.am
gst-libs/gst/pbutils/gstdiscoverer.c
gst/playback/gstplaysinkaudioconvert.c
gst/playback/gstplaysinkvideoconvert.c
win32/common/libgstaudio.def
2011-08-29 11:37:36 +02:00
David Schleef
a912374342
playback: reference count ts_offset
...
Apparently this object is being used after it's freed. This is one
way to fix it, although perhaps not the best way. Fixes : #656715 .
2011-08-25 14:08:34 -07:00
Wim Taymans
ba41bb5ca7
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggmux.c
gst/playback/gstplaysink.c
2011-08-18 19:36:50 +02:00
Edward Hervey
2ee31ccac9
playsink: Reconfigure when pads are added later
...
Instead of just assuming all pads are created at the same time,
remember which ones are actually new (via ->pending_blocked_pads).
This allows the following use-case to properly work:
* Upstream starts with audio-only
* Only that pad gets data, blocks and a real audio sink is created
* Upstream laters adds a video stream
* A new pad is requested, blocks and reconfiguration kicks in in
order to add a new real video sink
2011-08-18 13:42:26 +02:00
Wim Taymans
e904c529e3
fix for _negotiated_caps() change
2011-08-15 12:18:15 +02:00
Mark Nauwelaerts
ebfd6acde1
playsink: only unset initialized GValue
2011-06-28 19:03:23 +02:00
Wim Taymans
d06f599193
-base: port elements to new video caps
2011-06-16 12:52:13 +02:00
Wim Taymans
35bec59536
ffmpegcolorspace: remove plugin
2011-06-15 18:01:04 +02:00
Wim Taymans
f565812e25
playback: changes for message API changes
2011-06-08 13:45:41 +02:00
Wim Taymans
3b09cfe54d
playsink: refactor block/unblock code a little
2011-06-02 12:08:22 +02:00
Wim Taymans
f91c753959
probes: port to new API for blocking and probes
2011-06-01 19:34:54 +02:00
Wim Taymans
c7428aeaae
playbin: fixed for new pad block API
2011-05-30 18:36:14 +02:00
Wim Taymans
8501753033
-base: change for changed set_blocked API
2011-05-26 16:18:16 +02:00
Sebastian Dröge
01c798605a
playsink: Use correct number of parameters to gst_pad_get_caps()
2011-05-16 17:08:45 +02:00
Sebastian Dröge
d0362c2b87
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/alsa/gstalsasrc.c
gst-libs/gst/audio/gstbaseaudiosink.c
gst-libs/gst/tag/gstxmptag.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
sys/xvimage/xvimagesink.c
2011-05-16 17:06:22 +02:00
Sebastian Dröge
9337a293e1
playsink: Use new ghostpad/proxypad API to get the internal pad
2011-05-14 11:42:33 +02:00
Sebastian Dröge
2f8467d682
playsink: Add audio and video converter convenience bins
...
These reconfigure based on the caps and plugin in converters if
necessary. This also makes switching between compressed and raw
streams work flawlessly without loosing the states of any element
somewhere or having running time problems.
2011-05-14 11:42:32 +02:00
Sebastian Dröge
105da803ad
playbin2/playsink: Decide if A/V caps are raw only inside playsink
...
Before playbin2 would use different selectors for raw audio and
compressed audio (and the same for video) and used different
pads from playsink. This made the involved logic much more
complex and was not implemented completely in playsink, which
made it impossible to support files with a compressed and
uncompressed stream that is support by the sink.
playbin2 handles raw/non-raw streams the same now and the
decision is left to playsink, which now can also handle
caps changes from raw to non-raw and the other way around.
Fixes bug #632788 .
2011-05-14 11:42:32 +02:00
Wim Taymans
7cad11e912
-base: fix for now request pad API
2011-05-10 16:44:37 +02:00
Wim Taymans
ec57868488
-base: don't use buffer caps
...
Port to newest 0.11 core API, remove GST_PAD_CAPS and GST_BUFFER_CAPS.
2011-05-09 13:05:12 +02:00
Sebastian Dröge
64851f12c0
gst: Update for new GstIterator API
2011-05-05 16:03:52 +02:00
Wim Taymans
e1869fa267
Merge branch 'master' into 0.11-fdo
2011-03-28 20:13:59 +02:00
Sebastian Dröge
c27cd709bf
playsink: Update comment about why an audio queue is needed
2011-03-24 14:22:00 +01:00
Sebastian Dröge
65320a04ab
Revert "playsink: Only add a queue before the audio sink if visualizations are enabled"
...
This reverts commit df886c0622
.
2011-03-24 14:21:01 +01:00
Sebastian Dröge
df886c0622
playsink: Only add a queue before the audio sink if visualizations are enabled
...
The queue is not needed otherwise and will add some delay to track
switches.
2011-03-24 14:04:54 +01:00
Sebastian Dröge
2c057f745f
playsink: Remember automatically created sinks for future reconfigures
...
Also allow reuse of sink elements in error cases.
2011-03-23 15:08:13 +01:00
Wim Taymans
03c710d6cd
miniobject: fix for changed miniobject
2011-02-28 11:50:03 +01:00
Mark Nauwelaerts
19052a847d
playsink: release all chains when going to NULL
...
Also fixes #642466 .
2011-02-23 14:33:40 +01:00
Mark Nauwelaerts
102b4feddf
playsink: undo state change side effect on error way out
...
... to avoid subsequent cleanup disposing an element not in NULL state.
2011-02-23 14:33:35 +01:00
Mark Nauwelaerts
948e4d50a6
playsink: avoid crashing on the way out when needed chain missing
2011-02-23 10:33:44 +01:00
Sebastian Dröge
66ce6200a8
playsink: gen_video_chain() always returns a bin, no need to check for that
2010-12-02 19:04:28 +01:00