Commit graph

3976 commits

Author SHA1 Message Date
Mark Nauwelaerts
a08f76a92e rtph263pay: use found GOBs to apply Mode A payloading
... rather than falling back to sending the whole frame in one packet
if number of GOB startcodes < maximum.
One might take this further and still perform Mode B/C payloading,
but at least this should cater for decent fragments in typical cases.

Fixes #599585.
2010-04-30 13:49:43 +02:00
Mark Nauwelaerts
a6bb8338fd matroskademux: implement push mode seeking 2010-04-30 13:49:39 +02:00
Tim-Philipp Müller
e79f7beba6 docs: update for videofilter plugin merge and add gtk-doc blurb for new property 2010-04-29 20:08:43 +01:00
Sebastian Dröge
61217b521c deinterlace: Improve segment handling a bit 2010-04-29 19:28:24 +02:00
Sebastian Dröge
05a2732851 deinterlace: Order caps by amount of contained information 2010-04-29 19:28:24 +02:00
Sebastian Dröge
cb789617f9 deinterlace: Properly set interlaced field in getcaps 2010-04-29 19:28:24 +02:00
Sebastian Dröge
eeb5a23483 deinterlace: Add planar YUV support to all other simple methods 2010-04-29 19:28:24 +02:00
Sebastian Dröge
4ca4ac3f03 deinterlace: Add planar YUV support to greedyh method 2010-04-29 19:28:24 +02:00
Sebastian Dröge
bdb9675519 deinterlace: Add support for planar YUV formats in greedyl method 2010-04-29 19:28:24 +02:00
Sebastian Dröge
03a8379e20 deinterlace: Add support for Y444, Y42B, I420, YV12 and Y41B
The vfir method supports them and will be used until something else
supports it.
2010-04-29 19:28:23 +02:00
Sebastian Dröge
a626b19490 deinterlace: Define deinterlace method base classes as abstract types 2010-04-29 19:28:23 +02:00
Sebastian Dröge
600f82fbfe deinterlace: Move deinterlacing methods to their own file 2010-04-29 19:28:23 +02:00
Sebastian Dröge
a405d5a4f1 deinterlace: Simplify passthrough mode detection 2010-04-29 19:28:23 +02:00
Sebastian Dröge
3dc7215492 deinterlace: Refactor deinterlacing as preparation for supporting more color formats 2010-04-29 19:28:23 +02:00
Sebastian Dröge
e2eb012a41 videobox: Add support for Y444, Y42B and Y41B 2010-04-29 19:28:23 +02:00
Sebastian Dröge
d20306b699 videobox: Add support for YVYU and reorder template caps 2010-04-29 19:28:23 +02:00
Sebastian Dröge
4e836d3271 videobox: Translate navigation events to make sense again upstream 2010-04-29 19:28:23 +02:00
Sebastian Dröge
a105bf49e3 videobox: Properly handle ranges/lists of width or height when transforming caps
Code partly taken from the videocrop element.
2010-04-29 19:28:23 +02:00
Sebastian Dröge
f71157fa06 alpha: Fix planar YUV->RGB processing 2010-04-29 19:28:22 +02:00
Sebastian Dröge
1897ab2928 alpha: Correctly clamp after YUV->RGB conversion 2010-04-29 19:28:22 +02:00
Sebastian Dröge
545b21c9bd alpha: Add support for YUY2, YVYU and UYVY 2010-04-29 19:28:22 +02:00
Sebastian Dröge
90058bc076 videobox: Sync properties to the controller in before_transform 2010-04-29 19:28:22 +02:00
Sebastian Dröge
9fa14f8c37 videobox: Add support for YUY2 and UYUV 2010-04-29 19:28:22 +02:00
Sebastian Dröge
0294e1e48a alpha: Refactor processing and add support for other planar YUV formats
This reduces the generated code size by a factor of 2.5.
2010-04-29 19:28:22 +02:00
Sebastian Dröge
ba72a058bb alpha: Add support for YV12 input 2010-04-29 19:28:22 +02:00
Sebastian Dröge
6dd3edd0f7 videomixer: Add support for YUY2, YVYU, UYVY 2010-04-29 19:28:22 +02:00
Sebastian Dröge
bd0b307a74 videomixer: Add support for Y444, Y42B, Y41B and YV12 2010-04-29 19:28:22 +02:00
Sebastian Dröge
314fbd80e8 videofilter: Order color formats by their contained amount of information 2010-04-29 19:28:21 +02:00
Sebastian Dröge
1bc924d8ad videoflip: Drop Y41B/Y42B support
Rotating 90°/270° with subsampled YUV where horizontal
and vertical subsampling are different doesn't really work.
2010-04-29 19:28:21 +02:00
Sebastian Dröge
45571f4bd4 videoflip: Also flip the pixel-aspect-ratio if width/height are exchanged 2010-04-29 19:28:21 +02:00
Sebastian Dröge
c0e990b58f videoflip: Change the default method to identity 2010-04-29 19:28:21 +02:00
Sebastian Dröge
0515f88f7c videobalance: Reduce number of allocations per instance 2010-04-29 19:28:21 +02:00
Sebastian Dröge
3ef25c28cd videofilter: Update last-reviewed comments 2010-04-29 19:28:21 +02:00
Sebastian Dröge
c5805b6e38 videobalance: Add support for all RGB formats 2010-04-29 19:28:21 +02:00
Sebastian Dröge
80676e1777 videobalance: Add support for YUY2, UYVY, AYUV and YVYU 2010-04-29 19:28:21 +02:00
Sebastian Dröge
3d70ce60fa videobalance: Add debug category 2010-04-29 19:28:20 +02:00
Sebastian Dröge
37de42977a videobalance: Make property access threadsafe 2010-04-29 19:28:20 +02:00
Sebastian Dröge
5f396b9a71 videobalance: Add support for Y41B, Y42B and Y444 2010-04-29 19:28:20 +02:00
Sebastian Dröge
2cb7ac0192 videobalance: Use libgstvideo for format specific things 2010-04-29 19:28:20 +02:00
Sebastian Dröge
fe4f9ea16b videobalance: Make properties controllable 2010-04-29 19:28:20 +02:00
Sebastian Dröge
ea06bd33f8 videobalance: Emit "value-changed" signal of color balance interface when values change 2010-04-29 19:28:20 +02:00
Sebastian Dröge
e13cd55fab videobalance: Some random cleanup 2010-04-29 19:28:20 +02:00
Sebastian Dröge
17ba0818b1 videobalance: Stop using liboil
The used liboil function is deprecated and has no optimized
implementation anyway.
2010-04-29 19:28:20 +02:00
Sebastian Dröge
bc2edb9706 videoflip: Make property access threadsafe 2010-04-29 19:28:20 +02:00
Sebastian Dröge
650072abed gamma: Sync properties to the controller in before_transform 2010-04-29 19:28:19 +02:00
Sebastian Dröge
537effad12 videoflip: Add support for all RGB formats and AYUV 2010-04-29 19:28:19 +02:00
Sebastian Dröge
516b5f7f2e videoflip: Add support for Y41B, Y42B and Y444 2010-04-29 19:28:19 +02:00
Sebastian Dröge
e8ca390be8 videoflip: Make processing more general and use libgstvideo for all format specific things 2010-04-29 19:28:19 +02:00
Sebastian Dröge
754690dad6 videoflip: Make method property controllable and improve debug output 2010-04-29 19:28:19 +02:00
Sebastian Dröge
8c4aeb2eac videoflip: Some random cleanup 2010-04-29 19:28:19 +02:00
Sebastian Dröge
1584d16b1c videofilter: Move all elements into a single plugin
Having all these small elements in a separate plugin
is not very memory effective...
2010-04-29 19:28:19 +02:00
Sebastian Dröge
92cedb0510 gamma: Improve docs a bit 2010-04-29 19:28:19 +02:00
Sebastian Dröge
e23d74ca84 gamma: Add support for all RGB formats 2010-04-29 19:28:19 +02:00
Sebastian Dröge
2d1e6cf3f5 gamma: Add support for many packed YUV formats
That is YUY2, UYVY, AYUV and YVYU.
2010-04-29 19:28:19 +02:00
Sebastian Dröge
2de3eabac6 gamma: Add support for all other planar YUV formats
That is Y41B, Y42B, Y444, NV12 and NV21.
2010-04-29 19:28:19 +02:00
Sebastian Dröge
9f727ea05c gamma: Stop using liboil
The used liboil function is deprecated, only has a reference implementation
and is more complex than what's needed here.
2010-04-29 19:28:19 +02:00
Sebastian Dröge
155e48fb90 gamma: Use libgstvideo for format specific values and make gamma processing more generic
Allows us to easily add support for new color formats later.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
18273152b3 gamma: Make gamma property controllable
...and properly use liboil.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
2a3f99ca5f gamma: Some random cleanup 2010-04-29 19:28:18 +02:00
Sebastian Dröge
ecb0c3a932 smptealpha: Sync properties to the controller in before_transform 2010-04-29 19:28:18 +02:00
Sebastian Dröge
f005c87037 smptealpha: Add support for YV12 (converted to AYUV) 2010-04-29 19:28:18 +02:00
Sebastian Dröge
ae1783e5cd smptealpha: Add support for all 4 ARGB formats
...without format conversion.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
055c90359a smptealpha: Make color format support more generic
This allows easier addition of new formats later.
2010-04-29 19:28:18 +02:00
Sebastian Dröge
56d4230b22 smptealpha: Some random cleanup 2010-04-29 19:28:18 +02:00
Sebastian Dröge
04a1b1dc48 smpte: Add property for inverting the transition mask
This converts a left-to-right transition to right-to-left or
clock-wise to counter-clock-wise.
2010-04-29 19:28:17 +02:00
Sebastian Dröge
e17954aa6b smptealpha: Correctly detect property changes and update properties 2010-04-29 19:28:17 +02:00
Wim Taymans
754007b344 qcelpdepay: add first version of a QCELP depayloader 2010-04-29 18:07:10 +02:00
Tim-Philipp Müller
f48bc702af flvmux: hide is-live property for release
At the very least it needs a better/less wrong name.

See #613066.
2010-04-26 00:01:19 +01:00
Sebastian Dröge
5a530b19e8 videomixer: Fix byte order for MMX ARGB/AYUV color filling
Fixes bug #616409.
2010-04-22 13:30:55 +02:00
Sebastian Dröge
a27856e6b8 videomixer: Fix AYUV checker/color filling 2010-04-21 17:53:49 +02:00
Sebastian Dröge
3f88dce350 videomixer: Add i387 floating point registers to the clobbered registers list
They are the same as the mm0-mm7 MMX registers and will be overwritten
by the assembly code if gcc doesn't know about the MMX registers.

Note: They're all added to the list of clobbered registers in all cases
and not only when __MMX__ is not defined just to make sure that no other
bugs happen with this code just because some compiler version gets things
wrong.

Fixes bug #614466.
2010-04-19 16:57:19 +02:00
Sebastian Dröge
a904edfaf5 videobox: Use libgstvideo to get the order of RGB 2010-04-19 14:43:41 +02:00
Brian Cameron
f3c032e6ac goom: add edx to clobber list in inline assembly code
mull modifies %edx, so should be mentioned in clobber list.
Fixes crash on Solaris (#615998).
2010-04-17 10:26:25 +01:00
Sebastian Dröge
386169b9fe videobox: Fix I420->I420 copying
Fixes bug #615143.
2010-04-16 15:27:56 +02:00
Sebastian Dröge
e6dd1fc3db videobox: Fix AYUV->I420 copying 2010-04-16 15:27:56 +02:00
Mark Nauwelaerts
e053a89c21 rtph264depay: profile-level-id is an optional parameter
So, if needed, extract the corresponding info from
sprop-parameter-sets.

Based on patch provided by <dxssx at gmail.com>

Fixes #612657.
2010-04-16 12:14:26 +02:00
Edward Hervey
146e50455b videobox: transform_caps : We can only convert AYUV to xRGB
We were previously stating that we could convert AYUV/I420/YV12 to xRGB.
2010-04-14 18:27:52 +02:00
Tim-Philipp Müller
a155deaabf matroskademux, qtdemux: minor code cleanup in avc_level_idc_to_string()
Do the same with slightly fewer LOC.
2010-04-12 15:10:11 +01:00
Sebastian Dröge
37e3d2d9d5 videobox: Fix I420->AYUV copying 2010-04-12 11:43:49 +02:00
Sebastian Dröge
9da4f2906f videobox: Correctly clamp frame/background alphas to [0,255] before writing them 2010-04-12 11:27:40 +02:00
David Schleef
289f69eb84 deinterlace: Only check interlaced flag in sink caps
Fixes #615460.
2010-04-11 13:15:32 -07:00
Stefan Kost
d6e9af2a11 docs: do proper escaping for "%" 2010-04-08 18:05:46 +03:00
Stefan Kost
0e048803b9 rtsp: remove obsolete google extension
This was not build for a while and can be removed.
2010-04-08 17:50:49 +03:00
Stefan Kost
6772badb88 docs: enable the 2 of 65 rtp elements in the docs 2010-04-08 17:19:41 +03:00
Stefan Kost
ddfb2827d1 docs: upd -> udp and voila it shows up in the docs 2010-04-08 16:56:37 +03:00
Stefan Kost
04d9490ca9 docs: fix doc blob syntax 2010-04-08 16:51:27 +03:00
Stefan Kost
054b84359b flvdemux: make debug category static 2010-04-08 14:34:59 +03:00
Stefan Kost
fa09b5d519 flxdemux: rename GstFLVDemux for GstFlvDemux 2010-04-08 14:29:59 +03:00
Stefan Kost
fcc3db73a3 flvdemux: merge flvparse into the demuxer and make function static
No need to hide certain function in the docs. Allows to do more cleanups.
2010-04-08 14:29:59 +03:00
Sebastian Dröge
afed9b959c alpha: Add documentation 2010-04-08 13:14:23 +02:00
Stefan Kost
9967a4112b rtpsession: remove prototype for non existing function
There is no function by that name anywhere.
2010-04-08 14:02:50 +03:00
Sebastian Dröge
4d906b4a0a alphacolor: Improve docs a bit 2010-04-08 12:56:30 +02:00
Stefan Kost
acc742bbc9 matroska-mux: fix last commit
Use a local define for WAVEFORMAT_EX based on the size of the struct + 2 bytes
for the extension size.
2010-04-08 13:29:35 +03:00
Stefan Kost
7e3ccacc2f wavenc: remove internal copy of riff.h and use riff-library instead.
We don't use any function yet, just the structures and defines.
2010-04-08 13:03:43 +03:00
Stefan Kost
0c35e0c4db matroskamux: use riff lib more
Remove BITMAPINFOHEADER and use the one from riff-lib. Also remove the
WAVEFORMATEX_SIZE define and use a sizeof together with the respective struct.
Besides better code reuse this lessens the ununsed symbols in the docs.
2010-04-08 12:57:03 +03:00
Stefan Kost
e7a5ff40bd docs: trim sections file more
Rename some defines and move some itesm to *.c files. Add more items to internal
subsection.
2010-04-08 12:14:07 +03:00
Stefan Kost
43ebe8235f docs: fix xml
The title tag belongs into the refsect2.
2010-04-08 10:30:06 +03:00
Sebastian Dröge
4e277ebe7b videobox: Add support for YV12, including conversion support for I420/AYUV 2010-04-07 17:43:56 +02:00
Sebastian Dröge
b4e3532c1f videobox: Add support for grayscale input/output
This doesn't do any conversion and is the next step to
replacing videocrop by supporting all remaining formats
in passthrough mode.
2010-04-07 17:27:12 +02:00
Sebastian Dröge
02a4a150e8 videobox: Add support for filling the background with red, yellow and white 2010-04-07 16:24:38 +02:00
Sebastian Dröge
a0fd92dfc1 videobox: Add support for direct RGB<->AYUV conversion 2010-04-07 16:12:51 +02:00
Sebastian Dröge
84ce6f2a2b videobox: Fix RGB24 filling 2010-04-07 16:12:51 +02:00
Marco Ballesio
2ff1558a87 h264depay: handle properly STAPs
in rtph264depay.c, lines 577-576, NALU-type 24 (Single-Time Aggregation
Packet) is handled in fall-through as NALU-type 26 (unhandled).

This leads high quality h264 streams such as:

rtsp://stream.yle.mobi/yle/areena/MEDIA_E0342657_p3.mp4

to fail with "NAL unit type 24 not supported yet" (but it's actually
supported), and thus to close any stream which contains STAPs.

The proposed one-liner patch fixes the issue.
Fixes #615051.
2010-04-07 16:17:06 +03:00
Thijs Vermeir
d17ad171c9 build: fix compiler warnings
fix warnings for all plugins that use: setlocale (LC_ALL...
2010-04-07 13:48:12 +02:00
Thijs Vermeir
1e5bb1c300 avi: fix compiler warning 2010-04-07 13:32:09 +02:00
Mark Nauwelaerts
dc09ace2bd matroskademux: restrict resyncing to subtitle tracks
This should prevent skipping audio or video in not so well interleaved
cases.

Fixes #614460.
2010-04-07 12:40:13 +02:00
Arun Raghavan
861311e8f6 qtdemux: Post avg./max. bitrate tags for H.264
This reads the average and maximum bitrates from the 'btrt' atom if
available, and pushes these as tags,

https://bugzilla.gnome.org/show_bug.cgi?id=614927
2010-04-07 11:55:32 +02:00
Sebastian Dröge
3c1940c187 videobox: Fix conversion from 3 byte RGB to ARGB 2010-04-05 17:31:36 +02:00
Sebastian Dröge
687ff84592 videobox: Add support for 3 byte RGB formats and refactor RGB code a bit 2010-04-05 17:08:15 +02:00
Sebastian Dröge
d0ad28ad54 videobox: Add support for all 32 bit RGB formats
...including conversion between them.
2010-04-05 15:52:11 +02:00
Wim Taymans
b84bf10455 rtspsrc: add property to control the buffering method
Add a property to control how the jitterbuffer performs timestamping and
buffering.
2010-04-05 15:26:03 +02:00
André Dieb Martins
5a395846c6 alphacolor: Removing unused variable
Fixes bug #614843.
2010-04-05 10:31:45 +02:00
Thiago Santos
f966ff66f8 qtdemux: Read replaygain peak/gain tags
Make qtdemux read tags replaygain tags that are within '----' atoms.

Fixes #614471
2010-04-02 15:23:51 -03:00
Arun Raghavan
95c6d558f0 matroska: Export h.264 profile and level in caps
This replicates the code in qtdemux to export the h.264 profile and
level in the stream caps.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:51:34 +02:00
Sebastian Dröge
9317ad6fe9 qtdemux: Fix off-by-one introduced in last commit 2010-04-02 18:50:45 +02:00
Arun Raghavan
ccef64be39 qtdemux: Minor refactor of the code
This will make it easier to clump together common code when copying to
mastroskademux.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:49:20 +02:00
Arun Raghavan
d6dcd70b4c qtdemux: Export h.264 level in caps
This exports the h.264 level in the stream caps (as a string) which can
be used to match a decoder, or as metadata.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:48:45 +02:00
Arun Raghavan
503f0988bf qtdemux: Export h.264 profile in caps
This adds the h.264 profile for a given stream into caps. This can
(eventually) be used to select an appropriate decoder and as metadata
for certain applications.

https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:48:23 +02:00
Mark Nauwelaerts
2d6d2a4d95 flvdemux: remove obsolete reverse playback code path 2010-04-01 10:46:16 +02:00
Mark Nauwelaerts
1c7b1d110b flvdemux: support (pull mode) negative seek rate 2010-04-01 10:46:12 +02:00
Mark Nauwelaerts
d3ae0ef71f flvdemux: also check for segment stop for non-segment-seek 2010-04-01 10:46:10 +02:00
Mark Nauwelaerts
b9f569bfd0 matroskademux: push correctly sized flac header buffers
Fixes #614353.
2010-03-30 16:51:36 +02:00
Tim-Philipp Müller
9e1f5031cc id3demux: fix parsing of unsynced frames with data length indicator
Fixes bug #614158.
2010-03-30 01:54:40 +01:00
Tim-Philipp Müller
d756bab488 build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00
Tim-Philipp Müller
af5e4d935a qtdemux: extract stream language in more cases
The 16-bit language code can be either a packed ISO-639-2T code
or a 'Macintosh language code'. Handle the latter type of language
codes as well, and map to the matching ISO code. Lastly, fix
language code posting for language #0, which is valid and stands
for 'English'.

Fixes #614001.
2010-03-26 17:02:50 +00:00
Sebastian Dröge
2873c3ad6b videobox: Fix AYUV->I420 frame copying 2010-03-26 13:45:46 +01:00
Sebastian Dröge
3bdd50c93b videobox: Always fill the complete frame if borders should be added
This makes sure that we don't get any gaps between rectangles because
of chroma subsampling for example.
2010-03-26 13:28:53 +01:00
Sebastian Dröge
298f1c3202 videobox: Refactor boxing to reduce code duplication 2010-03-26 13:28:53 +01:00
Sebastian Dröge
2e043908de alpha: Simplify caps transformation 2010-03-26 13:28:53 +01:00
Sebastian Dröge
cd6b4214a6 videobox: Add const qualifier to the source frame data 2010-03-26 13:28:53 +01:00
Mark Nauwelaerts
b1f3e4d0cf matroskademux: only seek when in proper state
... and data structures can be thread-safely accessed.

See #601617.
2010-03-26 11:45:47 +01:00
Mark Nauwelaerts
9157c262ba matroskademux: support (pull mode) negative seek rate 2010-03-26 11:45:41 +01:00
Mark Nauwelaerts
95e38e59a2 matroskademux: track clip duration in segment 2010-03-26 11:45:39 +01:00
Mark Nauwelaerts
6ccffcf5f1 matroskademux: prefer index of video track to perform seeking 2010-03-26 11:45:36 +01:00
Mark Nauwelaerts
d654eeb6de avidemux: fix typo in header validation check 2010-03-25 11:40:20 +01:00
Edward Hervey
66d9dbe49e icydemux: Handle upstream Content-Type.
Allows us to handle ShoutCast TV (NSV) streams.

If the upstream caps have the 'content-type' field set to video/nsv, then
we shortcut the typefinding and set video/x-nsv directly.
2010-03-23 19:48:24 +01:00
Stefan Kost
f1a75adcbc i18n: build fixes: #if -> #ifdef for ENABLE_NLS 2010-03-22 17:26:37 +02:00
Benjamin Otte
382afe983b multifile: Include headers instead fo defining functions 2010-03-21 17:36:28 +01:00
Benjamin Otte
c2846f698b Make goom not use aggregate returns 2010-03-21 17:23:43 +01:00
Benjamin Otte
412cc10314 Add -Wold-style-definition flag
And fix the warnings
2010-03-21 15:17:46 +01:00
Benjamin Otte
3f511ec361 Add -Wwrite-strings to the configure flags
... and fix all warnings
2010-03-21 14:17:47 +01:00
Sebastian Dröge
0f7631f8ec shapewipe: Add support for the remaining ARGB formats
And handle AYUV like ARGB, we need no YUV specific handling.
2010-03-21 11:14:12 +01:00
Sebastian Dröge
b78937aa6f alpha: Add support for RGB and xRGB input 2010-03-20 21:30:58 +01:00
Sebastian Dröge
5bbc7dd114 alpha: Add support for ARGB input 2010-03-20 21:13:23 +01:00
Sebastian Dröge
985ec0260c alpha: Add support for generating ARGB output 2010-03-20 20:46:19 +01:00
Sebastian Dröge
fe4ff4f324 videomixer: Add support for ABGR and RGBA
Now all 4 ARGB variants are supported by videomixer.
2010-03-20 17:32:48 +01:00
Sebastian Dröge
1fdbfb35ff alpha: Move chroma keying parameters into stack variables to prevent multiple pointer dereferences per pixel 2010-03-20 10:26:13 +01:00
Sebastian Dröge
9d9ba5b00e alpha: Move color conversion matrixes into stack variables to speed up processing 2010-03-20 10:20:53 +01:00
Sebastian Dröge
eb7a146b51 alpha: Use correct matrixes to convert chroma keying color to YUV 2010-03-20 10:18:04 +01:00
Sebastian Dröge
b64619dc4e alpha: Add support for different color matrixes 2010-03-19 19:30:32 +01:00