Commit graph

259 commits

Author SHA1 Message Date
j^
dc4240de34 gst/qtdemux/qtdemux.c: Add codec mapping for xvid, fmp4 and ac3 tracks.
Original commit message from CVS:
Patch by: j^ <j at oil21.org>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps),
(qtdemux_audio_caps):
Add codec mapping for xvid, fmp4 and ac3 tracks.
Fixes #565850
2008-12-28 09:50:31 +00:00
Julien Moutte
de3590f545 gst/qtdemux/qtdemux.c: Add MPG1 and MPG2 fourcc to supported qtdemux video codecs as I found some video clips using t...
Original commit message from CVS:
2008-11-25  Julien Moutte  <julien@fluendo.com>

* gst/qtdemux/qtdemux.c: (qtdemux_video_caps): Add MPG1 and MPG2
fourcc
to supported qtdemux video codecs as I found some video clips
using
those.
2008-11-25 17:47:24 +00:00
Tal Shalif
7b60afd805 gst/qtdemux/qtdemux.c: Use G_{BIG,LITTLE}_ENDIAN instead of the non-GLib variants as the latter don't exist on some s...
Original commit message from CVS:
Patch by: Tal Shalif <tshalif at nargila dot org>
* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
Use G_{BIG,LITTLE}_ENDIAN instead of the non-GLib variants as
the latter don't exist on some systems (mingw). Fixes bug #561992.
2008-11-23 11:14:42 +00:00
Andy Wingo
c71fe3f75d gst/qtdemux/qtdemux.*: Queue up new segment events instead of sending them from the seeking thread.
Original commit message from CVS:
* gst/qtdemux/qtdemux.h (struct _GstQTDemux):
* gst/qtdemux/qtdemux.c (gst_qtdemux_do_seek): Queue up new
segment events instead of sending them from the seeking thread.
Fixes #559288.
(gst_qtdemux_push_pending_newsegment): New helper, sends out
queued newsegment events.
(gst_qtdemux_loop_state_movie): Voilà, call it here. Only need to
call it here, as we only seek when looping, and only push in the
movie state.
2008-11-12 11:55:14 +00:00
Mark Nauwelaerts
03ab3610c7 gst/qtdemux/: Add cover and alternative copyright tag, and enhance some existing ones by marking them as container at...
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_tag_add_tmpo),
(qtdemux_tag_add_covr), (qtdemux_parse_udta):
* gst/qtdemux/qtdemux_fourcc.h:
* gst/qtdemux/qtdemux_types.c:
Add cover and alternative copyright tag, and enhance some existing
ones by marking them as container atoms.
2008-11-11 19:52:05 +00:00
Mark Nauwelaerts
9aecda0d08 gst/qtdemux/qtdemux.c: Refactor some raw audio caps building, and handle >16-bit cases.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
(qtdemux_video_caps), (qtdemux_audio_caps):
Refactor some raw audio caps building, and handle >16-bit cases.
Fix/replace building caps from a string description.
2008-11-10 16:36:09 +00:00
Stefan Kost
084812bffd Don't install static libs for plugins. Fixes #550851 for -good.
Original commit message from CVS:
* ext/aalib/Makefile.am:
* ext/annodex/Makefile.am:
* ext/cairo/Makefile.am:
* ext/dv/Makefile.am:
* ext/esd/Makefile.am:
* ext/flac/Makefile.am:
* ext/gconf/Makefile.am:
* ext/gdk_pixbuf/Makefile.am:
* ext/hal/Makefile.am:
* ext/jpeg/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/libcaca/Makefile.am:
* ext/libmng/Makefile.am:
* ext/libpng/Makefile.am:
* ext/mikmod/Makefile.am:
* ext/pulse/Makefile.am:
* ext/raw1394/Makefile.am:
* ext/shout2/Makefile.am:
* ext/soup/Makefile.am:
* ext/speex/Makefile.am:
* ext/taglib/Makefile.am:
* ext/wavpack/Makefile.am:
* gst/alpha/Makefile.am:
* gst/apetag/Makefile.am:
* gst/audiofx/Makefile.am:
* gst/auparse/Makefile.am:
* gst/autodetect/Makefile.am:
* gst/avi/Makefile.am:
* gst/cutter/Makefile.am:
* gst/debug/Makefile.am:
* gst/effectv/Makefile.am:
* gst/equalizer/Makefile.am:
* gst/flx/Makefile.am:
* gst/goom/Makefile.am:
* gst/goom2k1/Makefile.am:
* gst/icydemux/Makefile.am:
* gst/id3demux/Makefile.am:
* gst/interleave/Makefile.am:
* gst/law/Makefile.am:
* gst/level/Makefile.am:
* gst/matroska/Makefile.am:
* gst/median/Makefile.am:
* gst/monoscope/Makefile.am:
* gst/multifile/Makefile.am:
* gst/multipart/Makefile.am:
* gst/oldcore/Makefile.am:
* gst/qtdemux/Makefile.am:
* gst/replaygain/Makefile.am:
* gst/rtp/Makefile.am:
* gst/rtsp/Makefile.am:
* gst/smpte/Makefile.am:
* gst/spectrum/Makefile.am:
* gst/udp/Makefile.am:
* gst/videobox/Makefile.am:
* gst/videocrop/Makefile.am:
* gst/videofilter/Makefile.am:
* gst/videomixer/Makefile.am:
* gst/wavenc/Makefile.am:
* gst/wavparse/Makefile.am:
* sys/directdraw/Makefile.am:
* sys/directsound/Makefile.am:
* sys/oss/Makefile.am:
* sys/osxaudio/Makefile.am:
* sys/osxvideo/Makefile.am:
* sys/sunaudio/Makefile.am:
* sys/v4l2/Makefile.am:
* sys/waveform/Makefile.am:
* sys/ximage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for -good.
2008-11-04 12:28:34 +00:00
Edward Hervey
8e8e2bf451 gst/qtdemux/qtdemux.c: Remove previous wrong commit
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: Remove previous wrong commit
* tests/check/elements/icydemux.c: (icydemux_found_pad):
Remove problematic and useless refcount check.
Fixes #556381
2008-10-15 09:39:27 +00:00
Edward Hervey
0af48261b4 gst/qtdemux/qtdemux.c: Remove problematic and useless refcount check.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_node):
Remove problematic and useless refcount check.
Fixes #556381
2008-10-15 09:27:27 +00:00
Edward Hervey
53a576bb6f gst/qtdemux/qtdemux.c: Some 'broken' files out there have atom lengths of zero... which basically results in qtdemux ...
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header),
(gst_qtdemux_chain):
Some 'broken' files out there have atom lengths of zero...
which basically results in qtdemux consuming that atom again and again
until the *end of night* !
Detect that and emits an adequate element error message.
2008-09-17 14:50:42 +00:00
Jonathan Matthew
50eed1907b gst/qtdemux/qtdemux.c: Add mapping for 'tiff' => image/tiff
Original commit message from CVS:
Patch by: Jonathan Matthew <notverysmart@gmail.com>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add mapping for 'tiff' => image/tiff
Fixes #552213
2008-09-14 11:32:15 +00:00
Mark Nauwelaerts
bf5ffabf4c gst/qtdemux/: Add support for video/mj2 mime-type and its additional atoms/boxes.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(gst_qtdemux_loop_state_header), (qtdemux_parse_node),
(qtdemux_parse_trak), (qtdemux_video_caps):
* gst/qtdemux/qtdemux.h:
* gst/qtdemux/qtdemux_fourcc.h:
* gst/qtdemux/qtdemux_types.c:
Add support for video/mj2 mime-type and its additional atoms/boxes.
Fixes #550646.
2008-09-03 12:39:35 +00:00
Wim Taymans
105e002337 gst/qtdemux/qtdemux.c: Add mapping for IMA Loki SDL MJPEG ADPCM codec.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
Add mapping for IMA Loki SDL MJPEG ADPCM codec.
Add some alternative byteswapped mappings that seem to pop up sometimes.
Fixes #550288.
2008-09-02 15:27:49 +00:00
David Schleef
62491dcb74 gst/qtdemux/qtdemux.c: Add 'hdv6' as a HDV format for 1080i/60 with 3:2 pulldown, i.e., 24p.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: Add 'hdv6' as a HDV format for 1080i/60
with 3:2 pulldown, i.e., 24p.
2008-08-14 22:07:02 +00:00
Stefan Kost
dfd580b207 gst/qtdemux/qtdemux.c: Use audio/x-qdm for caps. Collect some info - mplayer has a decoder for it but ffmpeg does not.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c:
Use audio/x-qdm for caps. Collect some info - mplayer has a decoder
for it but ffmpeg does not.
2008-08-06 13:12:07 +00:00
Stefan Kost
815eb01af1 gst/qtdemux/qtdemux.c: Return the result of gst_pad_{start,stop}_task instead of hard-coded
Original commit message from CVS:
* gst/qtdemux/qtdemux.c:
Return the result of gst_pad_{start,stop}_task instead of hard-coded
TRUE.
2008-08-04 07:23:07 +00:00
Stefan Kost
115636d6d6 gst/qtdemux/: Add keyword tag support. Fixes #520694 for qtdemux.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c:
* gst/qtdemux/qtdemux_fourcc.h:
Add keyword tag support. Fixes #520694 for qtdemux.
2008-08-04 07:17:38 +00:00
Stefan Kost
aa7a44190e gst/qtdemux/qtdemux.c: Add support for tmpo tag (BPM).
Original commit message from CVS:
* gst/qtdemux/qtdemux.c:
Add support for tmpo tag (BPM).
2008-08-04 07:05:33 +00:00
Edward Hervey
637854d725 gst/qtdemux/qtdemux.c: Fix segment-stop regression.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment):
Fix segment-stop regression.
Add documentation regarding segments in quicktime files by Wim Taymans.
Fixes #544509
2008-07-25 14:50:03 +00:00
Mark Nauwelaerts
964f855f8b gst/qtdemux/qtdemux.c: Revert ISO base media spec based pixel-aspect-ratio calculation.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
(qtdemux_parse_trak):
Revert ISO base media spec based pixel-aspect-ratio calculation.
Fixes #543300.
2008-07-18 20:03:07 +00:00
Thiago Sousa Santos
a0bc9e69fe gst/qtdemux/qtdemux.c: Correctly distinguish 8bit vs 16bit raw audio. Fixes #542410.
Original commit message from CVS:
Patch by: Thiago Sousa Santos <thiagoss at lcc dot ufcg dot edu dot br>
* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
Correctly distinguish 8bit vs 16bit raw audio.  Fixes #542410.
2008-07-10 20:47:56 +00:00
Mark Nauwelaerts
2c11fa8bb6 gst/qtdemux/qtdemux.c: Set pixel-aspect-ratio in caps using display width and height provided in track.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
(qtdemux_parse_trak):
Set pixel-aspect-ratio in caps using display width and height
provided in track.
2008-07-08 21:05:18 +00:00
David Schleef
3665725eaf gst/qtdemux/qtdemux.c: Add Dirac stream type
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: Add Dirac stream type
2008-06-27 18:11:01 +00:00
Bastien Nocera
facf5d90c7 gst/qtdemux/: Improve meta-data handling, add 'comment', 'description' and 'copyright' tag handling.
Original commit message from CVS:
Patch by: Bastien Nocera <hadess at hadess dot net>
* gst/qtdemux/qtdemux.c: (qtdemux_tag_add_str),
(qtdemux_parse_udta):
* gst/qtdemux/qtdemux_fourcc.h:
Improve meta-data handling, add 'comment', 'description' and
'copyright' tag handling.
Fixes #535935
2008-05-31 16:53:23 +00:00
Julien Moutte
c39a49245f gst/qtdemux/qtdemux.c: Make sure we we don't clip the segment's stop using the main segment duration as that could cr...
Original commit message from CVS:
2008-05-31  Julien Moutte  <julien@fluendo.com>

* gst/qtdemux/qtdemux.c: (gst_qtdemux_find_keyframe),
(gst_qtdemux_find_segment), (gst_qtdemux_perform_seek),
(gst_qtdemux_seek_to_previous_keyframe),
(gst_qtdemux_activate_segment), (gst_qtdemux_loop): Make sure we
we don't clip the segment's stop using the main segment duration
as
that could crop quite some video frames. Make reverse playback
support
more robust and support edit lists. Support seeking to the last
frame,
and fix reverse looping playback. Add some debugging.
* win32/common/config.h: Updated.
2008-05-31 15:30:41 +00:00
j^
ec536c8707 gst/qtdemux/qtdemux.c: Add caps for DVCPRO50 and DVCPRO HD PAL/NTSC. See #526481.
Original commit message from CVS:
Patch by: j^ <j at oil21 dot org>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add caps for DVCPRO50 and DVCPRO HD PAL/NTSC. See #526481.
2008-05-26 16:25:15 +00:00
Wim Taymans
afc9d66fbf gst/qtdemux/qtdemux.c: Unbreak segment activation again. Fixes #531672.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_find_segment),
(gst_qtdemux_activate_segment):
Unbreak segment activation again. Fixes #531672.
2008-05-26 13:51:38 +00:00
j^
4f13f56ef9 gst/qtdemux/qtdemux.c: Add more mpeg2 variants. Fixes #530886.
Original commit message from CVS:
Patch by: j^ <j@bootlab.org>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add more mpeg2 variants. Fixes #530886.
2008-05-02 09:09:58 +00:00
Tim-Philipp Müller
64baa0a0c6 Use new error code for encrypted streams (which requires core CVS).
Original commit message from CVS:
* configure.ac:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
Use new error code for encrypted streams (which requires core CVS).
2008-04-30 12:18:41 +00:00
Tim-Philipp Müller
e483f6c651 gst/qtdemux/qtdemux.c: Fix swapped pad template names, spotted by Thiago Sousa Santos.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_videosrc_template),
(gst_qtdemux_audiosrc_template):
Fix swapped pad template names, spotted by Thiago Sousa Santos.
2008-04-30 12:10:02 +00:00
Wim Taymans
7f18fb8c35 gst/qtdemux/qtdemux.c: Unbreak streaming mode again.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (next_entry_size):
Unbreak streaming mode again.
2008-03-25 16:44:20 +00:00
Wim Taymans
aec7206df9 gst/qtdemux/qtdemux.c: Make sure we always send a DISCONT after a seek by setting the sample index to an undefined va...
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
(gst_qtdemux_activate_segment),
(gst_qtdemux_prepare_current_sample),
(gst_qtdemux_loop_state_movie), (qtdemux_parse_trak):
Make sure we always send a DISCONT after a seek by setting the sample
index to an undefined value after a seek.
2008-03-11 16:23:04 +00:00
Julien Moutte
848829798a gst/qtdemux/qtdemux.c: Implement reverse playback support.
Original commit message from CVS:
2007-11-24  Julien MOUTTE  <julien@moutte.net>

* gst/qtdemux/qtdemux.c: (gst_qtdemux_find_segment),
(gst_qtdemux_move_stream), (gst_qtdemux_do_seek),
(gst_qtdemux_seek_to_previous_keyframe),
(gst_qtdemux_activate_segment), (gst_qtdemux_advance_sample),
(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop): Implement
reverse playback support.
2007-11-24 14:55:04 +00:00
Julien Moutte
1f0a03d320 Fix build on Mac OS X 10.5
Original commit message from CVS:
2007-11-20  Julien MOUTTE  <julien@moutte.net>

* ext/taglib/gsttaglibmux.c: (gst_tag_lib_mux_render_tag),
(gst_tag_lib_mux_adjust_event_offsets):
* gst/qtdemux/qtdemux.c: (qtdemux_parse_theora_extension):
* sys/osxaudio/Makefile.am:
* sys/osxvideo/cocoawindow.h:
* sys/osxvideo/cocoawindow.m: Fix build on Mac OS X 10.5
2007-11-20 11:41:13 +00:00
Wim Taymans
a4540bca1e gst/qtdemux/: Add suppport for theora in quicktime according to XiphQT.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(gst_qtdemux_prepare_current_sample),
(gst_qtdemux_loop_state_movie), (qtdemux_parse_theora_extension),
(qtdemux_parse_node), (qtdemux_parse_trak), (qtdemux_video_caps):
* gst/qtdemux/qtdemux_fourcc.h:
* gst/qtdemux/qtdemux_types.c:
Add suppport for theora in quicktime according to XiphQT.
2007-11-15 16:31:32 +00:00
Edward Hervey
7522192fab gst/qtdemux/qtdemux.c: Properly free QTDemuxSamples array.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(qtdemux_parse_samples):
Properly free QTDemuxSamples array.
Protect table write with a sensible check, some files apparently DO contain
stts values starting with 0 :(
2007-11-12 17:59:40 +00:00
Stefan Kost
8deb4fbd92 gst/: Drop EOS in _handle_src_event(). Fix the refcount in qtdemux that previous commit messed up.
Original commit message from CVS:
* gst/avi/gstavidemux.c:
* gst/qtdemux/qtdemux.c:
Drop EOS in _handle_src_event(). Fix the refcount in qtdemux that
previous commit messed up.
2007-11-12 17:21:59 +00:00
Stefan Kost
8ae866e5c6 gst/: Sync _handle_src_event() with oggdemux. In avidemux also ref the element when we should, but not when we its no...
Original commit message from CVS:
* gst/avi/gstavidemux.c:
* gst/qtdemux/qtdemux.c:
Sync _handle_src_event() with oggdemux. In avidemux also ref the
element when we should, but not when we its not needed.
2007-11-12 17:06:32 +00:00
Wim Taymans
b3f1b71446 gst/qtdemux/qtdemux.c: Smarter combine_flow code that also deals with downstream elements returning UNEXPECTED when t...
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
(gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie):
Smarter combine_flow code that also deals with downstream elements
returning UNEXPECTED when they receive data out of the segment
boundaries. Fixes #491305.
2007-10-30 12:29:46 +00:00
Wim Taymans
23eeb89a16 gst/qtdemux/gstrtpxqtdepay.*: Fail if we don't know the quicktime format.
Original commit message from CVS:
* gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_process),
(gst_rtp_xqt_depay_change_state):
* gst/qtdemux/gstrtpxqtdepay.h:
Fail if we don't know the quicktime format.
2007-09-26 14:26:39 +00:00
Sebastian Dröge
94f68153dd gst/qtdemux/qtdemux.c: Add fourccs for MPEG2 HDV streams. Fixes #479960.
Original commit message from CVS:
Patch by: <j at bootlab dot org>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add fourccs for MPEG2 HDV streams. Fixes #479960.
2007-09-25 05:03:58 +00:00
Tim-Philipp Müller
c8af2199d3 gst/qtdemux/: Don't assume tags are encoded as UTF-8 (#473670).
Original commit message from CVS:
* gst/qtdemux/Makefile.am:
* gst/qtdemux/qtdemux.c:
Don't assume tags are encoded as UTF-8 (#473670).
2007-09-05 16:23:21 +00:00
Wim Taymans
39321cf1f7 gst/qtdemux/qtdemux.c: Fix parsing of mp4a version 0 atoms. Fixes #465774.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_node):
Fix parsing of mp4a version 0 atoms. Fixes #465774.
2007-08-12 14:35:41 +00:00
Edward Hervey
a086ad230e gst/qtdemux/qtdemux.c: If the buffer was entirely clipped ... don't try sending it :)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_movie):
If the buffer was entirely clipped ... don't try sending it :)
2007-07-30 12:41:58 +00:00
Edward Hervey
8e316c0023 gst/qtdemux/qtdemux.c: Add codec mapping for '2vuy' (Raw YUV produced by FCP) and 'divx'.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add codec mapping for '2vuy' (Raw YUV produced by FCP) and 'divx'.
2007-07-24 14:31:56 +00:00
Wim Taymans
98ec7850a3 gst/qtdemux/qtdemux.c: Clip raw audio and video when we can, keep track of current output segment.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
(gst_qtdemux_clip_buffer), (gst_qtdemux_loop_state_movie),
(qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps):
Clip raw audio and video when we can, keep track of current output
segment.
Don't leak buffers and events when there is no output pad.
Improve debugging here and there.
2007-07-23 18:03:54 +00:00
Wim Taymans
82d3eca90b gst/qtdemux/qtdemux.c: Fix parsing of esds atoms inside mp4a atoms so that we can set correct codec_info for AAC audi...
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_node):
Fix parsing of esds atoms inside mp4a atoms so that we can set correct
codec_info for AAC audio. Fixes #457097 along with a whole other bunch
of qt/aac files.
2007-07-16 12:11:36 +00:00
Stefan Kost
42ca9c44e6 gst/qtdemux/: Add MJPG to the variants of motion jpeg.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_samples),
(qtdemux_video_caps):
* gst/qtdemux/qtdemux_fourcc.h:
Add MJPG to the variants of motion jpeg.
2007-06-20 08:26:21 +00:00
Christian Schaller
6fb347e76f add 'LEGAL' file describing why this is in -good and under what circumstances it might need to move.
Original commit message from CVS:
add 'LEGAL' file describing why this is in -good and under what
circumstances it might need to move.
2007-06-19 14:11:49 +00:00
Edward Hervey
98165a69ee gst/qtdemux/qtdemux.c: For AMR-NB streams, export the AMRSpecificBox as codec_data on the caps.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
For AMR-NB streams, export the AMRSpecificBox as codec_data on the
caps.
Fixes #447458
2007-06-14 10:23:20 +00:00